From 75dd08377b85563d097f9cb0999d12426f99feab Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:35:26 +0100 Subject: [PATCH 01/26] Separate ERC20 calls inside snapshotModule --- .../internal/ERC20SnapshotModuleInternal.sol | 41 +++------------- .../internal/base/SnapshotModuleBase.sol | 48 +++++++++++++++++++ 2 files changed, 55 insertions(+), 34 deletions(-) diff --git a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol b/contracts/modules/internal/ERC20SnapshotModuleInternal.sol index 654b7186..e7db352e 100644 --- a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol +++ b/contracts/modules/internal/ERC20SnapshotModuleInternal.sol @@ -68,13 +68,7 @@ abstract contract ERC20SnapshotModuleInternal is ICMTATSnapshot, SnapshotModuleB uint256 time, address owner ) public view returns (uint256) { - SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); - (bool snapshotted, uint256 value) = _valueAt( - time, - $._accountBalanceSnapshots[owner] - ); - - return snapshotted ? value : balanceOf(owner); + return _snapshotBalanceOf(time, owner, balanceOf(owner)); } /** @@ -83,12 +77,7 @@ abstract contract ERC20SnapshotModuleInternal is ICMTATSnapshot, SnapshotModuleB * @return value stored in the snapshot, or the actual totalSupply if no snapshot */ function snapshotTotalSupply(uint256 time) public view returns (uint256) { - SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); - (bool snapshotted, uint256 value) = _valueAt( - time, - $._totalSupplySnapshots - ); - return snapshotted ? value : totalSupply(); + return _snapshotTotalSupply(time, totalSupply()); } /*////////////////////////////////////////////////////////////// @@ -106,34 +95,18 @@ abstract contract ERC20SnapshotModuleInternal is ICMTATSnapshot, SnapshotModuleB _setCurrentSnapshot(); if (from != address(0)) { // for both burn and transfer - _updateAccountSnapshot(from); + _updateAccountSnapshot(from, balanceOf(from)); if (to != address(0)) { // transfer - _updateAccountSnapshot(to); + _updateAccountSnapshot(to, balanceOf(to)); } else { // burn - _updateTotalSupplySnapshot(); + _updateTotalSupplySnapshot(totalSupply()); } } else { // mint - _updateAccountSnapshot(to); - _updateTotalSupplySnapshot(); + _updateAccountSnapshot(to, balanceOf(to)); + _updateTotalSupplySnapshot(totalSupply()); } } - - /** - * @dev See {OpenZeppelin - ERC20Snapshot} - */ - function _updateAccountSnapshot(address account) private { - SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); - _updateSnapshot($._accountBalanceSnapshots[account], balanceOf(account)); - } - - /** - * @dev See {OpenZeppelin - ERC20Snapshot} - */ - function _updateTotalSupplySnapshot() private { - SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); - _updateSnapshot($._totalSupplySnapshots, totalSupply()); - } } diff --git a/contracts/modules/internal/base/SnapshotModuleBase.sol b/contracts/modules/internal/base/SnapshotModuleBase.sol index d099e467..09b6b70e 100644 --- a/contracts/modules/internal/base/SnapshotModuleBase.sol +++ b/contracts/modules/internal/base/SnapshotModuleBase.sol @@ -397,6 +397,54 @@ abstract contract SnapshotModuleBase is Initializable { return (mostRecent, index); } + /* ============ Require balance and total supply ============ */ + /** + * @dev See {OpenZeppelin - ERC20Snapshot} + */ + function _updateAccountSnapshot(address account, uint256 accountBalance) internal { + SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); + _updateSnapshot($._accountBalanceSnapshots[account], accountBalance); + } + + /** + * @dev See {OpenZeppelin - ERC20Snapshot} + */ + function _updateTotalSupplySnapshot(uint256 totalSupply) internal { + SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); + _updateSnapshot($._totalSupplySnapshots, totalSupply); + } + + /** + * @notice Return the number of tokens owned by the given owner at the time when the snapshot with the given time was created. + * @return value stored in the snapshot, or the actual balance if no snapshot + */ + function _snapshotBalanceOf( + uint256 time, + address owner, + uint256 ownerBalance + ) internal view returns (uint256) { + SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); + (bool snapshotted, uint256 value) = _valueAt( + time, + $._accountBalanceSnapshots[owner] + ); + return snapshotted ? value : ownerBalance; + } + + /** + * @dev See {OpenZeppelin - ERC20Snapshot} + * Retrieves the total supply at the specified time. + * @return value stored in the snapshot, or the actual totalSupply if no snapshot + */ + function _snapshotTotalSupply(uint256 time, uint256 totalSupply) internal view returns (uint256) { + SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage(); + (bool snapshotted, uint256 value) = _valueAt( + time, + $._totalSupplySnapshots + ); + return snapshotted ? value : totalSupply; + } + /* ============ Utility functions ============ */ From 37078ca8e3ac587d88b83be2c97921154e404363 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 13 Nov 2024 11:49:54 +0100 Subject: [PATCH 02/26] Add TransferEngineModule, remove snapshotModule --- .../interfaces/engine/ITransferEngine.sol | 14 ++ contracts/libraries/Errors.sol | 2 + contracts/mocks/TransferEngineMock.sol | 167 ++++++++++++++++++ contracts/modules/CMTAT_BASE.sol | 16 +- .../internal/ERC20SnapshotModuleInternal.sol | 1 + .../internal/base/SnapshotModuleBase.sol | 3 +- .../extensions/TransferEngineModule.sol | 71 ++++++++ ...RC20SnapshotModuleCommonGetNextSnapshot.js | 38 ++-- .../ERC20SnapshotModuleCommonRescheduling.js | 80 ++++----- .../ERC20SnapshotModuleCommonScheduling.js | 76 ++++---- .../ERC20SnapshotModuleCommonUnschedule.js | 112 ++++++------ .../ERC20SnapshotModuleUtils.js | 12 +- .../ERC20SnapshotModuleMultiplePlannedTest.js | 16 +- ...C20SnapshotModuleOnePlannedSnapshotTest.js | 8 +- .../proxy/modules/ERC20SnapshotModule.test.js | 3 + .../modules/ERC20SnapshotModule.test.js | 3 + 16 files changed, 445 insertions(+), 177 deletions(-) create mode 100644 contracts/interfaces/engine/ITransferEngine.sol create mode 100644 contracts/mocks/TransferEngineMock.sol create mode 100644 contracts/modules/wrapper/extensions/TransferEngineModule.sol diff --git a/contracts/interfaces/engine/ITransferEngine.sol b/contracts/interfaces/engine/ITransferEngine.sol new file mode 100644 index 00000000..b78b17c6 --- /dev/null +++ b/contracts/interfaces/engine/ITransferEngine.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +/* +* @dev minimum interface to define a RuleEngine +*/ +interface ITransferEngine { + /** + * @dev Returns true if the operation is a success, and false otherwise. + */ + function operateOnTransfer(address from, address to, uint256 balanceFrom, uint256 balanceTo, uint256 totalSupply) external; + +} \ No newline at end of file diff --git a/contracts/libraries/Errors.sol b/contracts/libraries/Errors.sol index d5beb510..e9f72804 100644 --- a/contracts/libraries/Errors.sol +++ b/contracts/libraries/Errors.sol @@ -61,6 +61,8 @@ library Errors { error CMTAT_AuthorizationModule_InvalidAuthorization(); error CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet(); + error CMTAT_TransferEngineModule_TransferEngineAlreadySet(); + // DocumentModule error CMTAT_DocumentModule_SameValue(); diff --git a/contracts/mocks/TransferEngineMock.sol b/contracts/mocks/TransferEngineMock.sol new file mode 100644 index 00000000..b987cb2d --- /dev/null +++ b/contracts/mocks/TransferEngineMock.sol @@ -0,0 +1,167 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; +import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import "../modules/internal/base/SnapshotModuleBase.sol"; +import "../interfaces/ICMTATSnapshot.sol"; +import "../interfaces/engine/ITransferEngine.sol"; +/* +* @title a RuleEngine mock for testing, not suitable for production +*/ +contract TransferEngineMock is SnapshotModuleBase, AccessControlUpgradeable, ITransferEngine { + ERC20Upgradeable erc20; + constructor(ERC20Upgradeable erc20_, address admin) { + erc20 = erc20_; + _grantRole(DEFAULT_ADMIN_ROLE, admin); + } + /* ============ State Variables ============ */ + bytes32 public constant SNAPSHOOTER_ROLE = keccak256("SNAPSHOOTER_ROLE"); + + /** + * @dev Returns `true` if `account` has been granted `role`. + */ + function hasRole( + bytes32 role, + address account + ) public view virtual override(AccessControlUpgradeable) returns (bool) { + // The Default Admin has all roles + if (AccessControlUpgradeable.hasRole(DEFAULT_ADMIN_ROLE, account)) { + return true; + } + return AccessControlUpgradeable.hasRole(role, account); + } + /** + * @dev Update balance and/or total supply snapshots before the values are modified. This is implemented + * in the _beforeTokenTransfer hook, which is executed for _mint, _burn, and _transfer operations. + */ + function operateOnTransfer(address from, address to, uint256 balanceFrom, uint256 balanceTo, uint256 totalSupply) public override { + _setCurrentSnapshot(); + if (from != address(0)) { + // for both burn and transfer + _updateAccountSnapshot(from, balanceFrom); + if (to != address(0)) { + // transfer + _updateAccountSnapshot(to, balanceTo); + } else { + // burn + _updateTotalSupplySnapshot(totalSupply); + } + } else { + // mint + _updateAccountSnapshot(to, balanceTo); + _updateTotalSupplySnapshot(totalSupply); + } + } + + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ + /** + * @notice Return snapshotBalanceOf and snapshotTotalSupply to avoid multiple calls + * @return ownerBalance , totalSupply - see snapshotBalanceOf and snapshotTotalSupply + */ + function snapshotInfo(uint256 time, address owner) public view returns (uint256 ownerBalance, uint256 totalSupply) { + ownerBalance = snapshotBalanceOf(time, owner); + totalSupply = snapshotTotalSupply(time); + } + + /** + * @notice Return snapshotBalanceOf for each address in the array and the total supply + * @return ownerBalances array with the balance of each address, the total supply + */ + function snapshotInfoBatch(uint256 time, address[] calldata addresses) public view returns (uint256[] memory ownerBalances, uint256 totalSupply) { + ownerBalances = new uint256[](addresses.length); + for(uint256 i = 0; i < addresses.length; ++i){ + ownerBalances[i] = snapshotBalanceOf(time, addresses[i]); + } + totalSupply = snapshotTotalSupply(time); + } + + /** + * @notice Return snapshotBalanceOf for each address in the array and the total supply + * @return ownerBalances array with the balance of each address, the total supply + */ + function snapshotInfoBatch(uint256[] calldata times, address[] calldata addresses) public view returns (uint256[][] memory ownerBalances, uint256[] memory totalSupply) { + ownerBalances = new uint256[][](times.length); + totalSupply = new uint256[](times.length); + for(uint256 iT = 0; iT < times.length; ++iT){ + (ownerBalances[iT], totalSupply[iT]) = snapshotInfoBatch(times[iT],addresses); + } + } + + /** + * @notice Return the number of tokens owned by the given owner at the time when the snapshot with the given time was created. + * @return value stored in the snapshot, or the actual balance if no snapshot + */ + function snapshotBalanceOf( + uint256 time, + address owner + ) public view returns (uint256) { + return _snapshotBalanceOf(time, owner, erc20.balanceOf(owner)); + } + + /** + * @dev See {OpenZeppelin - ERC20Snapshot} + * Retrieves the total supply at the specified time. + * @return value stored in the snapshot, or the actual totalSupply if no snapshot + */ + function snapshotTotalSupply(uint256 time) public view returns (uint256) { + return _snapshotTotalSupply(time, erc20.totalSupply()); + } + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ + /** + * @notice + * Schedule a snapshot at the given time specified as a number of seconds since epoch. + * The time cannot be before the time of the latest scheduled, but not yet created snapshot. + */ + function scheduleSnapshot(uint256 time) public onlyRole(SNAPSHOOTER_ROLE) { + _scheduleSnapshot(time); + } + + /** + * @notice + * Schedule a snapshot at the given time specified as a number of seconds since epoch. + * The time cannot be before the time of the latest scheduled, but not yet created snapshot. + */ + function scheduleSnapshotNotOptimized( + uint256 time + ) public onlyRole(SNAPSHOOTER_ROLE) { + _scheduleSnapshotNotOptimized(time); + } + + /** + * @notice + * Reschedule the scheduled snapshot, but not yet created snapshot with the given oldTime to be created at the given newTime specified as a number of seconds since epoch. + * The newTime cannot be before the time of the previous scheduled, but not yet created snapshot, or after the time fo the next scheduled snapshot. + */ + function rescheduleSnapshot( + uint256 oldTime, + uint256 newTime + ) public onlyRole(SNAPSHOOTER_ROLE) { + _rescheduleSnapshot(oldTime, newTime); + } + + /** + * @notice + * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. + * There should not be any other snapshots scheduled after this one. + */ + function unscheduleLastSnapshot( + uint256 time + ) public onlyRole(SNAPSHOOTER_ROLE) { + _unscheduleLastSnapshot(time); + } + + /** + * @notice + * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. + */ + function unscheduleSnapshotNotOptimized( + uint256 time + ) public onlyRole(SNAPSHOOTER_ROLE) { + _unscheduleSnapshotNotOptimized(time); + } +} diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index dfe445cf..63b91c27 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -22,13 +22,16 @@ import "./wrapper/controllers/ValidationModule.sol"; import "./wrapper/extensions/MetaTxModule.sol"; import "./wrapper/extensions/DebtModule.sol"; import "./wrapper/extensions/DocumentModule.sol"; +import "./wrapper/extensions/TransferEngineModule.sol"; import "./security/AuthorizationModule.sol"; import "../interfaces/ICMTATConstructor.sol"; +import "../interfaces/engine/ITransferEngine.sol"; import "../libraries/Errors.sol"; abstract contract CMTAT_BASE is Initializable, ContextUpgradeable, + TransferEngineModule, // Core BaseModule, PauseModule, @@ -39,7 +42,7 @@ abstract contract CMTAT_BASE is ERC20BaseModule, // Extension MetaTxModule, - ERC20SnapshotModule, + //ERC20SnapshotModule, DebtModule, DocumentModule { @@ -96,8 +99,8 @@ abstract contract CMTAT_BASE is SnapshotModule: Add these two calls in case you add the SnapshotModule */ - __SnapshotModuleBase_init_unchained(); - __ERC20Snapshot_init_unchained(); + //__SnapshotModuleBase_init_unchained(); + //__ERC20Snapshot_init_unchained(); __Validation_init_unchained(engines_ .ruleEngine); @@ -117,7 +120,7 @@ abstract contract CMTAT_BASE is SnapshotModule: Add this call in case you add the SnapshotModule */ - __ERC20SnasphotModule_init_unchained(); + //__ERC20SnasphotModule_init_unchained(); __DocumentModule_init_unchained(engines_ .documentEngine); __DebtModule_init_unchained(engines_ .debtEngine); @@ -199,7 +202,10 @@ abstract contract CMTAT_BASE is Add this in case you add the SnapshotModule We call the SnapshotModule only if the transfer is valid */ - ERC20SnapshotModuleInternal._snapshotUpdate(from, to); + //ERC20SnapshotModuleInternal._snapshotUpdate(from, to); + if(address(transferEngine()) != address(0)){ + transferEngine().operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); + } ERC20Upgradeable._update(from, to, amount); } /*////////////////////////////////////////////////////////////// diff --git a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol b/contracts/modules/internal/ERC20SnapshotModuleInternal.sol index e7db352e..1da61700 100644 --- a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol +++ b/contracts/modules/internal/ERC20SnapshotModuleInternal.sol @@ -17,6 +17,7 @@ import "../../interfaces/ICMTATSnapshot.sol"; abstract contract ERC20SnapshotModuleInternal is ICMTATSnapshot, SnapshotModuleBase, ERC20Upgradeable { using Arrays for uint256[]; + /* ============ Initializer Function ============ */ function __ERC20Snapshot_init_unchained() internal onlyInitializing { // Nothing to do diff --git a/contracts/modules/internal/base/SnapshotModuleBase.sol b/contracts/modules/internal/base/SnapshotModuleBase.sol index 09b6b70e..96da36b5 100644 --- a/contracts/modules/internal/base/SnapshotModuleBase.sol +++ b/contracts/modules/internal/base/SnapshotModuleBase.sol @@ -398,7 +398,8 @@ abstract contract SnapshotModuleBase is Initializable { } /* ============ Require balance and total supply ============ */ - /** + + /** * @dev See {OpenZeppelin - ERC20Snapshot} */ function _updateAccountSnapshot(address account, uint256 accountBalance) internal { diff --git a/contracts/modules/wrapper/extensions/TransferEngineModule.sol b/contracts/modules/wrapper/extensions/TransferEngineModule.sol new file mode 100644 index 00000000..753bd2d8 --- /dev/null +++ b/contracts/modules/wrapper/extensions/TransferEngineModule.sol @@ -0,0 +1,71 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +import "../../security/AuthorizationModule.sol"; +import "../../../libraries/Errors.sol"; +import "../../../interfaces/engine/ITransferEngine.sol"; + +abstract contract TransferEngineModule is AuthorizationModule { + /* ============ Events ============ */ + /** + * @dev Emitted when a rule engine is set. + */ + event TransferEngine(ITransferEngine indexed newTransferEngine); + /* ============ ERC-7201 ============ */ + // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.TransferModule")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant TransferEngineModuleStorageLocation = 0x59b7f077fa4ad020f9053fd2197fef0113b19f0b11dcfe516e88cbc0e9226d00; + /* ==== ERC-7201 State Variables === */ + struct TransferEngineModuleStorage { + ITransferEngine _transferEngine; + } + /* ============ Initializer Function ============ */ + /** + * @dev + * + * - The grant to the admin role is done by AccessControlDefaultAdminRules + * - The control of the zero address is done by AccessControlDefaultAdminRules + * + */ + function __TransferModule_init_unchained(ITransferEngine TransferEngine_) + internal onlyInitializing { + if (address(TransferEngine_) != address (0)) { + TransferEngineModuleStorage storage $ = _getTransferEngineModuleStorage(); + $._transferEngine = TransferEngine_; + emit TransferEngine(TransferEngine_); + } + } + + + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ + + function transferEngine() public view virtual returns (ITransferEngine) { + TransferEngineModuleStorage storage $ = _getTransferEngineModuleStorage(); + return $._transferEngine; + } + + /* + * @notice set an TransferEngine if not already set + * @dev once an TransferEngine is set, it is not possible to unset it + */ + function setTransferEngine( + ITransferEngine transferEngine_ + ) external onlyRole(DEFAULT_ADMIN_ROLE) { + TransferEngineModuleStorage storage $ = _getTransferEngineModuleStorage(); + $._transferEngine = transferEngine_; + emit TransferEngine(transferEngine_); + } + + /*////////////////////////////////////////////////////////////// + INTERNAL/PRIVATE FUNCTIONS + //////////////////////////////////////////////////////////////*/ + + /* ============ ERC-7201 ============ */ + function _getTransferEngineModuleStorage() private pure returns (TransferEngineModuleStorage storage $) { + assembly { + $.slot := TransferEngineModuleStorageLocation + } + } +} diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js index 09d063de..165b27e2 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js @@ -16,13 +16,13 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { this.snapshotTime3 = this.currentTime + time.duration.seconds(20) this.snapshotTime4 = this.currentTime + time.duration.seconds(25) this.snapshotTime5 = this.currentTime + time.duration.seconds(30) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) // Act - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() // Assert expect(snapshots.length).to.equal(5) checkArraySnapshot(snapshots, [ @@ -33,7 +33,7 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { this.snapshotTime5 ]) // Act - const AllSnapshots = await this.cmtat.getAllSnapshots() + const AllSnapshots = await this.transferEngineMock.getAllSnapshots() // Assert checkArraySnapshot(AllSnapshots, [ this.snapshotTime1, @@ -47,32 +47,32 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { // it('testCanReturnEmptyArrayIfAllSnapshotsAreInThePast', async function () { // Arrange - this.snapshotTime1 = this.currentTime + time.duration.seconds(2) - this.snapshotTime2 = this.currentTime + time.duration.seconds(3) - this.snapshotTime3 = this.currentTime + time.duration.seconds(4) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + this.snapshotTime1 = this.currentTime + time.duration.seconds(3) + this.snapshotTime2 = this.currentTime + time.duration.seconds(4) + this.snapshotTime3 = this.currentTime + time.duration.seconds(5) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) // We jump into the future await time.increase(4) // Act - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() // Assert expect(snapshots.length).to.equal(0) }) it('testCanReturnOnlyFutureSnapshotsIfSomeSnapshotsAreInThePast', async function () { // Arrange - this.snapshotTime1 = this.currentTime + time.duration.seconds(2) + this.snapshotTime1 = this.currentTime + time.duration.seconds(3) this.snapshotTime2 = this.currentTime + time.duration.seconds(20) this.snapshotTime3 = this.currentTime + time.duration.seconds(300) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) // We jump into the future await time.increase(3) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) // Act - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() // Assert expect(snapshots.length).to.equal(2) checkArraySnapshot(snapshots, [this.snapshotTime2, this.snapshotTime3]) diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js index 87b13c09..1cb26968 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js @@ -11,17 +11,17 @@ function ERC20SnapshotModuleCommonRescheduling () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(60) this.newSnapshotTime = this.currentTime + time.duration.seconds(200) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime) }) it('can reschedule a snapshot with the snapshoter role and emits a SnapshotSchedule event', async function () { - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(this.snapshotTime, this.newSnapshotTime) await expect(this.logs) - .to.emit(this.cmtat, 'SnapshotSchedule') + .to.emit(this.transferEngineMock, 'SnapshotSchedule') .withArgs(this.snapshotTime, this.newSnapshotTime) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) expect(snapshots[0]).to.equal(this.newSnapshotTime) }) @@ -33,18 +33,18 @@ function ERC20SnapshotModuleCommonRescheduling () { this.snapshotTime + time.duration.seconds(40) const FIRST_SNAPSHOT = this.snapshotTime + time.duration.seconds(60) const SECOND_SNAPSHOT = this.snapshotTime + time.duration.seconds(90) - await this.cmtat + await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME) - await this.cmtat.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.cmtat.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) - this.logs = await this.cmtat + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) + this.logs = await this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME, SNAPSHOT_MIDDLE_NEW_TIME) await expect(this.logs) - .to.emit(this.cmtat, 'SnapshotSchedule') + .to.emit(this.transferEngineMock, 'SnapshotSchedule') .withArgs(SNAPSHOT_MIDDLE_OLD_TIME, SNAPSHOT_MIDDLE_NEW_TIME) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(4) checkArraySnapshot(snapshots, [ this.snapshotTime, @@ -61,14 +61,14 @@ function ERC20SnapshotModuleCommonRescheduling () { this.snapshotTime + time.duration.seconds(61) const FIRST_SNAPSHOT = this.snapshotTime + time.duration.seconds(60) const SECOND_SNAPSHOT = this.snapshotTime + time.duration.seconds(90) - await this.cmtat + await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME) - await this.cmtat.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.cmtat.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) // Act await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot( SNAPSHOT_MIDDLE_OLD_TIME, @@ -76,12 +76,12 @@ function ERC20SnapshotModuleCommonRescheduling () { ) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot' ) .withArgs(SNAPSHOT_MIDDLE_NEW_TIME, FIRST_SNAPSHOT) // Assert - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(4) checkArraySnapshot(snapshots, [ this.snapshotTime, @@ -99,14 +99,14 @@ function ERC20SnapshotModuleCommonRescheduling () { const FIRST_SNAPSHOT = this.snapshotTime + time.duration.seconds(60) const SECOND_SNAPSHOT = this.snapshotTime + time.duration.seconds(90) - await this.cmtat + await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME) - await this.cmtat.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.cmtat.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) // Act await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot( SNAPSHOT_MIDDLE_OLD_TIME, @@ -114,13 +114,13 @@ function ERC20SnapshotModuleCommonRescheduling () { ) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot' ) .withArgs(SNAPSHOT_MIDDLE_NEW_TIME, this.snapshotTime) // Assert - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(4) checkArraySnapshot(snapshots, [ this.snapshotTime, @@ -133,12 +133,12 @@ function ERC20SnapshotModuleCommonRescheduling () { it('reverts when calling from non-owner', async function () { // Act await expect( - this.cmtat + this.transferEngineMock .connect(this.address1) .rescheduleSnapshot(this.snapshotTime, this.newSnapshotTime) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'AccessControlUnauthorizedAccount' ) .withArgs(this.address1.address, SNAPSHOOTER_ROLE) @@ -147,12 +147,12 @@ function ERC20SnapshotModuleCommonRescheduling () { it('reverts when trying to reschedule a snapshot in the past', async function () { const NEW_TIME = this.snapshotTime - time.duration.seconds(60) await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(this.snapshotTime, NEW_TIME) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotScheduledInThePast' ) .withArgs(NEW_TIME, (await time.latest()) + time.duration.seconds(1)) @@ -160,13 +160,13 @@ function ERC20SnapshotModuleCommonRescheduling () { it('reverts when trying to reschedule a snapshot to a snapshot time already existing', async function () { const NEW_TIME = this.snapshotTime + time.duration.seconds(60) - await this.cmtat.connect(this.admin).scheduleSnapshot(NEW_TIME) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(NEW_TIME) await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(this.snapshotTime, NEW_TIME) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyExists' ) }) @@ -175,7 +175,7 @@ function ERC20SnapshotModuleCommonRescheduling () { /* Arrange: we schedule the snapshot at a new time */ - await this.cmtat + await this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(this.snapshotTime, this.newSnapshotTime) @@ -184,15 +184,15 @@ function ERC20SnapshotModuleCommonRescheduling () { We try to reschedule the previous snapshot */ await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(this.snapshotTime, this.newSnapshotTime) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotNotFound' ) // Assert - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) expect(snapshots[0]).to.equal(this.newSnapshotTime) }) @@ -200,25 +200,25 @@ function ERC20SnapshotModuleCommonRescheduling () { it('reverts when snapshot is not found', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(90) await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(SNAPSHOT_TIME, this.newSnapshotTime) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotNotFound' ) }) it('reverts if no snapshot exits', async function () { - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .unscheduleLastSnapshot(this.snapshotTime) await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(this.snapshotTime, this.newSnapshotTime) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_NoSnapshotScheduled' ) }) @@ -226,11 +226,11 @@ function ERC20SnapshotModuleCommonRescheduling () { it('reverts when snapshot has been processed', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(SNAPSHOT_TIME, this.newSnapshotTime) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyDone' ) }) diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js index 50ffd7b3..8a5d2ced 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js @@ -13,27 +13,27 @@ function ERC20SnapshotModuleCommonScheduling () { it('can schedule a snapshot with the snapshoter role', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) // Act - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_TIME) // Assert - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) expect(snapshots[0]).to.equal(SNAPSHOT_TIME) // emits a SnapshotSchedule event await expect(this.logs) - .to.emit(this.cmtat, 'SnapshotSchedule') + .to.emit(this.transferEngineMock, 'SnapshotSchedule') .withArgs('0', SNAPSHOT_TIME) }) it('reverts when calling from non-admin', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) await expect( - this.cmtat.connect(this.address1).scheduleSnapshot(SNAPSHOT_TIME) + this.transferEngineMock.connect(this.address1).scheduleSnapshot(SNAPSHOT_TIME) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'AccessControlUnauthorizedAccount' ) .withArgs(this.address1.address, SNAPSHOOTER_ROLE) @@ -42,16 +42,16 @@ function ERC20SnapshotModuleCommonScheduling () { it('reverts when trying to schedule a snapshot before the last snapshot', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(120) // Act - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_TIME) const SNAPSHOT_TIME_INVALID = SNAPSHOT_TIME - time.duration.seconds(60) await expect( - this.cmtat.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME_INVALID) + this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME_INVALID) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot' ) .withArgs(SNAPSHOT_TIME_INVALID, SNAPSHOT_TIME) @@ -60,10 +60,10 @@ function ERC20SnapshotModuleCommonScheduling () { it('reverts when trying to schedule a snapshot in the past', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.cmtat.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) + this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotScheduledInThePast' ) .withArgs( @@ -75,16 +75,16 @@ function ERC20SnapshotModuleCommonScheduling () { it('reverts when trying to schedule a snapshot with the same time twice', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) // Arrange - await this.cmtat.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) // Act await expect( - this.cmtat.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) + this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyExists' ) // Assert - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) expect(snapshots[0]).to.equal(SNAPSHOT_TIME) }) @@ -99,20 +99,20 @@ function ERC20SnapshotModuleCommonScheduling () { const SECOND_SNAPSHOT = this.currentTime + time.duration.seconds(200) const THIRD_SNAPSHOT = this.currentTime + time.duration.seconds(15) // Arrange - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(FIRST_SNAPSHOT) - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SECOND_SNAPSHOT) // Act // We schedule the snapshot at the first place this.snapshotTime = this.currentTime + time.duration.seconds(10) - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshotNotOptimized(THIRD_SNAPSHOT) // Assert - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(3) expect(snapshots[0]).to.equal(THIRD_SNAPSHOT) }) @@ -126,19 +126,19 @@ function ERC20SnapshotModuleCommonScheduling () { const FIVE_SNAPSHOT = this.currentTime + time.duration.seconds(30) // Third position const RANDOM_SNAPSHOT = this.currentTime + time.duration.seconds(17) - await this.cmtat.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.cmtat.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) - await this.cmtat.connect(this.admin).scheduleSnapshot(THIRD_SNAPSHOT) - await this.cmtat.connect(this.admin).scheduleSnapshot(FOUR_SNAPSHOT) - await this.cmtat.connect(this.admin).scheduleSnapshot(FIVE_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(THIRD_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FOUR_SNAPSHOT) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIVE_SNAPSHOT) // Act - await this.cmtat + await this.transferEngineMock .connect(this.admin) .scheduleSnapshotNotOptimized(RANDOM_SNAPSHOT) // Assert - let snapshots = await this.cmtat.getNextSnapshots() + let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(6) - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() checkArraySnapshot(snapshots, [ FIRST_SNAPSHOT, SECOND_SNAPSHOT, @@ -151,27 +151,27 @@ function ERC20SnapshotModuleCommonScheduling () { it('schedule a snapshot, which will be in the last position', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshotNotOptimized(SNAPSHOT_TIME) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) // emits a SnapshotSchedule event await expect(this.logs) - .to.emit(this.cmtat, 'SnapshotSchedule') + .to.emit(this.transferEngineMock, 'SnapshotSchedule') .withArgs('0', SNAPSHOT_TIME) }) it('reverts when calling from non-admin', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) await expect( - this.cmtat + this.transferEngineMock .connect(this.address1) .scheduleSnapshotNotOptimized(SNAPSHOT_TIME) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'AccessControlUnauthorizedAccount' ) .withArgs(this.address1.address, SNAPSHOOTER_ROLE) @@ -180,12 +180,12 @@ function ERC20SnapshotModuleCommonScheduling () { it('reverts when trying to schedule a snapshot in the past', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .scheduleSnapshotNotOptimized(SNAPSHOT_TIME) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotScheduledInThePast' ) .withArgs( @@ -198,23 +198,23 @@ function ERC20SnapshotModuleCommonScheduling () { const FIRST_SNAPSHOT = this.currentTime + time.duration.seconds(10) const SECOND_SNAPSHOT = this.currentTime + time.duration.seconds(100) // Arrange - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(FIRST_SNAPSHOT) - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SECOND_SNAPSHOT) // Act await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .scheduleSnapshotNotOptimized(FIRST_SNAPSHOT) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyExists' ) // Assert - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(2) checkArraySnapshot(snapshots, [FIRST_SNAPSHOT, SECOND_SNAPSHOT]) }) diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js index 4f47f2f9..e1e1a023 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js @@ -19,30 +19,30 @@ function ERC20SnapshotModuleCommonUnschedule () { it('can remove a snapshot as admin', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_TIME) - let snapshots = await this.cmtat.getNextSnapshots() + let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) expect(snapshots[0]).to.equal(SNAPSHOT_TIME) - await this.cmtat + await this.transferEngineMock .connect(this.admin) .unscheduleSnapshotNotOptimized(SNAPSHOT_TIME) - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) }) it('can remove a random snapshot with the snapshoter role', async function () { - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime5) - let snapshots = await this.cmtat.getNextSnapshots() + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(5) - await this.cmtat + await this.transferEngineMock .connect(this.admin) .unscheduleSnapshotNotOptimized(this.snapshotTime3) - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() checkArraySnapshot(snapshots, [ this.snapshotTime1, this.snapshotTime2, @@ -53,41 +53,41 @@ function ERC20SnapshotModuleCommonUnschedule () { }) it('Revert if no snapshot', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) - let snapshots = await this.cmtat.getNextSnapshots() + let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) await expect( - this.cmtat + this.transferEngineMock .connect(this.admin) .unscheduleSnapshotNotOptimized(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotNotFound' ) - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) }) it('testCannotUnscheduleASnapshotInThePast', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.cmtat.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyDone' ) }) it('can unschedule a snaphot in a random place', async function () { const RANDOM_SNAPSHOT = this.currentTime + time.duration.seconds(17) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime5) - await this.cmtat + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + await this.transferEngineMock .connect(this.admin) .scheduleSnapshotNotOptimized(RANDOM_SNAPSHOT) - let snapshots = await this.cmtat.getNextSnapshots() + let snapshots = await this.transferEngineMock.getNextSnapshots() checkArraySnapshot(snapshots, [ this.snapshotTime1, this.snapshotTime2, @@ -97,12 +97,12 @@ function ERC20SnapshotModuleCommonUnschedule () { this.snapshotTime5 ]) expect(snapshots.length).to.equal(6) - await this.cmtat + await this.transferEngineMock .connect(this.admin) .unscheduleSnapshotNotOptimized(RANDOM_SNAPSHOT) - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(5) - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() checkArraySnapshot(snapshots, [ this.snapshotTime1, this.snapshotTime2, @@ -113,20 +113,20 @@ function ERC20SnapshotModuleCommonUnschedule () { }) it('can schedule a snaphot after an unschedule', async function () { - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime5) - let snapshots = await this.cmtat.getNextSnapshots() + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(5) - await this.cmtat + await this.transferEngineMock .connect(this.admin) .unscheduleSnapshotNotOptimized(this.snapshotTime2) - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(4) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime6) - snapshots = await this.cmtat.getNextSnapshots() + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime6) + snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(5) checkArraySnapshot(snapshots, [ this.snapshotTime1, @@ -140,25 +140,25 @@ function ERC20SnapshotModuleCommonUnschedule () { it('reverts when calling from non-admin', async function () { // Arrange const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_TIME) - let snapshots = await this.cmtat.getNextSnapshots() + let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) expect(snapshots[0]).to.equal(SNAPSHOT_TIME) // Act await expect( - this.cmtat + this.transferEngineMock .connect(this.address1) .unscheduleSnapshotNotOptimized(SNAPSHOT_TIME) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'AccessControlUnauthorizedAccount' ) .withArgs(this.address1.address, SNAPSHOOTER_ROLE) // Assert - snapshots = await this.cmtat.getNextSnapshots() + snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) }) }) @@ -167,28 +167,28 @@ function ERC20SnapshotModuleCommonUnschedule () { beforeEach(async function () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(60) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime) }) it('can unschedule a snapshot with the snapshoter role and emits a SnapshotUnschedule event', async function () { - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .unscheduleLastSnapshot(this.snapshotTime) await expect(this.logs) - .to.emit(this.cmtat, 'SnapshotUnschedule') + .to.emit(this.transferEngineMock, 'SnapshotUnschedule') .withArgs(this.snapshotTime) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) }) it('reverts when calling from non-admin', async function () { await expect( - this.cmtat + this.transferEngineMock .connect(this.address1) .unscheduleLastSnapshot(this.snapshotTime) ) .to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'AccessControlUnauthorizedAccount' ) .withArgs(this.address1.address, SNAPSHOOTER_ROLE) @@ -198,14 +198,14 @@ function ERC20SnapshotModuleCommonUnschedule () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(90) // Arrange // Delete the only snapshot - this.logs = await this.cmtat + this.logs = await this.transferEngineMock .connect(this.admin) .unscheduleLastSnapshot(this.snapshotTime) // Act await expect( - this.cmtat.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_NoSnapshotScheduled' ) }) @@ -214,9 +214,9 @@ function ERC20SnapshotModuleCommonUnschedule () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(90) // Act await expect( - this.cmtat.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotNotFound' ) }) @@ -224,9 +224,9 @@ function ERC20SnapshotModuleCommonUnschedule () { it('reverts when snapshot has been processed', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.cmtat.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( - this.cmtat, + this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyDone' ) }) diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js index 54ad7e42..6bb9a0b1 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js @@ -10,25 +10,25 @@ const timeout = function (ms) { async function checkSnapshot (time, totalSupply, addressese, balances) { const addresses = [this.address1, this.address2, this.address3] // Values before the snapshot - expect(await this.cmtat.snapshotTotalSupply(time)).to.equal(totalSupply) + expect(await this.transferEngineMock.snapshotTotalSupply(time)).to.equal(totalSupply) // const result = await this.cmtat.snapshotInfoBatch(time, addresses) - const result = await this.cmtat['snapshotInfoBatch(uint256,address[])']( + const result = await this.transferEngineMock['snapshotInfoBatch(uint256,address[])']( time, addresses ) /* methods */ const times = [time] - const result2 = await this.cmtat['snapshotInfoBatch(uint256[],address[])']( + const result2 = await this.transferEngineMock['snapshotInfoBatch(uint256[],address[])']( times, addresses ) for (let i = 0; i < balances.length; ++i) { - expect(await this.cmtat.snapshotBalanceOf(time, addresses[i])).to.equal( + expect(await this.transferEngineMock.snapshotBalanceOf(time, addresses[i])).to.equal( balances[i] ) - await this.cmtat.snapshotInfo(time, addresses[i]) + await this.transferEngineMock.snapshotInfo(time, addresses[i]) const { 0: ownerBalance, 1: totalSupplyGet } = - await this.cmtat.snapshotInfo(time, addresses[i]) + await this.transferEngineMock.snapshotInfo(time, addresses[i]) // const [ownerBalance, totalSupplyGet] expect(ownerBalance).to.equal(balances[i]) expect(result[0][i]).to.equal(balances[i]) diff --git a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js index 2989346f..07b497e8 100644 --- a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js +++ b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js @@ -36,9 +36,9 @@ function ERC20SnapshotModuleMultiplePlannedTest () { this.snapshotTime3 = this.currentTime + time.duration.seconds(THIRD_SNAPSHOT_INTERVAL) this.beforeSnapshotTime = this.currentTime - time.duration.seconds(60) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) // We jump into the future await time.increase(FIRST_SNAPSHOT_INTERVAL + 1) }) @@ -157,7 +157,7 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(1) }) @@ -228,7 +228,7 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) }) @@ -306,7 +306,7 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - expect((await this.cmtat.getNextSnapshots()).length).to.equal(2) + expect((await this.transferEngineMock.getNextSnapshots()).length).to.equal(2) // We jump into the future await time.increase(SECOND_SNAPSHOT_INTERVAL - FIRST_SNAPSHOT_INTERVAL) @@ -362,7 +362,7 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - expect((await this.cmtat.getNextSnapshots()).length).to.equal(1) + expect((await this.transferEngineMock.getNextSnapshots()).length).to.equal(1) // We jump into the future await time.increase(THIRD_SNAPSHOT_INTERVAL - FIRST_SNAPSHOT_INTERVAL) @@ -431,7 +431,7 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - expect((await this.cmtat.getNextSnapshots()).length).to.equal(0) + expect((await this.transferEngineMock.getNextSnapshots()).length).to.equal(0) }) }) } diff --git a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js index a450f066..790e245d 100644 --- a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js +++ b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js @@ -25,7 +25,7 @@ function ERC20SnapshotModuleOnePlannedSnapshotTest () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(3) this.beforeSnapshotTime = this.currentTime - time.duration.seconds(60) - await this.cmtat.connect(this.admin).scheduleSnapshot(this.snapshotTime) + await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime) // We jump into the future await time.increase(time.duration.seconds(10)) }) @@ -74,7 +74,7 @@ function ERC20SnapshotModuleOnePlannedSnapshotTest () { ADDRESSES, [address1NewTokensBalance, ADDRESS2_INITIAL_MINT, ADDRESS3_INITIAL_MINT] ) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) }) @@ -122,7 +122,7 @@ function ERC20SnapshotModuleOnePlannedSnapshotTest () { ADDRESSES, [address1NewTokensBalance, ADDRESS2_INITIAL_MINT, ADDRESS3_INITIAL_MINT] ) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) }) @@ -175,7 +175,7 @@ function ERC20SnapshotModuleOnePlannedSnapshotTest () { ADDRESS3_INITIAL_MINT ] ) - const snapshots = await this.cmtat.getNextSnapshots() + const snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(0) }) }) diff --git a/test/proxy/modules/ERC20SnapshotModule.test.js b/test/proxy/modules/ERC20SnapshotModule.test.js index a1c0399f..c7b072a2 100644 --- a/test/proxy/modules/ERC20SnapshotModule.test.js +++ b/test/proxy/modules/ERC20SnapshotModule.test.js @@ -19,6 +19,9 @@ describe('Proxy - ERC20SnapshotModule', function () { this.admin.address, this.deployerAddress.address ) + this.transferEngineMock = await ethers.deployContract('TransferEngineMock', [ + this.cmtat.target, this.admin]) + this.cmtat.connect(this.admin).setTransferEngine(this.transferEngineMock) }) ERC20SnapshotModuleMultiplePlannedTest() ERC20SnapshotModuleOnePlannedSnapshotTest() diff --git a/test/standard/modules/ERC20SnapshotModule.test.js b/test/standard/modules/ERC20SnapshotModule.test.js index 111c8f01..09ba4e7c 100644 --- a/test/standard/modules/ERC20SnapshotModule.test.js +++ b/test/standard/modules/ERC20SnapshotModule.test.js @@ -19,6 +19,9 @@ describe('Standard - ERC20SnapshotModule', function () { this.admin.address, this.deployerAddress.address ) + this.transferEngineMock = await ethers.deployContract('TransferEngineMock', [ + this.cmtat.target, this.admin]) + this.cmtat.connect(this.admin).setTransferEngine(this.transferEngineMock) }) ERC20SnapshotModuleMultiplePlannedTest() ERC20SnapshotModuleOnePlannedSnapshotTest() From 115ac4d2da92221f16e46e539ee522bb32f17d63 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 13 Nov 2024 16:39:14 +0100 Subject: [PATCH 03/26] Use a struct to represent a document --- .../interfaces/engine/draft-IERC1643.sol | 10 +- contracts/mocks/DocumentEngineMock.sol | 100 ++++++++---------- .../wrapper/extensions/DocumentModule.sol | 8 +- .../DocumentModule/DocumentModuleCommon.js | 44 ++++---- .../DocumentModuleSetDocumentEngineCommon.js | 8 +- 5 files changed, 82 insertions(+), 88 deletions(-) diff --git a/contracts/interfaces/engine/draft-IERC1643.sol b/contracts/interfaces/engine/draft-IERC1643.sol index c902df6d..826537be 100644 --- a/contracts/interfaces/engine/draft-IERC1643.sol +++ b/contracts/interfaces/engine/draft-IERC1643.sol @@ -5,7 +5,13 @@ pragma solidity ^0.8.20; /// @title IERC1643 Document Management /// (part of the ERC1400 Security Token Standards) interface IERC1643 { + struct Document { + string uri; + bytes32 documentHash; + uint256 lastModified; + } + // Document Management - function getDocument(bytes32 _name) external view returns (string memory , bytes32, uint256); - function getAllDocuments() external view returns (bytes32[] memory); + function getDocument(string memory name) external view returns (Document memory doc); + function getAllDocuments() external view returns (string[] memory); } \ No newline at end of file diff --git a/contracts/mocks/DocumentEngineMock.sol b/contracts/mocks/DocumentEngineMock.sol index 297ce5b8..4f0f1939 100644 --- a/contracts/mocks/DocumentEngineMock.sol +++ b/contracts/mocks/DocumentEngineMock.sol @@ -3,94 +3,82 @@ pragma solidity ^0.8.20; import "../interfaces/engine/draft-IERC1643.sol"; interface IERC1643Whole is IERC1643{ - + /// uri The URI of the document + /// @return documentHash The hash of the document contents + /// @return lastModified The timestamp of the last modification + struct DocumentInfo { + string name; + string uri; + bytes32 documentHash; + } // Document Management - function setDocument(bytes32 _name, string memory _uri, bytes32 _documentHash) external; - function removeDocument(bytes32 _name) external; + function setDocument(DocumentInfo calldata doc) external; + function removeDocument(string memory name) external; // Document Events - event DocumentRemoved(bytes32 indexed _name, string _uri, bytes32 _documentHash); - event DocumentUpdated(bytes32 indexed _name, string _uri, bytes32 _documentHash); + event DocumentRemoved(string indexed name, Document doc); + event DocumentUpdated(string indexed name, Document doc); } /* * @title a DocumentEngine mock for testing, not suitable for production */ contract DocumentEngineMock is IERC1643Whole { - struct Document { - string uri; - bytes32 documentHash; - uint256 lastModified; - } - - mapping(bytes32 => Document) private documents; - bytes32[] private documentNames; + /*struct DocumentStorage { + uint256 key; + Document doc; + }*/ + mapping(string => Document) private documents; + mapping(string => uint256) private documentKey; + string[] private documentNames; /// @dev Error thrown when a document does not exist error DocumentDoesNotExist(); /// @notice Retrieves the document details by name - /// @param name_ The name of the document - /// @return uri The URI of the document - /// @return documentHash The hash of the document contents - /// @return lastModified The timestamp of the last modification - function getDocument(bytes32 name_) + /// @param name The name of the document + function getDocument(string memory name) external view override - returns (string memory uri, bytes32 documentHash, uint256 lastModified) + returns (Document memory doc) { - if (bytes(documents[name_].uri).length == 0) { - return("", 0x0, 0); - } - - Document storage doc = documents[name_]; - return (doc.uri, doc.documentHash, doc.lastModified); + return documents[name]; } /// @notice Sets or updates a document - /// @param name_ The name of the document - /// @param uri_ The URI of the document - /// @param documentHash_ The hash of the document contents - function setDocument(bytes32 name_, string memory uri_, bytes32 documentHash_) external override { - Document storage doc = documents[name_]; - bool isUpdate = bytes(doc.uri).length != 0; - - doc.uri = uri_; - doc.documentHash = documentHash_; + /// @param doc_ the document + function setDocument(DocumentInfo calldata doc_) external override { + Document storage doc = documents[doc_.name]; + doc.uri = doc_.uri; + doc.documentHash = doc_.documentHash; doc.lastModified = block.timestamp; - - if (!isUpdate) { - documentNames.push(name_); + if (documentKey[doc_.name] == 0) { + // To avoid key == 0 + uint256 key = documentNames.length + 1; + documentKey[doc_.name] = key; + documentNames.push(doc_.name); } - - emit DocumentUpdated(name_, uri_, documentHash_); + emit DocumentUpdated(doc_.name, doc); } /// @notice Removes a document - /// @param name_ The name of the document - function removeDocument(bytes32 name_) external override { - if (bytes(documents[name_].uri).length == 0) { + /// @param name The name of the document + function removeDocument(string calldata name) external override { + if (documentKey[name] == 0) { revert DocumentDoesNotExist(); } - - Document memory doc = documents[name_]; - delete documents[name_]; - - for (uint256 i = 0; i < documentNames.length; i++) { - if (documentNames[i] == name_) { - documentNames[i] = documentNames[documentNames.length - 1]; - documentNames.pop(); - break; - } - } - - emit DocumentRemoved(name_, doc.uri, doc.documentHash); + Document memory doc = documents[name]; + documentNames[documentKey[name] - 1] = documentNames[documentNames.length - 1]; + documentNames.pop(); + delete documents[name]; + documentKey[name] = 0; + emit DocumentRemoved(name, doc); } /// @notice Retrieves all document names /// @return An array of document names - function getAllDocuments() external view override returns (bytes32[] memory) { + function getAllDocuments() external view override returns (string[] memory) { return documentNames; } } \ No newline at end of file diff --git a/contracts/modules/wrapper/extensions/DocumentModule.sol b/contracts/modules/wrapper/extensions/DocumentModule.sol index e763a12d..d69e865e 100644 --- a/contracts/modules/wrapper/extensions/DocumentModule.sol +++ b/contracts/modules/wrapper/extensions/DocumentModule.sol @@ -71,16 +71,16 @@ abstract contract DocumentModule is AuthorizationModule, IERC1643 { } - function getDocument(bytes32 _name) public view returns (string memory, bytes32, uint256){ + function getDocument(string memory name) public view returns (Document memory document){ DocumentModuleStorage storage $ = _getDocumentModuleStorage(); if(address($._documentEngine) != address(0)){ - return $._documentEngine.getDocument( _name); + return $._documentEngine.getDocument(name); } else{ - return ("",0x0, 0); + return Document("", 0x0, 0); } } - function getAllDocuments() public view returns (bytes32[] memory documents){ + function getAllDocuments() public view returns (string[] memory documents){ DocumentModuleStorage storage $ = _getDocumentModuleStorage(); if(address($._documentEngine) != address(0)){ documents = $._documentEngine.getAllDocuments(); diff --git a/test/common/DocumentModule/DocumentModuleCommon.js b/test/common/DocumentModule/DocumentModuleCommon.js index ea26021e..c0bf5d9e 100644 --- a/test/common/DocumentModule/DocumentModuleCommon.js +++ b/test/common/DocumentModule/DocumentModuleCommon.js @@ -24,13 +24,13 @@ function DocumentModuleCommon () { const uri = 'https://github.com/CMTA/CMTAT' const documentHash = ethers.encodeBytes32String('hash1') - await this.documentEngineMock.setDocument(name, uri, documentHash) + await this.documentEngineMock.setDocument(({name, uri, documentHash})) - const [storedUri, storedHash, lastModified] = + const doc = await this.cmtat.getDocument(name) - expect(storedUri).to.equal(uri) - expect(storedHash).to.equal(documentHash) - expect(lastModified).to.be.gt(0) + expect(doc.uri).to.equal(uri) + expect(doc.documentHash).to.equal(documentHash) + expect(doc.lastModified).to.be.gt(0) }) it('testCanUpdateADocument', async function () { @@ -41,23 +41,23 @@ function DocumentModuleCommon () { const uri2 = 'https://github.com/CMTA/CMTAT/V2' const documentHash2 = ethers.encodeBytes32String('hash2') - await this.documentEngineMock.setDocument(name, uri1, documentHash1) - await this.documentEngineMock.setDocument(name, uri2, documentHash2) + await this.documentEngineMock.setDocument([name, uri1, documentHash1]) + await this.documentEngineMock.setDocument([name, uri2, documentHash2]) - const [storedUri, storedHash, lastModified] = + const doc = await this.cmtat.getDocument(name) - expect(storedUri).to.equal(uri2) - expect(storedHash).to.equal(documentHash2) - expect(lastModified).to.be.gt(0) + expect(doc.uri).to.equal(uri2) + expect(doc.documentHash).to.equal(documentHash2) + expect(doc.lastModified).to.be.gt(0) }) it('testCanGetNullValueIfNoDocument', async function () { const name = ethers.encodeBytes32String('doc1') - const [storedUri, storedHash, lastModified] = + const doc = await this.cmtat.getDocument(name) - expect(storedUri).to.equal('') - expect(storedHash).to.equal(ethers.encodeBytes32String('')) - expect(lastModified).to.equal(0) + expect(doc.uri).to.equal('') + expect(doc.documentHash).to.equal(ethers.encodeBytes32String('')) + expect(doc.lastModified).to.equal(0) }) it('testCanRemoveADocument', async function () { @@ -65,14 +65,14 @@ function DocumentModuleCommon () { const uri = 'https://github.com/CMTA/CMTAT' const documentHash = ethers.encodeBytes32String('hash1') - await this.documentEngineMock.setDocument(name, uri, documentHash) + await this.documentEngineMock.setDocument([name, uri, documentHash]) await this.documentEngineMock.removeDocument(name) - const [storedUri, storedHash, lastModified] = + const doc = await this.cmtat.getDocument(name) - expect(storedUri).to.equal('') - expect(storedHash).to.equal(ethers.encodeBytes32String('')) - expect(lastModified).to.equal(0) + expect(doc.uri).to.equal('') + expect(doc.documentHash).to.equal(ethers.encodeBytes32String('')) + expect(doc.lastModified).to.equal(0) }) it('testCanReturnAllDocumentNames', async function () { @@ -84,8 +84,8 @@ function DocumentModuleCommon () { const uri2 = 'https://github.com/CMTA/CMTAT/V2' const documentHash2 = ethers.encodeBytes32String('hash2') - await this.documentEngineMock.setDocument(name1, uri1, documentHash1) - await this.documentEngineMock.setDocument(name2, uri2, documentHash2) + await this.documentEngineMock.setDocument([name1, uri1, documentHash1]) + await this.documentEngineMock.setDocument([name2, uri2, documentHash2]) const documentNames = await this.cmtat.getAllDocuments() expect(documentNames.length).to.equal(2) diff --git a/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js b/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js index 4877fba6..19e24045 100644 --- a/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js +++ b/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js @@ -44,12 +44,12 @@ function DocumentModuleSetDocumentEngineCommon () { it('testGetEmptyDocumentsIfNoDocumentEngine', async function () { const name = ethers.encodeBytes32String('doc1') // act - const [storedUri, storedHash, lastModified] = + const doc = await this.cmtat.getDocument(name) // Assert - expect(storedUri).to.equal('') - expect(storedHash).to.equal(ethers.encodeBytes32String('')) - expect(lastModified).to.equal(0) + expect(doc.uri).to.equal('') + expect(doc.documentHash).to.equal(ethers.encodeBytes32String('')) + expect(doc.lastModified).to.equal(0) // Act const documentNames = await this.cmtat.getAllDocuments() From ac24d33ad4d16c4f72641b1c0281abb4ce90a981 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Thu, 16 Jan 2025 16:30:29 +0100 Subject: [PATCH 04/26] Replace transferEngine by SnapshotEngine --- contracts/CMTAT_PROXY.sol | 2 +- contracts/CMTAT_PROXY_UUPS.sol | 4 +- contracts/CMTAT_STANDALONE.sol | 2 +- contracts/interfaces/engine/IRuleEngine.sol | 2 +- ...TransferEngine.sol => ISnapshotEngine.sol} | 2 +- contracts/mocks/AuthorizationEngineMock.sol | 2 +- contracts/mocks/DebtEngineMock.sol | 2 +- contracts/mocks/DocumentEngineMock.sol | 2 +- contracts/mocks/MinimalForwarderMock.sol | 2 +- contracts/mocks/RuleEngine/RuleEngineMock.sol | 6 +- contracts/mocks/RuleEngine/RuleMock.sol | 4 +- .../mocks/RuleEngine/interfaces/IRule.sol | 2 +- .../RuleEngine/interfaces/IRuleEngineMock.sol | 4 +- ...rEngineMock.sol => SnapshotEngineMock.sol} | 12 ++-- contracts/modules/CMTAT_BASE.sol | 51 +++++++------ .../internal/ERC20SnapshotModuleInternal.sol | 6 +- .../internal/EnforcementModuleInternal.sol | 6 +- .../internal/ValidationModuleInternal.sol | 6 +- .../internal/base/SnapshotModuleBase.sol | 4 +- .../modules/security/AuthorizationModule.sol | 6 +- .../wrapper/controllers/ValidationModule.sol | 14 ++-- contracts/modules/wrapper/core/BaseModule.sol | 2 +- .../modules/wrapper/core/ERC20BaseModule.sol | 4 +- .../modules/wrapper/core/ERC20BurnModule.sol | 8 +-- .../modules/wrapper/core/ERC20MintModule.sol | 8 +-- .../wrapper/core/EnforcementModule.sol | 4 +- .../modules/wrapper/core/PauseModule.sol | 6 +- .../modules/wrapper/extensions/DebtModule.sol | 6 +- .../wrapper/extensions/DocumentModule.sol | 6 +- .../extensions/ERC20SnapshotModule.sol | 4 +- .../wrapper/extensions/MetaTxModule.sol | 2 +- .../extensions/SnapshotEngineModule.sol | 71 +++++++++++++++++++ .../extensions/TransferEngineModule.sol | 71 ------------------- contracts/test/proxy/CMTAT_PROXY_TEST.sol | 2 +- .../test/proxy/CMTAT_PROXY_TEST_UUPS.sol | 2 +- .../proxy/modules/ERC20SnapshotModule.test.js | 4 +- .../modules/ERC20SnapshotModule.test.js | 4 +- 37 files changed, 171 insertions(+), 174 deletions(-) rename contracts/interfaces/engine/{ITransferEngine.sol => ISnapshotEngine.sol} (92%) rename contracts/mocks/{TransferEngineMock.sol => SnapshotEngineMock.sol} (92%) create mode 100644 contracts/modules/wrapper/extensions/SnapshotEngineModule.sol delete mode 100644 contracts/modules/wrapper/extensions/TransferEngineModule.sol diff --git a/contracts/CMTAT_PROXY.sol b/contracts/CMTAT_PROXY.sol index a65debe8..35ee2c24 100644 --- a/contracts/CMTAT_PROXY.sol +++ b/contracts/CMTAT_PROXY.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "./modules/CMTAT_BASE.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "./modules/CMTAT_BASE.sol"; /** diff --git a/contracts/CMTAT_PROXY_UUPS.sol b/contracts/CMTAT_PROXY_UUPS.sol index 2114b285..154acb39 100644 --- a/contracts/CMTAT_PROXY_UUPS.sol +++ b/contracts/CMTAT_PROXY_UUPS.sol @@ -1,8 +1,8 @@ //SPDX-License-Identifier: MPL-2.0 pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import "./modules/CMTAT_BASE.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "./modules/CMTAT_BASE.sol"; /** diff --git a/contracts/CMTAT_STANDALONE.sol b/contracts/CMTAT_STANDALONE.sol index e56e1dfa..edbf4367 100644 --- a/contracts/CMTAT_STANDALONE.sol +++ b/contracts/CMTAT_STANDALONE.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "./modules/CMTAT_BASE.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "./modules/CMTAT_BASE.sol"; /** diff --git a/contracts/interfaces/engine/IRuleEngine.sol b/contracts/interfaces/engine/IRuleEngine.sol index a0774a02..b98ba4ab 100644 --- a/contracts/interfaces/engine/IRuleEngine.sol +++ b/contracts/interfaces/engine/IRuleEngine.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "../draft-IERC1404/draft-IERC1404Wrapper.sol"; +import {IERC1404Wrapper} from "../draft-IERC1404/draft-IERC1404Wrapper.sol"; /* * @dev minimum interface to define a RuleEngine diff --git a/contracts/interfaces/engine/ITransferEngine.sol b/contracts/interfaces/engine/ISnapshotEngine.sol similarity index 92% rename from contracts/interfaces/engine/ITransferEngine.sol rename to contracts/interfaces/engine/ISnapshotEngine.sol index b78b17c6..b85254bb 100644 --- a/contracts/interfaces/engine/ITransferEngine.sol +++ b/contracts/interfaces/engine/ISnapshotEngine.sol @@ -5,7 +5,7 @@ pragma solidity ^0.8.20; /* * @dev minimum interface to define a RuleEngine */ -interface ITransferEngine { +interface ISnapshotEngine { /** * @dev Returns true if the operation is a success, and false otherwise. */ diff --git a/contracts/mocks/AuthorizationEngineMock.sol b/contracts/mocks/AuthorizationEngineMock.sol index 2b858a16..6c0c7898 100644 --- a/contracts/mocks/AuthorizationEngineMock.sol +++ b/contracts/mocks/AuthorizationEngineMock.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "../interfaces/engine/IAuthorizationEngine.sol"; +import {IAuthorizationEngine} from "../interfaces/engine/IAuthorizationEngine.sol"; /* diff --git a/contracts/mocks/DebtEngineMock.sol b/contracts/mocks/DebtEngineMock.sol index f4047dbf..668ef06d 100644 --- a/contracts/mocks/DebtEngineMock.sol +++ b/contracts/mocks/DebtEngineMock.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MPL-2.0 pragma solidity ^0.8.20; -import "../interfaces/engine/IDebtEngine.sol"; +import {IDebtEngine} from "../interfaces/engine/IDebtEngine.sol"; interface IDebtEngineMock is IDebtEngine { function setDebt(DebtBase calldata debt_) external; function setCreditEvents(CreditEvents calldata creditEvents) external; diff --git a/contracts/mocks/DocumentEngineMock.sol b/contracts/mocks/DocumentEngineMock.sol index 4f0f1939..2d49149c 100644 --- a/contracts/mocks/DocumentEngineMock.sol +++ b/contracts/mocks/DocumentEngineMock.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MPL-2.0 pragma solidity ^0.8.20; -import "../interfaces/engine/draft-IERC1643.sol"; +import {IERC1643} from "../interfaces/engine/draft-IERC1643.sol"; interface IERC1643Whole is IERC1643{ /// uri The URI of the document /// @return documentHash The hash of the document contents diff --git a/contracts/mocks/MinimalForwarderMock.sol b/contracts/mocks/MinimalForwarderMock.sol index 727645b8..257ab2de 100644 --- a/contracts/mocks/MinimalForwarderMock.sol +++ b/contracts/mocks/MinimalForwarderMock.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/metatx/ERC2771ForwarderUpgradeable.sol"; +import {ERC2771ForwarderUpgradeable} from "@openzeppelin/contracts-upgradeable/metatx/ERC2771ForwarderUpgradeable.sol"; /* diff --git a/contracts/mocks/RuleEngine/RuleEngineMock.sol b/contracts/mocks/RuleEngine/RuleEngineMock.sol index 37b45328..2c5c5943 100644 --- a/contracts/mocks/RuleEngine/RuleEngineMock.sol +++ b/contracts/mocks/RuleEngine/RuleEngineMock.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import "./interfaces/IRule.sol"; -import "./interfaces/IRuleEngineMock.sol"; -import "./RuleMock.sol"; +import {IRule} from "./interfaces/IRule.sol"; +import {IRuleEngineMock} from "./interfaces/IRuleEngineMock.sol"; +import {RuleMock} from "./RuleMock.sol"; /* * @title a RuleEngine mock for testing, not suitable for production diff --git a/contracts/mocks/RuleEngine/RuleMock.sol b/contracts/mocks/RuleEngine/RuleMock.sol index a9621295..440326fc 100644 --- a/contracts/mocks/RuleEngine/RuleMock.sol +++ b/contracts/mocks/RuleEngine/RuleMock.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.20; -import "./interfaces/IRule.sol"; -import "./CodeList.sol"; +import {IRule} from "./interfaces/IRule.sol"; +import {CodeList} from "./CodeList.sol"; /* diff --git a/contracts/mocks/RuleEngine/interfaces/IRule.sol b/contracts/mocks/RuleEngine/interfaces/IRule.sol index 752ea2d3..b0668542 100644 --- a/contracts/mocks/RuleEngine/interfaces/IRule.sol +++ b/contracts/mocks/RuleEngine/interfaces/IRule.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "../../../interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol"; +import {IERC1404Wrapper} from "../../../interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol"; interface IRule is IERC1404Wrapper { /** diff --git a/contracts/mocks/RuleEngine/interfaces/IRuleEngineMock.sol b/contracts/mocks/RuleEngine/interfaces/IRuleEngineMock.sol index 694125c8..fc03dc69 100644 --- a/contracts/mocks/RuleEngine/interfaces/IRuleEngineMock.sol +++ b/contracts/mocks/RuleEngine/interfaces/IRuleEngineMock.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.20; -import "./IRule.sol"; -import "../../../interfaces/engine/IRuleEngine.sol"; +import {IRule} from "./IRule.sol"; +import {IRuleEngine} from "../../../interfaces/engine/IRuleEngine.sol"; interface IRuleEngineMock is IRuleEngine { /** diff --git a/contracts/mocks/TransferEngineMock.sol b/contracts/mocks/SnapshotEngineMock.sol similarity index 92% rename from contracts/mocks/TransferEngineMock.sol rename to contracts/mocks/SnapshotEngineMock.sol index b987cb2d..3eb23c7c 100644 --- a/contracts/mocks/TransferEngineMock.sol +++ b/contracts/mocks/SnapshotEngineMock.sol @@ -1,15 +1,15 @@ //SPDX-License-Identifier: MPL-2.0 pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; -import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; -import "../modules/internal/base/SnapshotModuleBase.sol"; -import "../interfaces/ICMTATSnapshot.sol"; -import "../interfaces/engine/ITransferEngine.sol"; +import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import {SnapshotModuleBase} from "../modules/internal/base/SnapshotModuleBase.sol"; +import {ICMTATSnapshot} from "../interfaces/ICMTATSnapshot.sol"; +import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; /* * @title a RuleEngine mock for testing, not suitable for production */ -contract TransferEngineMock is SnapshotModuleBase, AccessControlUpgradeable, ITransferEngine { +contract SnapshotEngineMock is SnapshotModuleBase, AccessControlUpgradeable, ISnapshotEngine { ERC20Upgradeable erc20; constructor(ERC20Upgradeable erc20_, address admin) { erc20 = erc20_; diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 63b91c27..040e7f3b 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -3,35 +3,32 @@ pragma solidity ^0.8.20; // required OZ imports here -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; - -import "./wrapper/core/BaseModule.sol"; -import "./wrapper/core/ERC20BurnModule.sol"; -import "./wrapper/core/ERC20MintModule.sol"; -import "./wrapper/core/EnforcementModule.sol"; -import "./wrapper/core/ERC20BaseModule.sol"; -import "./wrapper/core/PauseModule.sol"; -/* -* SnapshotModule: -* Add this import in case you add the SnapshotModule -*/ -import "./wrapper/extensions/ERC20SnapshotModule.sol"; - -import "./wrapper/controllers/ValidationModule.sol"; -import "./wrapper/extensions/MetaTxModule.sol"; -import "./wrapper/extensions/DebtModule.sol"; -import "./wrapper/extensions/DocumentModule.sol"; -import "./wrapper/extensions/TransferEngineModule.sol"; -import "./security/AuthorizationModule.sol"; -import "../interfaces/ICMTATConstructor.sol"; -import "../interfaces/engine/ITransferEngine.sol"; -import "../libraries/Errors.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; + +import {BaseModule} from "./wrapper/core/BaseModule.sol"; +import {ERC20BurnModule} from "./wrapper/core/ERC20BurnModule.sol"; +import {ERC20MintModule} from "./wrapper/core/ERC20MintModule.sol"; +import {EnforcementModule} from "./wrapper/core/EnforcementModule.sol"; +import {ERC20BaseModule, ERC20Upgradeable} from "./wrapper/core/ERC20BaseModule.sol"; +import {PauseModule} from "./wrapper/core/PauseModule.sol"; + +import {ERC20SnapshotModule} from "./wrapper/extensions/ERC20SnapshotModule.sol"; + +import {ValidationModule} from "./wrapper/controllers/ValidationModule.sol"; +import {MetaTxModule, ERC2771ContextUpgradeable} from "./wrapper/extensions/MetaTxModule.sol"; +import {DebtModule} from "./wrapper/extensions/DebtModule.sol"; +import {DocumentModule} from "./wrapper/extensions/DocumentModule.sol"; +import {SnapshotEngineModule} from "./wrapper/extensions/SnapshotEngineModule.sol"; +import {AuthorizationModule} from "./security/AuthorizationModule.sol"; +import {ICMTATConstructor} from "../interfaces/ICMTATConstructor.sol"; +import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; +import {Errors} from "../libraries/Errors.sol"; abstract contract CMTAT_BASE is Initializable, ContextUpgradeable, - TransferEngineModule, + SnapshotEngineModule, // Core BaseModule, PauseModule, @@ -203,8 +200,8 @@ abstract contract CMTAT_BASE is We call the SnapshotModule only if the transfer is valid */ //ERC20SnapshotModuleInternal._snapshotUpdate(from, to); - if(address(transferEngine()) != address(0)){ - transferEngine().operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); + if(address(snapshotEngine()) != address(0)){ + snapshotEngine().operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); } ERC20Upgradeable._update(from, to, amount); } diff --git a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol b/contracts/modules/internal/ERC20SnapshotModuleInternal.sol index 1da61700..cebc4931 100644 --- a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol +++ b/contracts/modules/internal/ERC20SnapshotModuleInternal.sol @@ -2,10 +2,10 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol'; -import "./base/SnapshotModuleBase.sol"; -import "../../interfaces/ICMTATSnapshot.sol"; +import {SnapshotModuleBase} from "./base/SnapshotModuleBase.sol"; +import {ICMTATSnapshot} from "../../interfaces/ICMTATSnapshot.sol"; /** * @dev Snapshot module internal. * diff --git a/contracts/modules/internal/EnforcementModuleInternal.sol b/contracts/modules/internal/EnforcementModuleInternal.sol index a7c0b4c4..aeb3fd43 100644 --- a/contracts/modules/internal/EnforcementModuleInternal.sol +++ b/contracts/modules/internal/EnforcementModuleInternal.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; /** * @dev Enforcement module. diff --git a/contracts/modules/internal/ValidationModuleInternal.sol b/contracts/modules/internal/ValidationModuleInternal.sol index 7ec094f5..a0a31c18 100644 --- a/contracts/modules/internal/ValidationModuleInternal.sol +++ b/contracts/modules/internal/ValidationModuleInternal.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "../../interfaces/engine/IRuleEngine.sol"; +import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import {IRuleEngine} from "../../interfaces/engine/IRuleEngine.sol"; /** * @dev Validation module. * diff --git a/contracts/modules/internal/base/SnapshotModuleBase.sol b/contracts/modules/internal/base/SnapshotModuleBase.sol index 96da36b5..9457418d 100644 --- a/contracts/modules/internal/base/SnapshotModuleBase.sol +++ b/contracts/modules/internal/base/SnapshotModuleBase.sol @@ -2,10 +2,10 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol'; -import "../../../libraries/Errors.sol"; +import {Errors} from "../../../libraries/Errors.sol"; /** * @dev Base for the Snapshot module diff --git a/contracts/modules/security/AuthorizationModule.sol b/contracts/modules/security/AuthorizationModule.sol index fea79fd9..0584bd8d 100644 --- a/contracts/modules/security/AuthorizationModule.sol +++ b/contracts/modules/security/AuthorizationModule.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; -import "../../libraries/Errors.sol"; -import "../../interfaces/engine/IAuthorizationEngine.sol"; +import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import {Errors} from "../../libraries/Errors.sol"; +import {IAuthorizationEngine} from "../../interfaces/engine/IAuthorizationEngine.sol"; abstract contract AuthorizationModule is AccessControlUpgradeable { /* ============ Events ============ */ diff --git a/contracts/modules/wrapper/controllers/ValidationModule.sol b/contracts/modules/wrapper/controllers/ValidationModule.sol index 45426f98..c6ff5ec2 100644 --- a/contracts/modules/wrapper/controllers/ValidationModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationModule.sol @@ -2,13 +2,13 @@ pragma solidity ^0.8.20; -import "../../security/AuthorizationModule.sol"; -import "../../internal/ValidationModuleInternal.sol"; -import "../core/PauseModule.sol"; -import "../core/EnforcementModule.sol"; - -import "../../../libraries/Errors.sol"; - +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {ValidationModuleInternal, IRuleEngine} from "../../internal/ValidationModuleInternal.sol"; +import {PauseModule} from "../core/PauseModule.sol"; +import {EnforcementModule} from "../core/EnforcementModule.sol"; +import {Errors} from "../../../libraries/Errors.sol"; +import {IERC1404Wrapper} from "../../../interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol"; +///import {IRuleEngine} from "../../../interfaces/engine/IRuleEngine.sol"; /** * @dev Validation module. * diff --git a/contracts/modules/wrapper/core/BaseModule.sol b/contracts/modules/wrapper/core/BaseModule.sol index e24ec686..f3b67bb8 100644 --- a/contracts/modules/wrapper/core/BaseModule.sol +++ b/contracts/modules/wrapper/core/BaseModule.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "../../security/AuthorizationModule.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; abstract contract BaseModule is AuthorizationModule { /* ============ State Variables ============ */ diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 298e0b35..8590ff1c 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; // required OZ imports here -import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; -import "../../../libraries/Errors.sol"; +import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Base module diff --git a/contracts/modules/wrapper/core/ERC20BurnModule.sol b/contracts/modules/wrapper/core/ERC20BurnModule.sol index 0ff60bb8..7f067e47 100644 --- a/contracts/modules/wrapper/core/ERC20BurnModule.sol +++ b/contracts/modules/wrapper/core/ERC20BurnModule.sol @@ -2,10 +2,10 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; -import "../../security/AuthorizationModule.sol"; -import "../../../interfaces/ICCIPToken.sol"; - +import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {ICCIPBurnFromERC20} from "../../../interfaces/ICCIPToken.sol"; +import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Burn module. * @dev diff --git a/contracts/modules/wrapper/core/ERC20MintModule.sol b/contracts/modules/wrapper/core/ERC20MintModule.sol index 4f6effa0..4bf86c94 100644 --- a/contracts/modules/wrapper/core/ERC20MintModule.sol +++ b/contracts/modules/wrapper/core/ERC20MintModule.sol @@ -2,10 +2,10 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; -import "../../security/AuthorizationModule.sol"; -import "../../../interfaces/ICCIPToken.sol"; - +import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {ICCIPMintERC20} from "../../../interfaces/ICCIPToken.sol"; +import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Mint module. * @dev diff --git a/contracts/modules/wrapper/core/EnforcementModule.sol b/contracts/modules/wrapper/core/EnforcementModule.sol index 731b2757..a7fe8c43 100644 --- a/contracts/modules/wrapper/core/EnforcementModule.sol +++ b/contracts/modules/wrapper/core/EnforcementModule.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.20; -import "../../security/AuthorizationModule.sol"; -import "../../internal/EnforcementModuleInternal.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {EnforcementModuleInternal} from "../../internal/EnforcementModuleInternal.sol"; /** * @title Enforcement module. diff --git a/contracts/modules/wrapper/core/PauseModule.sol b/contracts/modules/wrapper/core/PauseModule.sol index 77a55c49..80cab289 100644 --- a/contracts/modules/wrapper/core/PauseModule.sol +++ b/contracts/modules/wrapper/core/PauseModule.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; -import "../../security/AuthorizationModule.sol"; - +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {Errors} from "../../../libraries/Errors.sol"; /** * @title Pause Module * @dev diff --git a/contracts/modules/wrapper/extensions/DebtModule.sol b/contracts/modules/wrapper/extensions/DebtModule.sol index 389a012f..048d44e1 100644 --- a/contracts/modules/wrapper/extensions/DebtModule.sol +++ b/contracts/modules/wrapper/extensions/DebtModule.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import "../../security/AuthorizationModule.sol"; -import "../../../libraries/Errors.sol"; -import "../../../interfaces/engine/IDebtEngine.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {Errors} from "../../../libraries/Errors.sol"; +import {IDebtEngine} from "../../../interfaces/engine/IDebtEngine.sol"; /** * @title Debt module diff --git a/contracts/modules/wrapper/extensions/DocumentModule.sol b/contracts/modules/wrapper/extensions/DocumentModule.sol index d69e865e..8fe27da2 100644 --- a/contracts/modules/wrapper/extensions/DocumentModule.sol +++ b/contracts/modules/wrapper/extensions/DocumentModule.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import "../../security/AuthorizationModule.sol"; -import "../../../libraries/Errors.sol"; -import "../../../interfaces/engine/draft-IERC1643.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {Errors} from "../../../libraries/Errors.sol"; +import {IERC1643} from "../../../interfaces/engine/draft-IERC1643.sol"; /** diff --git a/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol b/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol index df1870cf..4c621865 100644 --- a/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol +++ b/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.20; -import "../../security/AuthorizationModule.sol"; -import "../../internal/ERC20SnapshotModuleInternal.sol"; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {ERC20SnapshotModuleInternal} from "../../internal/ERC20SnapshotModuleInternal.sol"; /** * @title Snapshot module diff --git a/contracts/modules/wrapper/extensions/MetaTxModule.sol b/contracts/modules/wrapper/extensions/MetaTxModule.sol index 2732069f..c04d72e1 100644 --- a/contracts/modules/wrapper/extensions/MetaTxModule.sol +++ b/contracts/modules/wrapper/extensions/MetaTxModule.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol"; +import {ERC2771ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol"; /** * @title Meta transaction (gasless) module. diff --git a/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol new file mode 100644 index 00000000..8c297b78 --- /dev/null +++ b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol @@ -0,0 +1,71 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {Errors} from "../../../libraries/Errors.sol"; +import {ISnapshotEngine} from "../../../interfaces/engine/ISnapshotEngine.sol"; + +abstract contract SnapshotEngineModule is AuthorizationModule { + /* ============ Events ============ */ + /** + * @dev Emitted when a rule engine is set. + */ + event SnapshotEngine(ISnapshotEngine indexed newSnapshotEngine); + /* ============ ERC-7201 ============ */ + // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.SnapshotModule")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant SnapshotEngineModuleStorageLocation = 0x59b7f077fa4ad020f9053fd2197fef0113b19f0b11dcfe516e88cbc0e9226d00; + /* ==== ERC-7201 State Variables === */ + struct SnapshotEngineModuleStorage { + ISnapshotEngine _snapshotEngine; + } + /* ============ Initializer Function ============ */ + /** + * @dev + * + * - The grant to the admin role is done by AccessControlDefaultAdminRules + * - The control of the zero address is done by AccessControlDefaultAdminRules + * + */ + function __SnapshotModule_init_unchained(ISnapshotEngine snapshotEngine_) + internal onlyInitializing { + if (address(snapshotEngine_) != address (0)) { + SnapshotEngineModuleStorage storage $ = _getSnapshotEngineModuleStorage(); + $._snapshotEngine = snapshotEngine_; + emit SnapshotEngine(snapshotEngine_); + } + } + + + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ + + function snapshotEngine() public view virtual returns (ISnapshotEngine) { + SnapshotEngineModuleStorage storage $ = _getSnapshotEngineModuleStorage(); + return $._snapshotEngine; + } + + /* + * @notice set an SnapshotEngine if not already set + * @dev once an SnapshotEngine is set, it is not possible to unset it + */ + function setSnapshotEngine( + ISnapshotEngine snapshotEngine_ + ) external onlyRole(DEFAULT_ADMIN_ROLE) { + SnapshotEngineModuleStorage storage $ = _getSnapshotEngineModuleStorage(); + $._snapshotEngine = snapshotEngine_; + emit SnapshotEngine(snapshotEngine_); + } + + /*////////////////////////////////////////////////////////////// + INTERNAL/PRIVATE FUNCTIONS + //////////////////////////////////////////////////////////////*/ + + /* ============ ERC-7201 ============ */ + function _getSnapshotEngineModuleStorage() private pure returns (SnapshotEngineModuleStorage storage $) { + assembly { + $.slot := SnapshotEngineModuleStorageLocation + } + } +} diff --git a/contracts/modules/wrapper/extensions/TransferEngineModule.sol b/contracts/modules/wrapper/extensions/TransferEngineModule.sol deleted file mode 100644 index 753bd2d8..00000000 --- a/contracts/modules/wrapper/extensions/TransferEngineModule.sol +++ /dev/null @@ -1,71 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -import "../../security/AuthorizationModule.sol"; -import "../../../libraries/Errors.sol"; -import "../../../interfaces/engine/ITransferEngine.sol"; - -abstract contract TransferEngineModule is AuthorizationModule { - /* ============ Events ============ */ - /** - * @dev Emitted when a rule engine is set. - */ - event TransferEngine(ITransferEngine indexed newTransferEngine); - /* ============ ERC-7201 ============ */ - // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.TransferModule")) - 1)) & ~bytes32(uint256(0xff)) - bytes32 private constant TransferEngineModuleStorageLocation = 0x59b7f077fa4ad020f9053fd2197fef0113b19f0b11dcfe516e88cbc0e9226d00; - /* ==== ERC-7201 State Variables === */ - struct TransferEngineModuleStorage { - ITransferEngine _transferEngine; - } - /* ============ Initializer Function ============ */ - /** - * @dev - * - * - The grant to the admin role is done by AccessControlDefaultAdminRules - * - The control of the zero address is done by AccessControlDefaultAdminRules - * - */ - function __TransferModule_init_unchained(ITransferEngine TransferEngine_) - internal onlyInitializing { - if (address(TransferEngine_) != address (0)) { - TransferEngineModuleStorage storage $ = _getTransferEngineModuleStorage(); - $._transferEngine = TransferEngine_; - emit TransferEngine(TransferEngine_); - } - } - - - /*////////////////////////////////////////////////////////////// - PUBLIC/EXTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - function transferEngine() public view virtual returns (ITransferEngine) { - TransferEngineModuleStorage storage $ = _getTransferEngineModuleStorage(); - return $._transferEngine; - } - - /* - * @notice set an TransferEngine if not already set - * @dev once an TransferEngine is set, it is not possible to unset it - */ - function setTransferEngine( - ITransferEngine transferEngine_ - ) external onlyRole(DEFAULT_ADMIN_ROLE) { - TransferEngineModuleStorage storage $ = _getTransferEngineModuleStorage(); - $._transferEngine = transferEngine_; - emit TransferEngine(transferEngine_); - } - - /*////////////////////////////////////////////////////////////// - INTERNAL/PRIVATE FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - /* ============ ERC-7201 ============ */ - function _getTransferEngineModuleStorage() private pure returns (TransferEngineModuleStorage storage $) { - assembly { - $.slot := TransferEngineModuleStorageLocation - } - } -} diff --git a/contracts/test/proxy/CMTAT_PROXY_TEST.sol b/contracts/test/proxy/CMTAT_PROXY_TEST.sol index fccfc680..b2684a58 100644 --- a/contracts/test/proxy/CMTAT_PROXY_TEST.sol +++ b/contracts/test/proxy/CMTAT_PROXY_TEST.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "../../CMTAT_PROXY.sol"; +import {CMTAT_PROXY} from "../../CMTAT_PROXY.sol"; /** diff --git a/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol b/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol index 16f7ee5e..c34b8356 100644 --- a/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol +++ b/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import "../../CMTAT_PROXY_UUPS.sol"; +import {CMTAT_PROXY_UUPS} from "../../CMTAT_PROXY_UUPS.sol"; /** diff --git a/test/proxy/modules/ERC20SnapshotModule.test.js b/test/proxy/modules/ERC20SnapshotModule.test.js index c7b072a2..c4fd5562 100644 --- a/test/proxy/modules/ERC20SnapshotModule.test.js +++ b/test/proxy/modules/ERC20SnapshotModule.test.js @@ -19,9 +19,9 @@ describe('Proxy - ERC20SnapshotModule', function () { this.admin.address, this.deployerAddress.address ) - this.transferEngineMock = await ethers.deployContract('TransferEngineMock', [ + this.transferEngineMock = await ethers.deployContract('SnapshotEngineMock', [ this.cmtat.target, this.admin]) - this.cmtat.connect(this.admin).setTransferEngine(this.transferEngineMock) + this.cmtat.connect(this.admin).setSnapshotEngine(this.transferEngineMock) }) ERC20SnapshotModuleMultiplePlannedTest() ERC20SnapshotModuleOnePlannedSnapshotTest() diff --git a/test/standard/modules/ERC20SnapshotModule.test.js b/test/standard/modules/ERC20SnapshotModule.test.js index 09ba4e7c..75129fe8 100644 --- a/test/standard/modules/ERC20SnapshotModule.test.js +++ b/test/standard/modules/ERC20SnapshotModule.test.js @@ -19,9 +19,9 @@ describe('Standard - ERC20SnapshotModule', function () { this.admin.address, this.deployerAddress.address ) - this.transferEngineMock = await ethers.deployContract('TransferEngineMock', [ + this.transferEngineMock = await ethers.deployContract('SnapshotEngineMock', [ this.cmtat.target, this.admin]) - this.cmtat.connect(this.admin).setTransferEngine(this.transferEngineMock) + this.cmtat.connect(this.admin).setSnapshotEngine(this.transferEngineMock) }) ERC20SnapshotModuleMultiplePlannedTest() ERC20SnapshotModuleOnePlannedSnapshotTest() From fb17fccf11fe649065fbaff81fff1751b62dfe34 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 22 Jan 2025 17:14:16 +0100 Subject: [PATCH 05/26] Add enforcement --- contracts/modules/CMTAT_BASE.sol | 2 +- ...sol => ERC20EnforcementModuleInternal.sol} | 38 +++++++---- .../modules/wrapper/core/ERC20BaseModule.sol | 1 - .../wrapper/core/EnforcementModule.sol | 15 +++- package.json | 3 +- test/common/EnforcementModuleCommon.js | 68 ++++++++++++++++++- test/utils.js | 4 ++ 7 files changed, 112 insertions(+), 19 deletions(-) rename contracts/modules/internal/{EnforcementModuleInternal.sol => ERC20EnforcementModuleInternal.sol} (66%) diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 040e7f3b..79b52953 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -91,7 +91,7 @@ abstract contract CMTAT_BASE is __Pausable_init_unchained(); /* Internal Modules */ - __Enforcement_init_unchained(); + __ERC20Enforcement_init_unchained(); /* SnapshotModule: Add these two calls in case you add the SnapshotModule diff --git a/contracts/modules/internal/EnforcementModuleInternal.sol b/contracts/modules/internal/ERC20EnforcementModuleInternal.sol similarity index 66% rename from contracts/modules/internal/EnforcementModuleInternal.sol rename to contracts/modules/internal/ERC20EnforcementModuleInternal.sol index aeb3fd43..8e932379 100644 --- a/contracts/modules/internal/EnforcementModuleInternal.sol +++ b/contracts/modules/internal/ERC20EnforcementModuleInternal.sol @@ -5,15 +5,15 @@ pragma solidity ^0.8.20; import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; - /** * @dev Enforcement module. * * Allows the issuer to freeze transfers from a given address */ -abstract contract EnforcementModuleInternal is +abstract contract ERC20EnforcementModuleInternal is Initializable, - ContextUpgradeable + ContextUpgradeable, + ERC20Upgradeable { /* ============ Events ============ */ /** @@ -36,13 +36,18 @@ abstract contract EnforcementModuleInternal is string reason ); + /** + * @notice Emitted when a transfer is forced. + */ + event Enforcement (address indexed enforcer, address indexed account, uint256 amount, string reason); + /* ============ ERC-7201 ============ */ - // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.EnforcementModuleInternal")) - 1)) & ~bytes32(uint256(0xff)) - bytes32 private constant EnforcementModuleInternalStorageLocation = 0x0c7bc8a17be064111d299d7669f49519cb26c58611b72d9f6ccc40a1e1184e00; + // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ERC20EnforcementModuleInternal")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant ERC20EnforcementModuleInternalStorageLocation = 0x3f8bb8b8091c756b4423e8d10de8c6b7534e765f399b3f3409d2bed57af75e00; /* ==== ERC-7201 State Variables === */ - struct EnforcementModuleInternalStorage { + struct ERC20EnforcementModuleInternalStorage { mapping(address => bool) _frozen; } @@ -50,7 +55,7 @@ abstract contract EnforcementModuleInternal is /*////////////////////////////////////////////////////////////// INITIALIZER FUNCTION //////////////////////////////////////////////////////////////*/ - function __Enforcement_init_unchained() internal onlyInitializing { + function __ERC20Enforcement_init_unchained() internal onlyInitializing { // no variable to initialize } @@ -62,7 +67,7 @@ abstract contract EnforcementModuleInternal is * @dev Returns true if the account is frozen, and false otherwise. */ function frozen(address account) public view virtual returns (bool) { - EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage(); + ERC20EnforcementModuleInternalStorage storage $ = _getERC20EnforcementModuleInternalStorage(); return $._frozen[account]; } @@ -80,7 +85,7 @@ abstract contract EnforcementModuleInternal is address account, string calldata reason ) internal virtual returns (bool) { - EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage(); + ERC20EnforcementModuleInternalStorage storage $ = _getERC20EnforcementModuleInternalStorage(); if ($._frozen[account]) { return false; } @@ -98,7 +103,7 @@ abstract contract EnforcementModuleInternal is address account, string calldata reason ) internal virtual returns (bool) { - EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage(); + ERC20EnforcementModuleInternalStorage storage $ = _getERC20EnforcementModuleInternalStorage(); if (!$._frozen[account]) { return false; } @@ -108,10 +113,19 @@ abstract contract EnforcementModuleInternal is return true; } + /** + * @dev Triggers a forced transfer. + * + */ + function _enforceTransfer(address account, address destination, uint256 value, string calldata reason) internal virtual { + _transfer(account, destination, value); + emit Enforcement(_msgSender(), account, value, reason); + } + /* ============ ERC-7201 ============ */ - function _getEnforcementModuleInternalStorage() private pure returns (EnforcementModuleInternalStorage storage $) { + function _getERC20EnforcementModuleInternalStorage() private pure returns (ERC20EnforcementModuleInternalStorage storage $) { assembly { - $.slot := EnforcementModuleInternalStorageLocation + $.slot := ERC20EnforcementModuleInternalStorageLocation } } } diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 8590ff1c..1bfc6c74 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -124,7 +124,6 @@ abstract contract ERC20BaseModule is ERC20Upgradeable { totalSupply = ERC20Upgradeable.totalSupply(); } - /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ diff --git a/contracts/modules/wrapper/core/EnforcementModule.sol b/contracts/modules/wrapper/core/EnforcementModule.sol index a7fe8c43..4719e631 100644 --- a/contracts/modules/wrapper/core/EnforcementModule.sol +++ b/contracts/modules/wrapper/core/EnforcementModule.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.20; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; -import {EnforcementModuleInternal} from "../../internal/EnforcementModuleInternal.sol"; +import {ERC20EnforcementModuleInternal} from "../../internal/ERC20EnforcementModuleInternal.sol"; /** * @title Enforcement module. @@ -12,11 +12,12 @@ import {EnforcementModuleInternal} from "../../internal/EnforcementModuleInterna * Allows the issuer to freeze transfers from a given address */ abstract contract EnforcementModule is - EnforcementModuleInternal, + ERC20EnforcementModuleInternal, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant ENFORCER_ROLE = keccak256("ENFORCER_ROLE"); + bytes32 public constant ENFORCER_ROLE_TRANSFER = keccak256("ENFORCER_ROLE_TRANSFER"); string internal constant TEXT_TRANSFER_REJECTED_FROM_FROZEN = "Address FROM is frozen"; @@ -56,4 +57,14 @@ abstract contract EnforcementModule is ) public onlyRole(ENFORCER_ROLE) returns (bool) { return _unfreeze(account, reason); } + + + /** + * @notice Triggers a forced transfer. + * + */ + function enforceTransfer(address account, address destination, uint256 value, string calldata reason) public onlyRole(ENFORCER_ROLE_TRANSFER) { + _enforceTransfer(account, destination, value, reason); + } + } diff --git a/package.json b/package.json index 0673b657..d899d050 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "test" ], "scripts": { - "test": "npx truffle test", + "test": "npx hardhat test", "lint:js": "npx eslint test", "lint:js:fix": "npx eslint test --fix", "lint:sol": "npx solium -d contracts", @@ -17,7 +17,6 @@ "lint:sol:prettier": "npx prettier --write 'contracts/**/*.sol'", "lint:js:prettier": "npx prettier --write test", "lint:all:prettier": "npm run-script lint:js:prettier && npm run-script lint:js:fix && npm run-script lint:sol:prettier && npm run-script lint:sol:fix", - "console": "truffle console", "coverage": "npx hardhat coverage", "docgen": "npx hardhat docgen", "uml-all": "npm run-script uml-partial && npm run-script uml-i-draft-erc1404 && npm run-script uml-modules-core && npm run-script uml-modules-extensions && npm run-script uml-modules-security && npm run-script uml-mocks", diff --git a/test/common/EnforcementModuleCommon.js b/test/common/EnforcementModuleCommon.js index 5dd22081..d6daf733 100644 --- a/test/common/EnforcementModuleCommon.js +++ b/test/common/EnforcementModuleCommon.js @@ -1,9 +1,75 @@ -const { ENFORCER_ROLE } = require('../utils') +const { ENFORCER_ROLE, ENFORCER_ROLE_TRANSFER } = require('../utils') const { expect } = require('chai') const reasonFreeze = 'testFreeze' const reasonUnfreeze = 'testUnfreeze' function EnforcementModuleCommon () { + + context('Enforcement', function () { + beforeEach(async function () { + await this.cmtat.connect(this.admin).mint(this.address1, 50) + }); + + it('testCanForceTransferFromAddress1ToAddress2AsAdmin', async function () { + const AMOUNT_TO_TRANSFER = 20 + const REASON = 'Bad guy' + // Act + this.logs = await this.cmtat + .connect(this.admin) + .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) + // Assert + expect(await this.cmtat.balanceOf(this.address1)).to.equal( + '30' + ) + expect(await this.cmtat.balanceOf(this.address2)).to.equal( + '20' + ) + // Events + await expect(this.logs) + .to.emit(this.cmtat, 'Enforcement') + .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) + await expect(this.logs) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) + }); + + it('testCanForceTransferFromAddress1ToAddress2AsEnforcerTransferRole', async function () { + const AMOUNT_TO_TRANSFER = 20 + const REASON = 'Bad guy' + // Arrange - Assert + await this.cmtat.connect(this.admin).grantRole(ENFORCER_ROLE_TRANSFER, this.address3); + // Act + this.logs = await this.cmtat + .connect(this.admin) + .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) + // Assert + expect(await this.cmtat.balanceOf(this.address1)).to.equal( + 50 - AMOUNT_TO_TRANSFER + ) + expect(await this.cmtat.balanceOf(this.address2)).to.equal( + AMOUNT_TO_TRANSFER + ) + await expect(this.logs) + .to.emit(this.cmtat, 'Enforcement') + .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) + await expect(this.logs) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) + }); + + it('testCannotNonEnforcerTransferFunds', async function () { + // Act + await expect( + this.cmtat.connect(this.address2).enforceTransfer(this.address1, this.address2, 20, 'Bad guy') + ) + .to.be.revertedWithCustomError( + this.cmtat, + 'AccessControlUnauthorizedAccount' + ) + .withArgs(this.address2.address, ENFORCER_ROLE_TRANSFER) + }) + }); + context('Freeze', function () { beforeEach(async function () { await this.cmtat.connect(this.admin).mint(this.address1, 50) diff --git a/test/utils.js b/test/utils.js index b984047f..74fb6c76 100644 --- a/test/utils.js +++ b/test/utils.js @@ -7,6 +7,8 @@ module.exports = { '0x5bfe08abba057c54e6a28bce27ce8c53eb21d7a94376a70d475b5dee60b6c4e2', // keccak256("BURNER_FROM_ROLE"); ENFORCER_ROLE: '0x973ef39d76cc2c6090feab1c030bec6ab5db557f64df047a4c4f9b5953cf1df3', // keccak256("ENFORCER_ROLE"); + ENFORCER_ROLE_TRANSFER: + '0x461ed34b74ccb1010ce3b90094d3a5eb1ec626c624903a03020c8bc8c32231e6', // keccak256("ENFORCER_ROLE_TRANSFER"); PAUSER_ROLE: '0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a', // keccak256("PAUSER_ROLE"); SNAPSHOOTER_ROLE: @@ -21,6 +23,8 @@ module.exports = { '0x13293a342e85bb7a675992804d0c6194d27d85f90a7401d0666e206fe3b06a03', DOCUMENT_ROLE: '0xdd7c9aafbb91d54fb2041db1d5b172ea665309b32f5fffdbddf452802a1e3b20', + + PROXY_UPGRADE_ROLE: '0x233d5d22cfc2df30a1764cac21e2207537a3711647f2c29fe3702201f65c1444', ZERO_ADDRESS: ethers.ZeroAddress, RULE_MOCK_AMOUNT_MAX: '20', From 6b39163e46c83c9b20a30fa82ab2b540bd2fd74e Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 22 Jan 2025 17:23:36 +0100 Subject: [PATCH 06/26] Remove authorisationEngine, add snapshotEngine --- contracts/interfaces/ICMTATConstructor.sol | 4 +- .../engine/IAuthorizationEngine.sol | 23 --- contracts/mocks/AuthorizationEngineMock.sol | 61 -------- contracts/modules/CMTAT_BASE.sol | 8 +- .../modules/security/AuthorizationModule.sol | 79 +--------- ...ationModuleSetAuthorizationEngineCommon.js | 141 ------------------ .../AuthorizationModule.test.js | 5 - .../AuthorizationModuleConstructor.test.js | 36 ----- .../AuthorizationModule.test.js | 5 - .../AuthorizationModuleConstructor.test.js | 37 ----- 10 files changed, 5 insertions(+), 394 deletions(-) delete mode 100644 contracts/interfaces/engine/IAuthorizationEngine.sol delete mode 100644 contracts/mocks/AuthorizationEngineMock.sol delete mode 100644 test/common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon.js delete mode 100644 test/proxy/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js delete mode 100644 test/standard/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js diff --git a/contracts/interfaces/ICMTATConstructor.sol b/contracts/interfaces/ICMTATConstructor.sol index e3ee7cef..0d7e620a 100644 --- a/contracts/interfaces/ICMTATConstructor.sol +++ b/contracts/interfaces/ICMTATConstructor.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; import "./engine/IDebtEngine.sol"; import "./engine/IRuleEngine.sol"; -import "./engine/IAuthorizationEngine.sol"; +import "./engine/ISnapshotEngine.sol"; import "./engine/draft-IERC1643.sol"; @@ -14,7 +14,7 @@ interface ICMTATConstructor { struct Engine { IRuleEngine ruleEngine; IDebtEngine debtEngine; - IAuthorizationEngine authorizationEngine; + ISnapshotEngine snapshotEngine; IERC1643 documentEngine; } struct ERC20Attributes { diff --git a/contracts/interfaces/engine/IAuthorizationEngine.sol b/contracts/interfaces/engine/IAuthorizationEngine.sol deleted file mode 100644 index 0e3f740b..00000000 --- a/contracts/interfaces/engine/IAuthorizationEngine.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 - -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. - */ - function operateOnGrantRole( - bytes32 role, address account - ) external returns (bool isValid); - - /** - * @dev Returns true if the operation is authorized, and false otherwise. - */ - function operateOnRevokeRole( - bytes32 role, address account - ) external returns (bool isValid); - -} diff --git a/contracts/mocks/AuthorizationEngineMock.sol b/contracts/mocks/AuthorizationEngineMock.sol deleted file mode 100644 index 6c0c7898..00000000 --- a/contracts/mocks/AuthorizationEngineMock.sol +++ /dev/null @@ -1,61 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -import {IAuthorizationEngine} from "../interfaces/engine/IAuthorizationEngine.sol"; - - -/* -* @title a mock for testing, not suitable for production -*/ -contract AuthorizationEngineMock is IAuthorizationEngine { - address nextAdmin; - bool revokeAdminRoleAuthorized; - constructor() { - revokeAdminRoleAuthorized = true; - } - - /* - * @dev - * Warning: if you want to use this mock, you have to restrict the access to this function through an an access control - */ - function authorizeAdminChange(address newAdmin) external { - nextAdmin = newAdmin; - } - - function setRevokeAdminRoleAuthorized(bool - newValue) external { - revokeAdminRoleAuthorized = newValue; - } - - /* - * @dev - * Warning: if you want to use this mock, you have to restrict the access to this function through an an access control - */ - function operateOnGrantRole( - bytes32 role, address account - ) external returns (bool isValid){ - if(role == 0x0 && account == nextAdmin && account != address(0x0)){ - // Reset to 0 - nextAdmin = address(0x0); - return true; - }else{ - return false; - } - } - - /* - * @dev - * Warning: if you want to use this mock, you have to restrict the access to this function through an an access control - */ - function operateOnRevokeRole( - bytes32 role, address /*account*/ - ) external view returns (bool isValid){ - if(role == 0x0){ - return revokeAdminRoleAuthorized; - } else{ - // the tests will fail if this branch is taken - return !revokeAdminRoleAuthorized; - } - } -} diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 79b52953..4f3c8852 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -103,7 +103,7 @@ abstract contract CMTAT_BASE is /* Wrapper */ // AuthorizationModule_init_unchained is called firstly due to inheritance - __AuthorizationModule_init_unchained(admin, engines_ .authorizationEngine); + __AuthorizationModule_init_unchained(admin); __ERC20BurnModule_init_unchained(); __ERC20MintModule_init_unchained(); // EnforcementModule_init_unchained is called before ValidationModule_init_unchained due to inheritance @@ -113,11 +113,7 @@ abstract contract CMTAT_BASE is __PauseModule_init_unchained(); __ValidationModule_init_unchained(); - /* - SnapshotModule: - Add this call in case you add the SnapshotModule - */ - //__ERC20SnasphotModule_init_unchained(); + __SnapshotModule_init_unchained(engines_.snapshotEngine); __DocumentModule_init_unchained(engines_ .documentEngine); __DebtModule_init_unchained(engines_ .debtEngine); diff --git a/contracts/modules/security/AuthorizationModule.sol b/contracts/modules/security/AuthorizationModule.sol index 0584bd8d..f1b6742e 100644 --- a/contracts/modules/security/AuthorizationModule.sol +++ b/contracts/modules/security/AuthorizationModule.sol @@ -4,21 +4,8 @@ pragma solidity ^0.8.20; import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import {Errors} from "../../libraries/Errors.sol"; -import {IAuthorizationEngine} from "../../interfaces/engine/IAuthorizationEngine.sol"; abstract contract AuthorizationModule is AccessControlUpgradeable { - /* ============ Events ============ */ - /** - * @dev Emitted when a rule engine is set. - */ - event AuthorizationEngine(IAuthorizationEngine indexed newAuthorizationEngine); - /* ============ ERC-7201 ============ */ - // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.AuthorizationModule")) - 1)) & ~bytes32(uint256(0xff)) - bytes32 private constant AuthorizationModuleStorageLocation = 0x59b7f077fa4ad020f9053fd2197fef0113b19f0b11dcfe516e88cbc0e9226d00; - /* ==== ERC-7201 State Variables === */ - struct AuthorizationModuleStorage { - IAuthorizationEngine _authorizationEngine; - } /* ============ Initializer Function ============ */ /** * @dev @@ -27,69 +14,18 @@ abstract contract AuthorizationModule is AccessControlUpgradeable { * - The control of the zero address is done by AccessControlDefaultAdminRules * */ - function __AuthorizationModule_init_unchained(address admin, IAuthorizationEngine authorizationEngine_) + function __AuthorizationModule_init_unchained(address admin) internal onlyInitializing { if(admin == address(0)){ revert Errors.CMTAT_AuthorizationModule_AddressZeroNotAllowed(); } _grantRole(DEFAULT_ADMIN_ROLE, admin); - if (address(authorizationEngine_) != address (0)) { - AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage(); - $._authorizationEngine = authorizationEngine_; - emit AuthorizationEngine(authorizationEngine_); - } } /*////////////////////////////////////////////////////////////// PUBLIC/EXTERNAL FUNCTIONS //////////////////////////////////////////////////////////////*/ - - function authorizationEngine() public view virtual returns (IAuthorizationEngine) { - AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage(); - return $._authorizationEngine; - } - - - /* - * @notice set an authorizationEngine if not already set - * @dev once an AuthorizationEngine is set, it is not possible to unset it - */ - function setAuthorizationEngine( - IAuthorizationEngine authorizationEngine_ - ) external onlyRole(DEFAULT_ADMIN_ROLE) { - AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage(); - if (address($._authorizationEngine) != address (0)){ - revert Errors.CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet(); - } - $._authorizationEngine = authorizationEngine_; - emit AuthorizationEngine(authorizationEngine_); - } - - function grantRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) { - AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage(); - if (address($._authorizationEngine) != address (0)) { - bool result = $._authorizationEngine.operateOnGrantRole(role, account); - if(!result) { - // Operation rejected by the authorizationEngine - revert Errors.CMTAT_AuthorizationModule_InvalidAuthorization(); - } - } - return AccessControlUpgradeable.grantRole(role, account); - } - - function revokeRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) { - AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage(); - if (address($._authorizationEngine) != address (0)) { - bool result = $._authorizationEngine.operateOnRevokeRole(role, account); - if(!result) { - // Operation rejected by the authorizationEngine - revert Errors.CMTAT_AuthorizationModule_InvalidAuthorization(); - } - } - return AccessControlUpgradeable.revokeRole(role, account); - } - /** * @dev Returns `true` if `account` has been granted `role`. */ @@ -103,17 +39,4 @@ abstract contract AuthorizationModule is AccessControlUpgradeable { } return AccessControlUpgradeable.hasRole(role, account); } - - - /*////////////////////////////////////////////////////////////// - INTERNAL/PRIVATE FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - - /* ============ ERC-7201 ============ */ - function _getAuthorizationModuleStorage() private pure returns (AuthorizationModuleStorage storage $) { - assembly { - $.slot := AuthorizationModuleStorageLocation - } - } } diff --git a/test/common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon.js b/test/common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon.js deleted file mode 100644 index 646bacff..00000000 --- a/test/common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon.js +++ /dev/null @@ -1,141 +0,0 @@ -const { expect } = require('chai') -const { DEFAULT_ADMIN_ROLE } = require('../../utils.js') - -function AuthorizationModuleSetAuthorizationEngineCommon () { - context('AuthorizationEngineSetTest', function () { - it('testCanBeSetByAdminIfNotAlreadySet', async function () { - if (!this.definedAtDeployment) { - // Act - this.logs = await this.cmtat - .connect(this.admin) - .setAuthorizationEngine(this.authorizationEngineMock.target) - // Assert - // emits a AuthorizationEngin event - await expect(this.logs) - .to.emit(this.cmtat, 'AuthorizationEngine') - .withArgs(this.authorizationEngineMock) - } - }) - - it('testCanReturnTheRightAddressIfSet', async function () { - if (this.definedAtDeployment) { - expect(this.authorizationEngineMock.target).to.equal( - await this.cmtat.authorizationEngine() - ) - } - }) - - it('testCannotBeSetByAdminIfAlreadySet', async function () { - // Arrange - if (!this.definedAtDeployment) { - await this.cmtat - .connect(this.admin) - .setAuthorizationEngine(this.authorizationEngineMock.target) - } - // Act - await expect( - this.cmtat - .connect(this.admin) - .setAuthorizationEngine(this.authorizationEngineMock.target) - ).to.be.revertedWithCustomError( - this.cmtat, - 'CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet' - ) - }) - - it('testCannotNonAdminSetAuthorizationEngine', async function () { - // Act - await expect( - this.cmtat - .connect(this.address1) - .setAuthorizationEngine(this.authorizationEngineMock.target) - ) - .to.be.revertedWithCustomError( - this.cmtat, - 'AccessControlUnauthorizedAccount' - ) - .withArgs(this.address1.address, DEFAULT_ADMIN_ROLE) - }) - - // Mock - it('testCanTransferAdminIfAuthorizedByTheEngine', async function () { - // Arrange - await this.authorizationEngineMock.authorizeAdminChange(this.address1) - - // Arrange - if (!this.definedAtDeployment) { - await this.cmtat - .connect(this.admin) - .setAuthorizationEngine(this.authorizationEngineMock.target) - } - // Act + Assert - this.logs = await this.cmtat - .connect(this.admin) - .grantRole(DEFAULT_ADMIN_ROLE, this.address1) - // Assert - expect( - await this.cmtat.hasRole(DEFAULT_ADMIN_ROLE, this.address1) - ).to.equal(true) - }) - - // Mock - it('testCannotTransferAdminIfNotAuthorizedByTheEngine', async function () { - // Arrange - if (!this.definedAtDeployment) { - await this.cmtat - .connect(this.admin) - .setAuthorizationEngine(this.authorizationEngineMock.target) - } - // Act - await expect( - this.cmtat - .connect(this.admin) - .grantRole(DEFAULT_ADMIN_ROLE, this.address1) - ).to.be.revertedWithCustomError( - this.cmtat, - 'CMTAT_AuthorizationModule_InvalidAuthorization' - ) - }) - - it('testCanRevokeAdminIfAuthorizedByTheEngine', async function () { - // Arrange - await this.authorizationEngineMock.authorizeAdminChange(this.address1) - // Arrange - if (!this.definedAtDeployment) { - await this.cmtat - .connect(this.admin) - .setAuthorizationEngine(this.authorizationEngineMock.target) - } - // Assert - this.logs = await this.cmtat - .connect(this.admin) - .revokeRole(DEFAULT_ADMIN_ROLE, this.address1) - // Assert - expect( - await this.cmtat.hasRole(DEFAULT_ADMIN_ROLE, this.address1) - ).to.equal(false) - }) - - // Mock - it('testCannotRevokeAdminIfNotAuthorizedByTheEngine', async function () { - // Arrange - if (!this.definedAtDeployment) { - await this.cmtat - .connect(this.admin) - .setAuthorizationEngine(this.authorizationEngineMock.target) - } - - await this.authorizationEngineMock.setRevokeAdminRoleAuthorized(false) - // Act - await expect( - this.cmtat - .connect(this.admin) - .revokeRole(DEFAULT_ADMIN_ROLE, this.address1) - ).to.be.revertedWithCustomError( - this.cmtat, - 'CMTAT_AuthorizationModule_InvalidAuthorization' - ) - }) - }) -} -module.exports = AuthorizationModuleSetAuthorizationEngineCommon diff --git a/test/proxy/modules/AuthorizationModule/AuthorizationModule.test.js b/test/proxy/modules/AuthorizationModule/AuthorizationModule.test.js index 541da049..f90e4d61 100644 --- a/test/proxy/modules/AuthorizationModule/AuthorizationModule.test.js +++ b/test/proxy/modules/AuthorizationModule/AuthorizationModule.test.js @@ -1,5 +1,4 @@ const AuthorizationModuleCommon = require('../../../common/AuthorizationModule/AuthorizationModuleCommon') -const AuthorizationModuleSetAuthorizationEngineCommon = require('../../../common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon') const { deployCMTATProxy, fixture, @@ -14,11 +13,7 @@ describe('Proxy - AuthorizationModule', function () { this.admin.address, this.deployerAddress.address ) - this.authorizationEngineMock = await ethers.deployContract( - 'AuthorizationEngineMock' - ) }) AuthorizationModuleCommon() - AuthorizationModuleSetAuthorizationEngineCommon() }) diff --git a/test/proxy/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js b/test/proxy/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js deleted file mode 100644 index 31bb03c0..00000000 --- a/test/proxy/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js +++ /dev/null @@ -1,36 +0,0 @@ -const AuthorizationModuleSetAuthorizationEngineCommon = require('../../../common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon') -const { - deployCMTATProxyWithParameter, - fixture, - loadFixture -} = require('../../../deploymentUtils') -const { ZERO_ADDRESS } = require('../../../utils') -describe('Proxy - AuthorizationModule', function () { - beforeEach(async function () { - const DECIMAL = 0 - Object.assign(this, await loadFixture(fixture)) - this.authorizationEngineMock = await ethers.deployContract( - 'AuthorizationEngineMock' - ) - this.definedAtDeployment = true - this.cmtat = await deployCMTATProxyWithParameter( - this.deployerAddress.address, - this._.address, - this.admin.address, - 'CMTA Token', - 'CMTAT', - DECIMAL, - 'CMTAT_ISIN', - 'https://cmta.ch', - 'CMTAT_info', - [ - ZERO_ADDRESS, - ZERO_ADDRESS, - this.authorizationEngineMock.target, - ZERO_ADDRESS - ] - ) - }) - - AuthorizationModuleSetAuthorizationEngineCommon() -}) diff --git a/test/standard/modules/AuthorizationModule/AuthorizationModule.test.js b/test/standard/modules/AuthorizationModule/AuthorizationModule.test.js index 7f5a07e0..1f71a924 100644 --- a/test/standard/modules/AuthorizationModule/AuthorizationModule.test.js +++ b/test/standard/modules/AuthorizationModule/AuthorizationModule.test.js @@ -1,5 +1,4 @@ const AuthorizationModuleCommon = require('../../../common/AuthorizationModule/AuthorizationModuleCommon') -const AuthorizationModuleSetAuthorizationEngineCommon = require('../../../common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon') const { deployCMTATStandalone, fixture, @@ -13,10 +12,6 @@ describe('Standard - AuthorizationModule', function () { this.admin.address, this.deployerAddress.address ) - this.authorizationEngineMock = await ethers.deployContract( - 'AuthorizationEngineMock' - ) }) AuthorizationModuleCommon() - AuthorizationModuleSetAuthorizationEngineCommon() }) diff --git a/test/standard/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js b/test/standard/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js deleted file mode 100644 index 40e826c3..00000000 --- a/test/standard/modules/AuthorizationModule/AuthorizationModuleConstructor.test.js +++ /dev/null @@ -1,37 +0,0 @@ -const AuthorizationModuleSetAuthorizationEngineCommon = require('../../../common/AuthorizationModule/AuthorizationModuleSetAuthorizationEngineCommon') -const { - deployCMTATStandaloneWithParameter, - fixture, - loadFixture -} = require('../../../deploymentUtils') - -const { ZERO_ADDRESS } = require('../../../utils') - -describe('Proxy - AuthorizationModule - Constructor', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.authorizationEngineMock = await ethers.deployContract( - 'AuthorizationEngineMock' - ) - const DECIMAL = 0 - this.definedAtDeployment = true - this.cmtat = await deployCMTATStandaloneWithParameter( - this.deployerAddress.address, - this._.address, - this.admin.address, - 'CMTA Token', - 'CMTAT', - DECIMAL, - 'CMTAT_ISIN', - 'https://cmta.ch', - 'CMTAT_info', - [ - ZERO_ADDRESS, - ZERO_ADDRESS, - this.authorizationEngineMock.target, - ZERO_ADDRESS - ] - ) - }) - AuthorizationModuleSetAuthorizationEngineCommon() -}) From 1c4149806c5997fbda1ae627c906b1a3745323db Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 5 Feb 2025 10:42:50 +0100 Subject: [PATCH 07/26] Update OZ and solidity, setter for ERC20Name and ERC20Symbol, move enforceTransfer to ERC20BaseModule --- .nvmrc | 2 +- contracts/interfaces/ICMTATConstructor.sol | 8 +- contracts/mocks/MinimalForwarderMock.sol | 6 +- contracts/mocks/SnapshotEngineMock.sol | 2 +- .../library/snapshot}/ERC20SnapshotModule.sol | 4 +- .../snapshot}/ERC20SnapshotModuleInternal.sol | 2 +- .../snapshot}/base/SnapshotModuleBase.sol | 2 +- contracts/modules/CMTAT_BASE.sol | 50 ++++--- ...rnal.sol => EnforcementModuleInternal.sol} | 34 ++--- .../modules/wrapper/core/ERC20BaseModule.sol | 73 ++++++++++- .../wrapper/core/EnforcementModule.sol | 13 +- doc/USAGE.md | 10 +- hardhat.config.js | 2 +- openzeppelin-contracts-upgradeable | 2 +- package-lock.json | 30 ++--- package.json | 4 +- test/common/ERC20BaseModuleCommon.js | 122 +++++++++++++++++- test/common/EnforcementModuleCommon.js | 68 +--------- .../ValidationModuleSetRuleEngineCommon.js | 5 +- test/proxy/general/Proxy.test.js | 2 +- .../ValidationModule/ValidationModule.test.js | 2 +- 21 files changed, 277 insertions(+), 166 deletions(-) rename contracts/{modules/wrapper/extensions => mocks/library/snapshot}/ERC20SnapshotModule.sol (94%) rename contracts/{modules/internal => mocks/library/snapshot}/ERC20SnapshotModuleInternal.sol (98%) rename contracts/{modules/internal => mocks/library/snapshot}/base/SnapshotModuleBase.sol (99%) rename contracts/modules/internal/{ERC20EnforcementModuleInternal.sol => EnforcementModuleInternal.sol} (67%) diff --git a/.nvmrc b/.nvmrc index 238dd3d0..b55acecd 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v16.17.0 \ No newline at end of file +v20.5.0 \ No newline at end of file diff --git a/contracts/interfaces/ICMTATConstructor.sol b/contracts/interfaces/ICMTATConstructor.sol index 0d7e620a..315dfea1 100644 --- a/contracts/interfaces/ICMTATConstructor.sol +++ b/contracts/interfaces/ICMTATConstructor.sol @@ -18,10 +18,10 @@ interface ICMTATConstructor { IERC1643 documentEngine; } struct ERC20Attributes { - // name of the token, - string nameIrrevocable; - // name of the symbol - string symbolIrrevocable; + // token name, + string name; + // token symbol + string symbol; // number of decimals of the token, must be 0 to be compliant with Swiss law as per CMTAT specifications (non-zero decimal number may be needed for other use cases) uint8 decimalsIrrevocable; } diff --git a/contracts/mocks/MinimalForwarderMock.sol b/contracts/mocks/MinimalForwarderMock.sol index 257ab2de..66dde3cd 100644 --- a/contracts/mocks/MinimalForwarderMock.sol +++ b/contracts/mocks/MinimalForwarderMock.sol @@ -9,8 +9,4 @@ import {ERC2771ForwarderUpgradeable} from "@openzeppelin/contracts-upgradeable/m * @title a MinimalForwarderMock for testing, not suitable for production */ contract MinimalForwarderMock is ERC2771ForwarderUpgradeable { - function initialize(string memory name) public initializer { - __EIP712_init_unchained(name, "1"); - __ERC2771Forwarder_init_unchained(""); - } -} +} \ No newline at end of file diff --git a/contracts/mocks/SnapshotEngineMock.sol b/contracts/mocks/SnapshotEngineMock.sol index 3eb23c7c..c9f25a7b 100644 --- a/contracts/mocks/SnapshotEngineMock.sol +++ b/contracts/mocks/SnapshotEngineMock.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.20; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; -import {SnapshotModuleBase} from "../modules/internal/base/SnapshotModuleBase.sol"; +import {SnapshotModuleBase} from "./library/snapshot/base/SnapshotModuleBase.sol"; import {ICMTATSnapshot} from "../interfaces/ICMTATSnapshot.sol"; import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; /* diff --git a/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol b/contracts/mocks/library/snapshot/ERC20SnapshotModule.sol similarity index 94% rename from contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol rename to contracts/mocks/library/snapshot/ERC20SnapshotModule.sol index 4c621865..021bfe1f 100644 --- a/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol +++ b/contracts/mocks/library/snapshot/ERC20SnapshotModule.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.20; -import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; -import {ERC20SnapshotModuleInternal} from "../../internal/ERC20SnapshotModuleInternal.sol"; +import {AuthorizationModule} from "../../../modules/security/AuthorizationModule.sol"; +import {ERC20SnapshotModuleInternal} from ".//ERC20SnapshotModuleInternal.sol"; /** * @title Snapshot module diff --git a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol b/contracts/mocks/library/snapshot/ERC20SnapshotModuleInternal.sol similarity index 98% rename from contracts/modules/internal/ERC20SnapshotModuleInternal.sol rename to contracts/mocks/library/snapshot/ERC20SnapshotModuleInternal.sol index cebc4931..46e0fbab 100644 --- a/contracts/modules/internal/ERC20SnapshotModuleInternal.sol +++ b/contracts/mocks/library/snapshot/ERC20SnapshotModuleInternal.sol @@ -5,7 +5,7 @@ pragma solidity ^0.8.20; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol'; import {SnapshotModuleBase} from "./base/SnapshotModuleBase.sol"; -import {ICMTATSnapshot} from "../../interfaces/ICMTATSnapshot.sol"; +import {ICMTATSnapshot} from "../../../interfaces/ICMTATSnapshot.sol"; /** * @dev Snapshot module internal. * diff --git a/contracts/modules/internal/base/SnapshotModuleBase.sol b/contracts/mocks/library/snapshot/base/SnapshotModuleBase.sol similarity index 99% rename from contracts/modules/internal/base/SnapshotModuleBase.sol rename to contracts/mocks/library/snapshot/base/SnapshotModuleBase.sol index 9457418d..16377471 100644 --- a/contracts/modules/internal/base/SnapshotModuleBase.sol +++ b/contracts/mocks/library/snapshot/base/SnapshotModuleBase.sol @@ -5,7 +5,7 @@ pragma solidity ^0.8.20; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol'; -import {Errors} from "../../../libraries/Errors.sol"; +import {Errors} from "../../../../libraries/Errors.sol"; /** * @dev Base for the Snapshot module diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 4f3c8852..3200c695 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -12,9 +12,6 @@ import {ERC20MintModule} from "./wrapper/core/ERC20MintModule.sol"; import {EnforcementModule} from "./wrapper/core/EnforcementModule.sol"; import {ERC20BaseModule, ERC20Upgradeable} from "./wrapper/core/ERC20BaseModule.sol"; import {PauseModule} from "./wrapper/core/PauseModule.sol"; - -import {ERC20SnapshotModule} from "./wrapper/extensions/ERC20SnapshotModule.sol"; - import {ValidationModule} from "./wrapper/controllers/ValidationModule.sol"; import {MetaTxModule, ERC2771ContextUpgradeable} from "./wrapper/extensions/MetaTxModule.sol"; import {DebtModule} from "./wrapper/extensions/DebtModule.sol"; @@ -39,7 +36,6 @@ abstract contract CMTAT_BASE is ERC20BaseModule, // Extension MetaTxModule, - //ERC20SnapshotModule, DebtModule, DocumentModule { @@ -83,7 +79,8 @@ abstract contract CMTAT_BASE is /* OpenZeppelin library */ // OZ init_unchained functions are called firstly due to inheritance __Context_init_unchained(); - __ERC20_init_unchained(ERC20Attributes_.nameIrrevocable, ERC20Attributes_.symbolIrrevocable); + // We don'use name and symbol set by the OpenZeppelin module + //__ERC20_init_unchained(ERC20Attributes_.name, ERC20Attributes_.symbol); // AccessControlUpgradeable inherits from ERC165Upgradeable __ERC165_init_unchained(); // AuthorizationModule inherits from AccessControlUpgradeable @@ -91,14 +88,7 @@ abstract contract CMTAT_BASE is __Pausable_init_unchained(); /* Internal Modules */ - __ERC20Enforcement_init_unchained(); - /* - SnapshotModule: - Add these two calls in case you add the SnapshotModule - */ - //__SnapshotModuleBase_init_unchained(); - //__ERC20Snapshot_init_unchained(); - + __Enforcement_init_unchained(); __Validation_init_unchained(engines_ .ruleEngine); /* Wrapper */ @@ -108,7 +98,7 @@ abstract contract CMTAT_BASE is __ERC20MintModule_init_unchained(); // EnforcementModule_init_unchained is called before ValidationModule_init_unchained due to inheritance __EnforcementModule_init_unchained(); - __ERC20BaseModule_init_unchained(ERC20Attributes_.decimalsIrrevocable); + __ERC20BaseModule_init_unchained(ERC20Attributes_.decimalsIrrevocable, ERC20Attributes_.name, ERC20Attributes_.symbol); // PauseModule_init_unchained is called before ValidationModule_init_unchained due to inheritance __PauseModule_init_unchained(); __ValidationModule_init_unchained(); @@ -133,6 +123,11 @@ abstract contract CMTAT_BASE is PUBLIC/EXTERNAL FUNCTIONS //////////////////////////////////////////////////////////////*/ + + /*////////////////////////////////////////////////////////////// + Override ERC20Upgradeable, ERC20BaseModule + //////////////////////////////////////////////////////////////*/ + /** * @notice Returns the number of decimals used to get its user representation. */ @@ -159,6 +154,27 @@ abstract contract CMTAT_BASE is return ERC20BaseModule.transferFrom(sender, recipient, amount); } + + /** + * @notice Returns the name of the token. + */ + function name() public virtual override(ERC20Upgradeable, ERC20BaseModule) view returns (string memory) { + return ERC20BaseModule.name(); + } + + /** + * @notice Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public virtual override(ERC20Upgradeable, ERC20BaseModule) view returns (string memory) { + return ERC20BaseModule.symbol(); + } + + + /*////////////////////////////////////////////////////////////// + Functions requiring several modules + //////////////////////////////////////////////////////////////*/ + /** * @notice burn and mint atomically * @param from current token holder to burn tokens @@ -190,12 +206,6 @@ abstract contract CMTAT_BASE is if (!ValidationModule._operateOnTransfer(from, to, amount)) { revert Errors.CMTAT_InvalidTransfer(from, to, amount); } - /* - SnapshotModule: - Add this in case you add the SnapshotModule - We call the SnapshotModule only if the transfer is valid - */ - //ERC20SnapshotModuleInternal._snapshotUpdate(from, to); if(address(snapshotEngine()) != address(0)){ snapshotEngine().operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); } diff --git a/contracts/modules/internal/ERC20EnforcementModuleInternal.sol b/contracts/modules/internal/EnforcementModuleInternal.sol similarity index 67% rename from contracts/modules/internal/ERC20EnforcementModuleInternal.sol rename to contracts/modules/internal/EnforcementModuleInternal.sol index 8e932379..eead0a1b 100644 --- a/contracts/modules/internal/ERC20EnforcementModuleInternal.sol +++ b/contracts/modules/internal/EnforcementModuleInternal.sol @@ -10,7 +10,7 @@ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ * * Allows the issuer to freeze transfers from a given address */ -abstract contract ERC20EnforcementModuleInternal is +abstract contract EnforcementModuleInternal is Initializable, ContextUpgradeable, ERC20Upgradeable @@ -36,18 +36,13 @@ abstract contract ERC20EnforcementModuleInternal is string reason ); - /** - * @notice Emitted when a transfer is forced. - */ - event Enforcement (address indexed enforcer, address indexed account, uint256 amount, string reason); - /* ============ ERC-7201 ============ */ - // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ERC20EnforcementModuleInternal")) - 1)) & ~bytes32(uint256(0xff)) - bytes32 private constant ERC20EnforcementModuleInternalStorageLocation = 0x3f8bb8b8091c756b4423e8d10de8c6b7534e765f399b3f3409d2bed57af75e00; + // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.EnforcementModuleInternal")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant EnforcementModuleInternalStorageLocation = 0x3f8bb8b8091c756b4423e8d10de8c6b7534e765f399b3f3409d2bed57af75e00; /* ==== ERC-7201 State Variables === */ - struct ERC20EnforcementModuleInternalStorage { + struct EnforcementModuleInternalStorage { mapping(address => bool) _frozen; } @@ -55,7 +50,7 @@ abstract contract ERC20EnforcementModuleInternal is /*////////////////////////////////////////////////////////////// INITIALIZER FUNCTION //////////////////////////////////////////////////////////////*/ - function __ERC20Enforcement_init_unchained() internal onlyInitializing { + function __Enforcement_init_unchained() internal onlyInitializing { // no variable to initialize } @@ -67,7 +62,7 @@ abstract contract ERC20EnforcementModuleInternal is * @dev Returns true if the account is frozen, and false otherwise. */ function frozen(address account) public view virtual returns (bool) { - ERC20EnforcementModuleInternalStorage storage $ = _getERC20EnforcementModuleInternalStorage(); + EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage(); return $._frozen[account]; } @@ -85,7 +80,7 @@ abstract contract ERC20EnforcementModuleInternal is address account, string calldata reason ) internal virtual returns (bool) { - ERC20EnforcementModuleInternalStorage storage $ = _getERC20EnforcementModuleInternalStorage(); + EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage(); if ($._frozen[account]) { return false; } @@ -103,7 +98,7 @@ abstract contract ERC20EnforcementModuleInternal is address account, string calldata reason ) internal virtual returns (bool) { - ERC20EnforcementModuleInternalStorage storage $ = _getERC20EnforcementModuleInternalStorage(); + EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage(); if (!$._frozen[account]) { return false; } @@ -113,19 +108,10 @@ abstract contract ERC20EnforcementModuleInternal is return true; } - /** - * @dev Triggers a forced transfer. - * - */ - function _enforceTransfer(address account, address destination, uint256 value, string calldata reason) internal virtual { - _transfer(account, destination, value); - emit Enforcement(_msgSender(), account, value, reason); - } - /* ============ ERC-7201 ============ */ - function _getERC20EnforcementModuleInternalStorage() private pure returns (ERC20EnforcementModuleInternalStorage storage $) { + function _getEnforcementModuleInternalStorage() private pure returns (EnforcementModuleInternalStorage storage $) { assembly { - $.slot := ERC20EnforcementModuleInternalStorageLocation + $.slot := EnforcementModuleInternalStorageLocation } } } diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 1bfc6c74..831b5f1f 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.20; +import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; // required OZ imports here import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {Errors} from "../../../libraries/Errors.sol"; @@ -14,19 +15,29 @@ import {Errors} from "../../../libraries/Errors.sol"; * Inherits from ERC-20 * */ -abstract contract ERC20BaseModule is ERC20Upgradeable { +abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { + /* ============ State Variables ============ */ + bytes32 public constant ENFORCER_ROLE_TRANSFER = keccak256("ENFORCER_ROLE_TRANSFER"); /* ============ Events ============ */ /** + * @notice Emitted when a transfer is forced. + */ + event Enforcement (address indexed enforcer, address indexed account, uint256 amount, string reason); + /** * @notice Emitted when the specified `spender` spends the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance. * @dev The allowance can be also "spend" with the function BurnFrom, but in this case, the emitted event is BurnFrom. */ event Spend(address indexed owner, address indexed spender, uint256 value); + event Name(string indexed newNameIndexed, string newName); + event Symbol(string indexed newSymbolIndexed, string newSymbol); /* ============ ERC-7201 ============ */ // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ERC20BaseModule")) - 1)) & ~bytes32(uint256(0xff)) bytes32 private constant ERC20BaseModuleStorageLocation = 0x9bd8d607565c0370ae5f91651ca67fd26d4438022bf72037316600e29e6a3a00; /* ==== ERC-7201 State Variables === */ struct ERC20BaseModuleStorage { uint8 _decimals; + string _name; + string _symbol; } /* ============ Initializer Function ============ */ @@ -37,10 +48,14 @@ abstract contract ERC20BaseModule is ERC20Upgradeable { * construction/initialization. */ function __ERC20BaseModule_init_unchained( - uint8 decimals_ + uint8 decimals_, + string memory name_, + string memory symbol_ ) internal onlyInitializing { ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); $._decimals = decimals_; + $._symbol = symbol_; + $._name = name_; } /*////////////////////////////////////////////////////////////// PUBLIC/EXTERNAL FUNCTIONS @@ -124,6 +139,60 @@ abstract contract ERC20BaseModule is ERC20Upgradeable { totalSupply = ERC20Upgradeable.totalSupply(); } + /** + * @dev Returns the name of the token. + */ + function name() public virtual override view returns (string memory) { + ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); + return $._name; + } + + /** + * @dev Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public virtual override view returns (string memory) { + ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); + return $._symbol; + } + + + /*////////////////////////////////////////////////////////////// + RESTRICTED FUNCTIONS + //////////////////////////////////////////////////////////////*/ + /** + * @dev See {IToken-setName}. + */ + function setName(string calldata name_) public onlyRole(DEFAULT_ADMIN_ROLE) { + ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); + $._name = name_; + emit Name(name_, name_); + } + + /** + * @dev See {IToken-setSymbol}. + */ + function setSymbol(string calldata symbol_) public onlyRole(DEFAULT_ADMIN_ROLE) { + ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); + $._symbol = symbol_; + emit Symbol(symbol_, symbol_); + } + + /*////////////////////////////////////////////////////////////// + ERC-20 Enforcement + //////////////////////////////////////////////////////////////*/ + + /** + * @notice Triggers a forced transfer. + * + */ + function enforceTransfer(address account, address destination, uint256 value, string calldata reason) public onlyRole(ENFORCER_ROLE_TRANSFER) { + _transfer(account, destination, value); + emit Enforcement(_msgSender(), account, value, reason); + } + + + /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ diff --git a/contracts/modules/wrapper/core/EnforcementModule.sol b/contracts/modules/wrapper/core/EnforcementModule.sol index 4719e631..6416e5b1 100644 --- a/contracts/modules/wrapper/core/EnforcementModule.sol +++ b/contracts/modules/wrapper/core/EnforcementModule.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.20; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; -import {ERC20EnforcementModuleInternal} from "../../internal/ERC20EnforcementModuleInternal.sol"; +import {EnforcementModuleInternal} from "../../internal/EnforcementModuleInternal.sol"; /** * @title Enforcement module. @@ -12,12 +12,11 @@ import {ERC20EnforcementModuleInternal} from "../../internal/ERC20EnforcementMod * Allows the issuer to freeze transfers from a given address */ abstract contract EnforcementModule is - ERC20EnforcementModuleInternal, + EnforcementModuleInternal, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant ENFORCER_ROLE = keccak256("ENFORCER_ROLE"); - bytes32 public constant ENFORCER_ROLE_TRANSFER = keccak256("ENFORCER_ROLE_TRANSFER"); string internal constant TEXT_TRANSFER_REJECTED_FROM_FROZEN = "Address FROM is frozen"; @@ -59,12 +58,6 @@ abstract contract EnforcementModule is } - /** - * @notice Triggers a forced transfer. - * - */ - function enforceTransfer(address account, address destination, uint256 value, string calldata reason) public onlyRole(ENFORCER_ROLE_TRANSFER) { - _enforceTransfer(account, destination, value, reason); - } + } diff --git a/doc/USAGE.md b/doc/USAGE.md index 8aaa98c0..59dfa214 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -1,6 +1,6 @@ # Usage instructions -The instructions below have been tested on Ubuntu 20.04.5 LTS. +The instructions below have been tested on Ubuntu 22.04.5 LTS. ## Dependencies @@ -9,11 +9,11 @@ are the latest ones that we tested: - npm 10.2.5 - Hardhat ^2.22.7 -- Solidity 0.8.27 (via solc-js) +- Solidity 0.8.28 (via solc-js) - Node 20.5.0 -- 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) +- OpenZeppelin Contracts (Node.js module) [v5.2.0](https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.2.0) +- OpenZeppelin Contracts Upgradeable (Node.js module) [v5.2.0](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.0.2) +- Test: OpenZeppelin Contracts Upgradeable (submodule) [v5.2.0](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.2.0) ## Installation diff --git a/hardhat.config.js b/hardhat.config.js index dd36c821..a77390ed 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -8,7 +8,7 @@ require("hardhat-contract-sizer"); require("@nomicfoundation/hardhat-chai-matchers") module.exports = { solidity: { - version: '0.8.27', + version: '0.8.28', settings: { optimizer: { enabled: true, diff --git a/openzeppelin-contracts-upgradeable b/openzeppelin-contracts-upgradeable index 723f8cab..3d5fa5c2 160000 --- a/openzeppelin-contracts-upgradeable +++ b/openzeppelin-contracts-upgradeable @@ -1 +1 @@ -Subproject commit 723f8cab09cdae1aca9ec9cc1cfa040c2d4b06c1 +Subproject commit 3d5fa5c24c411112bab47bec25cfa9ad0af0e6e8 diff --git a/package-lock.json b/package-lock.json index eaa4d524..78c2ad45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "2.4.1", "license": "MPL", "dependencies": { - "@openzeppelin/contracts": "5.0.2", - "@openzeppelin/contracts-upgradeable": "5.0.2" + "@openzeppelin/contracts": "5.2.0", + "@openzeppelin/contracts-upgradeable": "^5.2.0" }, "devDependencies": { "@nomicfoundation/hardhat-chai-matchers": "^2.0.7", @@ -4073,16 +4073,16 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", - "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.2.0.tgz", + "integrity": "sha512-bxjNie5z89W1Ea0NZLZluFh8PrFNn9DH8DQlujEok2yjsOlraUPKID5p1Wk3qdNbf6XkQ1Os2RvfiHrrXLHWKA==" }, "node_modules/@openzeppelin/contracts-upgradeable": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.2.tgz", - "integrity": "sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.2.0.tgz", + "integrity": "sha512-mZIu9oa4tQTlGiOJHk6D3LdJlqFqF6oNOSn6S6UVJtzfs9UsY9/dhMEbAVTwElxUtJnjpf6yA062+oBp+eOyPg==", "peerDependencies": { - "@openzeppelin/contracts": "5.0.2" + "@openzeppelin/contracts": "5.2.0" } }, "node_modules/@openzeppelin/defender-sdk-base-client": { @@ -26880,14 +26880,14 @@ } }, "@openzeppelin/contracts": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", - "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.2.0.tgz", + "integrity": "sha512-bxjNie5z89W1Ea0NZLZluFh8PrFNn9DH8DQlujEok2yjsOlraUPKID5p1Wk3qdNbf6XkQ1Os2RvfiHrrXLHWKA==" }, "@openzeppelin/contracts-upgradeable": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.2.tgz", - "integrity": "sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.2.0.tgz", + "integrity": "sha512-mZIu9oa4tQTlGiOJHk6D3LdJlqFqF6oNOSn6S6UVJtzfs9UsY9/dhMEbAVTwElxUtJnjpf6yA062+oBp+eOyPg==", "requires": {} }, "@openzeppelin/defender-sdk-base-client": { diff --git a/package.json b/package.json index d899d050..e91cf696 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "surya": "^0.4.11" }, "dependencies": { - "@openzeppelin/contracts": "5.0.2", - "@openzeppelin/contracts-upgradeable": "5.0.2" + "@openzeppelin/contracts": "5.2.0", + "@openzeppelin/contracts-upgradeable": "5.2.0" } } diff --git a/test/common/ERC20BaseModuleCommon.js b/test/common/ERC20BaseModuleCommon.js index a037cdef..e2a19f10 100644 --- a/test/common/ERC20BaseModuleCommon.js +++ b/test/common/ERC20BaseModuleCommon.js @@ -1,6 +1,70 @@ const { expect } = require('chai') - +const { ENFORCER_ROLE_TRANSFER, DEFAULT_ADMIN_ROLE } = require('../utils') function ERC20BaseModuleCommon () { + context('Enforcement', function () { + beforeEach(async function () { + await this.cmtat.connect(this.admin).mint(this.address1, 50) + }); + + it('testCanForceTransferFromAddress1ToAddress2AsAdmin', async function () { + const AMOUNT_TO_TRANSFER = 20 + const REASON = 'Bad guy' + // Act + this.logs = await this.cmtat + .connect(this.admin) + .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) + // Assert + expect(await this.cmtat.balanceOf(this.address1)).to.equal( + '30' + ) + expect(await this.cmtat.balanceOf(this.address2)).to.equal( + '20' + ) + // Events + await expect(this.logs) + .to.emit(this.cmtat, 'Enforcement') + .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) + await expect(this.logs) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) + }); + + it('testCanForceTransferFromAddress1ToAddress2AsEnforcerTransferRole', async function () { + const AMOUNT_TO_TRANSFER = 20 + const REASON = 'Bad guy' + // Arrange - Assert + await this.cmtat.connect(this.admin).grantRole(ENFORCER_ROLE_TRANSFER, this.address3); + // Act + this.logs = await this.cmtat + .connect(this.admin) + .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) + // Assert + expect(await this.cmtat.balanceOf(this.address1)).to.equal( + 50 - AMOUNT_TO_TRANSFER + ) + expect(await this.cmtat.balanceOf(this.address2)).to.equal( + AMOUNT_TO_TRANSFER + ) + await expect(this.logs) + .to.emit(this.cmtat, 'Enforcement') + .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) + await expect(this.logs) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) + }); + + it('testCannotNonEnforcerTransferFunds', async function () { + // Act + await expect( + this.cmtat.connect(this.address2).enforceTransfer(this.address1, this.address2, 20, 'Bad guy') + ) + .to.be.revertedWithCustomError( + this.cmtat, + 'AccessControlUnauthorizedAccount' + ) + .withArgs(this.address2.address, ENFORCER_ROLE_TRANSFER) + }) + }); context('Token structure', function () { it('testHasTheDefinedName', async function () { // Act + Assert @@ -16,6 +80,62 @@ function ERC20BaseModuleCommon () { }) }) + context("Token Name", function (){ + it('testAdminCanUpdateName', async function () { + const NEW_NAME = "New Name" + // Act + this.logs = await this.cmtat + .connect(this.admin) + .setName(NEW_NAME) + // Assert + expect(await this.cmtat.name()).to.equal(NEW_NAME) + await expect(this.logs) + .to.emit(this.cmtat, "Name") + .withArgs(NEW_NAME, NEW_NAME) + }) + it('testCannotNonAdminUpdateName', async function () { + // Act + await expect( + this.cmtat.connect(this.address1).setName('New Name') + ) + .to.be.revertedWithCustomError( + this.cmtat, + 'AccessControlUnauthorizedAccount' + ) + .withArgs(this.address1.address, DEFAULT_ADMIN_ROLE) + // Assert + expect(await this.cmtat.name()).to.equal('CMTA Token') + }) + }) + + context("Token Symbol", function (){ + it('testAdminCanUpdateSymbol', async function () { + const NEW_SYMBOL = "New Symbol" + // Act + this.logs = await this.cmtat + .connect(this.admin) + .setSymbol(NEW_SYMBOL) + // Assert + expect(await this.cmtat.symbol()).to.equal(NEW_SYMBOL) + await expect(this.logs) + .to.emit(this.cmtat, "Symbol") + .withArgs(NEW_SYMBOL, NEW_SYMBOL) + }) + it('testCannotNonAdminUpdateName', async function () { + // Act + await expect( + this.cmtat.connect(this.address1).setSymbol('New Symbol') + ) + .to.be.revertedWithCustomError( + this.cmtat, + 'AccessControlUnauthorizedAccount' + ) + .withArgs(this.address1.address, DEFAULT_ADMIN_ROLE) + // Assert + expect(await this.cmtat.symbol()).to.equal('CMTAT') + }) + }) + context('Balance', function () { const TOKEN_AMOUNTS = [31n, 32n, 33n] const TOKEN_INITIAL_SUPPLY = TOKEN_AMOUNTS.reduce((a, b) => { diff --git a/test/common/EnforcementModuleCommon.js b/test/common/EnforcementModuleCommon.js index d6daf733..5dd22081 100644 --- a/test/common/EnforcementModuleCommon.js +++ b/test/common/EnforcementModuleCommon.js @@ -1,75 +1,9 @@ -const { ENFORCER_ROLE, ENFORCER_ROLE_TRANSFER } = require('../utils') +const { ENFORCER_ROLE } = require('../utils') const { expect } = require('chai') const reasonFreeze = 'testFreeze' const reasonUnfreeze = 'testUnfreeze' function EnforcementModuleCommon () { - - context('Enforcement', function () { - beforeEach(async function () { - await this.cmtat.connect(this.admin).mint(this.address1, 50) - }); - - it('testCanForceTransferFromAddress1ToAddress2AsAdmin', async function () { - const AMOUNT_TO_TRANSFER = 20 - const REASON = 'Bad guy' - // Act - this.logs = await this.cmtat - .connect(this.admin) - .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) - // Assert - expect(await this.cmtat.balanceOf(this.address1)).to.equal( - '30' - ) - expect(await this.cmtat.balanceOf(this.address2)).to.equal( - '20' - ) - // Events - await expect(this.logs) - .to.emit(this.cmtat, 'Enforcement') - .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) - await expect(this.logs) - .to.emit(this.cmtat, 'Transfer') - .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) - }); - - it('testCanForceTransferFromAddress1ToAddress2AsEnforcerTransferRole', async function () { - const AMOUNT_TO_TRANSFER = 20 - const REASON = 'Bad guy' - // Arrange - Assert - await this.cmtat.connect(this.admin).grantRole(ENFORCER_ROLE_TRANSFER, this.address3); - // Act - this.logs = await this.cmtat - .connect(this.admin) - .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) - // Assert - expect(await this.cmtat.balanceOf(this.address1)).to.equal( - 50 - AMOUNT_TO_TRANSFER - ) - expect(await this.cmtat.balanceOf(this.address2)).to.equal( - AMOUNT_TO_TRANSFER - ) - await expect(this.logs) - .to.emit(this.cmtat, 'Enforcement') - .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) - await expect(this.logs) - .to.emit(this.cmtat, 'Transfer') - .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) - }); - - it('testCannotNonEnforcerTransferFunds', async function () { - // Act - await expect( - this.cmtat.connect(this.address2).enforceTransfer(this.address1, this.address2, 20, 'Bad guy') - ) - .to.be.revertedWithCustomError( - this.cmtat, - 'AccessControlUnauthorizedAccount' - ) - .withArgs(this.address2.address, ENFORCER_ROLE_TRANSFER) - }) - }); - context('Freeze', function () { beforeEach(async function () { await this.cmtat.connect(this.admin).mint(this.address1, 50) diff --git a/test/common/ValidationModule/ValidationModuleSetRuleEngineCommon.js b/test/common/ValidationModule/ValidationModuleSetRuleEngineCommon.js index 6d9b15ad..5cea59f3 100644 --- a/test/common/ValidationModule/ValidationModuleSetRuleEngineCommon.js +++ b/test/common/ValidationModule/ValidationModuleSetRuleEngineCommon.js @@ -1,9 +1,11 @@ const { expect } = require('chai') -const { DEFAULT_ADMIN_ROLE } = require('../../utils') +const { DEFAULT_ADMIN_ROLE, ZERO_ADDRESS } = require('../../utils') function ValidationModuleSetRuleEngineCommon () { context('RuleEngineSetTest', function () { it('testCanBeSetByAdmin', async function () { + // Assert + expect(await this.cmtat.ruleEngine()).to.equal(ZERO_ADDRESS) // Act this.logs = await this.cmtat .connect(this.admin) @@ -13,6 +15,7 @@ function ValidationModuleSetRuleEngineCommon () { await expect(this.logs) .to.emit(this.cmtat, 'RuleEngine') .withArgs(this.ruleEngine) + expect(await this.cmtat.ruleEngine()).to.equal(this.ruleEngine) }) it('testCanNotBeSetByAdminWithTheSameValue', async function () { diff --git a/test/proxy/general/Proxy.test.js b/test/proxy/general/Proxy.test.js index 7dd4241d..6b0d70eb 100644 --- a/test/proxy/general/Proxy.test.js +++ b/test/proxy/general/Proxy.test.js @@ -1,5 +1,5 @@ const { expect } = require('chai') -const { DEFAULT_ADMIN_ROLE, PAUSER_ROLE } = require('../../utils') +const { PAUSER_ROLE } = require('../../utils') const { ZERO_ADDRESS } = require('../../utils') const { deployCMTATProxy, diff --git a/test/proxy/modules/ValidationModule/ValidationModule.test.js b/test/proxy/modules/ValidationModule/ValidationModule.test.js index 062077cd..6e7a7be2 100644 --- a/test/proxy/modules/ValidationModule/ValidationModule.test.js +++ b/test/proxy/modules/ValidationModule/ValidationModule.test.js @@ -1,4 +1,4 @@ -const ValidationModuleCommon = require('../../../common/ValidationModule/ValidationModuleSetRuleEngineCommon') +const ValidationModuleCommon = require('../../../common/ValidationModule/ValidationModuleCommon') const { deployCMTATProxy, fixture, From 693a41b16c9b86af872d5aa1a2970ed53845c67e Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Thu, 6 Feb 2025 12:45:44 +0100 Subject: [PATCH 08/26] Remove factory contract --- README.md | 83 +++++++------ contracts/deployment/CMTAT_BEACON_FACTORY.sol | 109 ---------------- contracts/deployment/CMTAT_TP_FACTORY.sol | 97 --------------- contracts/deployment/CMTAT_UUPS_FACTORY.sol | 92 -------------- .../deployment/libraries/CMTATFactoryBase.sol | 24 ---- .../libraries/CMTATFactoryInvariant.sol | 24 ---- .../deployment/libraries/CMTATFactoryRoot.sol | 70 ----------- contracts/libraries/FactoryErrors.sol | 13 -- doc/schema/drawio/Engine-Engine.drawio.png | Bin 55600 -> 54025 bytes doc/schema/drawio/Engine.drawio | 2 +- .../drawio/factory-BeaconFactory.drawio.png | Bin 36848 -> 0 bytes .../factory-TransparentFactory.drawio.png | Bin 43596 -> 0 bytes doc/schema/drawio/factory.drawio | 1 - test/proxy/general/factory/Beacon.test.js | 107 ---------------- .../factory/BeaconFactoryDeploy.test.js | 58 --------- .../proxy/general/factory/Transparent.test.js | 108 ---------------- .../factory/TransparentFactoyDeploy.test.js | 44 ------- .../general/factory/TransparentSalt.test.js | 117 ------------------ test/proxy/general/factory/UUPS.test.js | 103 --------------- .../general/factory/UUPSFactoyDeploy.test.js | 43 ------- 20 files changed, 44 insertions(+), 1051 deletions(-) delete mode 100644 contracts/deployment/CMTAT_BEACON_FACTORY.sol delete mode 100644 contracts/deployment/CMTAT_TP_FACTORY.sol delete mode 100644 contracts/deployment/CMTAT_UUPS_FACTORY.sol delete mode 100644 contracts/deployment/libraries/CMTATFactoryBase.sol delete mode 100644 contracts/deployment/libraries/CMTATFactoryInvariant.sol delete mode 100644 contracts/deployment/libraries/CMTATFactoryRoot.sol delete mode 100644 contracts/libraries/FactoryErrors.sol delete mode 100644 doc/schema/drawio/factory-BeaconFactory.drawio.png delete mode 100644 doc/schema/drawio/factory-TransparentFactory.drawio.png delete mode 100644 doc/schema/drawio/factory.drawio delete mode 100644 test/proxy/general/factory/Beacon.test.js delete mode 100644 test/proxy/general/factory/BeaconFactoryDeploy.test.js delete mode 100644 test/proxy/general/factory/Transparent.test.js delete mode 100644 test/proxy/general/factory/TransparentFactoyDeploy.test.js delete mode 100644 test/proxy/general/factory/TransparentSalt.test.js delete mode 100644 test/proxy/general/factory/UUPS.test.js delete mode 100644 test/proxy/general/factory/UUPSFactoyDeploy.test.js diff --git a/README.md b/README.md index a232bd77..e3a12f5a 100644 --- a/README.md +++ b/README.md @@ -111,9 +111,9 @@ Generally, these modules are not required to be compliant with the CMTA specific | Name | Documentation | Main File | | -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | MetaTxModule | [metatx.md](doc/modules/presentation/extensions/metatx.md) | [MetaTxModule.sol](./contracts/modules/wrapper/extensions/MetaTxModule.sol) | -| SnapshotModule | [ERC20Snapshot.md](doc/modules/presentation/extensions/ERC20Snapshot.md) | [ERC20SnapshotModule.sol](./contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol) | | DebtModule | [debt.md](doc/modules/presentation/extensions/debt.md) | [DebtModule.sol](./contracts/modules/wrapper/extensions/DebtModule.sol) | -| DocumentModue | [document.md](doc/modules/presentation/extensions/document.md) | [Document.sol](./contracts/modules/wrapper/extensions/DocumentModule.sol) | +| DocumentModule | [document.md](doc/modules/presentation/extensions/document.md) | [Document.sol](./contracts/modules/wrapper/extensions/DocumentModule.sol) | +| SnapshotModule | [ERC20Snapshot.md](https://github.com/CMTA/CMTAT/blob/dev/doc/modules/presentation/extensions/ERC20Snapshot.md) | [ERC20SnapshotModule.sol](https://github.com/CMTA/CMTAT/blob/dev/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol) | ##### Security @@ -141,7 +141,7 @@ An example of RuleEngine is also available on [GitHub](https://github.com/CMTA/R Here is the list of the different version available for each CMTAT version. -| Name | RuleEngine | +| CMTAT version | RuleEngine | | ----------------------- | ------------------------------------------------------------ | | CMTAT 2.5.0 (unaudited) | RuleEngine >= [v2.0.3](https://github.com/CMTA/RuleEngine/releases/tag/v2.0.3) (unaudited) | | CMTAT 2.4.0 (unaudited) | RuleEngine >=v2.0.0
Last version: [v2.0.2](https://github.com/CMTA/RuleEngine/releases/tag/v2.0.2)(unaudited) | @@ -161,17 +161,11 @@ This interface can be found in [./contracts/interfaces/engine/IRuleEngine.sol](. Before each transfer, the CMTAT calls the function `operateOnTransfer` which is the entrypoint for the RuleEngine. -#### AuthorizationEngine +Further reading: [Taurus - Token Transfer Management: How to Apply Restrictions with CMTAT and ERC-1404](https://www.taurushq.com/blog/token-transfer-management-how-to-apply-restrictions-with-cmtat-and-erc-1404/) (version used CMTAT v2.4.0) -> Warning: this engine may be deleted in the future +#### SnapshotEngine -The `AuthorizationEngine` is an external contract to add supplementary check on the functions `grantRole` and `revokeRole`from the CMTAT. - -This contract is managed in the `AuthorizationModule`. - -The `AuthorizationEngine` has to import an implement the interface [IAuthorizationEngine.sol](./contracts/interfaces/engine/IAuthorizationEngine.sol) which declares the functions `operateOnGrantRole` and `operateOnRevokeRole` - -Currently, there is only a prototype available: [CMTA/AuthorizationEngine](https://github.com/CMTA/AuthorizationEngine) +Engine to perform snapshot on-chain. #### DebtEngine @@ -193,7 +187,7 @@ Use an external contract provides two advantages: Here is the list of the different version available for each CMTAT version. -| Name | DebtEngine | +| CMTAT version | DebtEngine | | ------------------------ | ------------------------------------------------------------ | | CMTAT v2.5.0 (unaudited) | [DebtEngine v0.2.0](https://github.com/CMTA/DebtEngine/releases/tag/v0.2.0) (unaudited) | @@ -225,10 +219,31 @@ Use an external contract provides two advantages: Here is the list of the different version available for each CMTAT version. -| Name | DocumentEngine | +| CMTAT version | DocumentEngine | | ------------------------ | ------------------------------------------------------------ | | CMTAT v2.5.0 (unaudited) | [DocumentEngine v0.3.0](https://github.com/CMTA/DocumentEngine/releases/tag/v0.3.0) (unaudited) | +#### AuthorizationEngine (Deprecated) + +> Warning: this engine has been removed since CMTAT v3.0.0 + +The `AuthorizationEngine` was an external contract to add supplementary check on the functions `grantRole` and `revokeRole`from the CMTAT. Since delegating access rights to an external contract is complicated and it is better to manage access control directly in CMTAT, we removed it in version 3.0.0. + +**Details** + +This contract was managed in the `AuthorizationModule`. + +The `AuthorizationEngine` has to import an implement the interface [IAuthorizationEngine.sol](./contracts/interfaces/engine/IAuthorizationEngine.sol) which declares the functions `operateOnGrantRole` and `operateOnRevokeRole` + +There was only one prototype available: [CMTA/AuthorizationEngine](https://github.com/CMTA/AuthorizationEngine) + +| CMTAT version | AuthorizationEngine | +| -------------------------------------- | -------------------------------------- | +| CMTAT v3.0.0 | Removed | +| CMTAT v2.4.0, 2.5.0, 2.5.1 (unaudited) | AuthorizationEngine v1.0.0 (unaudited) | +| CMTAT 2.3.0 (audited) | Not available | +| CMTAT 1.0 (audited) | Not available | + ## Deployment model | Model | Contract | @@ -262,31 +277,16 @@ Note that deployment via a proxy is not mandatory, but is recommended by CMTA. Factory contracts are available to deploy the CMTAT with a beacon proxy, a transparent proxy or an UUPS proxy. -- [CMTAT_BEACON_FACTORY.sol](./contracts/deployment/CMTAT_BEACON_FACTORY.sol) - -- [CMTAT_TRANSPARENT_FACTORY.sol](./contracts/deployment/CMTAT_TP_FACTORY.sol) -- [CMTAT_UUPS_FACTORY.sol](./contracts/deployment/CMTAT_UUPS_FACTORY.sol) - -#### Beacon Proxy Factory - -The factory will use the same beacon for each beacon proxy. This beacon provides the address of the implementation contract, a CMTAT_PROXY contract. If you upgrade the beacon to point to a new implementation, it will change the implementation contract for all beacon proxy. - -![factory-Beacon Factory.drawio](./doc/schema/drawio/factory-BeaconFactory.drawio.png) - -#### Transparent Proxy Factory +These contract have now their own GitHub project: [CMTAT Factory](https://github.com/CMTA/CMTATFactory) -The factory will use the same implementation for each transparent proxy deployed. Each transparent proxy has its owned proxy admin, deployed inside the constructor of the transparent proxy. Each transparent proxy can upgrade their implementation to a new one independently and without impact on other proxies. - -![factory-Transparent Factory.drawio](./doc/schema/drawio/factory-TransparentFactory.drawio.png) - -#### UUPS ProxyFactory - -The factory will use the same implementation for each UUPS proxy deployed. Each UUPS proxy can upgrade their implementation to a new one independently and without impact on other proxies. - -Contrary to the Transparent Proxy, the logic to upgrade the proxy is situated in the implementation and not in the proxy. - -This is the reason whey there is a specific CMTAT contract which includes this logic to use: [CMTAT_PROXY_UUPS.sol](./contracts/CMTAT_PROXY_UUPS.sol) +| CMTAT version | CMTAT Factory | +| --------------------------------- | ------------------------------------------------------------ | +| CMTAT v3.0.0 | CMTAT Factory v0.1.0 (unaudited) | +| CMTAT v2.5.0 / v2.5.1 (unaudited) | Available within CMTAT
see contracts/deployment
(unaudited) | +| CMTAT 2.3.0 (audited) | Not available | +| CMTAT 1.0 (audited) | Not available | +Further reading: [Taurus - Making CMTAT Tokenization More Scalable and Cost-Effective with Proxy and Factory Contracts](https://www.taurushq.com/blog/cmtat-tokenization-deployment-with-proxy-and-factory/) (version used CMTAT v2.5.1) ## Security @@ -373,9 +373,10 @@ CMTA providers further documentation describing the CMTAT framework in a platfor ### Further reading - [CMTA - A comparison of different security token standards](https://cmta.ch/news-articles/a-comparison-of-different-security-token-standards) - [Taurus - Security Token Standards: A Closer Look at CMTAT](https://www.taurushq.com/blog/security-token-standards-a-closer-look-at-cmtat/) -- [Taurus - Equity Tokenization: How to Pay Dividend On-Chain Using CMTAT](https://www.taurushq.com/blog/equity-tokenization-how-to-pay-dividend-on-chain-using-cmtat/) -- [Taurus - Token Transfer Management: How to Apply Restrictions with CMTAT and ERC-1404](https://www.taurushq.com/blog/token-transfer-management-how-to-apply-restrictions-with-cmtat-and-erc-1404/) -- [Taurus - Addressing the Privacy and Compliance Challenge in Public Blockchain Token Transactions](https://www.taurushq.com/blog/enhancing-token-transaction-privacy-on-public-blockchains-while-ensuring-compliance/) +- [Taurus - Equity Tokenization: How to Pay Dividend On-Chain Using CMTAT](https://www.taurushq.com/blog/equity-tokenization-how-to-pay-dividend-on-chain-using-cmtat/) (CMTAT v2.4.0) +- [Taurus - Token Transfer Management: How to Apply Restrictions with CMTAT and ERC-1404](https://www.taurushq.com/blog/token-transfer-management-how-to-apply-restrictions-with-cmtat-and-erc-1404/) (CMTAT v2.4.0) +- [Taurus - Making CMTAT Tokenization More Scalable and Cost-Effective with Proxy and Factory Contracts](https://www.taurushq.com/blog/cmtat-tokenization-deployment-with-proxy-and-factory/) (CMTAT v2.5.1) +- [Taurus - Addressing the Privacy and Compliance Challenge in Public Blockchain Token Transactions](https://www.taurushq.com/blog/enhancing-token-transaction-privacy-on-public-blockchains-while-ensuring-compliance/) (Aztec) ## Others implementations Two versions are available for the blockchain [Tezos](https://tezos.com) @@ -383,6 +384,8 @@ Two versions are available for the blockchain [Tezos](https://tezos.com) - [@ligo/cmtat](https://github.com/ligolang/CMTAT-Ligo/) Unofficial version written in Ligo - See also [Tokenization of securities on Tezos by Frank Hillard](https://medium.com/@frank.hillard_62931/tokenization-of-securities-on-tezos-2e3c3e90fc5a) +For [Aztec](https://aztec.network), see [Taurus - Addressing the Privacy and Compliance Challenge in Public Blockchain Token Transactions](https://www.taurushq.com/blog/enhancing-token-transaction-privacy-on-public-blockchains-while-ensuring-compliance/) + ## Contract size diff --git a/contracts/deployment/CMTAT_BEACON_FACTORY.sol b/contracts/deployment/CMTAT_BEACON_FACTORY.sol deleted file mode 100644 index a9309a91..00000000 --- a/contracts/deployment/CMTAT_BEACON_FACTORY.sol +++ /dev/null @@ -1,109 +0,0 @@ -//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 "./libraries/CMTATFactoryRoot.sol"; - - -/** -* @notice Factory to deploy beacon proxy -* -*/ -contract CMTAT_BEACON_FACTORY is AccessControl, CMTATFactoryRoot { - UpgradeableBeacon public immutable beacon; - /** - * @param implementation_ contract implementation - * @param factoryAdmin admin - * @param beaconOwner owner - */ - constructor(address implementation_, address factoryAdmin, address beaconOwner, bool useCustomSalt_)CMTATFactoryRoot(factoryAdmin, useCustomSalt_) { - if(beaconOwner == address(0)){ - revert FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner(); - } - if(implementation_ == address(0)){ - // Forwarder is the zero address if no implementation provided - implementation_ = address(new CMTAT_PROXY(address(0))); - } - beacon = new UpgradeableBeacon(implementation_, beaconOwner); - } - - /*////////////////////////////////////////////////////////////// - PUBLIC/EXTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - /** - * @notice deploy CMTAT with a beacon proxy - * - */ - function deployCMTAT( - bytes32 deploymentSaltInput, - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument - ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(BeaconProxy cmtat) { - bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput); - bytes memory bytecode = _getBytecode( - // CMTAT function initialize - cmtatArgument); - cmtat = _deployBytecode(bytecode, deploymentSalt); - return cmtat; - } - - /** - * @param deploymentSalt salt for the deployment - * @param cmtatArgument argument for the function initialize - * @notice get the proxy address depending on a particular salt - */ - function computedProxyAddress( - bytes32 deploymentSalt, - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) { - bytes memory bytecode = _getBytecode( - // CMTAT function initialize - 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 - */ - function _deployBytecode(bytes memory bytecode, bytes32 deploymentSalt) internal returns (BeaconProxy cmtat) { - address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode); - cmtat = BeaconProxy(payable(cmtatAddress)); - cmtats[cmtatCounterId] = address(cmtat); - emit CMTAT(address(cmtat), cmtatCounterId); - ++cmtatCounterId; - cmtatsList.push(address(cmtat)); - return cmtat; - } - - - /** - * @notice return the smart contract bytecode - */ - function _getBytecode( - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) { - bytes memory _implementation = abi.encodeWithSelector( - CMTAT_PROXY(address(0)).initialize.selector, - cmtatArgument.CMTATAdmin, - cmtatArgument.ERC20Attributes, - cmtatArgument.baseModuleAttributes, - cmtatArgument.engines - ); - bytecode = abi.encodePacked(type(BeaconProxy).creationCode, abi.encode(address(beacon), _implementation)); - } -} \ No newline at end of file diff --git a/contracts/deployment/CMTAT_TP_FACTORY.sol b/contracts/deployment/CMTAT_TP_FACTORY.sol deleted file mode 100644 index 8c48df96..00000000 --- a/contracts/deployment/CMTAT_TP_FACTORY.sol +++ /dev/null @@ -1,97 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 -pragma solidity ^0.8.20; - -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; -import "../CMTAT_PROXY.sol"; -import "@openzeppelin/contracts/utils/Create2.sol"; -import "./libraries/CMTATFactoryInvariant.sol"; -import "./libraries/CMTATFactoryBase.sol"; - - -/** -* @notice Factory to deploy CMTAT with a transparent proxy -* -*/ -contract CMTAT_TP_FACTORY is CMTATFactoryBase { - - /** - * @param logic_ contract implementation, cannot be zero - * @param factoryAdmin admin - * @param useCustomSalt_ custom salt with create2 or not - */ - 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( - bytes32 deploymentSaltInput, - address proxyAdminOwner, - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument - ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(TransparentUpgradeableProxy cmtat) { - bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput); - bytes memory bytecode = _getBytecode(proxyAdminOwner, - // CMTAT function initialize - cmtatArgument); - cmtat = _deployBytecode(bytecode, deploymentSalt); - - return cmtat; - } - - /** - * @param deploymentSalt salt for the deployment - * @param proxyAdminOwner admin of the proxy - * @param cmtatArgument argument for the function initialize - * @notice get the proxy address depending on a particular salt - */ - function computedProxyAddress( - bytes32 deploymentSalt, - address proxyAdminOwner, - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) { - bytes memory bytecode = _getBytecode(proxyAdminOwner, - // CMTAT function initialize - cmtatArgument); - return Create2.computeAddress(deploymentSalt, keccak256(bytecode), address(this) ); - } - - - /*////////////////////////////////////////////////////////////// - INTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - - /** - * @notice Deploy CMTAT and push the created CMTAT in the list - */ - function _deployBytecode(bytes memory bytecode, bytes32 deploymentSalt) internal returns (TransparentUpgradeableProxy cmtat) { - address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode); - cmtat = TransparentUpgradeableProxy(payable(cmtatAddress)); - cmtats[cmtatCounterId] = address(cmtat); - emit CMTAT(address(cmtat), cmtatCounterId); - ++cmtatCounterId; - cmtatsList.push(address(cmtat)); - return cmtat; - } - - - /** - * @notice return the smart contract bytecode - */ - function _getBytecode( address proxyAdminOwner, - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) { - bytes memory implementation = abi.encodeWithSelector( - CMTAT_PROXY(address(0)).initialize.selector, - cmtatArgument.CMTATAdmin, - cmtatArgument.ERC20Attributes, - cmtatArgument.baseModuleAttributes, - cmtatArgument.engines - ); - bytecode = abi.encodePacked(type(TransparentUpgradeableProxy).creationCode, abi.encode(logic, proxyAdminOwner, implementation)); - } -} \ No newline at end of file diff --git a/contracts/deployment/CMTAT_UUPS_FACTORY.sol b/contracts/deployment/CMTAT_UUPS_FACTORY.sol deleted file mode 100644 index 808cc949..00000000 --- a/contracts/deployment/CMTAT_UUPS_FACTORY.sol +++ /dev/null @@ -1,92 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 -pragma solidity ^0.8.20; - -import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import "../CMTAT_PROXY_UUPS.sol"; -import "@openzeppelin/contracts/utils/Create2.sol"; -import "./libraries/CMTATFactoryInvariant.sol"; -import "./libraries/CMTATFactoryBase.sol"; - - -/** -* @notice Factory to deploy CMTAT with a UUPS proxy -* -*/ -contract CMTAT_UUPS_FACTORY is CMTATFactoryBase { - /** - * @param logic_ contract implementation, cannot be zero - * @param factoryAdmin admin - * @param useCustomSalt_ custom salt with create2 or not - */ - 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( - bytes32 deploymentSaltInput, - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument - ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(ERC1967Proxy cmtat) { - bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput); - bytes memory bytecode = _getBytecode( - // CMTAT function initialize - cmtatArgument); - cmtat = _deployBytecode(bytecode, deploymentSalt); - - return cmtat; - } - - /** - * @param deploymentSalt salt for the deployment - * @param cmtatArgument argument for the function initialize - * @notice get the proxy address depending on a particular salt - */ - function computedProxyAddress( - bytes32 deploymentSalt, - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) { - bytes memory bytecode = _getBytecode( - // CMTAT function initialize - cmtatArgument); - return Create2.computeAddress(deploymentSalt, keccak256(bytecode), address(this) ); - } - - /*////////////////////////////////////////////////////////////// - INTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - /** - * @notice Deploy CMTAT and push the created CMTAT in the list - */ - function _deployBytecode(bytes memory bytecode, bytes32 deploymentSalt) internal returns (ERC1967Proxy cmtat) { - address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode); - cmtat = ERC1967Proxy(payable(cmtatAddress)); - cmtats[cmtatCounterId] = address(cmtat); - emit CMTAT(address(cmtat), cmtatCounterId); - ++cmtatCounterId; - cmtatsList.push(address(cmtat)); - return cmtat; - } - - - /** - * @notice return the smart contract bytecode - */ - function _getBytecode( - // CMTAT function initialize - CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) { - bytes memory implementation = abi.encodeWithSelector( - CMTAT_PROXY_UUPS(address(0)).initialize.selector, - cmtatArgument.CMTATAdmin, - cmtatArgument.ERC20Attributes, - cmtatArgument.baseModuleAttributes, - cmtatArgument.engines - ); - bytecode = abi.encodePacked(type(ERC1967Proxy).creationCode, abi.encode(logic, implementation)); - } -} \ No newline at end of file diff --git a/contracts/deployment/libraries/CMTATFactoryBase.sol b/contracts/deployment/libraries/CMTATFactoryBase.sol deleted file mode 100644 index 8561c1ec..00000000 --- a/contracts/deployment/libraries/CMTATFactoryBase.sol +++ /dev/null @@ -1,24 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 -pragma solidity ^0.8.20; - -import "./CMTATFactoryRoot.sol"; - -/** -* @notice Code common to TP and UUPS Factory -* -*/ -abstract contract CMTATFactoryBase is CMTATFactoryRoot { - /* ============ State Variables ============ */ - address public immutable logic; - /* ============ Constructor ============ */ - /** - * @param logic_ contract implementation - * @param factoryAdmin admin - */ - constructor(address logic_, address factoryAdmin, bool useCustomSalt_)CMTATFactoryRoot( factoryAdmin, useCustomSalt_) { - if(logic_ == address(0)){ - revert FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForLogicContract(); - } - logic = logic_; - } -} \ No newline at end of file diff --git a/contracts/deployment/libraries/CMTATFactoryInvariant.sol b/contracts/deployment/libraries/CMTATFactoryInvariant.sol deleted file mode 100644 index 69b53be3..00000000 --- a/contracts/deployment/libraries/CMTATFactoryInvariant.sol +++ /dev/null @@ -1,24 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 -pragma solidity ^0.8.20; - - -import "../../interfaces/ICMTATConstructor.sol"; - -/** -* @notice List of Invariant (struct, constant, events) -* -*/ -abstract contract CMTATFactoryInvariant { - /* ============ 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); -} \ No newline at end of file diff --git a/contracts/deployment/libraries/CMTATFactoryRoot.sol b/contracts/deployment/libraries/CMTATFactoryRoot.sol deleted file mode 100644 index 9afedc20..00000000 --- a/contracts/deployment/libraries/CMTATFactoryRoot.sol +++ /dev/null @@ -1,70 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 -pragma solidity ^0.8.20; - -import "../../libraries/FactoryErrors.sol"; -import '@openzeppelin/contracts/access/AccessControl.sol'; -import "./CMTATFactoryInvariant.sol"; -/** -* @notice Code common to Beacon, TP and UUPS factory -* -*/ -abstract contract CMTATFactoryRoot is AccessControl, CMTATFactoryInvariant { - /* ============ State Variables ============ */ - // Public - address[] public cmtatsList; - bool immutable public useCustomSalt; - uint256 public cmtatCounterId; - /// mapping - mapping(uint256 => address) internal cmtats; - mapping(bytes32 => bool) internal customSaltUsed; - - /* ============ Constructor ============ */ - /** - * @param factoryAdmin admin - */ - constructor(address factoryAdmin, bool useCustomSalt_) { - if(factoryAdmin == address(0)){ - revert FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin(); - } - if(useCustomSalt_){ - useCustomSalt = useCustomSalt_; - } - _grantRole(DEFAULT_ADMIN_ROLE, factoryAdmin); - _grantRole(CMTAT_DEPLOYER_ROLE, factoryAdmin); - } - - - /*////////////////////////////////////////////////////////////// - PUBLIC/EXTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - /** - * @notice get CMTAT proxy address - * - */ - function CMTATProxyAddress(uint256 cmtatCounterId_) external view returns (address) { - return cmtats[cmtatCounterId_]; - } - - /*////////////////////////////////////////////////////////////// - INTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - /** - * @param deploymentSalt salt for deployment - * @dev - * if useCustomSalt is at false, the salt used is the current value of cmtatCounterId - */ - function _checkAndDetermineDeploymentSalt(bytes32 deploymentSalt) internal returns(bytes32 saltBytes){ - if(useCustomSalt){ - if(customSaltUsed[deploymentSalt]){ - revert FactoryErrors.CMTAT_Factory_SaltAlreadyUsed(); - }else { - customSaltUsed[deploymentSalt] = true; - saltBytes = deploymentSalt; - } - }else{ - saltBytes = bytes32(keccak256(abi.encodePacked(cmtatCounterId))); - } - } -} \ No newline at end of file diff --git a/contracts/libraries/FactoryErrors.sol b/contracts/libraries/FactoryErrors.sol deleted file mode 100644 index df964c51..00000000 --- a/contracts/libraries/FactoryErrors.sol +++ /dev/null @@ -1,13 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -/* -* @dev Factory contract custom errors -*/ -library FactoryErrors { - error CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin(); - error CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner(); - error CMTAT_Factory_AddressZeroNotAllowedForLogicContract(); - error CMTAT_Factory_SaltAlreadyUsed(); -} diff --git a/doc/schema/drawio/Engine-Engine.drawio.png b/doc/schema/drawio/Engine-Engine.drawio.png index 32a1600dcc75cb17b5d18b48c60f5d6612b7d380..e096dca7105cad59a4841a24b05de49ad11a48f4 100644 GIT binary patch delta 43468 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 V3v4+5NecdKtQ@5|r4~Em{{&^Vg(Cm} diff --git a/doc/schema/drawio/Engine.drawio b/doc/schema/drawio/Engine.drawio index 69cea1aa..8afd410a 100644 --- a/doc/schema/drawio/Engine.drawio +++ b/doc/schema/drawio/Engine.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/doc/schema/drawio/factory-BeaconFactory.drawio.png b/doc/schema/drawio/factory-BeaconFactory.drawio.png deleted file mode 100644 index 081a661dec7005a1bb0ec89380534e214d0d329a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36848 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 diff --git a/doc/schema/drawio/factory-TransparentFactory.drawio.png b/doc/schema/drawio/factory-TransparentFactory.drawio.png deleted file mode 100644 index d128640b1f2e0274e4003e0a1db6ea66e191d233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43596 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 diff --git a/doc/schema/drawio/factory.drawio b/doc/schema/drawio/factory.drawio deleted file mode 100644 index f86f0a66..00000000 --- a/doc/schema/drawio/factory.drawio +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/test/proxy/general/factory/Beacon.test.js b/test/proxy/general/factory/Beacon.test.js deleted file mode 100644 index fe702cc8..00000000 --- a/test/proxy/general/factory/Beacon.test.js +++ /dev/null @@ -1,107 +0,0 @@ -const { expect } = require('chai') -const { CMTAT_DEPLOYER_ROLE } = require('../../../utils.js') -const { ZERO_ADDRESS } = require('../../../utils.js') -const { - deployCMTATProxyImplementation, - fixture, - loadFixture -} = require('../../../deploymentUtils.js') -const DEPLOYMENT_DECIMAL = 0 -describe('Deploy Beacon with Factory', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.CMTAT_PROXY_IMPL = await deployCMTATProxyImplementation( - this.deployerAddress.address, - this._.address - ) - this.FACTORY = await ethers.deployContract('CMTAT_BEACON_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - this.admin, - this.admin, - false - ]) - this.CMTATArg = [ - this.admin, - ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], - [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] - ] - }) - - context('FactoryDeployment', function () { - it('testCanReturnTheRightImplementation', async function () { - // Act + Assert - expect(await this.FACTORY.implementation()).to.equal( - this.CMTAT_PROXY_IMPL.target - ) - }) - }) - - context('Deploy CMTAT with Factory', function () { - it('testCannotBeDeployedByAttacker', async function () { - // Act - await expect( - this.FACTORY.connect(this.attacker).deployCMTAT( - ethers.encodeBytes32String('test'), - this.CMTATArg - ) - ) - .to.be.revertedWithCustomError( - this.FACTORY, - 'AccessControlUnauthorizedAccount' - ) - .withArgs(this.attacker.address, CMTAT_DEPLOYER_ROLE) - }) - it('testCanDeployCMTATWithFactory', async function () { - let computedCMTATAddress = await this.FACTORY.computedProxyAddress( - // 0x0 => id counter 0 - ethers.keccak256(ethers.solidityPacked(['uint256'], [0x0])), - this.CMTATArg - ) - // Act - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.CMTATArg - ) - - // https://github.com/ethers-io/ethers.js/discussions/4484#discussioncomment-9890653 - const receipt = await this.logs.wait() - const filter = this.FACTORY.filters.CMTAT - let events = await this.FACTORY.queryFilter(filter, -1) - let args = events[0].args - // Check Id increment - expect(args[1]).to.equal(0) - // Assert - let CMTAT_ADDRESS = args[0] - // Check address with ID - expect(await this.FACTORY.CMTATProxyAddress(0)).to.equal(CMTAT_ADDRESS) - expect(await this.FACTORY.CMTATProxyAddress(0)).to.equal( - computedCMTATAddress - ) - const MyContract = await ethers.getContractFactory('CMTAT_PROXY') - const CMTAT_PROXY = MyContract.attach(CMTAT_ADDRESS) - // Act + Assert - await CMTAT_PROXY.connect(this.admin).mint(this.admin, 100) - // Deploy second contract - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.CMTATArg - ) - // Check Id increment - events = await this.FACTORY.queryFilter(filter, -1) - args = events[0].args - expect(args[1]).to.equal(1) - - // Check address - computedCMTATAddress = await this.FACTORY.computedProxyAddress( - ethers.keccak256(ethers.solidityPacked(['uint256'], [0x1])), - this.CMTATArg - ) - CMTAT_ADDRESS = args[0] - expect(await this.FACTORY.CMTATProxyAddress(1)).to.equal(CMTAT_ADDRESS) - expect(await this.FACTORY.CMTATProxyAddress(1)).to.equal( - computedCMTATAddress - ) - }) - }) -}) diff --git a/test/proxy/general/factory/BeaconFactoryDeploy.test.js b/test/proxy/general/factory/BeaconFactoryDeploy.test.js deleted file mode 100644 index 255b3bae..00000000 --- a/test/proxy/general/factory/BeaconFactoryDeploy.test.js +++ /dev/null @@ -1,58 +0,0 @@ -const { ZERO_ADDRESS } = require('../../../utils.js') -const { expect } = require('chai') -const DEPLOYMENT_DECIMAL = 0 -const { - deployCMTATProxyImplementation, - fixture, - loadFixture -} = require('../../../deploymentUtils.js') -describe('Deploy Beacon with Factory', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.CMTAT_PROXY_IMPL = await deployCMTATProxyImplementation( - this._.address, - this.deployerAddress.address - ) - this.FACTORYCustomError = await ethers.deployContract( - 'CMTAT_BEACON_FACTORY', - [this.CMTAT_PROXY_IMPL.target, this.admin, this.admin, true] - ) - this.CMTATArg = [ - this.admin, - ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], - [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] - ] - }) - context('BeaconDeployment', function () { - it('testCanDeployFactoryWithNoImplementation', async function () { - this.FACTORY = await ethers.deployContract('CMTAT_BEACON_FACTORY', [ - ZERO_ADDRESS, - this.admin, - this.admin, - false - ]) - await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.CMTATArg - ) - const CMTAT_ADDRESS = await this.FACTORY.CMTATProxyAddress(0) - const MyContract = await ethers.getContractFactory('CMTAT_PROXY') - const CMTAT_PROXY = MyContract.attach(CMTAT_ADDRESS) - // Act + Assert - await CMTAT_PROXY.connect(this.admin).mint(this.admin, 100) - }) - it('testCannotDeployIfBeaconOwnerIsZero', async function () { - await expect( - ethers.deployContract('CMTAT_BEACON_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - this.admin.address, - ZERO_ADDRESS - ]) - ).to.be.revertedWithCustomError( - this.FACTORYCustomError, - 'CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner' - ) - }) - }) -}) diff --git a/test/proxy/general/factory/Transparent.test.js b/test/proxy/general/factory/Transparent.test.js deleted file mode 100644 index 60570594..00000000 --- a/test/proxy/general/factory/Transparent.test.js +++ /dev/null @@ -1,108 +0,0 @@ -const { expect } = require('chai') -const { ZERO_ADDRESS, CMTAT_DEPLOYER_ROLE } = require('../../../utils.js') -const { - DEPLOYMENT_FLAG, - deployCMTATProxyImplementation, - fixture, - loadFixture -} = require('../../../deploymentUtils.js') -const { ethers } = require('hardhat') -const DEPLOYMENT_DECIMAL = 0 -describe('Deploy TP with Factory', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.CMTAT_PROXY_IMPL = await deployCMTATProxyImplementation( - this._.address, - this.deployerAddress.address - ) - this.FACTORY = await ethers.deployContract('CMTAT_TP_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - this.admin, - false - ]) - - this.CMTATArg = [ - this.admin, - ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], - [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] - ] - }) - - context('FactoryDeployment', function () { - it('testCanReturnTheRightImplementation', async function () { - // Act + Assert - expect(await this.FACTORY.logic()).to.equal(this.CMTAT_PROXY_IMPL.target) - }) - }) - - context('Deploy CMTAT with Factory', function () { - it('testCannotBeDeployedByAttacker', async function () { - // Act - await expect( - this.FACTORY.connect(this.attacker).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin.address, - this.CMTATArg - ) - ) - .to.be.revertedWithCustomError( - this.FACTORY, - 'AccessControlUnauthorizedAccount' - ) - .withArgs(this.attacker.address, CMTAT_DEPLOYER_ROLE) - }) - it('testCanDeployCMTATWithFactory', async function () { - let computedCMTATAddress = await this.FACTORY.computedProxyAddress( - // 0x0 => id counter 0 - ethers.keccak256(ethers.solidityPacked(['uint256'], [0x0])), - this.admin, - this.CMTATArg - ) - // Act - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin, - this.CMTATArg - ) - const receipt = await this.logs.wait() - const filter = this.FACTORY.filters.CMTAT - let events = await this.FACTORY.queryFilter(filter, -1) - let args = events[0].args - // Assert - // Check Id - expect(args[1]).to.equal(0) - let CMTAT_ADDRESS = args[0] - // Check address with ID - expect(await this.FACTORY.CMTATProxyAddress(0)).to.equal(CMTAT_ADDRESS) - expect(await this.FACTORY.CMTATProxyAddress(0)).to.equal( - computedCMTATAddress - ) - const MyContract = await ethers.getContractFactory('CMTAT_PROXY') - const CMTAT_PROXY = MyContract.attach(CMTAT_ADDRESS) - await CMTAT_PROXY.connect(this.admin).mint(this.admin, 100) - // Second deployment - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin, - this.CMTATArg - ) - // Check Id increment - events = await this.FACTORY.queryFilter(filter, -1) - args = events[0].args - expect(args[1]).to.equal(1) - - // Check address - computedCMTATAddress = await this.FACTORY.computedProxyAddress( - ethers.keccak256(ethers.solidityPacked(['uint256'], [0x1])), - this.admin, - this.CMTATArg - ) - CMTAT_ADDRESS = args[0] - expect(await this.FACTORY.CMTATProxyAddress(1)).to.equal(CMTAT_ADDRESS) - expect(await this.FACTORY.CMTATProxyAddress(1)).to.equal( - computedCMTATAddress - ) - }) - }) -}) diff --git a/test/proxy/general/factory/TransparentFactoyDeploy.test.js b/test/proxy/general/factory/TransparentFactoyDeploy.test.js deleted file mode 100644 index 99d03227..00000000 --- a/test/proxy/general/factory/TransparentFactoyDeploy.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const { expect } = require('chai') -const { ZERO_ADDRESS } = require('../../../utils.js') -const { - deployCMTATProxyImplementation, - fixture, - loadFixture -} = require('../../../deploymentUtils.js') -describe('Deploy TP Factory', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.CMTAT_PROXY_IMPL = await deployCMTATProxyImplementation( - this._.address, - this.deployerAddress.address - ) - this.FACTORYCustomError = await ethers.deployContract('CMTAT_TP_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - this.admin, - true - ]) - }) - - context('FactoryDeployment', function () { - it('testCannotDeployIfImplementationIsZero', async function () { - await expect( - ethers.deployContract('CMTAT_TP_FACTORY', [ZERO_ADDRESS, this.admin]) - ).to.be.revertedWithCustomError( - this.FACTORYCustomError, - 'CMTAT_Factory_AddressZeroNotAllowedForLogicContract' - ) - }) - - it('testCannotDeployIfFactoryAdminIsZero', async function () { - await expect( - ethers.deployContract('CMTAT_TP_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - ZERO_ADDRESS - ]) - ).to.be.revertedWithCustomError( - this.FACTORYCustomError, - 'CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin' - ) - }) - }) -}) diff --git a/test/proxy/general/factory/TransparentSalt.test.js b/test/proxy/general/factory/TransparentSalt.test.js deleted file mode 100644 index 76348e40..00000000 --- a/test/proxy/general/factory/TransparentSalt.test.js +++ /dev/null @@ -1,117 +0,0 @@ -const { expect } = require('chai') -const { ZERO_ADDRESS, CMTAT_DEPLOYER_ROLE } = require('../../../utils.js') -const { - DEPLOYMENT_FLAG, - deployCMTATProxyImplementation, - fixture, - loadFixture -} = require('../../../deploymentUtils.js') -const { ethers } = require('hardhat') -const DEPLOYMENT_DECIMAL = 0 -describe('Deploy TP with Factory - Salt', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.CMTAT_PROXY_IMPL = await deployCMTATProxyImplementation( - this._.address, - this.deployerAddress.address - ) - this.FACTORY = await ethers.deployContract('CMTAT_TP_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - this.admin, - true - ]) - this.CMTATArg = [ - this.admin, - ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], - [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] - ] - }) - - context('FactoryDeployment', function () { - it('testCanReturnTheRightImplementation', async function () { - // Act + Assert - expect(await this.FACTORY.logic()).to.equal(this.CMTAT_PROXY_IMPL.target) - }) - }) - - context('Deploy CMTAT with Factory', function () { - it('testCannotBeDeployedByAttacker', async function () { - // Act - await expect( - this.FACTORY.connect(this.attacker).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin, - this.CMTATArg - ) - ) - .to.be.revertedWithCustomError( - this.FACTORY, - 'AccessControlUnauthorizedAccount' - ) - .withArgs(this.attacker.address, CMTAT_DEPLOYER_ROLE) - }) - it('testCanDeployCMTATWithFactory', async function () { - // Act - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin, - this.CMTATArg - ) - // Assert - // Check Id - const receipt = await this.logs.wait() - const filter = this.FACTORY.filters.CMTAT - let events = await this.FACTORY.queryFilter(filter, -1) - let args = events[0].args - expect(args[1]).to.equal(0) - const CMTAT_ADDRESS = args[0] - const MyContract = await ethers.getContractFactory('CMTAT_PROXY') - const CMTAT_PROXY = MyContract.attach(CMTAT_ADDRESS) - // Check address with ID - expect(await this.FACTORY.CMTATProxyAddress(0)).to.equal(CMTAT_ADDRESS) - await CMTAT_PROXY.connect(this.admin).mint(this.admin, 100) - // Second deployment - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test2'), - this.admin, - this.CMTATArg - ) - // Check Id increment - events = await this.FACTORY.queryFilter(filter, -1) - args = events[0].args - expect(args[1]).to.equal(1) - // Revert - await expect( - this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin, - this.CMTATArg - ) - ).to.be.revertedWithCustomError( - this.FACTORY, - 'CMTAT_Factory_SaltAlreadyUsed' - ) - }) - it('testCannotDeployCMTATWithFactoryWithSaltAlreadyUsed', async function () { - // Arrange - await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin, - this.CMTATArg - ) - - // Act with Revert - await expect( - this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.admin, - this.CMTATArg - ) - ).to.be.revertedWithCustomError( - this.FACTORY, - 'CMTAT_Factory_SaltAlreadyUsed' - ) - }) - }) -}) diff --git a/test/proxy/general/factory/UUPS.test.js b/test/proxy/general/factory/UUPS.test.js deleted file mode 100644 index e5b370c2..00000000 --- a/test/proxy/general/factory/UUPS.test.js +++ /dev/null @@ -1,103 +0,0 @@ -const { expect } = require('chai') -const { ZERO_ADDRESS, CMTAT_DEPLOYER_ROLE } = require('../../../utils.js') -const { - DEPLOYMENT_FLAG, - deployCMTATProxyUUPSImplementation, - fixture, - loadFixture -} = require('../../../deploymentUtils.js') -const { ethers } = require('hardhat') -const DEPLOYMENT_DECIMAL = 0 -describe('Deploy UUPPSwith Factory', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.CMTAT_PROXY_IMPL = await deployCMTATProxyUUPSImplementation( - this._.address, - this.deployerAddress.address - ) - this.FACTORY = await ethers.deployContract('CMTAT_UUPS_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - this.admin, - false - ]) - - this.CMTATArg = [ - this.admin, - ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], - [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] - ] - }) - - context('FactoryDeployment', function () { - it('testCanReturnTheRightImplementation', async function () { - // Act + Assert - expect(await this.FACTORY.logic()).to.equal(this.CMTAT_PROXY_IMPL.target) - }) - }) - - context('Deploy CMTAT with Factory', function () { - it('testCannotBeDeployedByAttacker', async function () { - // Act - await expect( - this.FACTORY.connect(this.attacker).deployCMTAT( - ethers.encodeBytes32String('test'), - this.CMTATArg - ) - ) - .to.be.revertedWithCustomError( - this.FACTORY, - 'AccessControlUnauthorizedAccount' - ) - .withArgs(this.attacker.address, CMTAT_DEPLOYER_ROLE) - }) - it('testCanDeployCMTATWithFactory', async function () { - let computedCMTATAddress = await this.FACTORY.computedProxyAddress( - // 0x0 => id counter 0 - ethers.keccak256(ethers.solidityPacked(['uint256'], [0x0])), - this.CMTATArg - ) - // Act - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.CMTATArg - ) - const receipt = await this.logs.wait() - const filter = this.FACTORY.filters.CMTAT - let events = await this.FACTORY.queryFilter(filter, -1) - let args = events[0].args - // Assert - // Check Id - expect(args[1]).to.equal(0) - let CMTAT_ADDRESS = args[0] - // Check address with ID - expect(await this.FACTORY.CMTATProxyAddress(0)).to.equal(CMTAT_ADDRESS) - expect(await this.FACTORY.CMTATProxyAddress(0)).to.equal( - computedCMTATAddress - ) - const MyContract = await ethers.getContractFactory('CMTAT_PROXY_UUPS') - const CMTAT_PROXY = MyContract.attach(CMTAT_ADDRESS) - await CMTAT_PROXY.connect(this.admin).mint(this.admin, 100) - // Second deployment - this.logs = await this.FACTORY.connect(this.admin).deployCMTAT( - ethers.encodeBytes32String('test'), - this.CMTATArg - ) - // Check Id increment - events = await this.FACTORY.queryFilter(filter, -1) - args = events[0].args - expect(args[1]).to.equal(1) - - // Check address - computedCMTATAddress = await this.FACTORY.computedProxyAddress( - ethers.keccak256(ethers.solidityPacked(['uint256'], [0x1])), - this.CMTATArg - ) - CMTAT_ADDRESS = args[0] - expect(await this.FACTORY.CMTATProxyAddress(1)).to.equal(CMTAT_ADDRESS) - expect(await this.FACTORY.CMTATProxyAddress(1)).to.equal( - computedCMTATAddress - ) - }) - }) -}) diff --git a/test/proxy/general/factory/UUPSFactoyDeploy.test.js b/test/proxy/general/factory/UUPSFactoyDeploy.test.js deleted file mode 100644 index 97b68c6b..00000000 --- a/test/proxy/general/factory/UUPSFactoyDeploy.test.js +++ /dev/null @@ -1,43 +0,0 @@ -const { ZERO_ADDRESS } = require('../../../utils.js') -const { expect } = require('chai') -const { - deployCMTATProxyImplementation, - fixture, - loadFixture -} = require('../../../deploymentUtils.js') -describe('Deploy UUPS Factory', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.CMTAT_PROXY_IMPL = await deployCMTATProxyImplementation( - this._.address, - this.deployerAddress.address - ) - this.FACTORYCustomError = await ethers.deployContract( - 'CMTAT_UUPS_FACTORY', - [this.CMTAT_PROXY_IMPL.target, this.admin, true] - ) - }) - - context('FactoryDeployment', function () { - it('testCannotDeployIfImplementationIsZero', async function () { - await expect( - ethers.deployContract('CMTAT_UUPS_FACTORY', [ZERO_ADDRESS, this.admin]) - ).to.be.revertedWithCustomError( - this.FACTORYCustomError, - 'CMTAT_Factory_AddressZeroNotAllowedForLogicContract' - ) - }) - - it('testCannotDeployIfFactoryAdminIsZero', async function () { - await expect( - ethers.deployContract('CMTAT_UUPS_FACTORY', [ - this.CMTAT_PROXY_IMPL.target, - ZERO_ADDRESS - ]) - ).to.be.revertedWithCustomError( - this.FACTORYCustomError, - 'CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin' - ) - }) - }) -}) From 0a0385e47118d37c323c36e1888c408fbcf01903 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Mon, 10 Feb 2025 17:23:22 +0100 Subject: [PATCH 09/26] SnapsModule: clean-up + add doc --- README.md | 48 +++++++- .../interfaces/engine/ISnapshotEngine.sol | 3 +- contracts/libraries/Errors.sol | 23 +--- contracts/mocks/SnapshotEngineMock.sol | 4 +- .../library/snapshot/ERC20SnapshotModule.sol | 80 ------------- .../snapshot/ERC20SnapshotModuleInternal.sol | 113 ------------------ .../library/snapshot}/ICMTATSnapshot.sol | 0 .../mocks/library/snapshot/SnapshotErrors.sol | 30 +++++ .../{base => }/SnapshotModuleBase.sol | 26 ++-- contracts/modules/CMTAT_BASE.sol | 2 +- .../wrapper/extensions/DocumentModule.sol | 2 +- .../extensions/SnapshotEngineModule.sol | 7 +- .../SnapshotEngine}/ERC20Snapshot.md | 0 .../schema/SnpashotModule-Schema.drawio | 0 .../schema/getNextSnapshot.pdf | Bin .../schema/rescheduleSnapshot.pdf | Bin .../schema/scheduleSnapshot.pdf | Bin .../schema/unscheduleSnapshot.pdf | Bin .../snapshot-functionalities.odt | Bin .../snapshot-functionalities.pdf | Bin .../test/snapshotModule-test.drawio | 0 .../test/snapshotModule-test.pdf | Bin .../controllers/validation.md | 0 .../{presentation => }/core/ERC20Burn.md | 0 .../{presentation => }/core/ERC20Mint.md | 0 .../{presentation => }/core/ERC20base.md | 0 doc/modules/{presentation => }/core/base.md | 0 .../{presentation => }/core/enforcement.md | 0 doc/modules/{presentation => }/core/pause.md | 0 doc/modules/extensions/ERC20Snapshot.md | 64 ++++++++++ .../{presentation => }/extensions/debt.md | 0 .../{presentation => }/extensions/document.md | 0 .../{presentation => }/extensions/metatx.md | 0 .../security/authorization.md | 0 34 files changed, 163 insertions(+), 239 deletions(-) delete mode 100644 contracts/mocks/library/snapshot/ERC20SnapshotModule.sol delete mode 100644 contracts/mocks/library/snapshot/ERC20SnapshotModuleInternal.sol rename contracts/{interfaces => mocks/library/snapshot}/ICMTATSnapshot.sol (100%) create mode 100644 contracts/mocks/library/snapshot/SnapshotErrors.sol rename contracts/mocks/library/snapshot/{base => }/SnapshotModuleBase.sol (95%) rename doc/{modules/presentation/extensions => mocks/SnapshotEngine}/ERC20Snapshot.md (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/schema/SnpashotModule-Schema.drawio (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/schema/getNextSnapshot.pdf (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/schema/rescheduleSnapshot.pdf (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/schema/scheduleSnapshot.pdf (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/schema/unscheduleSnapshot.pdf (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/snapshot-functionalities.odt (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/snapshot-functionalities.pdf (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/test/snapshotModule-test.drawio (100%) rename doc/{modules/snapshot => mocks/SnapshotEngine}/test/snapshotModule-test.pdf (100%) rename doc/modules/{presentation => }/controllers/validation.md (100%) rename doc/modules/{presentation => }/core/ERC20Burn.md (100%) rename doc/modules/{presentation => }/core/ERC20Mint.md (100%) rename doc/modules/{presentation => }/core/ERC20base.md (100%) rename doc/modules/{presentation => }/core/base.md (100%) rename doc/modules/{presentation => }/core/enforcement.md (100%) rename doc/modules/{presentation => }/core/pause.md (100%) create mode 100644 doc/modules/extensions/ERC20Snapshot.md rename doc/modules/{presentation => }/extensions/debt.md (100%) rename doc/modules/{presentation => }/extensions/document.md (100%) rename doc/modules/{presentation => }/extensions/metatx.md (100%) rename doc/modules/{presentation => }/security/authorization.md (100%) diff --git a/README.md b/README.md index e3a12f5a..c208a62b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ The preferred way to receive comments is through the GitHub issue tracker. Priv Note that CMTAT may be used in other jurisdictions than Switzerland, and for tokenizing various asset types, beyond equity and debt products. + + ## Functionality ### Overview @@ -58,6 +60,8 @@ At deployment, the parameter `forwarder` inside the CMTAT contract constructor Please see the OpenGSN [documentation](https://docs.opengsn.org/contracts/#receiving-a-relayed-call) for more details on what is done to support GSN in the contract. +----- + ## Architecture CMTAT architecture is divided in two main componentes: module and engines @@ -113,7 +117,7 @@ Generally, these modules are not required to be compliant with the CMTA specific | MetaTxModule | [metatx.md](doc/modules/presentation/extensions/metatx.md) | [MetaTxModule.sol](./contracts/modules/wrapper/extensions/MetaTxModule.sol) | | DebtModule | [debt.md](doc/modules/presentation/extensions/debt.md) | [DebtModule.sol](./contracts/modules/wrapper/extensions/DebtModule.sol) | | DocumentModule | [document.md](doc/modules/presentation/extensions/document.md) | [Document.sol](./contracts/modules/wrapper/extensions/DocumentModule.sol) | -| SnapshotModule | [ERC20Snapshot.md](https://github.com/CMTA/CMTAT/blob/dev/doc/modules/presentation/extensions/ERC20Snapshot.md) | [ERC20SnapshotModule.sol](https://github.com/CMTA/CMTAT/blob/dev/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol) | +| SnapshotModule | [ERC20Snapshot.md](doc/modules/presentation/extensions/ERC20Snapshot.md) | [ERC20SnapshotModule.sol](./contracts/modules/wrapper/extensions//ERC20SnapshotModule.sol) | ##### Security @@ -165,11 +169,39 @@ Further reading: [Taurus - Token Transfer Management: How to Apply Restrictions #### SnapshotEngine -Engine to perform snapshot on-chain. +Engine to perform snapshot on-chain. This engine is defined in the module `SnapshotModule`. + +CMTAT implements only one function defined in the interface [ISnapshotEngine](./contracts/interfaces/engine/ISnapshotEngine.sol) + +After each transfer, the CMTAT calls the function `operateOnTransfer` which is the entrypoint for the SnapshotEngine. + +```solidity +/* +* @dev minimum interface to define a SnapshotEngine +*/ +interface ISnapshotEngine { + /** + * @dev Returns true if the operation is a success, and false otherwise. + */ + function operateOnTransfer(address from, address to, uint256 balanceFrom, uint256 balanceTo, uint256 totalSupply) external; +} +``` + + + +| CMTAT | SnapshotEngine | +| -------------------------------- | ------------------------------------------------------------ | +| CMTAT v2.3.0 | SnapshotEngine v0.1.0 (unaudited) | +| CMTAT v2.4.0, v2.5.0 (unaudited) | Include inside SnapshotModule (unaudited) | +| CMTAT v2.3.0 | Include inside SnapshotModule (unaudited) | +| CMTAT v1.0.0 | Include inside SnapshotModule, but not gas efficient (audited) | #### DebtEngine -This engine replaces the modules Debt and Credit included since CMTAT version. +This engine: + +- Replaces the modules Debt and Credit included since CMTAT version. +- Is defined in the `DebtModule`. CMTAT only implements two functions , available in the interface [IDebtEngine](./contracts/interfaces/engine/IDebtEngine.sol) to get information from the debtEngine. @@ -195,6 +227,8 @@ Here is the list of the different version available for each CMTAT version. The `DocumentEngine` is an external contract to support [*ERC-1643*](https://github.com/ethereum/EIPs/issues/1643) inside CMTAT, a standard proposition to manage document on-chain. This standard is notably used by [ERC-1400](https://github.com/ethereum/eips/issues/1411) from Polymath. +This engine is defined in the module `DocumentModule` + This EIP defines a document with three attributes: - A short name (represented as a `bytes32`) @@ -244,6 +278,8 @@ There was only one prototype available: [CMTA/AuthorizationEngine](https://githu | CMTAT 2.3.0 (audited) | Not available | | CMTAT 1.0 (audited) | Not available | +---- + ## Deployment model | Model | Contract | @@ -252,8 +288,6 @@ There was only one prototype available: [CMTA/AuthorizationEngine](https://githu | Transparent or Beacon Proxy | [CMTAT_PROXY](./contracts/CMTAT_PROXY.sol) | | UUPS Proxy | [CMTAT_PROXY_UUPS](./contracts/CMTAT_PROXY_UUPS.sol) | - - ### Standalone To deploy CMTAT without a proxy, in standalone mode, you need to use the contract version `CMTAT_STANDALONE`. @@ -288,6 +322,8 @@ These contract have now their own GitHub project: [CMTAT Factory](https://github Further reading: [Taurus - Making CMTAT Tokenization More Scalable and Cost-Effective with Proxy and Factory Contracts](https://www.taurushq.com/blog/cmtat-tokenization-deployment-with-proxy-and-factory/) (version used CMTAT v2.5.1) +------ + ## Security ### Vulnerability disclosure @@ -354,6 +390,8 @@ A code coverage is available in [index.html](doc/general/test/coverage/index.htm As with any token contract, access to the owner key must be adequately restricted. Likewise, access to the proxy contract must be restricted and seggregated from the token contract. +------ + ## Documentation Here a summary of the main documents: diff --git a/contracts/interfaces/engine/ISnapshotEngine.sol b/contracts/interfaces/engine/ISnapshotEngine.sol index b85254bb..4dc41d31 100644 --- a/contracts/interfaces/engine/ISnapshotEngine.sol +++ b/contracts/interfaces/engine/ISnapshotEngine.sol @@ -3,12 +3,11 @@ pragma solidity ^0.8.20; /* -* @dev minimum interface to define a RuleEngine +* @dev minimum interface to define a SnapshotEngine */ interface ISnapshotEngine { /** * @dev Returns true if the operation is a success, and false otherwise. */ function operateOnTransfer(address from, address to, uint256 balanceFrom, uint256 balanceTo, uint256 totalSupply) external; - } \ No newline at end of file diff --git a/contracts/libraries/Errors.sol b/contracts/libraries/Errors.sol index e9f72804..f2f85597 100644 --- a/contracts/libraries/Errors.sol +++ b/contracts/libraries/Errors.sol @@ -10,27 +10,8 @@ library Errors { error CMTAT_InvalidTransfer(address from, address to, uint256 amount); // SnapshotModule - error CMTAT_SnapshotModule_SnapshotScheduledInThePast( - uint256 time, - uint256 timestamp - ); - error CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot( - uint256 time, - uint256 lastSnapshotTimestamp - ); - error CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot( - uint256 time, - uint256 nextSnapshotTimestamp - ); - error CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot( - uint256 time, - uint256 previousSnapshotTimestamp - ); - error CMTAT_SnapshotModule_SnapshotAlreadyExists(); - error CMTAT_SnapshotModule_SnapshotAlreadyDone(); - error CMTAT_SnapshotModule_NoSnapshotScheduled(); - error CMTAT_SnapshotModule_SnapshotNotFound(); - + error CMTAT_SnapshotModule_SameValue(); + // ERC20BaseModule error CMTAT_ERC20BaseModule_WrongAllowance( address spender, diff --git a/contracts/mocks/SnapshotEngineMock.sol b/contracts/mocks/SnapshotEngineMock.sol index c9f25a7b..6d2a07ba 100644 --- a/contracts/mocks/SnapshotEngineMock.sol +++ b/contracts/mocks/SnapshotEngineMock.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; -import {SnapshotModuleBase} from "./library/snapshot/base/SnapshotModuleBase.sol"; -import {ICMTATSnapshot} from "../interfaces/ICMTATSnapshot.sol"; +import {SnapshotModuleBase} from "./library/snapshot/SnapshotModuleBase.sol"; +import {ICMTATSnapshot} from "./library/snapshot/ICMTATSnapshot.sol"; import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; /* * @title a RuleEngine mock for testing, not suitable for production diff --git a/contracts/mocks/library/snapshot/ERC20SnapshotModule.sol b/contracts/mocks/library/snapshot/ERC20SnapshotModule.sol deleted file mode 100644 index 021bfe1f..00000000 --- a/contracts/mocks/library/snapshot/ERC20SnapshotModule.sol +++ /dev/null @@ -1,80 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -import {AuthorizationModule} from "../../../modules/security/AuthorizationModule.sol"; -import {ERC20SnapshotModuleInternal} from ".//ERC20SnapshotModuleInternal.sol"; - -/** - * @title Snapshot module - * @dev - * - * Useful to take a snapshot of token holder balance and total supply at a specific time - */ - -abstract contract ERC20SnapshotModule is - ERC20SnapshotModuleInternal, - AuthorizationModule -{ - /* ============ State Variables ============ */ - bytes32 public constant SNAPSHOOTER_ROLE = keccak256("SNAPSHOOTER_ROLE"); - /* ============ Initializer Function ============ */ - function __ERC20SnasphotModule_init_unchained() internal onlyInitializing { - // no variable to initialize - } - /*////////////////////////////////////////////////////////////// - PUBLIC/EXTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - /** - * @notice - * Schedule a snapshot at the given time specified as a number of seconds since epoch. - * The time cannot be before the time of the latest scheduled, but not yet created snapshot. - */ - function scheduleSnapshot(uint256 time) public onlyRole(SNAPSHOOTER_ROLE) { - _scheduleSnapshot(time); - } - - /** - * @notice - * Schedule a snapshot at the given time specified as a number of seconds since epoch. - * The time cannot be before the time of the latest scheduled, but not yet created snapshot. - */ - function scheduleSnapshotNotOptimized( - uint256 time - ) public onlyRole(SNAPSHOOTER_ROLE) { - _scheduleSnapshotNotOptimized(time); - } - - /** - * @notice - * Reschedule the scheduled snapshot, but not yet created snapshot with the given oldTime to be created at the given newTime specified as a number of seconds since epoch. - * The newTime cannot be before the time of the previous scheduled, but not yet created snapshot, or after the time fo the next scheduled snapshot. - */ - function rescheduleSnapshot( - uint256 oldTime, - uint256 newTime - ) public onlyRole(SNAPSHOOTER_ROLE) { - _rescheduleSnapshot(oldTime, newTime); - } - - /** - * @notice - * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. - * There should not be any other snapshots scheduled after this one. - */ - function unscheduleLastSnapshot( - uint256 time - ) public onlyRole(SNAPSHOOTER_ROLE) { - _unscheduleLastSnapshot(time); - } - - /** - * @notice - * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. - */ - function unscheduleSnapshotNotOptimized( - uint256 time - ) public onlyRole(SNAPSHOOTER_ROLE) { - _unscheduleSnapshotNotOptimized(time); - } -} diff --git a/contracts/mocks/library/snapshot/ERC20SnapshotModuleInternal.sol b/contracts/mocks/library/snapshot/ERC20SnapshotModuleInternal.sol deleted file mode 100644 index 46e0fbab..00000000 --- a/contracts/mocks/library/snapshot/ERC20SnapshotModuleInternal.sol +++ /dev/null @@ -1,113 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; -import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol'; -import {SnapshotModuleBase} from "./base/SnapshotModuleBase.sol"; -import {ICMTATSnapshot} from "../../../interfaces/ICMTATSnapshot.sol"; -/** - * @dev Snapshot module internal. - * - * 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. - */ - -abstract contract ERC20SnapshotModuleInternal is ICMTATSnapshot, SnapshotModuleBase, ERC20Upgradeable { - using Arrays for uint256[]; - - /* ============ Initializer Function ============ */ - function __ERC20Snapshot_init_unchained() internal onlyInitializing { - // Nothing to do - // _currentSnapshotTime & _currentSnapshotIndex are initialized to zero - } - - - /*////////////////////////////////////////////////////////////// - PUBLIC/EXTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - /** - * @notice Return snapshotBalanceOf and snapshotTotalSupply to avoid multiple calls - * @return ownerBalance , totalSupply - see snapshotBalanceOf and snapshotTotalSupply - */ - function snapshotInfo(uint256 time, address owner) public view returns (uint256 ownerBalance, uint256 totalSupply) { - ownerBalance = snapshotBalanceOf(time, owner); - totalSupply = snapshotTotalSupply(time); - } - - /** - * @notice Return snapshotBalanceOf for each address in the array and the total supply - * @return ownerBalances array with the balance of each address, the total supply - */ - function snapshotInfoBatch(uint256 time, address[] calldata addresses) public view returns (uint256[] memory ownerBalances, uint256 totalSupply) { - ownerBalances = new uint256[](addresses.length); - for(uint256 i = 0; i < addresses.length; ++i){ - ownerBalances[i] = snapshotBalanceOf(time, addresses[i]); - } - totalSupply = snapshotTotalSupply(time); - } - - /** - * @notice Return snapshotBalanceOf for each address in the array and the total supply - * @return ownerBalances array with the balance of each address, the total supply - */ - function snapshotInfoBatch(uint256[] calldata times, address[] calldata addresses) public view returns (uint256[][] memory ownerBalances, uint256[] memory totalSupply) { - ownerBalances = new uint256[][](times.length); - totalSupply = new uint256[](times.length); - for(uint256 iT = 0; iT < times.length; ++iT){ - (ownerBalances[iT], totalSupply[iT]) = snapshotInfoBatch(times[iT],addresses); - } - } - - /** - * @notice Return the number of tokens owned by the given owner at the time when the snapshot with the given time was created. - * @return value stored in the snapshot, or the actual balance if no snapshot - */ - function snapshotBalanceOf( - uint256 time, - address owner - ) public view returns (uint256) { - return _snapshotBalanceOf(time, owner, balanceOf(owner)); - } - - /** - * @dev See {OpenZeppelin - ERC20Snapshot} - * Retrieves the total supply at the specified time. - * @return value stored in the snapshot, or the actual totalSupply if no snapshot - */ - function snapshotTotalSupply(uint256 time) public view returns (uint256) { - return _snapshotTotalSupply(time, totalSupply()); - } - - /*////////////////////////////////////////////////////////////// - INTERNAL/PRIVATE FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - /** - * @dev Update balance and/or total supply snapshots before the values are modified. This is implemented - * in the _beforeTokenTransfer hook, which is executed for _mint, _burn, and _transfer operations. - */ - function _snapshotUpdate( - address from, - address to - ) internal virtual { - _setCurrentSnapshot(); - if (from != address(0)) { - // for both burn and transfer - _updateAccountSnapshot(from, balanceOf(from)); - if (to != address(0)) { - // transfer - _updateAccountSnapshot(to, balanceOf(to)); - } else { - // burn - _updateTotalSupplySnapshot(totalSupply()); - } - } else { - // mint - _updateAccountSnapshot(to, balanceOf(to)); - _updateTotalSupplySnapshot(totalSupply()); - } - } -} diff --git a/contracts/interfaces/ICMTATSnapshot.sol b/contracts/mocks/library/snapshot/ICMTATSnapshot.sol similarity index 100% rename from contracts/interfaces/ICMTATSnapshot.sol rename to contracts/mocks/library/snapshot/ICMTATSnapshot.sol diff --git a/contracts/mocks/library/snapshot/SnapshotErrors.sol b/contracts/mocks/library/snapshot/SnapshotErrors.sol new file mode 100644 index 00000000..75c69f96 --- /dev/null +++ b/contracts/mocks/library/snapshot/SnapshotErrors.sol @@ -0,0 +1,30 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +/* +* @dev Snapshot custom errors +*/ +library SnapshotErrors { + // SnapshotModule + error CMTAT_SnapshotModule_SnapshotScheduledInThePast( + uint256 time, + uint256 timestamp + ); + error CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot( + uint256 time, + uint256 lastSnapshotTimestamp + ); + error CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot( + uint256 time, + uint256 nextSnapshotTimestamp + ); + error CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot( + uint256 time, + uint256 previousSnapshotTimestamp + ); + error CMTAT_SnapshotModule_SnapshotAlreadyExists(); + error CMTAT_SnapshotModule_SnapshotAlreadyDone(); + error CMTAT_SnapshotModule_NoSnapshotScheduled(); + error CMTAT_SnapshotModule_SnapshotNotFound(); +} diff --git a/contracts/mocks/library/snapshot/base/SnapshotModuleBase.sol b/contracts/mocks/library/snapshot/SnapshotModuleBase.sol similarity index 95% rename from contracts/mocks/library/snapshot/base/SnapshotModuleBase.sol rename to contracts/mocks/library/snapshot/SnapshotModuleBase.sol index 16377471..cb68fbd5 100644 --- a/contracts/mocks/library/snapshot/base/SnapshotModuleBase.sol +++ b/contracts/mocks/library/snapshot/SnapshotModuleBase.sol @@ -5,7 +5,7 @@ pragma solidity ^0.8.20; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol'; -import {Errors} from "../../../../libraries/Errors.sol"; +import {SnapshotErrors} from "./SnapshotErrors.sol"; /** * @dev Base for the Snapshot module @@ -139,13 +139,13 @@ abstract contract SnapshotModuleBase is Initializable { $._scheduledSnapshots.length - 1 ]; if (time < nextSnapshotTime) { - revert Errors + revert SnapshotErrors .CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot( time, nextSnapshotTime ); } else if (time == nextSnapshotTime) { - revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists(); + revert SnapshotErrors.CMTAT_SnapshotModule_SnapshotAlreadyExists(); } } $._scheduledSnapshots.push(time); @@ -161,7 +161,7 @@ abstract contract SnapshotModuleBase is Initializable { (bool isFound, uint256 index) = _findScheduledSnapshotIndex(time); // Perfect match if (isFound) { - revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists(); + revert SnapshotErrors.CMTAT_SnapshotModule_SnapshotAlreadyExists(); } // if no upper bound match found, we push the snapshot at the end of the list if (index == $._scheduledSnapshots.length) { @@ -190,24 +190,24 @@ abstract contract SnapshotModuleBase is Initializable { _checkTimeSnapshotAlreadyDone(oldTime); _checkTimeInThePast(newTime); if ($._scheduledSnapshots.length == 0) { - revert Errors.CMTAT_SnapshotModule_NoSnapshotScheduled(); + revert SnapshotErrors.CMTAT_SnapshotModule_NoSnapshotScheduled(); } uint256 index = _findAndRevertScheduledSnapshotIndex(oldTime); if (index + 1 < $._scheduledSnapshots.length) { uint256 nextSnapshotTime = $._scheduledSnapshots[index + 1]; if (newTime > nextSnapshotTime) { - revert Errors + revert SnapshotErrors .CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot( newTime, nextSnapshotTime ); } else if (newTime == nextSnapshotTime) { - revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists(); + revert SnapshotErrors.CMTAT_SnapshotModule_SnapshotAlreadyExists(); } } if (index > 0) { if (newTime <= $._scheduledSnapshots[index - 1]) - revert Errors + revert SnapshotErrors .CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot( newTime, $._scheduledSnapshots[index - 1] @@ -226,11 +226,11 @@ abstract contract SnapshotModuleBase is Initializable { // Check the time firstly to avoid an useless read of storage _checkTimeSnapshotAlreadyDone(time); if ($._scheduledSnapshots.length == 0) { - revert Errors.CMTAT_SnapshotModule_NoSnapshotScheduled(); + revert SnapshotErrors.CMTAT_SnapshotModule_NoSnapshotScheduled(); } // All snapshot time are unique, so we do not check the indice if (time !=$._scheduledSnapshots[$._scheduledSnapshots.length - 1]) { - revert Errors.CMTAT_SnapshotModule_SnapshotNotFound(); + revert SnapshotErrors.CMTAT_SnapshotModule_SnapshotNotFound(); } $._scheduledSnapshots.pop(); emit SnapshotUnschedule(time); @@ -454,13 +454,13 @@ abstract contract SnapshotModuleBase is Initializable { ) private view returns (uint256){ (bool isFound, uint256 index) = _findScheduledSnapshotIndex(time); if (!isFound) { - revert Errors.CMTAT_SnapshotModule_SnapshotNotFound(); + revert SnapshotErrors.CMTAT_SnapshotModule_SnapshotNotFound(); } return index; } function _checkTimeInThePast(uint256 time) internal view{ if (time <= block.timestamp) { - revert Errors.CMTAT_SnapshotModule_SnapshotScheduledInThePast( + revert SnapshotErrors.CMTAT_SnapshotModule_SnapshotScheduledInThePast( time, block.timestamp ); @@ -468,7 +468,7 @@ abstract contract SnapshotModuleBase is Initializable { } function _checkTimeSnapshotAlreadyDone(uint256 time) internal view{ if (time <= block.timestamp) { - revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyDone(); + revert SnapshotErrors.CMTAT_SnapshotModule_SnapshotAlreadyDone(); } } diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 3200c695..6de8fa04 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -206,10 +206,10 @@ abstract contract CMTAT_BASE is if (!ValidationModule._operateOnTransfer(from, to, amount)) { revert Errors.CMTAT_InvalidTransfer(from, to, amount); } + ERC20Upgradeable._update(from, to, amount); if(address(snapshotEngine()) != address(0)){ snapshotEngine().operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); } - ERC20Upgradeable._update(from, to, amount); } /*////////////////////////////////////////////////////////////// METAXTX MODULE diff --git a/contracts/modules/wrapper/extensions/DocumentModule.sol b/contracts/modules/wrapper/extensions/DocumentModule.sol index 8fe27da2..5b117cbf 100644 --- a/contracts/modules/wrapper/extensions/DocumentModule.sol +++ b/contracts/modules/wrapper/extensions/DocumentModule.sol @@ -22,7 +22,7 @@ abstract contract DocumentModule is AuthorizationModule, IERC1643 { event DocumentEngine(IERC1643 indexed newDocumentEngine); /* ============ ERC-7201 ============ */ - bytes32 public constant DOCUMENT_ROLE = keccak256("DOCUMENT_ROLE"); + bytes32 public constant DOCUMENT_ROLE = keccak256("DOCUMENT_ROLE"); // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.DocumentModule")) - 1)) & ~bytes32(uint256(0xff)) bytes32 private constant DocumentModuleStorageLocation = 0x5edcb2767f407e647b6a4171ef53e8015a3eff0bb2b6e7765b1a26332bc43000; /* ==== ERC-7201 State Variables === */ diff --git a/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol index 8c297b78..a513b8b3 100644 --- a/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol +++ b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol @@ -7,6 +7,8 @@ import {Errors} from "../../../libraries/Errors.sol"; import {ISnapshotEngine} from "../../../interfaces/engine/ISnapshotEngine.sol"; abstract contract SnapshotEngineModule is AuthorizationModule { + /* ============ State Variables ============ */ + bytes32 public constant SNAPSHOOTER_ROLE = keccak256("SNAPSHOOTER_ROLE"); /* ============ Events ============ */ /** * @dev Emitted when a rule engine is set. @@ -52,8 +54,11 @@ abstract contract SnapshotEngineModule is AuthorizationModule { */ function setSnapshotEngine( ISnapshotEngine snapshotEngine_ - ) external onlyRole(DEFAULT_ADMIN_ROLE) { + ) external onlyRole(SNAPSHOOTER_ROLE) { SnapshotEngineModuleStorage storage $ = _getSnapshotEngineModuleStorage(); + if ($._snapshotEngine == snapshotEngine_){ + revert Errors.CMTAT_SnapshotModule_SameValue(); + } $._snapshotEngine = snapshotEngine_; emit SnapshotEngine(snapshotEngine_); } diff --git a/doc/modules/presentation/extensions/ERC20Snapshot.md b/doc/mocks/SnapshotEngine/ERC20Snapshot.md similarity index 100% rename from doc/modules/presentation/extensions/ERC20Snapshot.md rename to doc/mocks/SnapshotEngine/ERC20Snapshot.md diff --git a/doc/modules/snapshot/schema/SnpashotModule-Schema.drawio b/doc/mocks/SnapshotEngine/schema/SnpashotModule-Schema.drawio similarity index 100% rename from doc/modules/snapshot/schema/SnpashotModule-Schema.drawio rename to doc/mocks/SnapshotEngine/schema/SnpashotModule-Schema.drawio diff --git a/doc/modules/snapshot/schema/getNextSnapshot.pdf b/doc/mocks/SnapshotEngine/schema/getNextSnapshot.pdf similarity index 100% rename from doc/modules/snapshot/schema/getNextSnapshot.pdf rename to doc/mocks/SnapshotEngine/schema/getNextSnapshot.pdf diff --git a/doc/modules/snapshot/schema/rescheduleSnapshot.pdf b/doc/mocks/SnapshotEngine/schema/rescheduleSnapshot.pdf similarity index 100% rename from doc/modules/snapshot/schema/rescheduleSnapshot.pdf rename to doc/mocks/SnapshotEngine/schema/rescheduleSnapshot.pdf diff --git a/doc/modules/snapshot/schema/scheduleSnapshot.pdf b/doc/mocks/SnapshotEngine/schema/scheduleSnapshot.pdf similarity index 100% rename from doc/modules/snapshot/schema/scheduleSnapshot.pdf rename to doc/mocks/SnapshotEngine/schema/scheduleSnapshot.pdf diff --git a/doc/modules/snapshot/schema/unscheduleSnapshot.pdf b/doc/mocks/SnapshotEngine/schema/unscheduleSnapshot.pdf similarity index 100% rename from doc/modules/snapshot/schema/unscheduleSnapshot.pdf rename to doc/mocks/SnapshotEngine/schema/unscheduleSnapshot.pdf diff --git a/doc/modules/snapshot/snapshot-functionalities.odt b/doc/mocks/SnapshotEngine/snapshot-functionalities.odt similarity index 100% rename from doc/modules/snapshot/snapshot-functionalities.odt rename to doc/mocks/SnapshotEngine/snapshot-functionalities.odt diff --git a/doc/modules/snapshot/snapshot-functionalities.pdf b/doc/mocks/SnapshotEngine/snapshot-functionalities.pdf similarity index 100% rename from doc/modules/snapshot/snapshot-functionalities.pdf rename to doc/mocks/SnapshotEngine/snapshot-functionalities.pdf diff --git a/doc/modules/snapshot/test/snapshotModule-test.drawio b/doc/mocks/SnapshotEngine/test/snapshotModule-test.drawio similarity index 100% rename from doc/modules/snapshot/test/snapshotModule-test.drawio rename to doc/mocks/SnapshotEngine/test/snapshotModule-test.drawio diff --git a/doc/modules/snapshot/test/snapshotModule-test.pdf b/doc/mocks/SnapshotEngine/test/snapshotModule-test.pdf similarity index 100% rename from doc/modules/snapshot/test/snapshotModule-test.pdf rename to doc/mocks/SnapshotEngine/test/snapshotModule-test.pdf diff --git a/doc/modules/presentation/controllers/validation.md b/doc/modules/controllers/validation.md similarity index 100% rename from doc/modules/presentation/controllers/validation.md rename to doc/modules/controllers/validation.md diff --git a/doc/modules/presentation/core/ERC20Burn.md b/doc/modules/core/ERC20Burn.md similarity index 100% rename from doc/modules/presentation/core/ERC20Burn.md rename to doc/modules/core/ERC20Burn.md diff --git a/doc/modules/presentation/core/ERC20Mint.md b/doc/modules/core/ERC20Mint.md similarity index 100% rename from doc/modules/presentation/core/ERC20Mint.md rename to doc/modules/core/ERC20Mint.md diff --git a/doc/modules/presentation/core/ERC20base.md b/doc/modules/core/ERC20base.md similarity index 100% rename from doc/modules/presentation/core/ERC20base.md rename to doc/modules/core/ERC20base.md diff --git a/doc/modules/presentation/core/base.md b/doc/modules/core/base.md similarity index 100% rename from doc/modules/presentation/core/base.md rename to doc/modules/core/base.md diff --git a/doc/modules/presentation/core/enforcement.md b/doc/modules/core/enforcement.md similarity index 100% rename from doc/modules/presentation/core/enforcement.md rename to doc/modules/core/enforcement.md diff --git a/doc/modules/presentation/core/pause.md b/doc/modules/core/pause.md similarity index 100% rename from doc/modules/presentation/core/pause.md rename to doc/modules/core/pause.md diff --git a/doc/modules/extensions/ERC20Snapshot.md b/doc/modules/extensions/ERC20Snapshot.md new file mode 100644 index 00000000..d154e1de --- /dev/null +++ b/doc/modules/extensions/ERC20Snapshot.md @@ -0,0 +1,64 @@ +# Snapshot Module + +This document defines the Snapshot Module for the CMTA Token specification. + +[TOC] + +## Rationale + +> In relation to distributions or the exercise of rights attached to tokenized securities, it is necessary to determine the number of tokens held by certain users at a certain point in time to allow issuers to carry out certain corporate actions such as dividend or interest payments. +> +> Such moments are generally referred to in practice as the "record date" or the "record time" (i.e. the time that is relevant to determine the eligibility of security holders for the relevant corporate action). +> +> The snapshot functions to determine the number of tokens recorded on the various ledger addresses at a specific point in time and to use that information to carry out transactions on-chain. + +## Schema + +### Inheritance + +![surya_inheritance_ERC20SnapshotModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png) + +### UML + +![SnapshotModule](../../../schema/sol2uml/ERC20SnapshotModule.svg) + +### Graph + +#### SnapshotModule + +![surya_graph_ERC20SnapshotModule.sol](../../../schema/surya_graph/surya_graph_ERC20SnapshotModule.sol.png) + +## Sūrya's Description Report + +### Legend + +| Symbol | Meaning | +| :----: | ------------------------- | +| 🛑 | Function can modify state | +| 💵 | Function is payable | + +### SnapshotModule + +#### Files Description Table + + +| File Name | SHA-1 Hash | +| ---------------------------------------------------- | ---------------------------------------- | +| ./modules/wrapper/extensions/ERC20SnapshotModule.sol | fbe645e4def4944ea02fa9b07ecd3dfe367ff725 | + + +#### Contracts Description Table + + +| Contract | Type | Bases | | | +| :---------------------: | :----------------------------------: | :----------------------------------------------: | :------------: | :--------------: | +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +| | | | | | +| **ERC20SnapshotModule** | Implementation | ERC20SnapshotModuleInternal, AuthorizationModule | | | +| └ | __ERC20SnasphotModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | scheduleSnapshot | Public ❗️ | 🛑 | onlyRole | +| └ | scheduleSnapshotNotOptimized | Public ❗️ | 🛑 | onlyRole | +| └ | rescheduleSnapshot | Public ❗️ | 🛑 | onlyRole | +| └ | unscheduleLastSnapshot | Public ❗️ | 🛑 | onlyRole | +| └ | unscheduleSnapshotNotOptimized | Public ❗️ | 🛑 | onlyRole | + diff --git a/doc/modules/presentation/extensions/debt.md b/doc/modules/extensions/debt.md similarity index 100% rename from doc/modules/presentation/extensions/debt.md rename to doc/modules/extensions/debt.md diff --git a/doc/modules/presentation/extensions/document.md b/doc/modules/extensions/document.md similarity index 100% rename from doc/modules/presentation/extensions/document.md rename to doc/modules/extensions/document.md diff --git a/doc/modules/presentation/extensions/metatx.md b/doc/modules/extensions/metatx.md similarity index 100% rename from doc/modules/presentation/extensions/metatx.md rename to doc/modules/extensions/metatx.md diff --git a/doc/modules/presentation/security/authorization.md b/doc/modules/security/authorization.md similarity index 100% rename from doc/modules/presentation/security/authorization.md rename to doc/modules/security/authorization.md From 3e81a65d82d31c3dc1fe9d39a50e9d55d9ad49e1 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Mon, 10 Feb 2025 17:30:30 +0100 Subject: [PATCH 10/26] FIx bug with snapshot Engine --- README.md | 2 +- contracts/modules/CMTAT_BASE.sol | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c208a62b..6d60ca2f 100644 --- a/README.md +++ b/README.md @@ -173,7 +173,7 @@ Engine to perform snapshot on-chain. This engine is defined in the module `Snaps CMTAT implements only one function defined in the interface [ISnapshotEngine](./contracts/interfaces/engine/ISnapshotEngine.sol) -After each transfer, the CMTAT calls the function `operateOnTransfer` which is the entrypoint for the SnapshotEngine. +**Before** each transfer, the CMTAT calls the function `operateOnTransfer` which is the entrypoint for the SnapshotEngine. ```solidity /* diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 6de8fa04..f6cb0fb7 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -206,10 +206,11 @@ abstract contract CMTAT_BASE is if (!ValidationModule._operateOnTransfer(from, to, amount)) { revert Errors.CMTAT_InvalidTransfer(from, to, amount); } - ERC20Upgradeable._update(from, to, amount); + // Required to be performed before the update if(address(snapshotEngine()) != address(0)){ snapshotEngine().operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); } + ERC20Upgradeable._update(from, to, amount); } /*////////////////////////////////////////////////////////////// METAXTX MODULE From 9ae7f60a4b7451636dbaa15a860454060d5d6f88 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Mon, 10 Feb 2025 18:04:52 +0100 Subject: [PATCH 11/26] Remove useless package --- doc/TOOLCHAIN.md | 18 ------- package-lock.json | 125 +--------------------------------------------- package.json | 2 - 3 files changed, 1 insertion(+), 144 deletions(-) diff --git a/doc/TOOLCHAIN.md b/doc/TOOLCHAIN.md index 8f3a2d56..59840d10 100644 --- a/doc/TOOLCHAIN.md +++ b/doc/TOOLCHAIN.md @@ -20,10 +20,6 @@ It is used to perform a code coverage #### Nomiclabs - Hardhat -**[hardhat-truffle5](https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-truffle5)** - -[Hardhat](https://hardhat.org/) plugin for integration with TruffleContract from Truffle 5. This allows tests and scripts written for Truffle to work with Hardhat. - **[hardhat-web3](https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-web3)** This plugin integrates [Web3.js](https://github.com/ethereum/web3.js) `1.x` into [Hardhat](https://hardhat.org/). @@ -85,13 +81,6 @@ marked as experimental package on 22.08.2022. A Mocha reporter for Ethereum test suites (Truffle) -**[Eth-Sig-Util](https://www.npmjs.com/package/ethereumjs-wallet)** -A collection of Ethereum signing functions. - -Warning : -* Deprecated in favor of : [@metamask/eth-sig-util](https://github.com/MetaMask/eth-sig-util) -* It was not possible to use the new version of the library because the test "MetaTxModule.test.js" doesn't work with this one. The check of the signature fails. - [keccak256](https://www.npmjs.com/package/keccak256) A wrapper for the [`keccak`](https://www.npmjs.com/package/keccak) library to compute 256 bit keccak hash in JavaScript. @@ -119,13 +108,6 @@ Program that extracts documentation for a Solidity project. Utility tool for smart contract systems. -#### solidity-coverage - -#### Others - -**[dotenv](https://www.npmjs.com/package/dotenv)** -Loads environment variables from a .env file - ### Production This section concerns the packages installed in the section `dependencies` of package.json diff --git a/package-lock.json b/package-lock.json index 78c2ad45..ce85326b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MPL", "dependencies": { "@openzeppelin/contracts": "5.2.0", - "@openzeppelin/contracts-upgradeable": "^5.2.0" + "@openzeppelin/contracts-upgradeable": "5.2.0" }, "devDependencies": { "@nomicfoundation/hardhat-chai-matchers": "^2.0.7", @@ -19,7 +19,6 @@ "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", "coveralls": "^3.1.1", - "dotenv": "^16.0.3", "eslint": "^8.38.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", @@ -28,7 +27,6 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.1", "eth-gas-reporter": "^0.2.27", - "eth-sig-util": "^3.0.1", "ethereumjs-util": "^7.1.5", "ethjs-abi": "^0.2.1", "ethlint": "^1.2.5", @@ -8514,18 +8512,6 @@ "no-case": "^2.2.0" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -9826,57 +9812,6 @@ "ultron": "~1.1.0" } }, - "node_modules/eth-sig-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", - "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dev": true, - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - } - }, - "node_modules/eth-sig-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, "node_modules/ethereum-bloom-filters": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", @@ -30413,12 +30348,6 @@ "no-case": "^2.2.0" } }, - "dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -31407,58 +31336,6 @@ } } }, - "eth-sig-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", - "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", - "dev": true, - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - }, - "dependencies": { - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, "ethereum-bloom-filters": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", diff --git a/package.json b/package.json index e91cf696..14c25e7a 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,6 @@ "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", "coveralls": "^3.1.1", - "dotenv": "^16.0.3", "eslint": "^8.38.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", @@ -77,7 +76,6 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.1", "eth-gas-reporter": "^0.2.27", - "eth-sig-util": "^3.0.1", "ethereumjs-util": "^7.1.5", "ethjs-abi": "^0.2.1", "ethlint": "^1.2.5", From 7a361dc23eff706490c6a47f8e67dd7ac8c07efa Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Tue, 11 Feb 2025 13:06:40 +0100 Subject: [PATCH 12/26] Add ERC-1363 --- README.md | 24 +++- contracts/{ => deployment}/CMTAT_PROXY.sol | 2 +- .../{ => deployment}/CMTAT_PROXY_UUPS.sol | 2 +- .../{ => deployment}/CMTAT_STANDALONE.sol | 2 +- .../ERC1363/CMTAT_PROXY_ERC1363.sol | 23 ++++ .../ERC1363/CMTAT_STANDALONE_ERC1363.sol | 36 ++++++ .../test/proxy/CMTAT_PROXY_TEST.sol | 2 +- .../test/proxy/CMTAT_PROXY_TEST_UUPS.sol | 2 +- contracts/modules/CMTAT_BASE.sol | 8 +- contracts/modules/CMTAT_ERC1363_BASE.sol | 113 ++++++++++++++++++ 10 files changed, 200 insertions(+), 14 deletions(-) rename contracts/{ => deployment}/CMTAT_PROXY.sol (87%) rename contracts/{ => deployment}/CMTAT_PROXY_UUPS.sol (96%) rename contracts/{ => deployment}/CMTAT_STANDALONE.sol (93%) create mode 100644 contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol create mode 100644 contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol rename contracts/{ => mocks}/test/proxy/CMTAT_PROXY_TEST.sol (89%) rename contracts/{ => mocks}/test/proxy/CMTAT_PROXY_TEST_UUPS.sol (88%) create mode 100644 contracts/modules/CMTAT_ERC1363_BASE.sol diff --git a/README.md b/README.md index 6d60ca2f..f588735f 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ The preferred way to receive comments is through the GitHub issue tracker. Priv Note that CMTAT may be used in other jurisdictions than Switzerland, and for tokenizing various asset types, beyond equity and debt products. +[TOC] + ## Functionality @@ -282,11 +284,15 @@ There was only one prototype available: [CMTA/AuthorizationEngine](https://githu ## Deployment model -| Model | Contract | -| --------------------------- | ---------------------------------------------------- | -| Standalone | [CMTAT_STANDALONE](./contracts/CMTAT_STANDALONE.sol) | -| Transparent or Beacon Proxy | [CMTAT_PROXY](./contracts/CMTAT_PROXY.sol) | -| UUPS Proxy | [CMTAT_PROXY_UUPS](./contracts/CMTAT_PROXY_UUPS.sol) | +Contracts for deployment are available in the directory [./contracts/deployment](./contracts/deployment) + +| CMTAT Model | Description | Contract | +| ------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| Standalone | Deployment without proxy
(immutable) | [CMTAT_STANDALONE](./contracts/deployment/CMTAT_STANDALONE.sol) | +| Proxy | Deployment with a standard proxy (Transparent or Beacon Proxy) | [CMTAT_PROXY](./contracts/deployment/CMTAT_PROXY.sol) | +| UUPS Proxy | Deployment with a UUPS proxy | [CMTAT_PROXY_UUPS](./contracts/deployment/CMTAT_PROXY_UUPS.sol) | +| Proxy ERC-1363 | ERC1363 Proxy version | [CMTAT_PROXY_ERC1363](./contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol) | +| Standalone ERC-1363 | ERC1363 Standalone version | [CMTAT_STANDALONE_ERC1363](./contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol) | ### Standalone @@ -307,6 +313,14 @@ CMTAT also implements the [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201) to Note that deployment via a proxy is not mandatory, but is recommended by CMTA. +### ERC-1363 + +[ERC-1363](https://eips.ethereum.org/EIPS/eip-1363) is an extension interface for ERC-20 tokens that supports executing code on a recipient contract after transfers, or code on a spender contract after approvals, in a single transaction. + +Two dedicated version (proxy and standalone) implementing this standard are available. + +More information on this standard here: [erc1363.org](https://erc1363.org), [RareSkills - ERC-1363](https://www.rareskills.io/post/erc-1363) + ### Factory Factory contracts are available to deploy the CMTAT with a beacon proxy, a transparent proxy or an UUPS proxy. diff --git a/contracts/CMTAT_PROXY.sol b/contracts/deployment/CMTAT_PROXY.sol similarity index 87% rename from contracts/CMTAT_PROXY.sol rename to contracts/deployment/CMTAT_PROXY.sol index 35ee2c24..9b20b6de 100644 --- a/contracts/CMTAT_PROXY.sol +++ b/contracts/deployment/CMTAT_PROXY.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "./modules/CMTAT_BASE.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../modules/CMTAT_BASE.sol"; /** diff --git a/contracts/CMTAT_PROXY_UUPS.sol b/contracts/deployment/CMTAT_PROXY_UUPS.sol similarity index 96% rename from contracts/CMTAT_PROXY_UUPS.sol rename to contracts/deployment/CMTAT_PROXY_UUPS.sol index 154acb39..3a47286f 100644 --- a/contracts/CMTAT_PROXY_UUPS.sol +++ b/contracts/deployment/CMTAT_PROXY_UUPS.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "./modules/CMTAT_BASE.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../modules/CMTAT_BASE.sol"; /** diff --git a/contracts/CMTAT_STANDALONE.sol b/contracts/deployment/CMTAT_STANDALONE.sol similarity index 93% rename from contracts/CMTAT_STANDALONE.sol rename to contracts/deployment/CMTAT_STANDALONE.sol index edbf4367..30dc3888 100644 --- a/contracts/CMTAT_STANDALONE.sol +++ b/contracts/deployment/CMTAT_STANDALONE.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "./modules/CMTAT_BASE.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../modules/CMTAT_BASE.sol"; /** diff --git a/contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol b/contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol new file mode 100644 index 00000000..7e648c85 --- /dev/null +++ b/contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol @@ -0,0 +1,23 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +import {CMTAT_ERC1363_BASE} from "../../modules/CMTAT_ERC1363_BASE.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../../modules/CMTAT_BASE.sol"; +/** +* @title CMTAT Proxy version for ERC1363 +*/ +contract CMTAT_PROXY_ERC1363 is CMTAT_ERC1363_BASE { + /** + * @notice Contract version for the deployment with a proxy + * @param forwarderIrrevocable address of the forwarder, required for the gasless support + */ + /// @custom:oz-upgrades-unsafe-allow constructor + constructor( + address forwarderIrrevocable + ) MetaTxModule(forwarderIrrevocable) { + // Disable the possibility to initialize the implementation + _disableInitializers(); + } + +} diff --git a/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol b/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol new file mode 100644 index 00000000..b338a772 --- /dev/null +++ b/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol @@ -0,0 +1,36 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +import {CMTAT_ERC1363_BASE} from "../../modules/CMTAT_ERC1363_BASE.sol"; +import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../../modules/CMTAT_BASE.sol"; +/** +* @title CMTAT standalone version for ERC1363 +*/ +contract CMTAT_STANDALONE_ERC1363W is CMTAT_ERC1363_BASE { + /** + * @notice Contract version for standalone deployment + * @param forwarderIrrevocable address of the forwarder, required for the gasless support + * @param admin address of the admin of contract (Access Control) + * @param ERC20Attributes_ ERC20 name, symbol and decimals + * @param baseModuleAttributes_ tokenId, terms, information + * @param engines_ external contract + */ + /// @custom:oz-upgrades-unsafe-allow constructor + constructor( + address forwarderIrrevocable, + address admin, + ICMTATConstructor.ERC20Attributes memory ERC20Attributes_, + ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_, + ICMTATConstructor.Engine memory engines_ + ) MetaTxModule(forwarderIrrevocable) { + // Initialize the contract to avoid front-running + // Warning : do not initialize the proxy + initialize( + admin, + ERC20Attributes_, + baseModuleAttributes_, + engines_ + ); + } +} diff --git a/contracts/test/proxy/CMTAT_PROXY_TEST.sol b/contracts/mocks/test/proxy/CMTAT_PROXY_TEST.sol similarity index 89% rename from contracts/test/proxy/CMTAT_PROXY_TEST.sol rename to contracts/mocks/test/proxy/CMTAT_PROXY_TEST.sol index b2684a58..3814eb8a 100644 --- a/contracts/test/proxy/CMTAT_PROXY_TEST.sol +++ b/contracts/mocks/test/proxy/CMTAT_PROXY_TEST.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {CMTAT_PROXY} from "../../CMTAT_PROXY.sol"; +import {CMTAT_PROXY} from "../../../deployment/CMTAT_PROXY.sol"; /** diff --git a/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol b/contracts/mocks/test/proxy/CMTAT_PROXY_TEST_UUPS.sol similarity index 88% rename from contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol rename to contracts/mocks/test/proxy/CMTAT_PROXY_TEST_UUPS.sol index c34b8356..c13fdc2e 100644 --- a/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol +++ b/contracts/mocks/test/proxy/CMTAT_PROXY_TEST_UUPS.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {CMTAT_PROXY_UUPS} from "../../CMTAT_PROXY_UUPS.sol"; +import {CMTAT_PROXY_UUPS} from "../../../deployment/CMTAT_PROXY_UUPS.sol"; /** diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index f6cb0fb7..24820b73 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -202,7 +202,7 @@ abstract contract CMTAT_BASE is address from, address to, uint256 amount - ) internal override(ERC20Upgradeable) { + ) internal virtual override(ERC20Upgradeable) { if (!ValidationModule._operateOnTransfer(from, to, amount)) { revert Errors.CMTAT_InvalidTransfer(from, to, amount); } @@ -219,7 +219,7 @@ abstract contract CMTAT_BASE is * @dev This surcharge is not necessary if you do not use the MetaTxModule */ function _msgSender() - internal + internal virtual view override(ERC2771ContextUpgradeable, ContextUpgradeable) returns (address sender) @@ -230,7 +230,7 @@ abstract contract CMTAT_BASE is /** * @dev This surcharge is not necessary if you do not use the MetaTxModule */ - function _contextSuffixLength() internal view + function _contextSuffixLength() internal virtual view override(ERC2771ContextUpgradeable, ContextUpgradeable) returns (uint256) { return ERC2771ContextUpgradeable._contextSuffixLength(); @@ -240,7 +240,7 @@ abstract contract CMTAT_BASE is * @dev This surcharge is not necessary if you do not use the MetaTxModule */ function _msgData() - internal + internal virtual view override(ERC2771ContextUpgradeable, ContextUpgradeable) returns (bytes calldata) diff --git a/contracts/modules/CMTAT_ERC1363_BASE.sol b/contracts/modules/CMTAT_ERC1363_BASE.sol new file mode 100644 index 00000000..c52842cd --- /dev/null +++ b/contracts/modules/CMTAT_ERC1363_BASE.sol @@ -0,0 +1,113 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; +import {ERC1363Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC1363Upgradeable.sol"; +import {ERC20Upgradeable, IERC20} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {ERC2771ContextUpgradeable} from "./wrapper/extensions/MetaTxModule.sol"; +import {CMTAT_BASE} from "./CMTAT_BASE.sol"; +import {AccessControlUpgradeable} from "./security/AuthorizationModule.sol"; +import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; +/** +* @title CMTAT Proxy version for ERC1363 +*/ +abstract contract CMTAT_ERC1363_BASE is ERC1363Upgradeable,CMTAT_BASE { + /** + * + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC1363Upgradeable, AccessControlUpgradeable) returns (bool) { + return ERC1363Upgradeable.supportsInterface(interfaceId) || AccessControlUpgradeable.supportsInterface(interfaceId); + } + + function transferFrom( + address sender, + address recipient, + uint256 amount + ) + public + virtual + override(ERC20Upgradeable, CMTAT_BASE, IERC20) + returns (bool) + { + return CMTAT_BASE.transferFrom(sender, recipient, amount); + } + + function decimals() + public + view + virtual + override(ERC20Upgradeable, CMTAT_BASE) + returns (uint8) + { + return CMTAT_BASE.decimals(); + } + + + /** + * @notice Returns the name of the token. + */ + function name() public virtual override(ERC20Upgradeable, CMTAT_BASE) view returns (string memory) { + return CMTAT_BASE.name(); + } + + /** + * @notice Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public virtual override(ERC20Upgradeable, CMTAT_BASE) view returns (string memory) { + return CMTAT_BASE.symbol(); + } + + + + /*////////////////////////////////////////////////////////////// + INTERNAL/PRIVATE FUNCTIONS + //////////////////////////////////////////////////////////////*/ + /** + * @dev + * + */ + function _update( + address from, + address to, + uint256 amount + ) internal override(ERC20Upgradeable, CMTAT_BASE) { + CMTAT_BASE._update(from, to, amount); + } + + + /*////////////////////////////////////////////////////////////// + METAXTX MODULE + //////////////////////////////////////////////////////////////*/ + /** + * @dev This surcharge is not necessary if you do not use the MetaTxModule + */ + function _msgSender() + internal + view + override(ContextUpgradeable, CMTAT_BASE) + returns (address sender) + { + return CMTAT_BASE._msgSender(); + } + + /** + * @dev This surcharge is not necessary if you do not use the MetaTxModule + */ + function _contextSuffixLength() internal view + override(ContextUpgradeable, CMTAT_BASE) + returns (uint256) { + return CMTAT_BASE._contextSuffixLength(); + } + + /** + * @dev This surcharge is not necessary if you do not use the MetaTxModule + */ + function _msgData() + internal + view + override(ContextUpgradeable, CMTAT_BASE) + returns (bytes calldata) + { + return CMTAT_BASE._msgData(); + } +} From 7fa2d8fd4527d9e62f7d60c09b152ece8bae4dcb Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Tue, 11 Feb 2025 17:38:05 +0100 Subject: [PATCH 13/26] Add terms as document + improve doc --- README.md | 34 ++++----- contracts/interfaces/ICMTATConstructor.sol | 12 +-- contracts/interfaces/draft-IERC1643CMTAT.sol | 12 +++ contracts/modules/wrapper/core/BaseModule.sol | 75 ++++++++++++++----- doc/modules/core/ERC20Burn.md | 6 +- doc/modules/core/ERC20Mint.md | 6 +- doc/modules/core/ERC20base.md | 6 +- doc/modules/core/base.md | 6 +- doc/modules/core/enforcement.md | 10 +-- doc/modules/core/pause.md | 6 +- doc/modules/extensions/ERC20Snapshot.md | 6 +- doc/modules/extensions/debt.md | 4 +- doc/modules/extensions/metatx.md | 6 +- doc/modules/security/authorization.md | 6 +- test/common/BaseModuleCommon.js | 48 +++++++++--- test/deployment/deployment.test.js | 14 ++-- test/deploymentUtils.js | 7 +- test/proxy/general/Proxy.test.js | 5 +- test/proxy/general/UpgradeProxy.test.js | 7 +- test/proxy/general/UpgradeProxyUUPS.test.js | 5 +- .../DocumentModuleConstructor.test.js | 9 ++- test/proxy/modules/MetaTxModule.test.js | 8 +- .../ValidationModuleConstructor.test.js | 9 ++- .../DebtModule/DebtModuleConstructor.test.js | 8 +- .../DocumentModuleConstructor.test.js | 9 ++- test/standard/modules/MetaTxModule.test.js | 10 +-- .../ValidationModuleConstructor.test.js | 9 ++- 27 files changed, 218 insertions(+), 125 deletions(-) create mode 100644 contracts/interfaces/draft-IERC1643CMTAT.sol diff --git a/README.md b/README.md index f588735f..2d69fdd6 100644 --- a/README.md +++ b/README.md @@ -101,31 +101,31 @@ Here the list of the different modules with the links towards the documentation Generally, these modules are required to be compliant with the CMTA specification. -| Name | Documentation | Main File | -| ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| BaseModule | [base.md](doc/modules/presentation/core/base.md) | [BaseModule.sol](./contracts/modules/wrapper/core/BaseModule.sol) | -| BurnModule | [ERC20Burn.md](doc/modules/presentation/core/ERC20Burn.md) | [ERC20BurnModule.sol](./contracts/modules/wrapper/core/ERC20BurnModule.sol) | -| EnforcementModule | [enforcement.md](doc/modules/presentation/core/enforcement.md) | [EnforcementModule.sol](./contracts/modules/wrapper/core/EnforcementModule.sol) | -| ERC20BaseModule | [erc20base.md](doc/modules/presentation/core/erc20base.md) | [ERC20BaseModule.sol](./contracts/modules/wrapper/core/ERC20BaseModule.sol) | -| MintModule | [ERC20Mint.md](doc/modules/presentation/core/ERC20Mint.md) | [ERC20MintModule.sol](./contracts/modules/wrapper/core/ERC20MintModule.sol) | -| PauseModule | [pause.md](doc/modules/presentation/core/pause.md) | [PauseModule.sol](./contracts/modules/wrapper/core/PauseModule.sol) | +| Name | Documentation | Main File | +| ----------------- | ------------------------------------------------- | ------------------------------------------------------------ | +| BaseModule | [base.md](doc/modules/core/base.md) | [BaseModule.sol](./contracts/modules/wrapper/core/BaseModule.sol) | +| BurnModule | [ERC20Burn.md](doc/modules/core/ERC20Burn.md) | [ERC20BurnModule.sol](./contracts/modules/wrapper/core/ERC20BurnModule.sol) | +| EnforcementModule | [enforcement.md](doc/modules/core/enforcement.md) | [EnforcementModule.sol](./contracts/modules/wrapper/core/EnforcementModule.sol) | +| ERC20BaseModule | [erc20base.md](doc/modules/core/ERC20base.md) | [ERC20BaseModule.sol](./contracts/modules/wrapper/core/ERC20BaseModule.sol) | +| MintModule | [ERC20Mint.md](doc/modules/core/ERC20Mint.md) | [ERC20MintModule.sol](./contracts/modules/wrapper/core/ERC20MintModule.sol) | +| PauseModule | [pause.md](doc/modules/core/pause.md) | [PauseModule.sol](./contracts/modules/wrapper/core/PauseModule.sol) | ##### Extensions Generally, these modules are not required to be compliant with the CMTA specification. -| Name | Documentation | Main File | -| -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| MetaTxModule | [metatx.md](doc/modules/presentation/extensions/metatx.md) | [MetaTxModule.sol](./contracts/modules/wrapper/extensions/MetaTxModule.sol) | -| DebtModule | [debt.md](doc/modules/presentation/extensions/debt.md) | [DebtModule.sol](./contracts/modules/wrapper/extensions/DebtModule.sol) | -| DocumentModule | [document.md](doc/modules/presentation/extensions/document.md) | [Document.sol](./contracts/modules/wrapper/extensions/DocumentModule.sol) | -| SnapshotModule | [ERC20Snapshot.md](doc/modules/presentation/extensions/ERC20Snapshot.md) | [ERC20SnapshotModule.sol](./contracts/modules/wrapper/extensions//ERC20SnapshotModule.sol) | +| Name | Documentation | Main File | +| -------------- | ----------------------------------------------------------- | ------------------------------------------------------------ | +| MetaTxModule | [metatx.md](doc/modules/extensions/metatx.md) | [MetaTxModule.sol](./contracts/modules/wrapper/extensions/MetaTxModule.sol) | +| DebtModule | [debt.md](doc/modules/extensions/debt.md) | [DebtModule.sol](./contracts/modules/wrapper/extensions/DebtModule.sol) | +| DocumentModule | [document.md](doc/modules/extensions/document.md) | [Document.sol](./contracts/modules/wrapper/extensions/DocumentModule.sol) | +| SnapshotModule | [ERC20Snapshot.md](doc/modules/extensions/ERC20Snapshot.md) | [ERC20SnapshotModule.sol](./contracts/modules/wrapper/extensions//ERC20SnapshotModule.sol) | ##### Security -| Name | Documentation | Main File | -| ------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| AuthorizationModule | [authorization.md](./doc/modules/presentation/security/authorization.md) | [AuthorizationModule.sol](./contracts/modules/security/AuthorizationModule.sol) | +| Name | Documentation | Main File | +| ------------------- | ----------------------------------------------------------- | ------------------------------------------------------------ | +| AuthorizationModule | [authorization.md](./doc/modules/security/authorization.md) | [AuthorizationModule.sol](./contracts/modules/security/AuthorizationModule.sol) | ### Engines diff --git a/contracts/interfaces/ICMTATConstructor.sol b/contracts/interfaces/ICMTATConstructor.sol index 315dfea1..d6e4dd01 100644 --- a/contracts/interfaces/ICMTATConstructor.sol +++ b/contracts/interfaces/ICMTATConstructor.sol @@ -1,10 +1,10 @@ //SPDX-License-Identifier: MPL-2.0 pragma solidity ^0.8.20; -import "./engine/IDebtEngine.sol"; -import "./engine/IRuleEngine.sol"; -import "./engine/ISnapshotEngine.sol"; -import "./engine/draft-IERC1643.sol"; - +import {IDebtEngine} from "./engine/IDebtEngine.sol"; +import {IRuleEngine} from "./engine/IRuleEngine.sol"; +import {ISnapshotEngine} from "./engine/ISnapshotEngine.sol"; +import {IERC1643} from "./engine/draft-IERC1643.sol"; +import {IERC1643CMTAT} from "./draft-IERC1643CMTAT.sol"; /** @@ -29,7 +29,7 @@ interface ICMTATConstructor { // name of the tokenId string tokenId; // terms associated with the token - string terms; + IERC1643CMTAT.DocumentInfo terms; // additional information to describe the token string information; } diff --git a/contracts/interfaces/draft-IERC1643CMTAT.sol b/contracts/interfaces/draft-IERC1643CMTAT.sol new file mode 100644 index 00000000..bdaeee2e --- /dev/null +++ b/contracts/interfaces/draft-IERC1643CMTAT.sol @@ -0,0 +1,12 @@ + //SPDX-License-Identifier: MPL-2.0 +import {IERC1643} from "./engine/draft-IERC1643.sol"; +pragma solidity ^0.8.20; + +interface IERC1643CMTAT { + struct DocumentInfo { + string name; + string uri; + bytes32 documentHash; + } +} + \ No newline at end of file diff --git a/contracts/modules/wrapper/core/BaseModule.sol b/contracts/modules/wrapper/core/BaseModule.sol index f3b67bb8..7627eb07 100644 --- a/contracts/modules/wrapper/core/BaseModule.sol +++ b/contracts/modules/wrapper/core/BaseModule.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.20; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; +import {IERC1643CMTAT, IERC1643} from "../../../interfaces/draft-IERC1643CMTAT.sol"; abstract contract BaseModule is AuthorizationModule { /* ============ State Variables ============ */ @@ -10,10 +11,15 @@ abstract contract BaseModule is AuthorizationModule { * @notice * Get the current version of the smart contract */ - string public constant VERSION = "2.5.1"; + string public constant VERSION = "3.0.0"; + + struct Terms { + string name; + IERC1643.Document doc; + } /* ============ Events ============ */ - event Term(string indexed newTermIndexed, string newTerm); + event Term(Terms indexed newTermIndexed, Terms newTerm); event TokenId(string indexed newTokenIdIndexed, string newTokenId); event Information( string indexed newInformationIndexed, @@ -27,7 +33,7 @@ abstract contract BaseModule is AuthorizationModule { /* ==== ERC-7201 State Variables === */ struct BaseModuleStorage { string _tokenId; - string _terms; + Terms _terms; string _information; } /* ============ Initializer Function ============ */ @@ -39,13 +45,16 @@ abstract contract BaseModule is AuthorizationModule { */ function __Base_init_unchained( string memory tokenId_, - string memory terms_, + IERC1643CMTAT.DocumentInfo memory terms_, string memory information_ ) internal onlyInitializing { BaseModuleStorage storage $ = _getBaseModuleStorage(); - $._tokenId = tokenId_; - $._terms = terms_; - $._information = information_; + // tokenId + _setTokenId($, tokenId_); + // Terms + _setTerms($, terms_); + // Information + _setInformation($, information_); } /*////////////////////////////////////////////////////////////// @@ -57,7 +66,7 @@ abstract contract BaseModule is AuthorizationModule { return $._tokenId; } - function terms() public view virtual returns (string memory) { + function terms() public view virtual returns (Terms memory) { BaseModuleStorage storage $ = _getBaseModuleStorage(); return $._terms; } @@ -73,21 +82,18 @@ abstract contract BaseModule is AuthorizationModule { string calldata tokenId_ ) public onlyRole(DEFAULT_ADMIN_ROLE) { BaseModuleStorage storage $ = _getBaseModuleStorage(); - $._tokenId = tokenId_; - emit TokenId(tokenId_, tokenId_); + _setTokenId($, tokenId_); } /** * @notice The terms will be changed even if the new value is the same as the current one */ - function setTerms( - string calldata terms_ - ) public onlyRole(DEFAULT_ADMIN_ROLE) { - BaseModuleStorage storage $ = _getBaseModuleStorage(); - $._terms = terms_; - emit Term(terms_, terms_); + function setTerms(IERC1643CMTAT.DocumentInfo calldata terms_) public onlyRole(DEFAULT_ADMIN_ROLE) { + BaseModuleStorage storage $ = _getBaseModuleStorage(); + _setTerms($, terms_); } + /** * @notice The information will be changed even if the new value is the same as the current one */ @@ -95,15 +101,48 @@ abstract contract BaseModule is AuthorizationModule { string calldata information_ ) public onlyRole(DEFAULT_ADMIN_ROLE) { BaseModuleStorage storage $ = _getBaseModuleStorage(); - $._information = information_; - emit Information(information_, information_); + _setInformation($, information_); } + /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ + /** + * @dev the tokenId will be changed even if the new value is the same as the current one + */ + function _setTokenId( + BaseModuleStorage storage $, string memory tokenId_ + ) internal { + $._tokenId = tokenId_; + emit TokenId(tokenId_, tokenId_); + } + + /** + * @dev The terms will be changed even if the new value is the same as the current one + */ + function _setTerms(BaseModuleStorage storage $, IERC1643CMTAT.DocumentInfo memory terms_) internal { + // Terms/Document name + $._terms.name = terms_.name; + // Document + $._terms.doc.documentHash = terms_.documentHash; + $._terms.doc.uri = terms_.uri; + $._terms.doc.lastModified = block.timestamp; + // Event + emit Term($._terms, $._terms); + } + + /** + * @dev The terms will be changed even if the new value is the same as the current one + */ + function _setInformation(BaseModuleStorage storage $, string memory information_) internal { + $._information = information_; + emit Information(information_, information_); + } + + /* ============ ERC-7201 ============ */ function _getBaseModuleStorage() private pure returns (BaseModuleStorage storage $) { assembly { diff --git a/doc/modules/core/ERC20Burn.md b/doc/modules/core/ERC20Burn.md index 68aecd8f..16997ab8 100644 --- a/doc/modules/core/ERC20Burn.md +++ b/doc/modules/core/ERC20Burn.md @@ -14,15 +14,15 @@ This document defines the ERC20Burn Module for the CMTA Token specification. ### Inheritance -![surya_inheritance_BurnModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20BurnModule.sol.png) +![surya_inheritance_BurnModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20BurnModule.sol.png) ### UML -![BurnModule](../../../schema/sol2uml/ERC20BurnModule.svg) +![BurnModule](../../schema/sol2uml/ERC20BurnModule.svg) ### Graph -![surya_graph_BurnModule.sol](../../../schema/surya_graph/surya_graph_ERC20BurnModule.sol.png) +![surya_graph_BurnModule.sol](../../schema/surya_graph/surya_graph_ERC20BurnModule.sol.png) ## Sūrya's Description Report diff --git a/doc/modules/core/ERC20Mint.md b/doc/modules/core/ERC20Mint.md index a81d180a..8c62e31b 100644 --- a/doc/modules/core/ERC20Mint.md +++ b/doc/modules/core/ERC20Mint.md @@ -14,15 +14,15 @@ This document defines ERC20Mint Module for the CMTA Token specification. ### Inheritance -![surya_inheritance_MintModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20MintModule.sol.png) +![surya_inheritance_MintModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20MintModule.sol.png) ### UML -![MintModule](../../../schema/sol2uml/ERC20MintModule.svg) +![MintModule](../../schema/sol2uml/ERC20MintModule.svg) ### Graph -![surya_graph_MintModule.sol](../../../schema/surya_graph/surya_graph_ERC20MintModule.sol.png) +![surya_graph_MintModule.sol](../../schema/surya_graph/surya_graph_ERC20MintModule.sol.png) diff --git a/doc/modules/core/ERC20base.md b/doc/modules/core/ERC20base.md index 1a83fb41..fd58c947 100644 --- a/doc/modules/core/ERC20base.md +++ b/doc/modules/core/ERC20base.md @@ -14,15 +14,15 @@ The ERC20Base Module sets forth the ERC20 basic functionalities a token must hav ### Inheritance -![surya_inheritance_ERC20BaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20BaseModule.sol.png) +![surya_inheritance_ERC20BaseModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20BaseModule.sol.png) ### UML -![ERC20BaseModule](../../../schema/sol2uml/ERC20BaseModule.svg) +![ERC20BaseModule](../../schema/sol2uml/ERC20BaseModule.svg) ### Graph -![surya_graph_ERC20BaseModule.sol](../../../schema/surya_graph/surya_graph_ERC20BaseModule.sol.png) +![surya_graph_ERC20BaseModule.sol](../../schema/surya_graph/surya_graph_ERC20BaseModule.sol.png) ## Sūrya's Description Report diff --git a/doc/modules/core/base.md b/doc/modules/core/base.md index 49684c94..a6405ecb 100644 --- a/doc/modules/core/base.md +++ b/doc/modules/core/base.md @@ -16,15 +16,15 @@ This document defines Base Module for the CMTA Token specification. ### Inheritance -![surya_inheritance_BaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_BaseModule.sol.png) +![surya_inheritance_BaseModule.sol](../../schema/surya_inheritance/surya_inheritance_BaseModule.sol.png) ### UML -![BaseModule](../../../schema/sol2uml/BaseModule.svg) +![BaseModule](../../schema/sol2uml/BaseModule.svg) ### Graph -![surya_graph_BaseModule.sol](../../../schema/surya_graph/surya_graph_BaseModule.sol.png) +![surya_graph_BaseModule.sol](../../schema/surya_graph/surya_graph_BaseModule.sol.png) ## Sūrya's Description Report diff --git a/doc/modules/core/enforcement.md b/doc/modules/core/enforcement.md index 5738e9ad..5d153d84 100644 --- a/doc/modules/core/enforcement.md +++ b/doc/modules/core/enforcement.md @@ -14,25 +14,25 @@ This document defines Enforcement Module for the CMTA Token specification. #### EnforcementModule -![surya_inheritance_EnforcementModule.sol](../../../schema/surya_inheritance/surya_inheritance_EnforcementModule.sol.png) +![surya_inheritance_EnforcementModule.sol](../../schema/surya_inheritance/surya_inheritance_EnforcementModule.sol.png) #### EnforcementModuleInternal -![surya_inheritance_EnforcementModuleInternal.sol](../../../schema/surya_inheritance/surya_inheritance_EnforcementModuleInternal.sol.png) +![surya_inheritance_EnforcementModuleInternal.sol](../../schema/surya_inheritance/surya_inheritance_EnforcementModuleInternal.sol.png) ### UML -![EnforcementModule](../../../schema/sol2uml/EnforcementModule.svg) +![EnforcementModule](../../schema/sol2uml/EnforcementModule.svg) ### Graph #### EnforcementModule -![surya_graph_EnforcementModule.sol](../../../schema/surya_graph/surya_graph_EnforcementModule.sol.png) +![surya_graph_EnforcementModule.sol](../../schema/surya_graph/surya_graph_EnforcementModule.sol.png) #### EnforcementModuleInternal -![surya_graph_EnforcementModuleInternal.sol](../../../schema/surya_graph/surya_graph_EnforcementModuleInternal.sol.png) +![surya_graph_EnforcementModuleInternal.sol](../../schema/surya_graph/surya_graph_EnforcementModuleInternal.sol.png) diff --git a/doc/modules/core/pause.md b/doc/modules/core/pause.md index c70af5e4..61fbad81 100644 --- a/doc/modules/core/pause.md +++ b/doc/modules/core/pause.md @@ -16,15 +16,15 @@ However, this is not enforced in the functions that allow to change a user’s a ### Inheritance -![surya_inheritance_PauseModule.sol](../../../schema/surya_inheritance/surya_inheritance_PauseModule.sol.png) +![surya_inheritance_PauseModule.sol](../../schema/surya_inheritance/surya_inheritance_PauseModule.sol.png) ### UML -![PauseModule](../../../schema/sol2uml/PauseModule.svg) +![PauseModule](../../schema/sol2uml/PauseModule.svg) ### Graph -![surya_graph_PauseModule.sol](../../../schema/surya_graph/surya_graph_PauseModule.sol.png) +![surya_graph_PauseModule.sol](../../schema/surya_graph/surya_graph_PauseModule.sol.png) ## Sūrya's Description Report diff --git a/doc/modules/extensions/ERC20Snapshot.md b/doc/modules/extensions/ERC20Snapshot.md index d154e1de..90cbf428 100644 --- a/doc/modules/extensions/ERC20Snapshot.md +++ b/doc/modules/extensions/ERC20Snapshot.md @@ -16,17 +16,17 @@ This document defines the Snapshot Module for the CMTA Token specification. ### Inheritance -![surya_inheritance_ERC20SnapshotModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png) +![surya_inheritance_ERC20SnapshotModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png) ### UML -![SnapshotModule](../../../schema/sol2uml/ERC20SnapshotModule.svg) +![SnapshotModule](../../schema/sol2uml/ERC20SnapshotModule.svg) ### Graph #### SnapshotModule -![surya_graph_ERC20SnapshotModule.sol](../../../schema/surya_graph/surya_graph_ERC20SnapshotModule.sol.png) +![surya_graph_ERC20SnapshotModule.sol](../../schema/surya_graph/surya_graph_ERC20SnapshotModule.sol.png) ## Sūrya's Description Report diff --git a/doc/modules/extensions/debt.md b/doc/modules/extensions/debt.md index cefa4e6f..e644afc5 100644 --- a/doc/modules/extensions/debt.md +++ b/doc/modules/extensions/debt.md @@ -8,7 +8,7 @@ This document defines Debt Module for the CMTA Token specification. ### Inheritance -![surya_inheritance_DebtBaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_DebtModule.sol.png) +![surya_inheritance_DebtBaseModule.sol](../../schema/surya_inheritance/surya_inheritance_DebtModule.sol.png) @@ -16,7 +16,7 @@ This document defines Debt Module for the CMTA Token specification. ### Graph -![surya_graph_DebtBaseModule.sol](../../../schema/surya_graph/surya_graph_DebtModule.sol.png) +![surya_graph_DebtBaseModule.sol](../../schema/surya_graph/surya_graph_DebtModule.sol.png) ## Sūrya's Description Report diff --git a/doc/modules/extensions/metatx.md b/doc/modules/extensions/metatx.md index 5c183bfc..567637f4 100644 --- a/doc/modules/extensions/metatx.md +++ b/doc/modules/extensions/metatx.md @@ -12,15 +12,15 @@ This document defines the MetaTx Module for the CMTA Token specification. The go ### Inheritance -![surya_inheritance_MetaTxModule.sol](../../../schema/surya_inheritance/surya_inheritance_MetaTxModule.sol.png) +![surya_inheritance_MetaTxModule.sol](../../schema/surya_inheritance/surya_inheritance_MetaTxModule.sol.png) ### UML -![MetaTxModule](../../../schema/sol2uml/MetaTxModule.svg) +![MetaTxModule](../../schema/sol2uml/MetaTxModule.svg) ### Graph -![surya_graph_MetaTxModule.sol](../../../schema/surya_graph/surya_graph_MetaTxModule.sol.png) +![surya_graph_MetaTxModule.sol](../../schema/surya_graph/surya_graph_MetaTxModule.sol.png) ## Sūrya's Description Report diff --git a/doc/modules/security/authorization.md b/doc/modules/security/authorization.md index 0341918e..3d5e772b 100644 --- a/doc/modules/security/authorization.md +++ b/doc/modules/security/authorization.md @@ -24,15 +24,15 @@ The DEFAULT_ADMIN_ROLE has automatically all the roles. This behavior is implemented by overriding the function `hasRole` from OpenZeppelin -![RBAC-diagram](../../../schema/accessControl/RBAC-diagram.svg) +![RBAC-diagram](../../schema/accessControl/RBAC-diagram.svg) ### UML -![AuthorizationModule](../../../schema/sol2uml/AuthorizationModule.svg) +![AuthorizationModule](../../schema/sol2uml/AuthorizationModule.svg) ### Graph -![surya_graph_AuthorizationModule.sol](../../../schema/surya_graph/surya_graph_AuthorizationModule.sol.png) +![surya_graph_AuthorizationModule.sol](../../schema/surya_graph/surya_graph_AuthorizationModule.sol.png) ## Sūrya's Description Report diff --git a/test/common/BaseModuleCommon.js b/test/common/BaseModuleCommon.js index 2d36270c..757df275 100644 --- a/test/common/BaseModuleCommon.js +++ b/test/common/BaseModuleCommon.js @@ -1,11 +1,20 @@ const { expect } = require('chai') const { DEFAULT_ADMIN_ROLE } = require('../utils') +const { TERMS } = require('../deploymentUtils') function BaseModuleCommon () { context('Token structure', function () { + async function checkTerms(myThis, terms){ + let blockTimestamp = (await ethers.provider.getBlock('latest')).timestamp; + let result = await myThis.cmtat.terms() + expect(result[0]).to.equal(terms[0]) + expect(result[1][0]).to.equal(terms[1]) + expect(result[1][1]).to.equal(terms[2]) + expect(result[1][2]).to.equal(blockTimestamp) + } it('testHasTheDefinedVersion', async function () { // Act + Assert - expect(await this.cmtat.VERSION()).to.equal('2.5.1') + expect(await this.cmtat.VERSION()).to.equal('3.0.0') }) it('testHasTheDefinedTokenId', async function () { // Act + Assert @@ -13,7 +22,7 @@ function BaseModuleCommon () { }) it('testHasTheDefinedTerms', async function () { // Act + Assert - expect(await this.cmtat.terms()).to.equal('https://cmta.ch') + await checkTerms(this,TERMS) }) it('testAdminCanChangeTokenId', async function () { // Arrange @@ -44,24 +53,43 @@ function BaseModuleCommon () { expect(await this.cmtat.tokenId()).to.equal('CMTAT_ISIN') }) it('testAdminCanUpdateTerms', async function () { - // Arrange - Assert - expect(await this.cmtat.terms()).to.equal('https://cmta.ch') + let NEW_TERMS = ["doc2", "https://example.com/doc2", "0xe405e5dad3b45f611e35717af4430b4560f12cd4054380b856446d286c341d05"] ; // Act this.logs = await this.cmtat .connect(this.admin) - .setTerms('https://cmta.ch/terms') + .setTerms(NEW_TERMS) // Assert - expect(await this.cmtat.terms()).to.equal('https://cmta.ch/terms') + + //let blockTimestamp = (await ethers.provider.getBlock('latest')).timestamp; + await checkTerms(this,NEW_TERMS) + /* + don't work + await expect(this.logs) + .to.emit(this.cmtat, 'Term') + .withArgs( [NEW_TERMS[0],tab] + + // Compute blocktimestamp + const blockTimestamp = (await ethers.provider.getBlock(this.logs.blockNumber)).timestamp; + let tab = [NEW_TERMS[1], NEW_TERMS[2], blockTimestamp] + // Encode struct argument + coder = new ethers.AbiCoder() + const encode = coder.encode( + ["tuple(string, tuple(string, bytes32, uint256))"], // Struct definition + [[NEW_TERMS[0], [NEW_TERMS[1], NEW_TERMS[2], blockTimestamp]]] ); + + // Check event hash + let hash = ethers.keccak256(encode) await expect(this.logs) .to.emit(this.cmtat, 'Term') - .withArgs('https://cmta.ch/terms', 'https://cmta.ch/terms') + .withArgs( hash ) + */ }) it('testCannotNonAdminUpdateTerms', async function () { // Arrange - Assert - expect(await this.cmtat.terms()).to.equal('https://cmta.ch') + checkTerms(TERMS) // Act await expect( - this.cmtat.connect(this.address1).setTerms('https://cmta.ch/terms') + this.cmtat.connect(this.address1).setTerms(TERMS) ) .to.be.revertedWithCustomError( this.cmtat, @@ -69,7 +97,7 @@ function BaseModuleCommon () { ) .withArgs(this.address1.address, DEFAULT_ADMIN_ROLE) // Assert - expect(await this.cmtat.terms()).to.equal('https://cmta.ch') + checkTerms(TERMS) }) it('testAdminCanUpdateInformation', async function () { // Arrange - Assert diff --git a/test/deployment/deployment.test.js b/test/deployment/deployment.test.js index 9c387620..fbe56c95 100644 --- a/test/deployment/deployment.test.js +++ b/test/deployment/deployment.test.js @@ -5,7 +5,9 @@ const { deployCMTATStandaloneWithParameter, deployCMTATProxy, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../deploymentUtils') describe('CMTAT - Deployment', function () { beforeEach(async function () { @@ -18,7 +20,6 @@ describe('CMTAT - Deployment', function () { }) it('testCannotDeployProxyWithAdminSetToAddressZero', async function () { - const DECIMAL = 0 // Act + Assert await expect( deployCMTATProxyWithParameter( @@ -27,9 +28,9 @@ describe('CMTAT - Deployment', function () { ZERO_ADDRESS, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ) @@ -39,7 +40,6 @@ describe('CMTAT - Deployment', function () { ) }) it('testCannotDeployStandaloneWithAdminSetToAddressZero', async function () { - const DECIMAL = 0 // Act + Assert await expect( deployCMTATStandaloneWithParameter( @@ -48,9 +48,9 @@ describe('CMTAT - Deployment', function () { ZERO_ADDRESS, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ) diff --git a/test/deploymentUtils.js b/test/deploymentUtils.js index 0bfc3c15..2d69f51b 100644 --- a/test/deploymentUtils.js +++ b/test/deploymentUtils.js @@ -2,6 +2,8 @@ const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers') const { ZERO_ADDRESS } = require('./utils') const { ethers, upgrades } = require('hardhat') const DEPLOYMENT_DECIMAL = 0n +// hash = keccak256("doc1Hash"); +const TERMS = ["doc1", "https://example.com/doc1", "0x6a12eff2f559a5e529ca2c563c53194f6463ed5c61d1ae8f8731137467ab0279"] ; async function fixture () { const [ _, @@ -31,7 +33,7 @@ async function deployCMTATStandalone (_, admin, deployerAddress) { _, admin, ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], + ['CMTAT_ISIN', TERMS, 'CMTAT_info'], [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ]) return cmtat @@ -89,7 +91,7 @@ async function deployCMTATProxy (_, admin, deployerAddress) { [ admin, ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], + ['CMTAT_ISIN', TERMS, 'CMTAT_info'], [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ], { @@ -141,6 +143,7 @@ module.exports = { deployCMTATProxyWithParameter, deployCMTATStandaloneWithParameter, DEPLOYMENT_DECIMAL, + TERMS, deployCMTATProxyImplementation, deployCMTATProxyUUPSImplementation, fixture, diff --git a/test/proxy/general/Proxy.test.js b/test/proxy/general/Proxy.test.js index 6b0d70eb..45d2d745 100644 --- a/test/proxy/general/Proxy.test.js +++ b/test/proxy/general/Proxy.test.js @@ -5,7 +5,8 @@ const { deployCMTATProxy, fixture, loadFixture, - DEPLOYMENT_DECIMAL + DEPLOYMENT_DECIMAL, + TERMS } = require('../../deploymentUtils') const { upgrades } = require('hardhat') describe('Proxy - Security Test', function () { @@ -35,7 +36,7 @@ describe('Proxy - Security Test', function () { .initialize( this.attacker, ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], + ['CMTAT_ISIN', TERMS, 'CMTAT_info'], [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ) ).to.be.revertedWithCustomError( diff --git a/test/proxy/general/UpgradeProxy.test.js b/test/proxy/general/UpgradeProxy.test.js index 7eac4889..9f02d1b6 100644 --- a/test/proxy/general/UpgradeProxy.test.js +++ b/test/proxy/general/UpgradeProxy.test.js @@ -4,10 +4,11 @@ const UpgradeProxyCommon = require('./UpgradeProxyCommon') const { DEPLOYMENT_DECIMAL, fixture, - loadFixture + loadFixture, + TERMS } = require('../../deploymentUtils') const { ethers, upgrades } = require('hardhat') -let CMTAT_PROXY_FACTORY, CMTAT_PROXY_TEST_FACTORY, CMTAT_PROXY +let CMTAT_PROXY_FACTORY describe('UpgradeableCMTAT - Proxy', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) @@ -22,7 +23,7 @@ describe('UpgradeableCMTAT - Proxy', function () { [ this.admin.address, ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], + ['CMTAT_ISIN', TERMS, 'CMTAT_info'], [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ], { diff --git a/test/proxy/general/UpgradeProxyUUPS.test.js b/test/proxy/general/UpgradeProxyUUPS.test.js index eb62139c..b6efeea6 100644 --- a/test/proxy/general/UpgradeProxyUUPS.test.js +++ b/test/proxy/general/UpgradeProxyUUPS.test.js @@ -6,7 +6,8 @@ const UpgradeProxyCommon = require('./UpgradeProxyCommon') const { DEPLOYMENT_DECIMAL, fixture, - loadFixture + loadFixture, + TERMS } = require('../../deploymentUtils') describe('CMTAT with UUPS Proxy', function () { beforeEach(async function () { @@ -23,7 +24,7 @@ describe('CMTAT with UUPS Proxy', function () { [ this.admin.address, ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], - ['CMTAT_ISIN', 'https://cmta.ch', 'CMTAT_info'], + ['CMTAT_ISIN', TERMS, 'CMTAT_info'], [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ], { diff --git a/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js b/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js index 01bacefe..baf8578c 100644 --- a/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js +++ b/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js @@ -2,7 +2,9 @@ const DocumentModuleCommon = require('../../../common/DocumentModule/DocumentMod const { deployCMTATProxyWithParameter, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../../../deploymentUtils') const { ZERO_ADDRESS } = require('../../../utils') @@ -10,7 +12,6 @@ const { ZERO_ADDRESS } = require('../../../utils') describe('Standard - DocumentModule - Constructor', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) - const DECIMAL = 0 this.documentEngineMock = await ethers.deployContract('DocumentEngineMock') this.definedAtDeployment = true this.cmtat = await deployCMTATProxyWithParameter( @@ -19,9 +20,9 @@ describe('Standard - DocumentModule - Constructor', function () { this.admin.address, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, this.documentEngineMock.target] ) diff --git a/test/proxy/modules/MetaTxModule.test.js b/test/proxy/modules/MetaTxModule.test.js index 6472e79a..830a6065 100644 --- a/test/proxy/modules/MetaTxModule.test.js +++ b/test/proxy/modules/MetaTxModule.test.js @@ -2,7 +2,9 @@ const MetaTxModuleCommon = require('../../common/MetaTxModuleCommon') const { deployCMTATProxyWithParameter, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../../deploymentUtils.js') const { ZERO_ADDRESS, ERC2771ForwarderDomain } = require('../../utils.js') @@ -19,9 +21,9 @@ describe('Proxy - MetaTxModule', function () { this.admin.address, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ) diff --git a/test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js b/test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js index 7d74e6ea..24381799 100644 --- a/test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js +++ b/test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js @@ -2,7 +2,9 @@ const ValidationModuleCommon = require('../../../common/ValidationModule/Validat const { deployCMTATProxyWithParameter, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../../../deploymentUtils') const { ZERO_ADDRESS } = require('../../../utils') @@ -12,7 +14,6 @@ describe('Proxy - ValidationModule - Constructor', function () { this.ADDRESS2_INITIAL_BALANCE = 18n this.ADDRESS3_INITIAL_BALANCE = 19n Object.assign(this, await loadFixture(fixture)) - const DECIMAL = 0 this.ruleEngineMock = await ethers.deployContract('RuleEngineMock') this.definedAtDeployment = true this.cmtat = await deployCMTATProxyWithParameter( @@ -21,9 +22,9 @@ describe('Proxy - ValidationModule - Constructor', function () { this.admin.address, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [this.ruleEngineMock.target, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ) diff --git a/test/standard/modules/DebtModule/DebtModuleConstructor.test.js b/test/standard/modules/DebtModule/DebtModuleConstructor.test.js index ffb23791..f92ace47 100644 --- a/test/standard/modules/DebtModule/DebtModuleConstructor.test.js +++ b/test/standard/modules/DebtModule/DebtModuleConstructor.test.js @@ -2,7 +2,9 @@ const DebtModuleCommon = require('../../../common/DebtModule/DebtModuleCommon') const { deployCMTATStandaloneWithParameter, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../../../deploymentUtils') const { ZERO_ADDRESS } = require('../../../utils') @@ -19,9 +21,9 @@ describe('Standard - DebtModule - Constructor', function () { this.admin.address, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [ZERO_ADDRESS, this.debtEngineMock.target, ZERO_ADDRESS, ZERO_ADDRESS] ) diff --git a/test/standard/modules/DocumentModule/DocumentModuleConstructor.test.js b/test/standard/modules/DocumentModule/DocumentModuleConstructor.test.js index f1b7ef38..d93da87d 100644 --- a/test/standard/modules/DocumentModule/DocumentModuleConstructor.test.js +++ b/test/standard/modules/DocumentModule/DocumentModuleConstructor.test.js @@ -2,7 +2,9 @@ const DocumentModuleCommon = require('../../../common/DocumentModule/DocumentMod const { deployCMTATStandaloneWithParameter, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../../../deploymentUtils') const { ZERO_ADDRESS } = require('../../../utils') @@ -10,7 +12,6 @@ const { ZERO_ADDRESS } = require('../../../utils') describe('Standard - DocumentModule - Constructor', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) - const DECIMAL = 0 this.documentEngineMock = await ethers.deployContract('DocumentEngineMock') this.definedAtDeployment = true this.cmtat = await deployCMTATStandaloneWithParameter( @@ -19,9 +20,9 @@ describe('Standard - DocumentModule - Constructor', function () { this.admin.address, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, this.documentEngineMock.target] ) diff --git a/test/standard/modules/MetaTxModule.test.js b/test/standard/modules/MetaTxModule.test.js index d40cd3aa..f66d3bcf 100644 --- a/test/standard/modules/MetaTxModule.test.js +++ b/test/standard/modules/MetaTxModule.test.js @@ -2,14 +2,14 @@ const MetaTxModuleCommon = require('../../common/MetaTxModuleCommon') const { deployCMTATStandaloneWithParameter, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../../deploymentUtils.js') const { ZERO_ADDRESS, ERC2771ForwarderDomain } = require('../../utils.js') describe('Standard - MetaTxModule', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) - const DECIMAL = 0n - this.forwarder = await ethers.deployContract('MinimalForwarderMock') await this.forwarder.initialize(ERC2771ForwarderDomain) this.cmtat = await deployCMTATStandaloneWithParameter( @@ -18,9 +18,9 @@ describe('Standard - MetaTxModule', function () { this.admin.address, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ) diff --git a/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js b/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js index 0372b67d..cf929e47 100644 --- a/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js +++ b/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js @@ -2,7 +2,9 @@ const ValidationModuleCommon = require('../../../common/ValidationModule/Validat const { deployCMTATStandaloneWithParameter, fixture, - loadFixture + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL } = require('../../../deploymentUtils') const { ZERO_ADDRESS } = require('../../../utils') @@ -13,7 +15,6 @@ describe('Standard - ValidationModule - Constructor', function () { this.ADDRESS2_INITIAL_BALANCE = 18n this.ADDRESS3_INITIAL_BALANCE = 19n Object.assign(this, await loadFixture(fixture)) - const DECIMAL = 0 this.ruleEngineMock = await ethers.deployContract('RuleEngineMock') this.definedAtDeployment = true this.cmtat = await deployCMTATStandaloneWithParameter( @@ -22,9 +23,9 @@ describe('Standard - ValidationModule - Constructor', function () { this.admin.address, 'CMTA Token', 'CMTAT', - DECIMAL, + DEPLOYMENT_DECIMAL, 'CMTAT_ISIN', - 'https://cmta.ch', + TERMS, 'CMTAT_info', [this.ruleEngineMock.target, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] ) From 70c46bb1e6130ded179f0dff5ed64822be49f66b Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 12 Feb 2025 13:57:02 +0100 Subject: [PATCH 14/26] Improvement initialize function --- FAQ.md | 38 +++++++++ .../ERC1363/CMTAT_STANDALONE_ERC1363.sol | 2 +- contracts/modules/CMTAT_BASE.sol | 55 +++++++++--- contracts/modules/CMTAT_ERC1363_BASE.sol | 12 +++ .../modules/wrapper/core/ERC20BaseModule.sol | 84 ++++++++++--------- 5 files changed, 139 insertions(+), 52 deletions(-) diff --git a/FAQ.md b/FAQ.md index ba386f8d..a146de13 100644 --- a/FAQ.md +++ b/FAQ.md @@ -33,10 +33,48 @@ There are two possibilities to use LayerZero with a CMTAT: The first one is to add a module inside CMTAT to include the Omnichain Fungible Token (OFT) Standard; see [github.com/LayerZero-Labs - OFT.sol](https://github.com/LayerZero-Labs/LayerZero-v2/blob/main/packages/layerzero-v2/evm/oapp/contracts/oft/OFT.sol) +### OFT + +The Omnichain Fungible Token (OFT) Standard allows **fungible tokens** to be transferred across multiple blockchains without asset wrapping, middlechains, or liquidity pools. + +#### Modifying CMTAT + +This standard work by burning tokens on the source chain whenever an omnichain transfer is initiated, sending a message via the protocol and delivering a function call to the destination contract to mint the same number of tokens burned, creating a **unified supply** across both networks. + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.22; + +import "@layerzerolabs/lz-evm-oapp-v2/contracts/standards/oft/OFT.sol"; + +contract MyOFT is OFT { + constructor( + string _name, // token name + string _symbol, // token symbol + address _lzEndpoint, // LayerZero Endpoint address + uint8 _localDecimals) // token decimals + OFT(_name, _symbol, _localDecimals, _lzEndpoint) {} +} +``` + +See [OFT standard](https://docs.layerzero.network/v2/home/token-standards/oft-standard) + +#### OFT standard + +**OFT Adapter** works as an intermediary contract that handles sending and receiving deployed fungible tokens. For example, when transferring an ERC20 from the source chain (Chain A), the token will lock in the OFT Adapter, triggering a new token to mint on the destination chain (Chain B) via the peer OFT. + +[OFT Adapter](https://docs.layerzero.network/v2/home/token-standards/oft-standard) + The second possibility is to deploy an OFT Adapter to act as an intermediary lockbox for the token. +See https://docs.layerzero.network/v2/home/token-standards/oft-standard#oft-adapter + More information in LayerZero documentation: [docs.layerzero.network/v2/developers/evm/oft/quickstart]( + + +https://docs.layerzero.network/v2/home/token-standards/oft-standard + ## Toolkit support > Which is the main development tool you use ? diff --git a/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol b/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol index b338a772..e825d17e 100644 --- a/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol +++ b/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol @@ -7,7 +7,7 @@ import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../../modules/CMTAT_B /** * @title CMTAT standalone version for ERC1363 */ -contract CMTAT_STANDALONE_ERC1363W is CMTAT_ERC1363_BASE { +contract CMTAT_STANDALONE_ERC1363 is CMTAT_ERC1363_BASE { /** * @notice Contract version for standalone deployment * @param forwarderIrrevocable address of the forwarder, required for the gasless support diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 24820b73..10647c91 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -25,7 +25,6 @@ import {Errors} from "../libraries/Errors.sol"; abstract contract CMTAT_BASE is Initializable, ContextUpgradeable, - SnapshotEngineModule, // Core BaseModule, PauseModule, @@ -37,6 +36,7 @@ abstract contract CMTAT_BASE is // Extension MetaTxModule, DebtModule, + SnapshotEngineModule, DocumentModule { @@ -75,23 +75,51 @@ abstract contract CMTAT_BASE is ICMTATConstructor.ERC20Attributes memory ERC20Attributes_, ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_, ICMTATConstructor.Engine memory engines_ - ) internal onlyInitializing { + ) internal virtual onlyInitializing { /* OpenZeppelin library */ // OZ init_unchained functions are called firstly due to inheritance __Context_init_unchained(); - // We don'use name and symbol set by the OpenZeppelin module - //__ERC20_init_unchained(ERC20Attributes_.name, ERC20Attributes_.symbol); + // AccessControlUpgradeable inherits from ERC165Upgradeable __ERC165_init_unchained(); - // AuthorizationModule inherits from AccessControlUpgradeable + + // Openzeppelin + __CMTAT_openzeppelin_init_unchained(); + /* Internal Modules */ + __CMTAT_internal_init_unchained(engines_ ); + + /* Wrapper modules */ + __CMTAT_modules_init_unchained(admin, ERC20Attributes_, baseModuleAttributes_, engines_ ); + + /* own function */ + __CMTAT_init_unchained(); + } + + /* + * @dev OpenZeppelin + */ + function __CMTAT_openzeppelin_init_unchained() internal virtual onlyInitializing { + // AuthorizationModule inherits from AccessControlUpgradeable __AccessControl_init_unchained(); __Pausable_init_unchained(); + // We don'use name and symbol set by the OpenZeppelin module + //__ERC20_init_unchained(ERC20Attributes_.name, ERC20Attributes_.symbol); + } - /* Internal Modules */ + + + /* + * @dev CMTAT internal module + */ + function __CMTAT_internal_init_unchained( ICMTATConstructor.Engine memory engines_) internal virtual onlyInitializing { __Enforcement_init_unchained(); - __Validation_init_unchained(engines_ .ruleEngine); + __Validation_init_unchained(engines_.ruleEngine); + } - /* Wrapper */ + /* + * @dev CMTAT wrapper modules + */ + function __CMTAT_modules_init_unchained(address admin, ICMTATConstructor.ERC20Attributes memory ERC20Attributes_, ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_, ICMTATConstructor.Engine memory engines_ ) internal virtual onlyInitializing { // AuthorizationModule_init_unchained is called firstly due to inheritance __AuthorizationModule_init_unchained(admin); __ERC20BurnModule_init_unchained(); @@ -109,13 +137,11 @@ abstract contract CMTAT_BASE is /* Other modules */ __Base_init_unchained(baseModuleAttributes_.tokenId, baseModuleAttributes_.terms, baseModuleAttributes_.information); - - /* own function */ - __CMTAT_init_unchained(); } - function __CMTAT_init_unchained() internal onlyInitializing { + function __CMTAT_init_unchained() internal virtual onlyInitializing { // no variable to initialize + } @@ -141,6 +167,9 @@ abstract contract CMTAT_BASE is return ERC20BaseModule.decimals(); } + /* + * @inheritdoc ERC20BaseModule + */ function transferFrom( address sender, address recipient, @@ -186,7 +215,7 @@ abstract contract CMTAT_BASE is * - Input validation is also managed by the functions burn and mint * - You can mint more tokens than burnt */ - function burnAndMint(address from, address to, uint256 amountToBurn, uint256 amountToMint, string calldata reason) public { + function burnAndMint(address from, address to, uint256 amountToBurn, uint256 amountToMint, string calldata reason) public virtual { burn(from, amountToBurn, reason); mint(to, amountToMint); } diff --git a/contracts/modules/CMTAT_ERC1363_BASE.sol b/contracts/modules/CMTAT_ERC1363_BASE.sol index c52842cd..8b6d64b2 100644 --- a/contracts/modules/CMTAT_ERC1363_BASE.sol +++ b/contracts/modules/CMTAT_ERC1363_BASE.sol @@ -11,6 +11,10 @@ import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/Cont * @title CMTAT Proxy version for ERC1363 */ abstract contract CMTAT_ERC1363_BASE is ERC1363Upgradeable,CMTAT_BASE { + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ + /** * */ @@ -74,6 +78,14 @@ abstract contract CMTAT_ERC1363_BASE is ERC1363Upgradeable,CMTAT_BASE { CMTAT_BASE._update(from, to, amount); } + /** + * @dev initializer function + */ + function __CMTAT_openzeppelin_init_unchained() internal virtual override onlyInitializing { + __ERC1363_init_unchained(); + CMTAT_BASE.__CMTAT_openzeppelin_init_unchained(); + } + /*////////////////////////////////////////////////////////////// METAXTX MODULE diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 831b5f1f..055718e0 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -60,6 +60,8 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { /*////////////////////////////////////////////////////////////// PUBLIC/EXTERNAL FUNCTIONS //////////////////////////////////////////////////////////////*/ + + /* ============ ERC-20 standard ============ */ /** * * @notice Returns the number of decimals used to get its user representation. @@ -70,6 +72,49 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { return $._decimals; } + /** + * @notice Transfers `value` amount of tokens from address `from` to address `to` + * @custom:dev-cmtat + * Emits a {Spend} event indicating the spended allowance. + * @inheritdoc ERC20Upgradeable + * + */ + function transferFrom( + address from, + address to, + uint256 value + ) public virtual override returns (bool) { + bool result = ERC20Upgradeable.transferFrom(from, to, value); + // The result will be normally always true because OpenZeppelin will revert in case of an error + if (result) { + emit Spend(from, _msgSender(), value); + } + + return result; + } + + + + /** + * @notice Returns the name of the token. + */ + function name() public virtual override view returns (string memory) { + ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); + return $._name; + } + + /** + * @notice Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public virtual override view returns (string memory) { + ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); + return $._symbol; + } + + + /* ============ Custom functions ============ */ + /** * @notice batch version of transfer * @param tos can not be empty, must have the same length as values @@ -105,31 +150,10 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { return true; } - /** - * @notice Transfers `value` amount of tokens from address `from` to address `to` - * @custom:dev-cmtat - * Emits a {Spend} event indicating the spended allowance. - * @inheritdoc ERC20Upgradeable - * - */ - function transferFrom( - address from, - address to, - uint256 value - ) public virtual override returns (bool) { - bool result = ERC20Upgradeable.transferFrom(from, to, value); - // The result will be normally always true because OpenZeppelin will revert in case of an error - if (result) { - emit Spend(from, _msgSender(), value); - } - - return result; - } - /** * @param addresses list of address to know their balance * @return balances ,totalSupply array with balance for each address, totalSupply - * @dev useful for the snapshot rule + * @dev useful to distribute dividend and to perform on-chain snapshot */ function balanceInfo(address[] calldata addresses) public view returns(uint256[] memory balances , uint256 totalSupply) { balances = new uint256[](addresses.length); @@ -139,22 +163,6 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { totalSupply = ERC20Upgradeable.totalSupply(); } - /** - * @dev Returns the name of the token. - */ - function name() public virtual override view returns (string memory) { - ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); - return $._name; - } - - /** - * @dev Returns the symbol of the token, usually a shorter version of the - * name. - */ - function symbol() public virtual override view returns (string memory) { - ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage(); - return $._symbol; - } /*////////////////////////////////////////////////////////////// From 8304fd4c71a82f0a24d70e484a55061c9e4134f9 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 12 Feb 2025 15:18:04 +0100 Subject: [PATCH 15/26] Code clean-up + linter --- contracts/modules/CMTAT_BASE.sol | 4 +- contracts/modules/CMTAT_ERC1363_BASE.sol | 5 +- .../internal/ValidationModuleInternal.sol | 35 +++++-- .../wrapper/controllers/ValidationModule.sol | 25 ++--- contracts/modules/wrapper/core/BaseModule.sol | 3 + .../modules/wrapper/core/ERC20BaseModule.sol | 13 +-- .../modules/wrapper/extensions/DebtModule.sol | 37 ++++--- .../wrapper/extensions/DocumentModule.sol | 40 ++++---- .../extensions/SnapshotEngineModule.sol | 13 ++- test/common/BaseModuleCommon.js | 30 +++--- .../DocumentModule/DocumentModuleCommon.js | 20 ++-- .../DocumentModuleSetDocumentEngineCommon.js | 3 +- test/common/ERC20BaseModuleCommon.js | 98 ++++++++++--------- ...RC20SnapshotModuleCommonGetNextSnapshot.js | 44 ++++++--- .../ERC20SnapshotModuleCommonRescheduling.js | 32 ++++-- .../ERC20SnapshotModuleCommonScheduling.js | 40 ++++++-- .../ERC20SnapshotModuleCommonUnschedule.js | 84 ++++++++++++---- .../ERC20SnapshotModuleUtils.js | 24 ++--- .../ERC20SnapshotModuleMultiplePlannedTest.js | 24 +++-- ...C20SnapshotModuleOnePlannedSnapshotTest.js | 4 +- test/deploymentUtils.js | 6 +- .../proxy/modules/ERC20SnapshotModule.test.js | 8 +- .../modules/ERC20SnapshotModule.test.js | 6 +- test/utils.js | 4 +- 24 files changed, 374 insertions(+), 228 deletions(-) diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 10647c91..c63bbc77 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -5,7 +5,7 @@ pragma solidity ^0.8.20; // required OZ imports here import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; - +// Wrapper import {BaseModule} from "./wrapper/core/BaseModule.sol"; import {ERC20BurnModule} from "./wrapper/core/ERC20BurnModule.sol"; import {ERC20MintModule} from "./wrapper/core/ERC20MintModule.sol"; @@ -17,7 +17,9 @@ import {MetaTxModule, ERC2771ContextUpgradeable} from "./wrapper/extensions/Meta import {DebtModule} from "./wrapper/extensions/DebtModule.sol"; import {DocumentModule} from "./wrapper/extensions/DocumentModule.sol"; import {SnapshotEngineModule} from "./wrapper/extensions/SnapshotEngineModule.sol"; +// Security import {AuthorizationModule} from "./security/AuthorizationModule.sol"; +// Interface and other library import {ICMTATConstructor} from "../interfaces/ICMTATConstructor.sol"; import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; import {Errors} from "../libraries/Errors.sol"; diff --git a/contracts/modules/CMTAT_ERC1363_BASE.sol b/contracts/modules/CMTAT_ERC1363_BASE.sol index 8b6d64b2..c3b6f127 100644 --- a/contracts/modules/CMTAT_ERC1363_BASE.sol +++ b/contracts/modules/CMTAT_ERC1363_BASE.sol @@ -1,12 +1,13 @@ //SPDX-License-Identifier: MPL-2.0 pragma solidity ^0.8.20; +import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; import {ERC1363Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC1363Upgradeable.sol"; import {ERC20Upgradeable, IERC20} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {ERC2771ContextUpgradeable} from "./wrapper/extensions/MetaTxModule.sol"; -import {CMTAT_BASE} from "./CMTAT_BASE.sol"; import {AccessControlUpgradeable} from "./security/AuthorizationModule.sol"; -import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; +import {CMTAT_BASE} from "./CMTAT_BASE.sol"; + /** * @title CMTAT Proxy version for ERC1363 */ diff --git a/contracts/modules/internal/ValidationModuleInternal.sol b/contracts/modules/internal/ValidationModuleInternal.sol index a0a31c18..6550eabe 100644 --- a/contracts/modules/internal/ValidationModuleInternal.sol +++ b/contracts/modules/internal/ValidationModuleInternal.sol @@ -32,8 +32,7 @@ abstract contract ValidationModuleInternal is ) internal onlyInitializing { if (address(ruleEngine_) != address(0)) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - $._ruleEngine = ruleEngine_; - emit RuleEngine(ruleEngine_); + _setRuleEngine($, ruleEngine_); } } @@ -51,26 +50,28 @@ abstract contract ValidationModuleInternal is /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ + /* ============ View functions ============ */ - /** - * @dev before making a call to this function, you have to check if a ruleEngine is set. - */ function _validateTransfer( address from, address to, uint256 amount ) internal view returns (bool) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - return $._ruleEngine.validateTransfer(from, to, amount); + if (address($._ruleEngine) != address(0)) { + return $._ruleEngine.validateTransfer(from, to, amount); + } else{ + return true; + } } /** * @dev before making a call to this function, you have to check if a ruleEngine is set. */ function _messageForTransferRestriction( + ValidationModuleInternalStorage storage $, uint8 restrictionCode ) internal view returns (string memory) { - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); return $._ruleEngine.messageForTransferRestriction(restrictionCode); } @@ -78,17 +79,33 @@ abstract contract ValidationModuleInternal is * @dev before making a call to this function, you have to check if a ruleEngine is set. */ function _detectTransferRestriction( + ValidationModuleInternalStorage storage $, address from, address to, uint256 amount ) internal view returns (uint8) { - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); return $._ruleEngine.detectTransferRestriction(from, to, amount); } + /* ============ State functions ============ */ + /* + * @dev set a RuleEngine + * @param ruleEngine_ the call will be reverted if the new value of ruleEngine is the same as the current one + */ + function _setRuleEngine( + ValidationModuleInternalStorage storage $, + IRuleEngine ruleEngine_ + ) internal { + $._ruleEngine = ruleEngine_; + emit RuleEngine(ruleEngine_); + } function _operateOnTransfer(address from, address to, uint256 amount) virtual internal returns (bool) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - return $._ruleEngine.operateOnTransfer(from, to, amount); + if (address($._ruleEngine) != address(0)) { + return $._ruleEngine.operateOnTransfer(from, to, amount); + } else{ + return true; + } } diff --git a/contracts/modules/wrapper/controllers/ValidationModule.sol b/contracts/modules/wrapper/controllers/ValidationModule.sol index c6ff5ec2..0654a679 100644 --- a/contracts/modules/wrapper/controllers/ValidationModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationModule.sol @@ -8,7 +8,6 @@ import {PauseModule} from "../core/PauseModule.sol"; import {EnforcementModule} from "../core/EnforcementModule.sol"; import {Errors} from "../../../libraries/Errors.sol"; import {IERC1404Wrapper} from "../../../interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol"; -///import {IRuleEngine} from "../../../interfaces/engine/IRuleEngine.sol"; /** * @dev Validation module. * @@ -45,8 +44,7 @@ abstract contract ValidationModule is if ($._ruleEngine == ruleEngine_){ revert Errors.CMTAT_ValidationModule_SameValue(); } - $._ruleEngine = ruleEngine_; - emit RuleEngine(ruleEngine_); + _setRuleEngine($,ruleEngine_); } /** @@ -76,7 +74,7 @@ abstract contract ValidationModule is ) { return TEXT_TRANSFER_REJECTED_TO_FROZEN; } else if (address($._ruleEngine) != address(0)) { - return _messageForTransferRestriction(restrictionCode); + return _messageForTransferRestriction($, restrictionCode); } else { return TEXT_UNKNOWN_CODE; } @@ -102,8 +100,9 @@ abstract contract ValidationModule is } else if (frozen(to)) { return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN); } else if (address($._ruleEngine) != address(0)) { - return _detectTransferRestriction(from, to, amount); - } else { + return _detectTransferRestriction($, from, to, amount); + } + else { return uint8(REJECTED_CODE_BASE.TRANSFER_OK); } } @@ -115,12 +114,9 @@ abstract contract ValidationModule is ) public view override returns (bool) { if (!_validateTransferByModule(from, to, amount)) { return false; - } - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - if (address($._ruleEngine) != address(0)) { + } else { return _validateTransfer(from, to, amount); } - return true; } @@ -134,18 +130,17 @@ abstract contract ValidationModule is ) internal view returns (bool) { if (paused() || frozen(from) || frozen(to)) { return false; + } else{ + return true; } - return true; + } function _operateOnTransfer(address from, address to, uint256 amount) override internal returns (bool){ if (!_validateTransferByModule(from, to, amount)){ return false; - } - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - if (address($._ruleEngine) != address(0)) { + } else{ return ValidationModuleInternal._operateOnTransfer(from, to, amount); } - return true; } } diff --git a/contracts/modules/wrapper/core/BaseModule.sol b/contracts/modules/wrapper/core/BaseModule.sol index 7627eb07..b5cbe751 100644 --- a/contracts/modules/wrapper/core/BaseModule.sol +++ b/contracts/modules/wrapper/core/BaseModule.sol @@ -75,6 +75,9 @@ abstract contract BaseModule is AuthorizationModule { return $._information; } + + /* ============ Restricted Functions ============ */ + /** * @notice the tokenId will be changed even if the new value is the same as the current one */ diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 055718e0..3a51eaf5 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -163,11 +163,7 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { totalSupply = ERC20Upgradeable.totalSupply(); } - - - /*////////////////////////////////////////////////////////////// - RESTRICTED FUNCTIONS - //////////////////////////////////////////////////////////////*/ + /* ============ Restricted Functions ============ */ /** * @dev See {IToken-setName}. */ @@ -185,11 +181,8 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { $._symbol = symbol_; emit Symbol(symbol_, symbol_); } - - /*////////////////////////////////////////////////////////////// - ERC-20 Enforcement - //////////////////////////////////////////////////////////////*/ - + + /* ============ ERC-20 Enforcement ============ */ /** * @notice Triggers a forced transfer. * diff --git a/contracts/modules/wrapper/extensions/DebtModule.sol b/contracts/modules/wrapper/extensions/DebtModule.sol index 048d44e1..4121bc68 100644 --- a/contracts/modules/wrapper/extensions/DebtModule.sol +++ b/contracts/modules/wrapper/extensions/DebtModule.sol @@ -56,21 +56,6 @@ abstract contract DebtModule is AuthorizationModule, IDebtEngine { return $._debtEngine; } - /* - * @notice set an authorizationEngine if not already set - * - */ - function setDebtEngine( - IDebtEngine debtEngine_ - ) external onlyRole(DEBT_ROLE) { - DebtModuleStorage storage $ = _getDebtModuleStorage(); - if ($._debtEngine == debtEngine_){ - revert Errors.CMTAT_DebtModule_SameValue(); - } - $._debtEngine = debtEngine_; - emit DebtEngine(debtEngine_); - } - function debt() public view returns(DebtBase memory debtBaseResult){ DebtModuleStorage storage $ = _getDebtModuleStorage(); if(address($._debtEngine) != address(0)){ @@ -85,10 +70,32 @@ abstract contract DebtModule is AuthorizationModule, IDebtEngine { } } + /* ============ Restricted Functions ============ */ + /* + * @notice set an authorizationEngine if not already set + * + */ + function setDebtEngine( + IDebtEngine debtEngine_ + ) external onlyRole(DEBT_ROLE) { + DebtModuleStorage storage $ = _getDebtModuleStorage(); + if ($._debtEngine == debtEngine_){ + revert Errors.CMTAT_DebtModule_SameValue(); + } + _setDebtEngine($, debtEngine_); + } + /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ + function _setDebtEngine( + DebtModuleStorage storage $, IDebtEngine debtEngine_ + ) internal { + $._debtEngine = debtEngine_; + emit DebtEngine(debtEngine_); + } + /* ============ ERC-7201 ============ */ function _getDebtModuleStorage() private pure returns (DebtModuleStorage storage $) { diff --git a/contracts/modules/wrapper/extensions/DocumentModule.sol b/contracts/modules/wrapper/extensions/DocumentModule.sol index 5b117cbf..83c081e6 100644 --- a/contracts/modules/wrapper/extensions/DocumentModule.sol +++ b/contracts/modules/wrapper/extensions/DocumentModule.sol @@ -42,8 +42,7 @@ abstract contract DocumentModule is AuthorizationModule, IERC1643 { internal onlyInitializing { if (address(documentEngine_) != address (0)) { DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - $._documentEngine = documentEngine_; - emit DocumentEngine(documentEngine_); + _ _setDocumentEngine($, documentEngine_); } } @@ -55,22 +54,6 @@ abstract contract DocumentModule is AuthorizationModule, IERC1643 { return $._documentEngine; } - /* - * @notice set an authorizationEngine if not already set - * - */ - function setDocumentEngine( - IERC1643 documentEngine_ - ) external onlyRole(DOCUMENT_ROLE) { - DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - if ($._documentEngine == documentEngine_){ - revert Errors.CMTAT_DocumentModule_SameValue(); - } - $._documentEngine = documentEngine_; - emit DocumentEngine(documentEngine_); - } - - function getDocument(string memory name) public view returns (Document memory document){ DocumentModuleStorage storage $ = _getDocumentModuleStorage(); if(address($._documentEngine) != address(0)){ @@ -87,10 +70,31 @@ abstract contract DocumentModule is AuthorizationModule, IERC1643 { } } + /* ============ Restricted Functions ============ */ + /* + * @notice set an authorizationEngine if not already set + * + */ + function setDocumentEngine( + IERC1643 documentEngine_ + ) external onlyRole(DOCUMENT_ROLE) { + DocumentModuleStorage storage $ = _getDocumentModuleStorage(); + if ($._documentEngine == documentEngine_){ + revert Errors.CMTAT_DocumentModule_SameValue(); + } + _setDocumentEngine($, documentEngine_); + } + /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ + function _setDocumentEngine( + DocumentModuleStorage storage $, IERC1643 documentEngine_ + ) internal { + $._documentEngine = documentEngine_; + emit DocumentEngine(documentEngine_); + } /* ============ ERC-7201 ============ */ function _getDocumentModuleStorage() private pure returns (DocumentModuleStorage storage $) { diff --git a/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol index a513b8b3..4f9a51ca 100644 --- a/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol +++ b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol @@ -33,8 +33,7 @@ abstract contract SnapshotEngineModule is AuthorizationModule { internal onlyInitializing { if (address(snapshotEngine_) != address (0)) { SnapshotEngineModuleStorage storage $ = _getSnapshotEngineModuleStorage(); - $._snapshotEngine = snapshotEngine_; - emit SnapshotEngine(snapshotEngine_); + _setSnapshotEngine($, snapshotEngine_); } } @@ -48,6 +47,7 @@ abstract contract SnapshotEngineModule is AuthorizationModule { return $._snapshotEngine; } + /* ============ Restricted Functions ============ */ /* * @notice set an SnapshotEngine if not already set * @dev once an SnapshotEngine is set, it is not possible to unset it @@ -59,13 +59,18 @@ abstract contract SnapshotEngineModule is AuthorizationModule { if ($._snapshotEngine == snapshotEngine_){ revert Errors.CMTAT_SnapshotModule_SameValue(); } - $._snapshotEngine = snapshotEngine_; - emit SnapshotEngine(snapshotEngine_); + _setSnapshotEngine($, snapshotEngine_); } /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ + function _setSnapshotEngine( + SnapshotEngineModuleStorage storage $, ISnapshotEngine snapshotEngine_ + ) internal { + $._snapshotEngine = snapshotEngine_; + emit SnapshotEngine(snapshotEngine_); + } /* ============ ERC-7201 ============ */ function _getSnapshotEngineModuleStorage() private pure returns (SnapshotEngineModuleStorage storage $) { diff --git a/test/common/BaseModuleCommon.js b/test/common/BaseModuleCommon.js index 757df275..039813fa 100644 --- a/test/common/BaseModuleCommon.js +++ b/test/common/BaseModuleCommon.js @@ -4,9 +4,9 @@ const { TERMS } = require('../deploymentUtils') function BaseModuleCommon () { context('Token structure', function () { - async function checkTerms(myThis, terms){ - let blockTimestamp = (await ethers.provider.getBlock('latest')).timestamp; - let result = await myThis.cmtat.terms() + async function checkTerms (myThis, terms) { + const blockTimestamp = (await ethers.provider.getBlock('latest')).timestamp + const result = await myThis.cmtat.terms() expect(result[0]).to.equal(terms[0]) expect(result[1][0]).to.equal(terms[1]) expect(result[1][1]).to.equal(terms[2]) @@ -22,7 +22,7 @@ function BaseModuleCommon () { }) it('testHasTheDefinedTerms', async function () { // Act + Assert - await checkTerms(this,TERMS) + await checkTerms(this, TERMS) }) it('testAdminCanChangeTokenId', async function () { // Arrange @@ -53,20 +53,22 @@ function BaseModuleCommon () { expect(await this.cmtat.tokenId()).to.equal('CMTAT_ISIN') }) it('testAdminCanUpdateTerms', async function () { - let NEW_TERMS = ["doc2", "https://example.com/doc2", "0xe405e5dad3b45f611e35717af4430b4560f12cd4054380b856446d286c341d05"] ; + const NEW_TERMS = [ + 'doc2', + 'https://example.com/doc2', + '0xe405e5dad3b45f611e35717af4430b4560f12cd4054380b856446d286c341d05' + ] // Act - this.logs = await this.cmtat - .connect(this.admin) - .setTerms(NEW_TERMS) + this.logs = await this.cmtat.connect(this.admin).setTerms(NEW_TERMS) // Assert - - //let blockTimestamp = (await ethers.provider.getBlock('latest')).timestamp; - await checkTerms(this,NEW_TERMS) + + // let blockTimestamp = (await ethers.provider.getBlock('latest')).timestamp; + await checkTerms(this, NEW_TERMS) /* don't work await expect(this.logs) .to.emit(this.cmtat, 'Term') - .withArgs( [NEW_TERMS[0],tab] + .withArgs( [NEW_TERMS[0],tab] // Compute blocktimestamp const blockTimestamp = (await ethers.provider.getBlock(this.logs.blockNumber)).timestamp; @@ -88,9 +90,7 @@ function BaseModuleCommon () { // Arrange - Assert checkTerms(TERMS) // Act - await expect( - this.cmtat.connect(this.address1).setTerms(TERMS) - ) + await expect(this.cmtat.connect(this.address1).setTerms(TERMS)) .to.be.revertedWithCustomError( this.cmtat, 'AccessControlUnauthorizedAccount' diff --git a/test/common/DocumentModule/DocumentModuleCommon.js b/test/common/DocumentModule/DocumentModuleCommon.js index c0bf5d9e..300376dd 100644 --- a/test/common/DocumentModule/DocumentModuleCommon.js +++ b/test/common/DocumentModule/DocumentModuleCommon.js @@ -24,10 +24,9 @@ function DocumentModuleCommon () { const uri = 'https://github.com/CMTA/CMTAT' const documentHash = ethers.encodeBytes32String('hash1') - await this.documentEngineMock.setDocument(({name, uri, documentHash})) + await this.documentEngineMock.setDocument({ name, uri, documentHash }) - const doc = - await this.cmtat.getDocument(name) + const doc = await this.cmtat.getDocument(name) expect(doc.uri).to.equal(uri) expect(doc.documentHash).to.equal(documentHash) expect(doc.lastModified).to.be.gt(0) @@ -44,17 +43,15 @@ function DocumentModuleCommon () { await this.documentEngineMock.setDocument([name, uri1, documentHash1]) await this.documentEngineMock.setDocument([name, uri2, documentHash2]) - const doc = - await this.cmtat.getDocument(name) - expect(doc.uri).to.equal(uri2) - expect(doc.documentHash).to.equal(documentHash2) - expect(doc.lastModified).to.be.gt(0) + const doc = await this.cmtat.getDocument(name) + expect(doc.uri).to.equal(uri2) + expect(doc.documentHash).to.equal(documentHash2) + expect(doc.lastModified).to.be.gt(0) }) it('testCanGetNullValueIfNoDocument', async function () { const name = ethers.encodeBytes32String('doc1') - const doc = - await this.cmtat.getDocument(name) + const doc = await this.cmtat.getDocument(name) expect(doc.uri).to.equal('') expect(doc.documentHash).to.equal(ethers.encodeBytes32String('')) expect(doc.lastModified).to.equal(0) @@ -68,8 +65,7 @@ function DocumentModuleCommon () { await this.documentEngineMock.setDocument([name, uri, documentHash]) await this.documentEngineMock.removeDocument(name) - const doc = - await this.cmtat.getDocument(name) + const doc = await this.cmtat.getDocument(name) expect(doc.uri).to.equal('') expect(doc.documentHash).to.equal(ethers.encodeBytes32String('')) expect(doc.lastModified).to.equal(0) diff --git a/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js b/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js index 19e24045..6a142cf2 100644 --- a/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js +++ b/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js @@ -44,8 +44,7 @@ function DocumentModuleSetDocumentEngineCommon () { it('testGetEmptyDocumentsIfNoDocumentEngine', async function () { const name = ethers.encodeBytes32String('doc1') // act - const doc = - await this.cmtat.getDocument(name) + const doc = await this.cmtat.getDocument(name) // Assert expect(doc.uri).to.equal('') expect(doc.documentHash).to.equal(ethers.encodeBytes32String('')) diff --git a/test/common/ERC20BaseModuleCommon.js b/test/common/ERC20BaseModuleCommon.js index e2a19f10..b0548271 100644 --- a/test/common/ERC20BaseModuleCommon.js +++ b/test/common/ERC20BaseModuleCommon.js @@ -4,59 +4,69 @@ function ERC20BaseModuleCommon () { context('Enforcement', function () { beforeEach(async function () { await this.cmtat.connect(this.admin).mint(this.address1, 50) - }); + }) it('testCanForceTransferFromAddress1ToAddress2AsAdmin', async function () { - const AMOUNT_TO_TRANSFER = 20 - const REASON = 'Bad guy' + const AMOUNT_TO_TRANSFER = 20 + const REASON = 'Bad guy' // Act - this.logs = await this.cmtat - .connect(this.admin) - .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) - // Assert - expect(await this.cmtat.balanceOf(this.address1)).to.equal( - '30' - ) - expect(await this.cmtat.balanceOf(this.address2)).to.equal( - '20' - ) + this.logs = await this.cmtat + .connect(this.admin) + .enforceTransfer( + this.address1, + this.address2, + AMOUNT_TO_TRANSFER, + REASON + ) + // Assert + expect(await this.cmtat.balanceOf(this.address1)).to.equal('30') + expect(await this.cmtat.balanceOf(this.address2)).to.equal('20') // Events await expect(this.logs) .to.emit(this.cmtat, 'Enforcement') - .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) - await expect(this.logs) + .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) + await expect(this.logs) .to.emit(this.cmtat, 'Transfer') .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) - }); + }) it('testCanForceTransferFromAddress1ToAddress2AsEnforcerTransferRole', async function () { const AMOUNT_TO_TRANSFER = 20 const REASON = 'Bad guy' // Arrange - Assert - await this.cmtat.connect(this.admin).grantRole(ENFORCER_ROLE_TRANSFER, this.address3); + await this.cmtat + .connect(this.admin) + .grantRole(ENFORCER_ROLE_TRANSFER, this.address3) // Act this.logs = await this.cmtat .connect(this.admin) - .enforceTransfer(this.address1, this.address2, AMOUNT_TO_TRANSFER, REASON) - // Assert - expect(await this.cmtat.balanceOf(this.address1)).to.equal( - 50 - AMOUNT_TO_TRANSFER - ) - expect(await this.cmtat.balanceOf(this.address2)).to.equal( - AMOUNT_TO_TRANSFER + .enforceTransfer( + this.address1, + this.address2, + AMOUNT_TO_TRANSFER, + REASON ) - await expect(this.logs) + // Assert + expect(await this.cmtat.balanceOf(this.address1)).to.equal( + 50 - AMOUNT_TO_TRANSFER + ) + expect(await this.cmtat.balanceOf(this.address2)).to.equal( + AMOUNT_TO_TRANSFER + ) + await expect(this.logs) .to.emit(this.cmtat, 'Enforcement') - .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) - await expect(this.logs) + .withArgs(this.admin, this.address1, AMOUNT_TO_TRANSFER, REASON) + await expect(this.logs) .to.emit(this.cmtat, 'Transfer') .withArgs(this.address1, this.address2, AMOUNT_TO_TRANSFER) - }); + }) it('testCannotNonEnforcerTransferFunds', async function () { // Act await expect( - this.cmtat.connect(this.address2).enforceTransfer(this.address1, this.address2, 20, 'Bad guy') + this.cmtat + .connect(this.address2) + .enforceTransfer(this.address1, this.address2, 20, 'Bad guy') ) .to.be.revertedWithCustomError( this.cmtat, @@ -64,7 +74,7 @@ function ERC20BaseModuleCommon () { ) .withArgs(this.address2.address, ENFORCER_ROLE_TRANSFER) }) - }); + }) context('Token structure', function () { it('testHasTheDefinedName', async function () { // Act + Assert @@ -80,24 +90,20 @@ function ERC20BaseModuleCommon () { }) }) - context("Token Name", function (){ + context('Token Name', function () { it('testAdminCanUpdateName', async function () { - const NEW_NAME = "New Name" + const NEW_NAME = 'New Name' // Act - this.logs = await this.cmtat - .connect(this.admin) - .setName(NEW_NAME) + this.logs = await this.cmtat.connect(this.admin).setName(NEW_NAME) // Assert expect(await this.cmtat.name()).to.equal(NEW_NAME) await expect(this.logs) - .to.emit(this.cmtat, "Name") + .to.emit(this.cmtat, 'Name') .withArgs(NEW_NAME, NEW_NAME) }) it('testCannotNonAdminUpdateName', async function () { // Act - await expect( - this.cmtat.connect(this.address1).setName('New Name') - ) + await expect(this.cmtat.connect(this.address1).setName('New Name')) .to.be.revertedWithCustomError( this.cmtat, 'AccessControlUnauthorizedAccount' @@ -108,24 +114,20 @@ function ERC20BaseModuleCommon () { }) }) - context("Token Symbol", function (){ + context('Token Symbol', function () { it('testAdminCanUpdateSymbol', async function () { - const NEW_SYMBOL = "New Symbol" + const NEW_SYMBOL = 'New Symbol' // Act - this.logs = await this.cmtat - .connect(this.admin) - .setSymbol(NEW_SYMBOL) + this.logs = await this.cmtat.connect(this.admin).setSymbol(NEW_SYMBOL) // Assert expect(await this.cmtat.symbol()).to.equal(NEW_SYMBOL) await expect(this.logs) - .to.emit(this.cmtat, "Symbol") + .to.emit(this.cmtat, 'Symbol') .withArgs(NEW_SYMBOL, NEW_SYMBOL) }) it('testCannotNonAdminUpdateName', async function () { // Act - await expect( - this.cmtat.connect(this.address1).setSymbol('New Symbol') - ) + await expect(this.cmtat.connect(this.address1).setSymbol('New Symbol')) .to.be.revertedWithCustomError( this.cmtat, 'AccessControlUnauthorizedAccount' diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js index 165b27e2..a60cb434 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js @@ -16,11 +16,21 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { this.snapshotTime3 = this.currentTime + time.duration.seconds(20) this.snapshotTime4 = this.currentTime + time.duration.seconds(25) this.snapshotTime5 = this.currentTime + time.duration.seconds(30) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime5) // Act const snapshots = await this.transferEngineMock.getNextSnapshots() // Assert @@ -50,9 +60,15 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { this.snapshotTime1 = this.currentTime + time.duration.seconds(3) this.snapshotTime2 = this.currentTime + time.duration.seconds(4) this.snapshotTime3 = this.currentTime + time.duration.seconds(5) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime3) // We jump into the future await time.increase(4) // Act @@ -66,11 +82,17 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { this.snapshotTime1 = this.currentTime + time.duration.seconds(3) this.snapshotTime2 = this.currentTime + time.duration.seconds(20) this.snapshotTime3 = this.currentTime + time.duration.seconds(300) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime1) // We jump into the future await time.increase(3) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime3) // Act const snapshots = await this.transferEngineMock.getNextSnapshots() // Assert diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js index 1cb26968..c98c0701 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js @@ -11,7 +11,9 @@ function ERC20SnapshotModuleCommonRescheduling () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(60) this.newSnapshotTime = this.currentTime + time.duration.seconds(200) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime) }) it('can reschedule a snapshot with the snapshoter role and emits a SnapshotSchedule event', async function () { @@ -36,8 +38,12 @@ function ERC20SnapshotModuleCommonRescheduling () { await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SECOND_SNAPSHOT) this.logs = await this.transferEngineMock .connect(this.admin) .rescheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME, SNAPSHOT_MIDDLE_NEW_TIME) @@ -64,8 +70,12 @@ function ERC20SnapshotModuleCommonRescheduling () { await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SECOND_SNAPSHOT) // Act await expect( this.transferEngineMock @@ -102,8 +112,12 @@ function ERC20SnapshotModuleCommonRescheduling () { await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(SNAPSHOT_MIDDLE_OLD_TIME) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SECOND_SNAPSHOT) // Act await expect( this.transferEngineMock @@ -160,7 +174,9 @@ function ERC20SnapshotModuleCommonRescheduling () { it('reverts when trying to reschedule a snapshot to a snapshot time already existing', async function () { const NEW_TIME = this.snapshotTime + time.duration.seconds(60) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(NEW_TIME) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(NEW_TIME) await expect( this.transferEngineMock .connect(this.admin) diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js index 8a5d2ced..35464e4c 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js @@ -30,7 +30,9 @@ function ERC20SnapshotModuleCommonScheduling () { it('reverts when calling from non-admin', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) await expect( - this.transferEngineMock.connect(this.address1).scheduleSnapshot(SNAPSHOT_TIME) + this.transferEngineMock + .connect(this.address1) + .scheduleSnapshot(SNAPSHOT_TIME) ) .to.be.revertedWithCustomError( this.transferEngineMock, @@ -48,7 +50,9 @@ function ERC20SnapshotModuleCommonScheduling () { const SNAPSHOT_TIME_INVALID = SNAPSHOT_TIME - time.duration.seconds(60) await expect( - this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME_INVALID) + this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SNAPSHOT_TIME_INVALID) ) .to.be.revertedWithCustomError( this.transferEngineMock, @@ -60,7 +64,9 @@ function ERC20SnapshotModuleCommonScheduling () { it('reverts when trying to schedule a snapshot in the past', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) + this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SNAPSHOT_TIME) ) .to.be.revertedWithCustomError( this.transferEngineMock, @@ -75,10 +81,14 @@ function ERC20SnapshotModuleCommonScheduling () { it('reverts when trying to schedule a snapshot with the same time twice', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) // Arrange - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SNAPSHOT_TIME) // Act await expect( - this.transferEngineMock.connect(this.admin).scheduleSnapshot(SNAPSHOT_TIME) + this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyExists' @@ -126,11 +136,21 @@ function ERC20SnapshotModuleCommonScheduling () { const FIVE_SNAPSHOT = this.currentTime + time.duration.seconds(30) // Third position const RANDOM_SNAPSHOT = this.currentTime + time.duration.seconds(17) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIRST_SNAPSHOT) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(SECOND_SNAPSHOT) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(THIRD_SNAPSHOT) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FOUR_SNAPSHOT) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(FIVE_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(FIRST_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(SECOND_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(THIRD_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(FOUR_SNAPSHOT) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(FIVE_SNAPSHOT) // Act await this.transferEngineMock .connect(this.admin) diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js index e1e1a023..07d0ff57 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js @@ -32,11 +32,21 @@ function ERC20SnapshotModuleCommonUnschedule () { expect(snapshots.length).to.equal(0) }) it('can remove a random snapshot with the snapshoter role', async function () { - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime5) let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(5) await this.transferEngineMock @@ -70,7 +80,9 @@ function ERC20SnapshotModuleCommonUnschedule () { it('testCannotUnscheduleASnapshotInThePast', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock + .connect(this.admin) + .unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyDone' @@ -79,11 +91,21 @@ function ERC20SnapshotModuleCommonUnschedule () { it('can unschedule a snaphot in a random place', async function () { const RANDOM_SNAPSHOT = this.currentTime + time.duration.seconds(17) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime5) await this.transferEngineMock .connect(this.admin) .scheduleSnapshotNotOptimized(RANDOM_SNAPSHOT) @@ -113,11 +135,21 @@ function ERC20SnapshotModuleCommonUnschedule () { }) it('can schedule a snaphot after an unschedule', async function () { - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime4) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime5) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime4) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime5) let snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(5) await this.transferEngineMock @@ -125,7 +157,9 @@ function ERC20SnapshotModuleCommonUnschedule () { .unscheduleSnapshotNotOptimized(this.snapshotTime2) snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(4) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime6) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime6) snapshots = await this.transferEngineMock.getNextSnapshots() expect(snapshots.length).to.equal(5) checkArraySnapshot(snapshots, [ @@ -167,7 +201,9 @@ function ERC20SnapshotModuleCommonUnschedule () { beforeEach(async function () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(60) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime) }) it('can unschedule a snapshot with the snapshoter role and emits a SnapshotUnschedule event', async function () { @@ -203,7 +239,9 @@ function ERC20SnapshotModuleCommonUnschedule () { .unscheduleLastSnapshot(this.snapshotTime) // Act await expect( - this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock + .connect(this.admin) + .unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( this.transferEngineMock, 'CMTAT_SnapshotModule_NoSnapshotScheduled' @@ -214,7 +252,9 @@ function ERC20SnapshotModuleCommonUnschedule () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(90) // Act await expect( - this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock + .connect(this.admin) + .unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotNotFound' @@ -224,7 +264,9 @@ function ERC20SnapshotModuleCommonUnschedule () { it('reverts when snapshot has been processed', async function () { const SNAPSHOT_TIME = this.currentTime - time.duration.seconds(60) await expect( - this.transferEngineMock.connect(this.admin).unscheduleLastSnapshot(SNAPSHOT_TIME) + this.transferEngineMock + .connect(this.admin) + .unscheduleLastSnapshot(SNAPSHOT_TIME) ).to.be.revertedWithCustomError( this.transferEngineMock, 'CMTAT_SnapshotModule_SnapshotAlreadyDone' diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js index 6bb9a0b1..4b6c14e1 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js @@ -10,22 +10,22 @@ const timeout = function (ms) { async function checkSnapshot (time, totalSupply, addressese, balances) { const addresses = [this.address1, this.address2, this.address3] // Values before the snapshot - expect(await this.transferEngineMock.snapshotTotalSupply(time)).to.equal(totalSupply) - // const result = await this.cmtat.snapshotInfoBatch(time, addresses) - const result = await this.transferEngineMock['snapshotInfoBatch(uint256,address[])']( - time, - addresses + expect(await this.transferEngineMock.snapshotTotalSupply(time)).to.equal( + totalSupply ) + // const result = await this.cmtat.snapshotInfoBatch(time, addresses) + const result = await this.transferEngineMock[ + 'snapshotInfoBatch(uint256,address[])' + ](time, addresses) /* methods */ const times = [time] - const result2 = await this.transferEngineMock['snapshotInfoBatch(uint256[],address[])']( - times, - addresses - ) + const result2 = await this.transferEngineMock[ + 'snapshotInfoBatch(uint256[],address[])' + ](times, addresses) for (let i = 0; i < balances.length; ++i) { - expect(await this.transferEngineMock.snapshotBalanceOf(time, addresses[i])).to.equal( - balances[i] - ) + expect( + await this.transferEngineMock.snapshotBalanceOf(time, addresses[i]) + ).to.equal(balances[i]) await this.transferEngineMock.snapshotInfo(time, addresses[i]) const { 0: ownerBalance, 1: totalSupplyGet } = await this.transferEngineMock.snapshotInfo(time, addresses[i]) diff --git a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js index 07b497e8..83bcda53 100644 --- a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js +++ b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js @@ -36,9 +36,15 @@ function ERC20SnapshotModuleMultiplePlannedTest () { this.snapshotTime3 = this.currentTime + time.duration.seconds(THIRD_SNAPSHOT_INTERVAL) this.beforeSnapshotTime = this.currentTime - time.duration.seconds(60) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime1) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime2) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime3) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime1) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime2) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime3) // We jump into the future await time.increase(FIRST_SNAPSHOT_INTERVAL + 1) }) @@ -306,7 +312,9 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - expect((await this.transferEngineMock.getNextSnapshots()).length).to.equal(2) + expect( + (await this.transferEngineMock.getNextSnapshots()).length + ).to.equal(2) // We jump into the future await time.increase(SECOND_SNAPSHOT_INTERVAL - FIRST_SNAPSHOT_INTERVAL) @@ -362,7 +370,9 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - expect((await this.transferEngineMock.getNextSnapshots()).length).to.equal(1) + expect( + (await this.transferEngineMock.getNextSnapshots()).length + ).to.equal(1) // We jump into the future await time.increase(THIRD_SNAPSHOT_INTERVAL - FIRST_SNAPSHOT_INTERVAL) @@ -431,7 +441,9 @@ function ERC20SnapshotModuleMultiplePlannedTest () { ADDRESS3_INITIAL_MINT ] ) - expect((await this.transferEngineMock.getNextSnapshots()).length).to.equal(0) + expect( + (await this.transferEngineMock.getNextSnapshots()).length + ).to.equal(0) }) }) } diff --git a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js index 790e245d..bd7cbf2e 100644 --- a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js +++ b/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js @@ -25,7 +25,9 @@ function ERC20SnapshotModuleOnePlannedSnapshotTest () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(3) this.beforeSnapshotTime = this.currentTime - time.duration.seconds(60) - await this.transferEngineMock.connect(this.admin).scheduleSnapshot(this.snapshotTime) + await this.transferEngineMock + .connect(this.admin) + .scheduleSnapshot(this.snapshotTime) // We jump into the future await time.increase(time.duration.seconds(10)) }) diff --git a/test/deploymentUtils.js b/test/deploymentUtils.js index 2d69f51b..48da279e 100644 --- a/test/deploymentUtils.js +++ b/test/deploymentUtils.js @@ -3,7 +3,11 @@ const { ZERO_ADDRESS } = require('./utils') const { ethers, upgrades } = require('hardhat') const DEPLOYMENT_DECIMAL = 0n // hash = keccak256("doc1Hash"); -const TERMS = ["doc1", "https://example.com/doc1", "0x6a12eff2f559a5e529ca2c563c53194f6463ed5c61d1ae8f8731137467ab0279"] ; +const TERMS = [ + 'doc1', + 'https://example.com/doc1', + '0x6a12eff2f559a5e529ca2c563c53194f6463ed5c61d1ae8f8731137467ab0279' +] async function fixture () { const [ _, diff --git a/test/proxy/modules/ERC20SnapshotModule.test.js b/test/proxy/modules/ERC20SnapshotModule.test.js index c4fd5562..f7864000 100644 --- a/test/proxy/modules/ERC20SnapshotModule.test.js +++ b/test/proxy/modules/ERC20SnapshotModule.test.js @@ -19,9 +19,11 @@ describe('Proxy - ERC20SnapshotModule', function () { this.admin.address, this.deployerAddress.address ) - this.transferEngineMock = await ethers.deployContract('SnapshotEngineMock', [ - this.cmtat.target, this.admin]) - this.cmtat.connect(this.admin).setSnapshotEngine(this.transferEngineMock) + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat.connect(this.admin).setSnapshotEngine(this.transferEngineMock) }) ERC20SnapshotModuleMultiplePlannedTest() ERC20SnapshotModuleOnePlannedSnapshotTest() diff --git a/test/standard/modules/ERC20SnapshotModule.test.js b/test/standard/modules/ERC20SnapshotModule.test.js index 75129fe8..e11d998c 100644 --- a/test/standard/modules/ERC20SnapshotModule.test.js +++ b/test/standard/modules/ERC20SnapshotModule.test.js @@ -19,8 +19,10 @@ describe('Standard - ERC20SnapshotModule', function () { this.admin.address, this.deployerAddress.address ) - this.transferEngineMock = await ethers.deployContract('SnapshotEngineMock', [ - this.cmtat.target, this.admin]) + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) this.cmtat.connect(this.admin).setSnapshotEngine(this.transferEngineMock) }) ERC20SnapshotModuleMultiplePlannedTest() diff --git a/test/utils.js b/test/utils.js index 74fb6c76..4b67340e 100644 --- a/test/utils.js +++ b/test/utils.js @@ -24,8 +24,8 @@ module.exports = { DOCUMENT_ROLE: '0xdd7c9aafbb91d54fb2041db1d5b172ea665309b32f5fffdbddf452802a1e3b20', - - PROXY_UPGRADE_ROLE: '0x233d5d22cfc2df30a1764cac21e2207537a3711647f2c29fe3702201f65c1444', + PROXY_UPGRADE_ROLE: + '0x233d5d22cfc2df30a1764cac21e2207537a3711647f2c29fe3702201f65c1444', ZERO_ADDRESS: ethers.ZeroAddress, RULE_MOCK_AMOUNT_MAX: '20', CMTAT_TRANSFER_REJECT: 'CMTAT: transfer rejected by validation module', From b282d7513e0d5b7c65c4ebd9eaf6f9d397576c1c Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 12 Feb 2025 17:37:23 +0100 Subject: [PATCH 16/26] Remove useless node js package + improve doc --- README.md | 52 +- contracts/interfaces/draft-IERC1643CMTAT.sol | 3 +- contracts/modules/CMTAT_BASE.sol | 19 +- .../internal/ValidationModuleInternal.sol | 118 - ...nModule.sol => ValidationEngineModule.sol} | 82 +- .../{DebtModule.sol => DebtEngineModule.sol} | 0 ...entModule.sol => DocumentEngineModule.sol} | 2 +- doc/{general => }/ARCHITECTURE.md | 0 doc/TOOLCHAIN.md | 209 - doc/USAGE.md | 177 +- doc/{general => }/contract-size.png | Bin doc/general/Engine.md | 100 - doc/general/Proxy.md | 34 - doc/general/test/coverage/base.css | 213 - .../coverage/contracts/CMTAT_PROXY.sol.html | 134 - .../contracts/CMTAT_PROXY_UUPS.sol.html | 227 - .../contracts/CMTAT_STANDALONE.sol.html | 176 - .../deployment/CMTAT_BEACON_FACTORY.sol.html | 389 - .../deployment/CMTAT_TP_FACTORY.sol.html | 353 - .../deployment/CMTAT_UUPS_FACTORY.sol.html | 338 - .../coverage/contracts/deployment/index.html | 119 - .../libraries/CMTATFactoryBase.sol.html | 134 - .../libraries/CMTATFactoryInvariant.sol.html | 134 - .../libraries/CMTATFactoryRoot.sol.html | 272 - .../contracts/deployment/libraries/index.html | 119 - .../test/coverage/contracts/index.html | 119 - .../contracts/interfaces/ICCIPToken.sol.html | 137 - .../interfaces/ICMTATConstructor.sol.html | 173 - .../interfaces/ICMTATSnapshot.sol.html | 179 - .../draft-IERC1404/draft-IERC1404.sol.html | 143 - .../draft-IERC1404EnumCode.sol.html | 110 - .../draft-IERC1404Wrapper.sol.html | 119 - .../interfaces/draft-IERC1404/index.html | 119 - .../engine/IAuthorizationEngine.sol.html | 134 - .../interfaces/engine/IDebtEngine.sol.html | 122 - .../interfaces/engine/IDebtGlobal.sol.html | 152 - .../interfaces/engine/IRuleEngine.sol.html | 125 - .../interfaces/engine/draft-IERC1643.sol.html | 95 - .../contracts/interfaces/engine/index.html | 145 - .../coverage/contracts/interfaces/index.html | 119 - .../contracts/libraries/Errors.sol.html | 272 - .../libraries/FactoryErrors.sol.html | 104 - .../coverage/contracts/libraries/index.html | 106 - .../contracts/modules/CMTAT_BASE.sol.html | 785 - .../coverage/contracts/modules/index.html | 93 - .../ERC20SnapshotModuleInternal.sol.html | 482 - .../EnforcementModuleInternal.sol.html | 416 - .../ValidationModuleInternal.sol.html | 368 - .../internal/base/SnapshotModuleBase.sol.html | 1361 - .../modules/internal/base/index.html | 93 - .../contracts/modules/internal/index.html | 119 - .../security/AuthorizationModule.sol.html | 422 - .../contracts/modules/security/index.html | 93 - .../controllers/ValidationModule.sol.html | 518 - .../modules/wrapper/controllers/index.html | 93 - .../modules/wrapper/core/BaseModule.sol.html | 407 - .../wrapper/core/ERC20BaseModule.sol.html | 482 - .../wrapper/core/ERC20BurnModule.sol.html | 452 - .../wrapper/core/ERC20MintModule.sol.html | 320 - .../wrapper/core/EnforcementModule.sol.html | 242 - .../modules/wrapper/core/PauseModule.sol.html | 392 - .../contracts/modules/wrapper/core/index.html | 158 - .../wrapper/extensions/DebtModule.sol.html | 365 - .../extensions/DocumentModule.sol.html | 368 - .../extensions/ERC20SnapshotModule.sol.html | 305 - .../wrapper/extensions/MetaTxModule.sol.html | 131 - .../modules/wrapper/extensions/index.html | 132 - .../test/proxy/CMTAT_PROXY_TEST.sol.html | 131 - .../test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html | 131 - .../coverage/contracts/test/proxy/index.html | 106 - doc/general/test/coverage/coverage-final.json | 42 - doc/general/test/coverage/index.html | 275 - .../test/coverage/lcov-report/base.css | 213 - .../contracts/CMTAT_PROXY.sol.html | 134 - .../contracts/CMTAT_PROXY_UUPS.sol.html | 227 - .../contracts/CMTAT_STANDALONE.sol.html | 176 - .../deployment/CMTAT_BEACON_FACTORY.sol.html | 389 - .../deployment/CMTAT_TP_FACTORY.sol.html | 353 - .../deployment/CMTAT_UUPS_FACTORY.sol.html | 338 - .../contracts/deployment/index.html | 119 - .../libraries/CMTATFactoryBase.sol.html | 134 - .../libraries/CMTATFactoryInvariant.sol.html | 134 - .../libraries/CMTATFactoryRoot.sol.html | 272 - .../contracts/deployment/libraries/index.html | 119 - .../coverage/lcov-report/contracts/index.html | 119 - .../contracts/interfaces/ICCIPToken.sol.html | 137 - .../interfaces/ICMTATConstructor.sol.html | 173 - .../interfaces/ICMTATSnapshot.sol.html | 179 - .../draft-IERC1404/draft-IERC1404.sol.html | 143 - .../draft-IERC1404EnumCode.sol.html | 110 - .../draft-IERC1404Wrapper.sol.html | 119 - .../interfaces/draft-IERC1404/index.html | 119 - .../engine/IAuthorizationEngine.sol.html | 134 - .../interfaces/engine/IDebtEngine.sol.html | 122 - .../interfaces/engine/IDebtGlobal.sol.html | 152 - .../interfaces/engine/IRuleEngine.sol.html | 125 - .../interfaces/engine/draft-IERC1643.sol.html | 95 - .../contracts/interfaces/engine/index.html | 145 - .../contracts/interfaces/index.html | 119 - .../contracts/libraries/Errors.sol.html | 272 - .../libraries/FactoryErrors.sol.html | 104 - .../contracts/libraries/index.html | 106 - .../contracts/modules/CMTAT_BASE.sol.html | 785 - .../lcov-report/contracts/modules/index.html | 93 - .../ERC20SnapshotModuleInternal.sol.html | 482 - .../EnforcementModuleInternal.sol.html | 416 - .../ValidationModuleInternal.sol.html | 368 - .../internal/base/SnapshotModuleBase.sol.html | 1361 - .../modules/internal/base/index.html | 93 - .../contracts/modules/internal/index.html | 119 - .../security/AuthorizationModule.sol.html | 422 - .../contracts/modules/security/index.html | 93 - .../controllers/ValidationModule.sol.html | 518 - .../modules/wrapper/controllers/index.html | 93 - .../modules/wrapper/core/BaseModule.sol.html | 407 - .../wrapper/core/ERC20BaseModule.sol.html | 482 - .../wrapper/core/ERC20BurnModule.sol.html | 452 - .../wrapper/core/ERC20MintModule.sol.html | 320 - .../wrapper/core/EnforcementModule.sol.html | 242 - .../modules/wrapper/core/PauseModule.sol.html | 392 - .../contracts/modules/wrapper/core/index.html | 158 - .../wrapper/extensions/DebtModule.sol.html | 365 - .../extensions/DocumentModule.sol.html | 368 - .../extensions/ERC20SnapshotModule.sol.html | 305 - .../wrapper/extensions/MetaTxModule.sol.html | 131 - .../modules/wrapper/extensions/index.html | 132 - .../test/proxy/CMTAT_PROXY_TEST.sol.html | 131 - .../test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html | 131 - .../contracts/test/proxy/index.html | 106 - .../test/coverage/lcov-report/index.html | 275 - .../test/coverage/lcov-report/prettify.css | 1 - .../test/coverage/lcov-report/prettify.js | 1 - .../lcov-report/sort-arrow-sprite.png | Bin 209 -> 0 bytes .../test/coverage/lcov-report/sorter.js | 158 - doc/general/test/coverage/lcov.info | 1374 - doc/general/test/coverage/prettify.css | 1 - doc/general/test/coverage/prettify.js | 1 - .../test/coverage/sort-arrow-sprite.png | Bin 209 -> 0 bytes doc/general/test/coverage/sorter.js | 158 - doc/modules/controllers/surya_report.md | 37 + doc/modules/controllers/validation.md | 78 +- doc/modules/core/{ => Base}/base.md | 39 +- doc/modules/core/Base/surya_report.md | 37 + doc/modules/core/{ => ERC20Base}/ERC20base.md | 35 +- doc/modules/core/ERC20Base/surya_report.md | 37 + doc/modules/core/{ => ERC20Burn}/ERC20Burn.md | 36 +- doc/modules/core/ERC20Burn/surya_report.md | 30 + doc/modules/core/ERC20Mint.md | 122 - doc/modules/core/ERC20Mint/ERC20Mint.md | 88 + doc/modules/core/ERC20Mint/surya_report.md | 29 + doc/modules/core/Enforcement/enforcement.md | 116 + .../surya_report_EnforcementModule.sol.md | 29 + ...ya_report_EnforcementModuleInternal.sol.md | 31 + doc/modules/core/{ => Pause}/pause.md | 40 +- .../Pause/surya_report_PauseModule.sol.md | 32 + doc/modules/core/enforcement.md | 173 - doc/modules/extensions/ERC20Snapshot.md | 64 - doc/modules/extensions/debt.md | 58 - doc/modules/extensions/debt/debt.md | 27 + doc/modules/extensions/debt/surya_report.md | 33 + doc/modules/extensions/document.md | 54 - doc/modules/extensions/document/document.md | 19 + .../extensions/document/surya_report.md | 33 + doc/modules/extensions/metatx.md | 79 - doc/modules/extensions/metatx/metatx.md | 45 + doc/modules/extensions/metatx/surya_report.md | 27 + doc/modules/extensions/snapshot/Snapshot.md | 28 + .../extensions/snapshot/surya_report.md | 31 + doc/schema/PlantUML/CMTAT_BASE_plantUML.wsd | 57 - doc/schema/PlantUML/CMTAT_PROXY_plantUML.wsd | 28 - doc/schema/accessControl/RBAC-diagram.drawio | 2 +- doc/schema/accessControl/RBAC-diagram.svg | 3 +- doc/schema/drawio/architecture.drawio | 2 +- doc/schema/drawio/architecture.pdf | Bin 80481 -> 80227 bytes .../sol2uml/archive/AuthorizationModule.svg | 44 - doc/schema/sol2uml/archive/BaseModule.svg | 84 - doc/schema/sol2uml/archive/CMTAT_BASE.svg | 660 - doc/schema/sol2uml/archive/CMTAT_PROXY.svg | 64 - .../sol2uml/archive/CMTAT_STANDALONE.svg | 77 - .../sol2uml/archive/CreditEventsModule.svg | 122 - doc/schema/sol2uml/archive/DebtBaseModule.svg | 149 - .../sol2uml/archive/ERC20BaseModule.svg | 39 - .../sol2uml/archive/ERC20BurnModule.svg | 73 - .../sol2uml/archive/ERC20MintModule.svg | 73 - .../sol2uml/archive/ERC20SnapshotModule.svg | 151 - .../sol2uml/archive/EnforcementModule.svg | 108 - .../sol2uml/archive/IERC1404Wrapper.svg | 47 - doc/schema/sol2uml/archive/MetaTxModule.svg | 35 - doc/schema/sol2uml/archive/PauseModule.svg | 78 - .../sol2uml/archive/ValidationModule.svg | 276 - ...urya_graph_AuthorizationEngineMock.sol.png | Bin 54084 -> 0 bytes .../surya_graph_AuthorizationModule.sol.png | Bin 202934 -> 69624 bytes .../surya_graph_BaseModule.sol.png | Bin 62524 -> 78027 bytes .../surya_graph_CMTATFactoryBase.sol.png | Bin 36609 -> 0 bytes .../surya_graph_CMTATFactoryRoot.sol.png | Bin 70802 -> 0 bytes .../surya_graph_CMTAT_BASE.sol.png | Bin 441985 -> 434832 bytes .../surya_graph_CMTAT_BEACON_FACTORY.sol.png | Bin 181967 -> 0 bytes .../surya_graph_CMTAT_ERC1363_BASE.sol.png | Bin 0 -> 202733 bytes .../surya_graph_CMTAT_PROXY_ERC1363.sol.png | Bin 0 -> 23413 bytes ...rya_graph_CMTAT_STANDALONE_ERC1363.sol.png | Bin 0 -> 24325 bytes .../surya_graph_CMTAT_TP_FACTORY.sol.png | Bin 128692 -> 0 bytes .../surya_graph_CMTAT_UUPS_FACTORY.sol.png | Bin 113736 -> 0 bytes .../surya_graph_DebtModule.sol.png | Bin 69581 -> 72729 bytes .../surya_graph_DocumentModule.sol.png | Bin 84036 -> 95888 bytes .../surya_graph_ERC20BaseModule.sol.png | Bin 144681 -> 186670 bytes .../surya_graph_ERC20SnapshotModule.sol.png | Bin 76394 -> 0 bytes ..._graph_ERC20SnapshotModuleInternal.sol.png | Bin 129478 -> 0 bytes .../surya_graph_IAuthorizationEngine.sol.png | Bin 28266 -> 0 bytes .../surya_graph_ISnapshotEngine.sol.png | Bin 0 -> 21111 bytes .../surya_graph_MinimalForwarderMock.sol.png | Bin 32146 -> 10721 bytes .../surya_graph_SnapshotEngineMock.sol.png | Bin 0 -> 222493 bytes .../surya_graph_SnapshotEngineModule.sol.png | Bin 0 -> 60942 bytes ...png => surya_graph_SnapshotErrors.sol.png} | Bin .../surya_graph_SnapshotModuleBase.sol.png | Bin 404037 -> 418398 bytes .../surya_graph_ValidationModule.sol.png | Bin 188264 -> 135940 bytes ...rya_graph_ValidationModuleInternal.sol.png | Bin 74373 -> 81060 bytes ...> surya_graph_draft-IERC1643CMTAT.sol.png} | Bin ...nheritance_AuthorizationEngineMock.sol.png | Bin 13610 -> 0 bytes ...surya_inheritance_CMTATFactoryBase.sol.png | Bin 12705 -> 0 bytes ..._inheritance_CMTATFactoryInvariant.sol.png | Bin 6661 -> 0 bytes ...surya_inheritance_CMTATFactoryRoot.sol.png | Bin 18032 -> 0 bytes .../surya_inheritance_CMTAT_BASE.sol.png | Bin 79113 -> 79074 bytes ...a_inheritance_CMTAT_BEACON_FACTORY.sol.png | Bin 19560 -> 0 bytes ...rya_inheritance_CMTAT_ERC1363_BASE.sol.png | Bin 0 -> 20356 bytes ...ya_inheritance_CMTAT_PROXY_ERC1363.sol.png | Bin 0 -> 14348 bytes ...heritance_CMTAT_STANDALONE_ERC1363.sol.png | Bin 0 -> 15030 bytes ...surya_inheritance_CMTAT_TP_FACTORY.sol.png | Bin 13137 -> 0 bytes ...rya_inheritance_CMTAT_UUPS_FACTORY.sol.png | Bin 13881 -> 0 bytes .../surya_inheritance_ERC20BaseModule.sol.png | Bin 13082 -> 20681 bytes ...ya_inheritance_ERC20SnapshotModule.sol.png | Bin 23020 -> 0 bytes ...itance_ERC20SnapshotModuleInternal.sol.png | Bin 26812 -> 0 bytes ...eritance_EnforcementModuleInternal.sol.png | Bin 18052 -> 22749 bytes .../surya_inheritance_FactoryErrors.sol.png | Bin 4658 -> 0 bytes ...a_inheritance_IAuthorizationEngine.sol.png | Bin 6137 -> 0 bytes .../surya_inheritance_ISnapshotEngine.sol.png | Bin 0 -> 5767 bytes ...rya_inheritance_SnapshotEngineMock.sol.png | Bin 0 -> 25881 bytes ...a_inheritance_SnapshotEngineModule.sol.png | Bin 0 -> 13790 bytes .../surya_inheritance_SnapshotErrors.sol.png | Bin 0 -> 5088 bytes ...ya_inheritance_draft-IERC1643CMTAT.sol.png | Bin 0 -> 5738 bytes hardhat.config.js | 3 +- package-lock.json | 28158 ++++++---------- package.json | 6 +- 242 files changed, 10753 insertions(+), 52247 deletions(-) delete mode 100644 contracts/modules/internal/ValidationModuleInternal.sol rename contracts/modules/wrapper/controllers/{ValidationModule.sol => ValidationEngineModule.sol} (62%) rename contracts/modules/wrapper/extensions/{DebtModule.sol => DebtEngineModule.sol} (100%) rename contracts/modules/wrapper/extensions/{DocumentModule.sol => DocumentEngineModule.sol} (98%) rename doc/{general => }/ARCHITECTURE.md (100%) delete mode 100644 doc/TOOLCHAIN.md rename doc/{general => }/contract-size.png (100%) delete mode 100644 doc/general/Engine.md delete mode 100644 doc/general/Proxy.md delete mode 100644 doc/general/test/coverage/base.css delete mode 100644 doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html delete mode 100644 doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html delete mode 100644 doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html delete mode 100644 doc/general/test/coverage/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html delete mode 100644 doc/general/test/coverage/contracts/deployment/CMTAT_TP_FACTORY.sol.html delete mode 100644 doc/general/test/coverage/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html delete mode 100644 doc/general/test/coverage/contracts/deployment/index.html delete mode 100644 doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html delete mode 100644 doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html delete mode 100644 doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html delete mode 100644 doc/general/test/coverage/contracts/deployment/libraries/index.html delete mode 100644 doc/general/test/coverage/contracts/index.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/engine/IDebtGlobal.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/engine/draft-IERC1643.sol.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/engine/index.html delete mode 100644 doc/general/test/coverage/contracts/interfaces/index.html delete mode 100644 doc/general/test/coverage/contracts/libraries/Errors.sol.html delete mode 100644 doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html delete mode 100644 doc/general/test/coverage/contracts/libraries/index.html delete mode 100644 doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/index.html delete mode 100644 doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/internal/base/SnapshotModuleBase.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/internal/base/index.html delete mode 100644 doc/general/test/coverage/contracts/modules/internal/index.html delete mode 100644 doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/security/index.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/controllers/ValidationModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/core/BaseModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BaseModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BurnModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/core/ERC20MintModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/core/EnforcementModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/core/PauseModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/core/index.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/extensions/DebtModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/extensions/DocumentModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/extensions/MetaTxModule.sol.html delete mode 100644 doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html delete mode 100644 doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html delete mode 100644 doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html delete mode 100644 doc/general/test/coverage/contracts/test/proxy/index.html delete mode 100644 doc/general/test/coverage/coverage-final.json delete mode 100644 doc/general/test/coverage/index.html delete mode 100644 doc/general/test/coverage/lcov-report/base.css delete mode 100644 doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY_UUPS.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/CMTAT_STANDALONE.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_TP_FACTORY.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryBase.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryRoot.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/deployment/libraries/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/ICCIPToken.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATConstructor.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATSnapshot.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IAuthorizationEngine.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtEngine.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtGlobal.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IRuleEngine.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/engine/draft-IERC1643.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/engine/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/interfaces/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/libraries/Errors.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/libraries/FactoryErrors.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/libraries/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/CMTAT_BASE.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/internal/EnforcementModuleInternal.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/internal/ValidationModuleInternal.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/internal/base/SnapshotModuleBase.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/internal/base/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/internal/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/security/AuthorizationModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/security/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/ValidationModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/BaseModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BaseModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BurnModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20MintModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/EnforcementModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/PauseModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DebtModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DocumentModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/MetaTxModule.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/index.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html delete mode 100644 doc/general/test/coverage/lcov-report/contracts/test/proxy/index.html delete mode 100644 doc/general/test/coverage/lcov-report/index.html delete mode 100644 doc/general/test/coverage/lcov-report/prettify.css delete mode 100644 doc/general/test/coverage/lcov-report/prettify.js delete mode 100644 doc/general/test/coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 doc/general/test/coverage/lcov-report/sorter.js delete mode 100644 doc/general/test/coverage/lcov.info delete mode 100644 doc/general/test/coverage/prettify.css delete mode 100644 doc/general/test/coverage/prettify.js delete mode 100644 doc/general/test/coverage/sort-arrow-sprite.png delete mode 100644 doc/general/test/coverage/sorter.js create mode 100644 doc/modules/controllers/surya_report.md rename doc/modules/core/{ => Base}/base.md (66%) create mode 100644 doc/modules/core/Base/surya_report.md rename doc/modules/core/{ => ERC20Base}/ERC20base.md (75%) create mode 100644 doc/modules/core/ERC20Base/surya_report.md rename doc/modules/core/{ => ERC20Burn}/ERC20Burn.md (50%) create mode 100644 doc/modules/core/ERC20Burn/surya_report.md delete mode 100644 doc/modules/core/ERC20Mint.md create mode 100644 doc/modules/core/ERC20Mint/ERC20Mint.md create mode 100644 doc/modules/core/ERC20Mint/surya_report.md create mode 100644 doc/modules/core/Enforcement/enforcement.md create mode 100644 doc/modules/core/Enforcement/surya_report_EnforcementModule.sol.md create mode 100644 doc/modules/core/Enforcement/surya_report_EnforcementModuleInternal.sol.md rename doc/modules/core/{ => Pause}/pause.md (55%) create mode 100644 doc/modules/core/Pause/surya_report_PauseModule.sol.md delete mode 100644 doc/modules/core/enforcement.md delete mode 100644 doc/modules/extensions/ERC20Snapshot.md delete mode 100644 doc/modules/extensions/debt.md create mode 100644 doc/modules/extensions/debt/debt.md create mode 100644 doc/modules/extensions/debt/surya_report.md delete mode 100644 doc/modules/extensions/document.md create mode 100644 doc/modules/extensions/document/document.md create mode 100644 doc/modules/extensions/document/surya_report.md delete mode 100644 doc/modules/extensions/metatx.md create mode 100644 doc/modules/extensions/metatx/metatx.md create mode 100644 doc/modules/extensions/metatx/surya_report.md create mode 100644 doc/modules/extensions/snapshot/Snapshot.md create mode 100644 doc/modules/extensions/snapshot/surya_report.md delete mode 100644 doc/schema/PlantUML/CMTAT_BASE_plantUML.wsd delete mode 100644 doc/schema/PlantUML/CMTAT_PROXY_plantUML.wsd delete mode 100644 doc/schema/sol2uml/archive/AuthorizationModule.svg delete mode 100644 doc/schema/sol2uml/archive/BaseModule.svg delete mode 100644 doc/schema/sol2uml/archive/CMTAT_BASE.svg delete mode 100644 doc/schema/sol2uml/archive/CMTAT_PROXY.svg delete mode 100644 doc/schema/sol2uml/archive/CMTAT_STANDALONE.svg delete mode 100644 doc/schema/sol2uml/archive/CreditEventsModule.svg delete mode 100644 doc/schema/sol2uml/archive/DebtBaseModule.svg delete mode 100644 doc/schema/sol2uml/archive/ERC20BaseModule.svg delete mode 100644 doc/schema/sol2uml/archive/ERC20BurnModule.svg delete mode 100644 doc/schema/sol2uml/archive/ERC20MintModule.svg delete mode 100644 doc/schema/sol2uml/archive/ERC20SnapshotModule.svg delete mode 100644 doc/schema/sol2uml/archive/EnforcementModule.svg delete mode 100644 doc/schema/sol2uml/archive/IERC1404Wrapper.svg delete mode 100644 doc/schema/sol2uml/archive/MetaTxModule.svg delete mode 100644 doc/schema/sol2uml/archive/PauseModule.svg delete mode 100644 doc/schema/sol2uml/archive/ValidationModule.svg delete mode 100644 doc/schema/surya_graph/surya_graph_AuthorizationEngineMock.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_CMTATFactoryBase.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_CMTATFactoryRoot.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_CMTAT_BEACON_FACTORY.sol.png create mode 100644 doc/schema/surya_graph/surya_graph_CMTAT_ERC1363_BASE.sol.png create mode 100644 doc/schema/surya_graph/surya_graph_CMTAT_PROXY_ERC1363.sol.png create mode 100644 doc/schema/surya_graph/surya_graph_CMTAT_STANDALONE_ERC1363.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_CMTAT_TP_FACTORY.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_CMTAT_UUPS_FACTORY.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_ERC20SnapshotModule.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_ERC20SnapshotModuleInternal.sol.png delete mode 100644 doc/schema/surya_graph/surya_graph_IAuthorizationEngine.sol.png create mode 100644 doc/schema/surya_graph/surya_graph_ISnapshotEngine.sol.png create mode 100644 doc/schema/surya_graph/surya_graph_SnapshotEngineMock.sol.png create mode 100644 doc/schema/surya_graph/surya_graph_SnapshotEngineModule.sol.png rename doc/schema/surya_graph/{surya_graph_CMTATFactoryInvariant.sol.png => surya_graph_SnapshotErrors.sol.png} (100%) rename doc/schema/surya_graph/{surya_graph_FactoryErrors.sol.png => surya_graph_draft-IERC1643CMTAT.sol.png} (100%) delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_AuthorizationEngineMock.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTATFactoryBase.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTATFactoryInvariant.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTATFactoryRoot.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTAT_BEACON_FACTORY.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTAT_ERC1363_BASE.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_ERC1363.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE_ERC1363.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTAT_TP_FACTORY.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_CMTAT_UUPS_FACTORY.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_ERC20SnapshotModuleInternal.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_FactoryErrors.sol.png delete mode 100644 doc/schema/surya_inheritance/surya_inheritance_IAuthorizationEngine.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_ISnapshotEngine.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_SnapshotEngineMock.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_SnapshotEngineModule.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_SnapshotErrors.sol.png create mode 100644 doc/schema/surya_inheritance/surya_inheritance_draft-IERC1643CMTAT.sol.png diff --git a/README.md b/README.md index 2d69fdd6..b2626790 100644 --- a/README.md +++ b/README.md @@ -70,16 +70,16 @@ CMTAT architecture is divided in two main componentes: module and engines ### Module -Modules describe a logical code separation inside CMTAT. They are defined as abstract contracts. +Modules describe a **logical** code separation inside CMTAT. They are defined as abstract contracts. Their code and functionalities are part of the CMTAT and therefore are also included in the calculation of the contract size and the maximum size limit of 24 kB. It is always possible to delete a module but this requires modifying the code and compiling it again, which require to perform a security audit on these modifications. Modules are also separated in different categories. -- Internal modules: implementation for a module when OpenZeppelin does not provide a library to use. For example, this is the case for the SnapshotModule. +- **Internal** modules: implementation for a module when OpenZeppelin does not provide a library to use. For example, this is the case for the SnapshotModule. -- Wrapper modules: abstract contract around OpenZeppelin contracts or internal module. +- **Wrapper** modules: abstract contract around OpenZeppelin contracts or internal module. For example, the wrapper PauseModule provides public functions to call the internal functions from OpenZeppelin. - Core (Wrapper sub-category): Contains the modules required to be CMTA compliant @@ -95,7 +95,7 @@ Here the list of the different modules with the links towards the documentation | Name | Documentation | Main File | | ---------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| ValidationModule | [validation.md](doc/modules/presentation/controllers/validation.md) | [ValidationModule.sol](./contracts/modules/wrapper/controllers/ValidationModule.sol) | +| ValidationModule | [validation.md](doc/modules/presentation/controllers/validation.md) | [ValidationEngineModule.sol](./contracts/modules/wrapper/controllers/ValidationEngineModule.sol) | ##### Core @@ -114,12 +114,12 @@ Generally, these modules are required to be compliant with the CMTA specificatio Generally, these modules are not required to be compliant with the CMTA specification. -| Name | Documentation | Main File | -| -------------- | ----------------------------------------------------------- | ------------------------------------------------------------ | -| MetaTxModule | [metatx.md](doc/modules/extensions/metatx.md) | [MetaTxModule.sol](./contracts/modules/wrapper/extensions/MetaTxModule.sol) | -| DebtModule | [debt.md](doc/modules/extensions/debt.md) | [DebtModule.sol](./contracts/modules/wrapper/extensions/DebtModule.sol) | -| DocumentModule | [document.md](doc/modules/extensions/document.md) | [Document.sol](./contracts/modules/wrapper/extensions/DocumentModule.sol) | -| SnapshotModule | [ERC20Snapshot.md](doc/modules/extensions/ERC20Snapshot.md) | [ERC20SnapshotModule.sol](./contracts/modules/wrapper/extensions//ERC20SnapshotModule.sol) | +| Name | Documentation | Main File | +| -------------- | --------------------------------------------------- | ------------------------------------------------------------ | +| MetaTxModule | [metatx.md](doc/modules/extensions/metatx) | [MetaTxModule.sol](./contracts/modules/wrapper/extensions/MetaTxModule.sol) | +| DebtModule | [debt.md](doc/modules/extensions/debt) | [DebtEngineModule.sol](./contracts/modules/wrapper/extensions/DebtEngineModule.sol) | +| DocumentModule | [document.md](doc/modules/extensions/document) | [DocumentEngineModule.sol](./contracts/modules/wrapper/extensions/DocumentEngineModule.sol) | +| SnapshotModule | [ERC20Snapshot.md](doc/modules/extensions/snapshot) | [SnapshotEngineModule.sol](./contracts/modules/wrapper/extensions/SnapshotEngineModule.sol) | ##### Security @@ -159,16 +159,26 @@ This contract acts as a controller and can call different contract rule to apply A possible rule is a whitelist rule where only the address inside the whitelist can perform a transfer +##### Requirement + Since the version 2.4.0, the requirement to use a RuleEngine are the following: -> The `RuleEngine` has to import an implement the interface `IRuleEngine` which declares the function `operateOnTransfer`. +> The `RuleEngine` has to import an implement the interface `IRuleEngine` which declares the function `operateOnTransfer` and several other functions related to IERC1404. This interface can be found in [./contracts/interfaces/engine/IRuleEngine.sol](./contracts/interfaces/engine/IRuleEngine.sol). +Warning: The `RuleEngine` has to restrict the access of the function `operateOnTransfer` to only the `CMTAT contract`. + Before each transfer, the CMTAT calls the function `operateOnTransfer` which is the entrypoint for the RuleEngine. Further reading: [Taurus - Token Transfer Management: How to Apply Restrictions with CMTAT and ERC-1404](https://www.taurushq.com/blog/token-transfer-management-how-to-apply-restrictions-with-cmtat-and-erc-1404/) (version used CMTAT v2.4.0) +Example of a CMTAT using a ruleEngine: + +In this example, the token holder calls the function `transfer` which triggers a call to the `RuleEngine` and the different rules associated. + +![RuleEngine](./doc/schema/drawio/RuleEngine.png) + #### SnapshotEngine Engine to perform snapshot on-chain. This engine is defined in the module `SnapshotModule`. @@ -263,7 +273,7 @@ Here is the list of the different version available for each CMTAT version. > Warning: this engine has been removed since CMTAT v3.0.0 -The `AuthorizationEngine` was an external contract to add supplementary check on the functions `grantRole` and `revokeRole`from the CMTAT. Since delegating access rights to an external contract is complicated and it is better to manage access control directly in CMTAT, we removed it in version 3.0.0. +The `AuthorizationEngine` was an external contract to add supplementary check on AccessControl (functions `grantRole` and `revokeRole`) from the CMTAT. Since delegating access rights to an external contract is complicated and it is better to manage access control directly in CMTAT, we removed it in version 3.0.0. **Details** @@ -309,10 +319,26 @@ Please see the OpenZeppelin [upgradeable contracts documentation](https://docs.o Please see the OpenZeppelin [Upgrades plugins](https://docs.openzeppelin.com/upgrades-plugins/1.x/) for more information about plugin upgrades in general. -CMTAT also implements the [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201) to manage the storage location. +#### Implementation details + +##### Storage + +CMTAT also implements the [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201) to manage the storage location. See [this article](https://www.rareskills.io/post/erc-7201) by RareSkills for more information Note that deployment via a proxy is not mandatory, but is recommended by CMTA. +##### Initialize functions + +For wrapper modules, we have removed the public function `{ContractName}_init`to reduce the size of the contracts since inside the public initializer function to initialize your proxy, you have to call the difference functions `__{ContractName}_init_unchained`. + +Do not forget to call the functions `init_unchained` from the parent initializer if you create your own contract from the different modules. + +As indicated in the [OpenZeppelin documentation](https://docs.openzeppelin.com/contracts/5.x/upgradeable#multiple-inheritance): + +> Initializer functions are not linearized by the compiler like constructors. Because of this, each `__{ContractName}_init` function embeds the linearized calls to all parent initializers. As a consequence, calling two of these `init` functions can potentially initialize the same contract twice. +> +> The function `__{ContractName}_init_unchained` found in every contract is the initializer function minus the calls to parent initializers, and can be used to avoid the double initialization problem, but doing this manually is not recommended. We hope to be able to implement safety checks for this in future versions of the Upgrades Plugins. + ### ERC-1363 [ERC-1363](https://eips.ethereum.org/EIPS/eip-1363) is an extension interface for ERC-20 tokens that supports executing code on a recipient contract after transfers, or code on a spender contract after approvals, in a single transaction. diff --git a/contracts/interfaces/draft-IERC1643CMTAT.sol b/contracts/interfaces/draft-IERC1643CMTAT.sol index bdaeee2e..6e1b07eb 100644 --- a/contracts/interfaces/draft-IERC1643CMTAT.sol +++ b/contracts/interfaces/draft-IERC1643CMTAT.sol @@ -1,4 +1,5 @@ - //SPDX-License-Identifier: MPL-2.0 +//SPDX-License-Identifier: MPL-2.0 + import {IERC1643} from "./engine/draft-IERC1643.sol"; pragma solidity ^0.8.20; diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index c63bbc77..b71cba83 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -12,10 +12,10 @@ import {ERC20MintModule} from "./wrapper/core/ERC20MintModule.sol"; import {EnforcementModule} from "./wrapper/core/EnforcementModule.sol"; import {ERC20BaseModule, ERC20Upgradeable} from "./wrapper/core/ERC20BaseModule.sol"; import {PauseModule} from "./wrapper/core/PauseModule.sol"; -import {ValidationModule} from "./wrapper/controllers/ValidationModule.sol"; +import {ValidationModule} from "./wrapper/controllers/ValidationEngineModule.sol"; import {MetaTxModule, ERC2771ContextUpgradeable} from "./wrapper/extensions/MetaTxModule.sol"; -import {DebtModule} from "./wrapper/extensions/DebtModule.sol"; -import {DocumentModule} from "./wrapper/extensions/DocumentModule.sol"; +import {DebtModule} from "./wrapper/extensions/DebtEngineModule.sol"; +import {DocumentModule} from "./wrapper/extensions/DocumentEngineModule.sol"; import {SnapshotEngineModule} from "./wrapper/extensions/SnapshotEngineModule.sol"; // Security import {AuthorizationModule} from "./security/AuthorizationModule.sol"; @@ -88,7 +88,7 @@ abstract contract CMTAT_BASE is // Openzeppelin __CMTAT_openzeppelin_init_unchained(); /* Internal Modules */ - __CMTAT_internal_init_unchained(engines_ ); + __CMTAT_internal_init_unchained(); /* Wrapper modules */ __CMTAT_modules_init_unchained(admin, ERC20Attributes_, baseModuleAttributes_, engines_ ); @@ -113,9 +113,8 @@ abstract contract CMTAT_BASE is /* * @dev CMTAT internal module */ - function __CMTAT_internal_init_unchained( ICMTATConstructor.Engine memory engines_) internal virtual onlyInitializing { + function __CMTAT_internal_init_unchained() internal virtual onlyInitializing { __Enforcement_init_unchained(); - __Validation_init_unchained(engines_.ruleEngine); } /* @@ -131,7 +130,7 @@ abstract contract CMTAT_BASE is __ERC20BaseModule_init_unchained(ERC20Attributes_.decimalsIrrevocable, ERC20Attributes_.name, ERC20Attributes_.symbol); // PauseModule_init_unchained is called before ValidationModule_init_unchained due to inheritance __PauseModule_init_unchained(); - __ValidationModule_init_unchained(); + __ValidationModule_init_unchained(engines_.ruleEngine); __SnapshotModule_init_unchained(engines_.snapshotEngine); __DocumentModule_init_unchained(engines_ .documentEngine); @@ -237,9 +236,11 @@ abstract contract CMTAT_BASE is if (!ValidationModule._operateOnTransfer(from, to, amount)) { revert Errors.CMTAT_InvalidTransfer(from, to, amount); } + // We check here the address of the snapshotEngine here because we don't want to read balance/totalSupply if there is no ruleEngine + ISnapshotEngine snapshotEngine = snapshotEngine(); // Required to be performed before the update - if(address(snapshotEngine()) != address(0)){ - snapshotEngine().operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); + if(address(snapshotEngine) != address(0)){ + snapshotEngine.operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); } ERC20Upgradeable._update(from, to, amount); } diff --git a/contracts/modules/internal/ValidationModuleInternal.sol b/contracts/modules/internal/ValidationModuleInternal.sol deleted file mode 100644 index 6550eabe..00000000 --- a/contracts/modules/internal/ValidationModuleInternal.sol +++ /dev/null @@ -1,118 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; -import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import {IRuleEngine} from "../../interfaces/engine/IRuleEngine.sol"; -/** - * @dev Validation module. - * - * Useful for to restrict and validate transfers - */ -abstract contract ValidationModuleInternal is - Initializable, - ContextUpgradeable -{ - /* ============ Events ============ */ - /** - * @dev Emitted when a rule engine is set. - */ - event RuleEngine(IRuleEngine indexed newRuleEngine); - /* ============ ERC-7201 ============ */ - // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ValidationModuleInternal")) - 1)) & ~bytes32(uint256(0xff)) - bytes32 private constant ValidationModuleInternalStorageLocation = 0xb3e8f29e401cfa802cad91001b5f9eb50decccdb111d80cb07177ab650b04700; - /* ==== ERC-7201 State Variables === */ - struct ValidationModuleInternalStorage { - IRuleEngine _ruleEngine; - } - /* ============ Initializer Function ============ */ - function __Validation_init_unchained( - IRuleEngine ruleEngine_ - ) internal onlyInitializing { - if (address(ruleEngine_) != address(0)) { - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - _setRuleEngine($, ruleEngine_); - } - } - - - /*////////////////////////////////////////////////////////////// - PUBLIC/EXTERNAL FUNCTIONS - //////////////////////////////////////////////////////////////*/ - - function ruleEngine() public view returns(IRuleEngine){ - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - return $._ruleEngine; - } - - - /*////////////////////////////////////////////////////////////// - INTERNAL/PRIVATE FUNCTIONS - //////////////////////////////////////////////////////////////*/ - /* ============ View functions ============ */ - - function _validateTransfer( - address from, - address to, - uint256 amount - ) internal view returns (bool) { - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - if (address($._ruleEngine) != address(0)) { - return $._ruleEngine.validateTransfer(from, to, amount); - } else{ - return true; - } - } - - /** - * @dev before making a call to this function, you have to check if a ruleEngine is set. - */ - function _messageForTransferRestriction( - ValidationModuleInternalStorage storage $, - uint8 restrictionCode - ) internal view returns (string memory) { - return $._ruleEngine.messageForTransferRestriction(restrictionCode); - } - - /** - * @dev before making a call to this function, you have to check if a ruleEngine is set. - */ - function _detectTransferRestriction( - ValidationModuleInternalStorage storage $, - address from, - address to, - uint256 amount - ) internal view returns (uint8) { - return $._ruleEngine.detectTransferRestriction(from, to, amount); - } - - /* ============ State functions ============ */ - /* - * @dev set a RuleEngine - * @param ruleEngine_ the call will be reverted if the new value of ruleEngine is the same as the current one - */ - function _setRuleEngine( - ValidationModuleInternalStorage storage $, - IRuleEngine ruleEngine_ - ) internal { - $._ruleEngine = ruleEngine_; - emit RuleEngine(ruleEngine_); - } - function _operateOnTransfer(address from, address to, uint256 amount) virtual internal returns (bool) { - ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - if (address($._ruleEngine) != address(0)) { - return $._ruleEngine.operateOnTransfer(from, to, amount); - } else{ - return true; - } - } - - - /* ============ ERC-7201 ============ */ - function _getValidationModuleInternalStorage() internal pure returns (ValidationModuleInternalStorage storage $) { - assembly { - $.slot := ValidationModuleInternalStorageLocation - } - } -} diff --git a/contracts/modules/wrapper/controllers/ValidationModule.sol b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol similarity index 62% rename from contracts/modules/wrapper/controllers/ValidationModule.sol rename to contracts/modules/wrapper/controllers/ValidationEngineModule.sol index 0654a679..7e7def90 100644 --- a/contracts/modules/wrapper/controllers/ValidationModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol @@ -2,19 +2,22 @@ pragma solidity ^0.8.20; +import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; -import {ValidationModuleInternal, IRuleEngine} from "../../internal/ValidationModuleInternal.sol"; import {PauseModule} from "../core/PauseModule.sol"; import {EnforcementModule} from "../core/EnforcementModule.sol"; import {Errors} from "../../../libraries/Errors.sol"; import {IERC1404Wrapper} from "../../../interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol"; +import {IRuleEngine} from "../../../interfaces/engine/IRuleEngine.sol"; /** * @dev Validation module. * * Useful for to restrict and validate transfers */ abstract contract ValidationModule is - ValidationModuleInternal, + Initializable, + ContextUpgradeable, PauseModule, EnforcementModule, IERC1404Wrapper @@ -23,15 +26,39 @@ abstract contract ValidationModule is string constant TEXT_TRANSFER_OK = "No restriction"; string constant TEXT_UNKNOWN_CODE = "Unknown code"; + + /* ============ Events ============ */ + /** + * @dev Emitted when a rule engine is set. + */ + event RuleEngine(IRuleEngine indexed newRuleEngine); + /* ============ ERC-7201 ============ */ + // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ValidationModuleInternal")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant ValidationModuleInternalStorageLocation = 0xb3e8f29e401cfa802cad91001b5f9eb50decccdb111d80cb07177ab650b04700; + /* ==== ERC-7201 State Variables === */ + struct ValidationModuleInternalStorage { + IRuleEngine _ruleEngine; + } + /* ============ Initializer Function ============ */ - function __ValidationModule_init_unchained() internal onlyInitializing { - // no variable to initialize + function __ValidationModule_init_unchained( + IRuleEngine ruleEngine_ + ) internal onlyInitializing { + if (address(ruleEngine_) != address(0)) { + ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); + _setRuleEngine($, ruleEngine_); + } } /*////////////////////////////////////////////////////////////// PUBLIC/EXTERNAL FUNCTIONS //////////////////////////////////////////////////////////////*/ + + function ruleEngine() public view returns(IRuleEngine){ + ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); + return $._ruleEngine; + } /* * @notice set a RuleEngine @@ -74,7 +101,7 @@ abstract contract ValidationModule is ) { return TEXT_TRANSFER_REJECTED_TO_FROZEN; } else if (address($._ruleEngine) != address(0)) { - return _messageForTransferRestriction($, restrictionCode); + return $._ruleEngine.messageForTransferRestriction(restrictionCode); } else { return TEXT_UNKNOWN_CODE; } @@ -100,7 +127,7 @@ abstract contract ValidationModule is } else if (frozen(to)) { return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN); } else if (address($._ruleEngine) != address(0)) { - return _detectTransferRestriction($, from, to, amount); + return $._ruleEngine.detectTransferRestriction(from, to, amount); } else { return uint8(REJECTED_CODE_BASE.TRANSFER_OK); @@ -123,6 +150,20 @@ abstract contract ValidationModule is /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ + /* ============ View functions ============ */ + function _validateTransfer( + address from, + address to, + uint256 amount + ) internal view returns (bool) { + ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); + if (address($._ruleEngine) != address(0)) { + return $._ruleEngine.validateTransfer(from, to, amount); + } else{ + return true; + } + } + function _validateTransferByModule( address from, address to, @@ -136,11 +177,36 @@ abstract contract ValidationModule is } - function _operateOnTransfer(address from, address to, uint256 amount) override internal returns (bool){ + /* ============ State functions ============ */ + /* + * @dev set a RuleEngine + * @param ruleEngine_ the call will be reverted if the new value of ruleEngine is the same as the current one + */ + function _setRuleEngine( + ValidationModuleInternalStorage storage $, + IRuleEngine ruleEngine_ + ) internal { + $._ruleEngine = ruleEngine_; + emit RuleEngine(ruleEngine_); + } + + function _operateOnTransfer(address from, address to, uint256 amount) internal returns (bool){ if (!_validateTransferByModule(from, to, amount)){ return false; } else{ - return ValidationModuleInternal._operateOnTransfer(from, to, amount); + ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); + if (address($._ruleEngine) != address(0)){ + return $._ruleEngine.operateOnTransfer(from, to, amount); + }else{ + return true; + } + } + } + + /* ============ ERC-7201 ============ */ + function _getValidationModuleInternalStorage() internal pure returns (ValidationModuleInternalStorage storage $) { + assembly { + $.slot := ValidationModuleInternalStorageLocation } } } diff --git a/contracts/modules/wrapper/extensions/DebtModule.sol b/contracts/modules/wrapper/extensions/DebtEngineModule.sol similarity index 100% rename from contracts/modules/wrapper/extensions/DebtModule.sol rename to contracts/modules/wrapper/extensions/DebtEngineModule.sol diff --git a/contracts/modules/wrapper/extensions/DocumentModule.sol b/contracts/modules/wrapper/extensions/DocumentEngineModule.sol similarity index 98% rename from contracts/modules/wrapper/extensions/DocumentModule.sol rename to contracts/modules/wrapper/extensions/DocumentEngineModule.sol index 83c081e6..7155e332 100644 --- a/contracts/modules/wrapper/extensions/DocumentModule.sol +++ b/contracts/modules/wrapper/extensions/DocumentEngineModule.sol @@ -42,7 +42,7 @@ abstract contract DocumentModule is AuthorizationModule, IERC1643 { internal onlyInitializing { if (address(documentEngine_) != address (0)) { DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - _ _setDocumentEngine($, documentEngine_); + _setDocumentEngine($, documentEngine_); } } diff --git a/doc/general/ARCHITECTURE.md b/doc/ARCHITECTURE.md similarity index 100% rename from doc/general/ARCHITECTURE.md rename to doc/ARCHITECTURE.md diff --git a/doc/TOOLCHAIN.md b/doc/TOOLCHAIN.md deleted file mode 100644 index 59840d10..00000000 --- a/doc/TOOLCHAIN.md +++ /dev/null @@ -1,209 +0,0 @@ -# TOOLCHAIN - -[TOC] - -## Node.JS package - -This part describe the list of libraries present in the file `package.json`. - -### Dev - -This section concerns the packages installed in the section `devDependencies` of package.json - -#### Test - -**[Chai](https://www.chaijs.com/)** -Library used for the tests - -**[Coveralls](https://coveralls.io/)** -It is used to perform a code coverage - -#### Nomiclabs - Hardhat - -**[hardhat-web3](https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-web3)** - -This plugin integrates [Web3.js](https://github.com/ethereum/web3.js) `1.x` into [Hardhat](https://hardhat.org/). - -**[hardhat-ethers](https://www.npmjs.com/package/@nomicfoundation/hardhat-ethers)** - -[Hardhat](https://hardhat.org/) plugin for integration with [ethers.js](https://github.com/ethers-io/ethers.js/) - -**[hardhat-contract-sizer](https://www.npmjs.com/package/hardhat-contract-sizer)** - -Output Solidity contract sizes with Hardhat. - -**[hardhat-gas-reporter](https://www.npmjs.com/package/hardhat-gas-reporter)** - -[eth-gas-reporter](https://github.com/cgewecke/eth-gas-reporter) plugin for [hardhat](http://gethardhat.com/). - -#### OpenZeppelin - -**[openzeppelin/hardhat-upgrades](openzeppelin/hardhat-upgrades)** - -This package adds functions to your Hardhat scripts so you can deploy and upgrade proxies for your contracts - -**[openzeppelin/test-helpers](openzeppelin/test-helpers)** - -Assertion library for Ethereum smart contract testing - -#### Linter - -**[eslint](https://eslint.org/)** -JavaScript static analyzer, and the following plugins: - -* **[eslint-config-standard](https://github.com/standard/eslint-config-standard)** -Shareable configs designed to work with the extends feature of .eslintrc files. - -* **[eslint-plugin-import](https://github.com/import-js/eslint-plugin-import)** -Plugin to support linting of ES2015+ (ES6+) import/export syntax, and prevent issues with misspelling of file paths and import names. - -* **[eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node)** -Additional ESLint's rules for Node.js - -* **[eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise)** -Enforcement best practices for JavaScript promises. - -**[Ethlint](https://github.com/duaraghav8/Ethlint)** -Solidity static analyzer. - - -#### Ethereum / Solidity - -**[ethereumjs-util](https://www.npmjs.com/package/ethereumjs-util)** -Collection of utility functions for Ethereum (account, address, -signature, etc.). - -**[ethjs-abi](https://github.com/ethjs/ethjs-abi)** -Encode and decode method and event from the smart contract ABI. Warning: -marked as experimental package on 22.08.2022. - -**[eth-gas-reporter](https://www.npmjs.com/package/eth-gas-reporter)** - -A Mocha reporter for Ethereum test suites (Truffle) - -[keccak256](https://www.npmjs.com/package/keccak256) - -A wrapper for the [`keccak`](https://www.npmjs.com/package/keccak) library to compute 256 bit keccak hash in JavaScript. - -Use by `openzeppelin-contracts-upgradeable/test/helpers/eip712`imported in `MetaTxModuleCommon.js - -**[solc](https://github.com/ethereum/solc-js)** -JavaScript bindings for the Solidity compiler. - -#### Documentation - -**[sol2uml](https://github.com/naddison36/sol2uml)** - -Generate UML for smart contracts - -**[solidity-coverage](https://github.com/sc-forks/solidity-coverage/)** - -Code coverage for Solidity smart-contracts - -**[solidity-docgen](https://github.com/OpenZeppelin/solidity-docgen)** - -Program that extracts documentation for a Solidity project. - -**[Surya](https://github.com/ConsenSys/surya)** - -Utility tool for smart contract systems. - -### Production - -This section concerns the packages installed in the section `dependencies` of package.json - - - -## Submodule - -**[OpenZeppelin Contracts Upgradeable](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/)** -Upgradeable variant of OpenZeppelin Contracts, meant for use in upgradeable contracts. -The version of the library used is available in the file [USAGE.md](./USAGE.md) - -Warning: -- Submodules are not automatically updated when the host repository is updated. -- Only update the module to a specific version, not an intermediary commit. - - - -## Generate documentation - -### [sol2uml](https://github.com/naddison36/sol2uml) - -Generate UML for smart contracts - -You can generate UML for smart contracts by running the following command: - -```bash -npm run-script uml -``` - -Warning: - -From the version v2.3.0, this command is not working and generates the following error - -> RangeError: Maximum call stack size exceeded - -| Description | Command | -| ------------------------------------------------------------ | -------------------------------------- | -| Generate UML for all modules | `npm run-script uml-all` | -| Generate UML for the interfaces EIP1404 | `npm run-script uml-i-eip1404` | -| Generate UML for the contracts CMTAT_STANDALONE, CMTAT_PROXY && CMTAT_BASE | `npm run-script uml-partial` | -| Generate UML for core modules | `npm run-script uml-modules-mandatory` | -| Generate UML for extensions modules | `npm run-script uml-modules-optional` | -| Generate UML for security modules | `npm run-script uml-modules-security` | -| Generate UML for mocks | `npm run-script uml-mocks` | - - - -### [Surya](https://github.com/ConsenSys/surya) - -To generate documentation with surya, you can call the three bash scripts in doc/script - -| Task | Script | Command exemple | -| -------------------- | --------------------------- | ------------------------------------------------------------ | -| Generate graph | script_surya_graph.sh | npx surya graph -i contracts/**/*.sol
npx surya graph contracts/modules/CMTAT_BASE.sol | -| Generate inheritance | script_surya_inheritance.sh | npx surya inheritance contracts/modules/CMTAT_BASE.sol -i
npx surya inheritance contracts/modules/CMTAT_BASE.sol | -| Generate report | script_surya_report.sh | npx surya mdreport -i surya_report.md contracts/modules/CMTAT_BASE.sol
npx surya mdreport surya_report.md contracts/modules/CMTAT_BASE.sol | - -In the report, the path for the different files are indicated in absolute. You have to remove the part which correspond to your local filesystem. - - - -### [Coverage](https://github.com/sc-forks/solidity-coverage/) - -Code coverage for Solidity smart-contracts, installed as a hardhat plugin - -```bash -npm run-script coverage -``` - - - -### [Slither](https://github.com/crytic/slither) - -Slither is a Solidity static analysis framework written in Python3 - -```bash -slither . --checklist --filter-paths "openzeppelin-contracts-upgradeable|openzeppelin-contracts|@openzeppelin|test" > slither-report.md -``` - - - - - -### [Mythril](https://github.com/Consensys/mythril) - -- Standalone - -```bash -myth analyze contracts/CMTAT_STANDALONE.sol --solc-json solc_setting.json > myth_standalone_report.md -``` - -- With proxy - -```bash -myth analyze contracts/CMTAT_PROXY.sol --solc-json solc_setting.json > myth_proxy_report.md -``` - -File path for `solc` is configured in `solc_setting.json` diff --git a/doc/USAGE.md b/doc/USAGE.md index 59dfa214..8056560e 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -2,18 +2,47 @@ The instructions below have been tested on Ubuntu 22.04.5 LTS. -## Dependencies +[TOC] + + + +## Main Dependencies The toolchain includes the following components, where the versions are the latest ones that we tested: -- npm 10.2.5 -- Hardhat ^2.22.7 +### Smart contract + - Solidity 0.8.28 (via solc-js) -- Node 20.5.0 - OpenZeppelin Contracts (Node.js module) [v5.2.0](https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.2.0) - OpenZeppelin Contracts Upgradeable (Node.js module) [v5.2.0](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.0.2) -- Test: OpenZeppelin Contracts Upgradeable (submodule) [v5.2.0](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.2.0) + +### Tools + +- Node 20.5.0 + +- npm 10.2.5 +- Nomiclabs - Hardhat: ^2.22.7 + - **[hardhat-web3](https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-web3)**: This plugin integrates [Web3.js](https://github.com/ethereum/web3.js) `1.x` into [Hardhat](https://hardhat.org/). + - **[hardhat-ethers](https://www.npmjs.com/package/@nomicfoundation/hardhat-ethers)** + - [Hardhat](https://hardhat.org/) plugin for integration with [ethers.js](https://github.com/ethers-io/ethers.js/) + - **[hardhat-contract-sizer](https://www.npmjs.com/package/hardhat-contract-sizer)**: Output Solidity contract sizes with Hardhat. + - **[hardhat-gas-reporter](https://www.npmjs.com/package/hardhat-gas-reporter)** + - [solidity-coverage](https://github.com/sc-forks/solidity-coverage): Hardhat plugin for solidity coverage + + +#### Submodule + +Use inside Javascript tests + +OpenZeppelin Contracts Upgradeable (submodule) [v5.2.0](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.2.0) +Upgradeable variant of OpenZeppelin Contracts, meant for use in upgradeable contracts. +The version of the library used is available in the file [USAGE.md](./USAGE.md) + +Warning: + +- Submodules are not automatically updated when the host repository is updated. +- Only update the module to a specific version, not an intermediary commit. ## Installation @@ -102,9 +131,147 @@ npm run-script lint:sol npm run-script lint:sol:fix ``` +### NodeJS toolchain + +**[eslint](https://eslint.org/)** +JavaScript static analyzer, and the following plugins: + +* **[eslint-config-standard](https://github.com/standard/eslint-config-standard)** + Shareable configs designed to work with the extends feature of .eslintrc files. + +* **[eslint-plugin-import](https://github.com/import-js/eslint-plugin-import)** + Plugin to support linting of ES2015+ (ES6+) import/export syntax, and prevent issues with misspelling of file paths and import names. + +* **[eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node)** + Additional ESLint's rules for Node.js + +* **[eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise)** + Enforcement best practices for JavaScript promises. + +**[Ethlint](https://github.com/duaraghav8/Ethlint)** +Solidity static analyzer. + ## Compilation with solc +**[solc](https://github.com/ethereum/solc-js)** +JavaScript bindings for the Solidity compiler. + ```bash solc --base-path . --include-path ./node_modules/ contracts/CMTAT_STANDALONE.sol ``` +## Generate documentation + +### NodeJS toolchain + +**[sol2uml](https://github.com/naddison36/sol2uml)** + +Generate UML for smart contracts + +**[solidity-coverage](https://github.com/sc-forks/solidity-coverage/)** + +Code coverage for Solidity smart-contracts + +**[solidity-docgen](https://github.com/OpenZeppelin/solidity-docgen)** + +Program that extracts documentation for a Solidity project. + +**[Surya](https://github.com/ConsenSys/surya)** + +Utility tool for smart contract systems. + +### [sol2uml](https://github.com/naddison36/sol2uml) + +Generate UML for smart contracts + +You can generate UML for smart contracts by running the following command: + +```bash +npm run-script uml +``` + +Warning: + +From the version v2.3.0, this command is not working and generates the following error + +> RangeError: Maximum call stack size exceeded + +| Description | Command | +| ------------------------------------------------------------ | -------------------------------------- | +| Generate UML for all modules | `npm run-script uml-all` | +| Generate UML for the interfaces EIP1404 | `npm run-script uml-i-eip1404` | +| Generate UML for the contracts CMTAT_STANDALONE, CMTAT_PROXY && CMTAT_BASE | `npm run-script uml-partial` | +| Generate UML for core modules | `npm run-script uml-modules-mandatory` | +| Generate UML for extensions modules | `npm run-script uml-modules-optional` | +| Generate UML for security modules | `npm run-script uml-modules-security` | +| Generate UML for mocks | `npm run-script uml-mocks` | + + + +### [Surya](https://github.com/ConsenSys/surya) + +To generate documentation with surya, you can call the three bash scripts in doc/script + +| Task | Script | Command exemple | +| -------------------- | --------------------------- | ------------------------------------------------------------ | +| Generate graph | script_surya_graph.sh | npx surya graph -i contracts/**/*.sol
npx surya graph contracts/modules/CMTAT_BASE.sol | +| Generate inheritance | script_surya_inheritance.sh | npx surya inheritance contracts/modules/CMTAT_BASE.sol -i
npx surya inheritance contracts/modules/CMTAT_BASE.sol | +| Generate report | script_surya_report.sh | npx surya mdreport -i surya_report.md contracts/modules/CMTAT_BASE.sol
npx surya mdreport surya_report.md contracts/modules/CMTAT_BASE.sol | + +In the report, the path for the different files are indicated in absolute. You have to remove the part which correspond to your local filesystem. + + + +### [Coverage](https://github.com/sc-forks/solidity-coverage/) + +Code coverage for Solidity smart-contracts, installed as a hardhat plugin + +```bash +npm run-script coverage +``` + + + +### [Slither](https://github.com/crytic/slither) + +Slither is a Solidity static analysis framework written in Python3 + +```bash +slither . --checklist --filter-paths "openzeppelin-contracts-upgradeable|openzeppelin-contracts|@openzeppelin|test" > slither-report.md +``` + +### [Mythril](https://github.com/Consensys/mythril) + +- Standalone + +```bash +myth analyze contracts/CMTAT_STANDALONE.sol --solc-json solc_setting.json > myth_standalone_report.md +``` + +- With proxy + +```bash +myth analyze contracts/CMTAT_PROXY.sol --solc-json solc_setting.json > myth_proxy_report.md +``` + +File path for `solc` is configured in `solc_setting.json` + + + +## Others NodeJS tools + +This part describe the list of libraries present in the file `package.json`. + +- **[Chai](https://www.chaijs.com/)** + Library used for the tests + +- **[openzeppelin/hardhat-upgrades](openzeppelin/hardhat-upgrades)** + +This package adds functions to your Hardhat scripts so you can deploy and upgrade proxies for your contracts + +- [keccak256](https://www.npmjs.com/package/keccak256) + +A wrapper for the [`keccak`](https://www.npmjs.com/package/keccak) library to compute 256 bit keccak hash in JavaScript. + +Use by `openzeppelin-contracts-upgradeable/test/helpers/eip712`imported in `MetaTxModuleCommon.js + diff --git a/doc/general/contract-size.png b/doc/contract-size.png similarity index 100% rename from doc/general/contract-size.png rename to doc/contract-size.png diff --git a/doc/general/Engine.md b/doc/general/Engine.md deleted file mode 100644 index eb7134e2..00000000 --- a/doc/general/Engine.md +++ /dev/null @@ -1,100 +0,0 @@ -# Engine - -It is possible to add supplementary controls on the CMTAT through four Engines: - -- The `RuleEngine` -- The `AuthorizationEngine` -- The DocumentEngine -- The DebtEngine - -## RuleEngine - -The **RuleEngine** is an external contract used to apply transfer restriction to the CMTAT. This contract is **optional** and its address can be left to zero. - -This contract acts as a controller and can call different contract rule to apply rule on each transfer. - -A possible rule is a whitelist rule where only the address inside the whitelist can perform a transfer. - -### Example - -In this example, the token holder calls the function `transfer` which triggers a call to the `RuleEngine` and the different rules associated. - -![RuleEngine](../../doc/schema/drawio/RuleEngine.png) - - - -### Implementation - -A **ruleEngine** contract has to implement the interface `IRuleEngine`, which inherits from the `IERC1404Wrapper`. These two interfaces defines mainly two functions. - -- `operateOnTransfer` - -```solidity -function operateOnTransfer(address _from,address _to, uint256 _amount) -external returns (bool); -``` - -- `validateTransfer` - -```solidity -function validateTransfer(address _from,address _to,uint256 _amount) -external returns (bool); -``` - -**Warning** - -The `RuleEngine` has to restrict the access of the function `operateOnTransfer` to only the `CMTAT contract`. - -### Schema - -![Engine-RuleEngine.drawio](../../doc/schema/drawio/Engine-RuleEngine.drawio.png) - - - - - -## AuthorizationEngine - -The `authorizationEngine` allows the possibility to add supplementary checks on AccessControl with an optional `AuthorizationEngine`, similar to the RuleEngine. -Main advantages : - -- Allow CMTAT user to add their own check on access control, typically the transfer of adminship, e.g. if this operations requires a multi signature or the authorization of guardians. -- Reduce the contract code size because theses supplementary checks are made in an external contract, which is good since the size of a contract is limited. - -- The` AccessControlDefaultAdminRules` introduces in CMTAT 2.3.1, has been removed because it has a large code size and introduces several restriction, good for security but can be too restrictive. With the `AuthorizationEngine`, it is possible to implement theses restrictions. - -### Implementation - -An **AuthorizationEngine** contract has to implement the interface `IAuthorizationEngine`. This interface defines mainly twos functions, one to grant a Role and the other one to revole a role. - -```solidity - /** - * @dev Returns true if the operation is authorized, and false otherwise. - */ - function operateOnGrantRole( - bytes32 role, address account - ) external returns (bool isValid); - - /** - * @dev Returns true if the operation is authorized, and false otherwise. - */ - function operateOnRevokeRole( - bytes32 role, address account - ) external returns (bool isValid); - -``` - -### Schema - - - -![Engine-AuthorizationEngine.drawio](../../doc/schema/drawio/Engine-AuthorizationEngine.drawio.png) - - - -### Warning - -- Once an `autorizationEngine` is set, it is not possible to update the address of the `AuthorizationEngine`. The goal is to protect against a change by the super-admin, e.g. the possibility to remove the `AuthorizationEngine`, to bypass the different restrictions. - -- With a deployment of proxy, the owner of the proxy contract can deactivate these controls by upgrading to a new implementation. To avoid this, the proxy owner should be different of the CMTAT super admin in case you want to use an `AuthorizationEngine`. -- The `AuthorizationEngine` has to restrict the access of the function `operateOnAuthorization` to only the `CMTAT contract`. \ No newline at end of file diff --git a/doc/general/Proxy.md b/doc/general/Proxy.md deleted file mode 100644 index 2a1ed347..00000000 --- a/doc/general/Proxy.md +++ /dev/null @@ -1,34 +0,0 @@ -# Proxy - -This documents explains some details about the proxy architecture - - -## Initialize function - -For wrapper modules, we have removed the public function `{ContractName}_init`to reduce the size of the contracts since inside the public initializer function to initialize your proxy, you have to call the difference functions `__{ContractName}_init_unchained`. - -Do not forget to call the functions `init_unchained` from the parent initializer if you create your own contract from the different modules. - -As indicated in the [OpenZeppelin documentation](https://docs.openzeppelin.com/contracts/5.x/upgradeable#multiple-inheritance): - -> Initializer functions are not linearized by the compiler like constructors. Because of this, each `__{ContractName}_init` function embeds the linearized calls to all parent initializers. As a consequence, calling two of these `init` functions can potentially initialize the same contract twice. -> -> The function `__{ContractName}_init_unchained` found in every contract is the initializer function minus the calls to parent initializers, and can be used to avoid the double initialization problem, but doing this manually is not recommended. We hope to be able to implement safety checks for this in future versions of the Upgrades Plugins. - -## ERC-7201 - -To manage memory and avoid storage collisions, CMTAT implements, like OpenZeppelin, the [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201) - -More information on a [RareSkills article](https://www.rareskills.io/post/erc-7201) - -## Deployment with a proxy - -The CMTAT supports deployment via a proxy contract. Furthermore, using a proxy permits to upgrade the contract, using a standard proxy upgrade pattern. - -The contract version to use as an implementation is the `CMTAT_PROXY`. - -Please see the OpenZeppelin [upgradeable contracts documentation](https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable) for more information about the proxy requirements applied to the contract. - -Please see the OpenZeppelin [Upgrades plugins](https://docs.openzeppelin.com/upgrades-plugins/1.x/) for more information about plugin upgrades in general. - -Note that deployment via a proxy is not mandatory, but is recommended by CMTA. diff --git a/doc/general/test/coverage/base.css b/doc/general/test/coverage/base.css deleted file mode 100644 index 29737bcb..00000000 --- a/doc/general/test/coverage/base.css +++ /dev/null @@ -1,213 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.medium .chart { border:1px solid #f9cd0b; } -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } -/* light gray */ -span.cline-neutral { background: #eaeaea; } - -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html b/doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html deleted file mode 100644 index 9ed16b05..00000000 --- a/doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/CMTAT_PROXY.sol - - - - - - - -

-
-

- all files / contracts/ CMTAT_PROXY.sol -

-
-
- 100% - Statements - 1/1 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 1/1 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -198× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) MetaTxModule(forwarderIrrevocable) {
-        // Disable the possibility to initialize the implementation
-        _disableInitializers();
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html b/doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html deleted file mode 100644 index fdef59e1..00000000 --- a/doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - Code coverage report for contracts/CMTAT_PROXY_UUPS.sol - - - - - - - -
-
-

- all files / contracts/ CMTAT_PROXY_UUPS.sol -

-
-
- 100% - Statements - 3/3 -
-
- 75% - Branches - 3/4 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 3/3 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  - -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-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");
-    /**
-     * @notice Contract version for the deployment with a proxy
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) MetaTxModule(forwarderIrrevocable) {
-        // Disable the possibility to initialize the implementation
-        _disableInitializers();
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    /**
-     * @notice
-     * initialize the proxy contract
-     * The calls to this function will revert if the contract was deployed without a proxy
-     * @param admin address of the admin of contract (Access Control)
-     * @param ERC20Attributes_ ERC20 name, symbol and decimals
-     * @param baseModuleAttributes_ tokenId, terms, information
-     * @param engines_ external contract
-     */
-    function initialize(  address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ ) public override Einitializer {
-        CMTAT_BASE.initialize( admin,
-            ERC20Attributes_,
-            baseModuleAttributes_,
-            engines_);
-        __UUPSUpgradeable_init_unchained();
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function _authorizeUpgrade(address) internal override onlyRole(PROXY_UPGRADE_ROLE) {}
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html b/doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html deleted file mode 100644 index a2fdbad4..00000000 --- a/doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - Code coverage report for contracts/CMTAT_STANDALONE.sol - - - - - - - -
-
-

- all files / contracts/ CMTAT_STANDALONE.sol -

-
-
- 100% - Statements - 1/1 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 1/1 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -191× -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     * @param admin address of the admin of contract (Access Control)
-     * @param ERC20Attributes_ ERC20 name, symbol and decimals
-     * @param baseModuleAttributes_ tokenId, terms, information
-     * @param engines_ external contract
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable,
-        address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ 
-    ) MetaTxModule(forwarderIrrevocable) {
-        // Initialize the contract to avoid front-running
-        // Warning : do not initialize the proxy
-        initialize(
-            admin,
-            ERC20Attributes_,
-            baseModuleAttributes_,
-            engines_
-        );
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index c1c3d8e0..00000000 --- a/doc/general/test/coverage/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html +++ /dev/null @@ -1,389 +0,0 @@ - - - - Code coverage report for contracts/deployment/CMTAT_BEACON_FACTORY.sol - - - - - - - -
-
-

- all files / contracts/deployment/ CMTAT_BEACON_FACTORY.sol -

-
-
- 100% - Statements - 13/13 -
-
- 100% - Branches - 6/6 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 21/21 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  - -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  - - -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  - - - - - - - -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  - -  - 
//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 "./libraries/CMTATFactoryRoot.sol";
- 
- 
-/**
-* @notice Factory to deploy beacon proxy
-* 
-*/
-contract CMTAT_BEACON_FACTORY is AccessControl, CMTATFactoryRoot {
-    UpgradeableBeacon public immutable beacon;
-    /**
-    * @param implementation_ contract implementation
-    * @param factoryAdmin admin
-    * @param beaconOwner owner
-    */
-    constructor(address implementation_, address factoryAdmin, address beaconOwner, bool useCustomSalt_)CMTATFactoryRoot(factoryAdmin, useCustomSalt_) {
-        if(beaconOwner == address(0)){
-            revert  FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner();
-        }
-        if(implementation_ == address(0)){
-           // Forwarder is the zero address if no implementation provided
-           implementation_ = address(new CMTAT_PROXY(address(0)));
-        }
-        beacon = new UpgradeableBeacon(implementation_, beaconOwner);
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-    * @notice deploy CMTAT with a beacon proxy
-    * 
-    */
-    function deployCMTAT(
-         bytes32 deploymentSaltInput,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument
-    ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(BeaconProxy cmtat)   {
-        bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput);
-        bytes memory bytecode = _getBytecode(
-        // CMTAT function initialize
-        cmtatArgument);
-        cmtat = _deployBytecode(bytecode,  deploymentSalt);
-        return cmtat;
-    }
- 
-    /**
-    * @param deploymentSalt salt for the deployment
-    * @param cmtatArgument argument for the function initialize
-    * @notice get the proxy address depending on a particular salt
-    */
-    function computedProxyAddress( 
-        bytes32 deploymentSalt,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) {
-        bytes memory bytecode =  _getBytecode(
-        // CMTAT function initialize
-        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
-    */
-    function _deployBytecode(bytes memory bytecode, bytes32  deploymentSalt) internal returns (BeaconProxy cmtat) {
-                    address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode);
-                    cmtat = BeaconProxy(payable(cmtatAddress));
-                    cmtats[cmtatCounterId] = address(cmtat);
-                    emit CMTAT(address(cmtat), cmtatCounterId);
-                    ++cmtatCounterId;
-                    cmtatsList.push(address(cmtat));
-                    return cmtat;
-     }
- 
-    
-    /**
-    * @notice return the smart contract bytecode
-    */
-     function _getBytecode( 
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) {
-        bytes memory _implementation = abi.encodeWithSelector(
-            CMTAT_PROXY(address(0)).initialize.selector,
-            cmtatArgument.CMTATAdmin,
-            cmtatArgument.ERC20Attributes,
-            cmtatArgument.baseModuleAttributes,
-            cmtatArgument.engines
-        );
-        bytecode = abi.encodePacked(type(BeaconProxy).creationCode,  abi.encode(address(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 deleted file mode 100644 index e50cd33c..00000000 --- a/doc/general/test/coverage/contracts/deployment/CMTAT_TP_FACTORY.sol.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - Code coverage report for contracts/deployment/CMTAT_TP_FACTORY.sol - - - - - - - -
-
-

- all files / contracts/deployment/ CMTAT_TP_FACTORY.sol -

-
-
- 100% - Statements - 10/10 -
-
- 100% - Branches - 2/2 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  -  -  -  -  -  - - - - - - - -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  - -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
-import "../CMTAT_PROXY.sol";
-import "@openzeppelin/contracts/utils/Create2.sol";
-import "./libraries/CMTATFactoryInvariant.sol";
-import "./libraries/CMTATFactoryBase.sol";
- 
- 
-/**
-* @notice Factory to deploy CMTAT with a transparent proxy
-* 
-*/
-contract CMTAT_TP_FACTORY is CMTATFactoryBase {
- 
-    /**
-    * @param logic_ contract implementation, cannot be zero
-    * @param factoryAdmin admin
-    * @param useCustomSalt_ custom salt with create2 or not
-    */
-    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(
-        bytes32 deploymentSaltInput,
-        address proxyAdminOwner,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument
-    ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(TransparentUpgradeableProxy cmtat)   {
-        bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput);
-        bytes memory bytecode = _getBytecode(proxyAdminOwner,
-        // CMTAT function initialize
-        cmtatArgument);
-        cmtat = _deployBytecode(bytecode,  deploymentSalt);
-        
-        return cmtat;
-    }
- 
-    /**
-    * @param deploymentSalt salt for the deployment
-    * @param proxyAdminOwner admin of the proxy
-    * @param cmtatArgument argument for the function initialize
-    * @notice get the proxy address depending on a particular salt
-    */
-    function computedProxyAddress( 
-        bytes32 deploymentSalt,
-        address proxyAdminOwner,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) {
-        bytes memory bytecode =  _getBytecode(proxyAdminOwner,
-        // CMTAT function initialize
-        cmtatArgument);
-        return Create2.computeAddress(deploymentSalt,  keccak256(bytecode), address(this) );
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /**
-    * @notice Deploy CMTAT and push the created CMTAT in the list
-    */
-    function _deployBytecode(bytes memory bytecode, bytes32  deploymentSalt) internal returns (TransparentUpgradeableProxy cmtat) {
-                    address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode);
-                    cmtat = TransparentUpgradeableProxy(payable(cmtatAddress));
-                    cmtats[cmtatCounterId] = address(cmtat);
-                    emit CMTAT(address(cmtat), cmtatCounterId);
-                    ++cmtatCounterId;
-                    cmtatsList.push(address(cmtat));
-                    return cmtat;
-     }
- 
-    
-    /**
-    * @notice return the smart contract bytecode
-    */
-     function _getBytecode( address proxyAdminOwner,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) {
-        bytes memory implementation = abi.encodeWithSelector(
-            CMTAT_PROXY(address(0)).initialize.selector,
-                  cmtatArgument.CMTATAdmin,
-                    cmtatArgument.ERC20Attributes,
-                cmtatArgument.baseModuleAttributes,
-                cmtatArgument.engines
-        );
-        bytecode = abi.encodePacked(type(TransparentUpgradeableProxy).creationCode,  abi.encode(logic, proxyAdminOwner, implementation));
-     }
-}
-
-
- - - - - - - 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 deleted file mode 100644 index d265e30a..00000000 --- a/doc/general/test/coverage/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - Code coverage report for contracts/deployment/CMTAT_UUPS_FACTORY.sol - - - - - - - -
-
-

- all files / contracts/deployment/ CMTAT_UUPS_FACTORY.sol -

-
-
- 100% - Statements - 10/10 -
-
- 100% - Branches - 2/2 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  - -  - -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  -  -  -  - - - - - - - -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  - -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
-import "../CMTAT_PROXY_UUPS.sol";
-import "@openzeppelin/contracts/utils/Create2.sol";
-import "./libraries/CMTATFactoryInvariant.sol";
-import "./libraries/CMTATFactoryBase.sol";
- 
- 
-/**
-* @notice Factory to deploy CMTAT with a UUPS proxy
-* 
-*/
-contract CMTAT_UUPS_FACTORY is CMTATFactoryBase {
-    /**
-    * @param logic_ contract implementation, cannot be zero
-    * @param factoryAdmin admin
-    * @param useCustomSalt_ custom salt with create2 or not
-    */
-    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(
-        bytes32 deploymentSaltInput,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument
-    ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(ERC1967Proxy cmtat)   {
-        bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput);
-        bytes memory bytecode = _getBytecode(
-        // CMTAT function initialize
-        cmtatArgument);
-        cmtat = _deployBytecode(bytecode,  deploymentSalt);
-        
-        return cmtat;
-    }
- 
-    /**
-    * @param deploymentSalt salt for the deployment
-    * @param cmtatArgument argument for the function initialize
-    * @notice get the proxy address depending on a particular salt
-    */
-    function computedProxyAddress( 
-        bytes32 deploymentSalt,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) {
-        bytes memory bytecode =  _getBytecode(
-        // CMTAT function initialize
-        cmtatArgument);
-        return Create2.computeAddress(deploymentSalt,  keccak256(bytecode), address(this) );
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-    * @notice Deploy CMTAT and push the created CMTAT in the list
-    */
-    function _deployBytecode(bytes memory bytecode, bytes32  deploymentSalt) internal returns (ERC1967Proxy cmtat) {
-                    address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode);
-                    cmtat = ERC1967Proxy(payable(cmtatAddress));
-                    cmtats[cmtatCounterId] = address(cmtat);
-                    emit CMTAT(address(cmtat), cmtatCounterId);
-                    ++cmtatCounterId;
-                    cmtatsList.push(address(cmtat));
-                    return cmtat;
-     }
- 
-    
-    /**
-    * @notice return the smart contract bytecode
-    */
-     function _getBytecode( 
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) {
-        bytes memory implementation = abi.encodeWithSelector(
-            CMTAT_PROXY_UUPS(address(0)).initialize.selector,
-                  cmtatArgument.CMTATAdmin,
-                    cmtatArgument.ERC20Attributes,
-                cmtatArgument.baseModuleAttributes,
-                cmtatArgument.engines
-        );
-        bytecode = abi.encodePacked(type(ERC1967Proxy).creationCode,  abi.encode(logic, implementation));
-     }
-}
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/deployment/index.html b/doc/general/test/coverage/contracts/deployment/index.html deleted file mode 100644 index ec2b356f..00000000 --- a/doc/general/test/coverage/contracts/deployment/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/deployment/ - - - - - - - -
-
-

- all files contracts/deployment/ -

-
-
- 100% - Statements - 33/33 -
-
- 100% - Branches - 10/10 -
-
- 100% - Functions - 16/16 -
-
- 100% - Lines - 51/51 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_BEACON_FACTORY.sol
100%13/13100%6/6100%6/6100%21/21
CMTAT_TP_FACTORY.sol
100%10/10100%2/2100%5/5100%15/15
CMTAT_UUPS_FACTORY.sol
100%10/10100%2/2100%5/5100%15/15
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html deleted file mode 100644 index 47dd6ba7..00000000 --- a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/CMTATFactoryBase.sol - - - - - - - -
-
-

- all files / contracts/deployment/libraries/ CMTATFactoryBase.sol -

-
-
- 100% - Statements - 1/1 -
-
- 100% - Branches - 2/2 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 3/3 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -16× - -  -14× -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "./CMTATFactoryRoot.sol";
- 
-/**
-* @notice Code common to TP and UUPS Factory
-* 
-*/
-abstract contract CMTATFactoryBase is CMTATFactoryRoot {
-    /* ============ State Variables ============ */
-    address public immutable logic;
-    /* ============ Constructor ============ */
-    /**
-    * @param logic_ contract implementation
-    * @param factoryAdmin admin
-    */
-    constructor(address logic_, address factoryAdmin, bool useCustomSalt_)CMTATFactoryRoot( factoryAdmin, useCustomSalt_) {
-        if(logic_ == address(0)){
-            revert  FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForLogicContract();
-        }
-        logic = logic_;
-    }
-}
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html deleted file mode 100644 index 9bf8bb27..00000000 --- a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/CMTATFactoryInvariant.sol - - - - - - - -
-
-

- all files / contracts/deployment/libraries/ CMTATFactoryInvariant.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
- 
-import "../../interfaces/ICMTATConstructor.sol";
- 
-/**
-* @notice List of Invariant (struct, constant, events)
-* 
-*/
-abstract contract CMTATFactoryInvariant {
-    /* ============ 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);
-}
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html deleted file mode 100644 index c0528424..00000000 --- a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/CMTATFactoryRoot.sol - - - - - - - -
-
-

- all files / contracts/deployment/libraries/ CMTATFactoryRoot.sol -

-
-
- 100% - Statements - 7/7 -
-
- 100% - Branches - 8/8 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 13/13 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -25× - -  -23× -13× -  -23× -23× -  -  -  -  -  -  -  -  -  -  -  -  -14× -  -  -  -  -  -  -  -  -  -  -  -  -12× - - -  - - -  -  - -  -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "../../libraries/FactoryErrors.sol";
-import '@openzeppelin/contracts/access/AccessControl.sol';
-import "./CMTATFactoryInvariant.sol";
-/**
-* @notice Code common to Beacon, TP and UUPS factory
-* 
-*/
-abstract contract CMTATFactoryRoot is AccessControl, CMTATFactoryInvariant {
-    /* ============ State Variables ============ */
-    // Public
-    address[] public cmtatsList;
-    bool immutable public useCustomSalt;
-    uint256 public cmtatCounterId;
-    /// mapping
-    mapping(uint256 => address) internal cmtats;
-    mapping(bytes32 => bool) internal customSaltUsed;
-    
-    /* ============ Constructor ============ */
-    /**
-    * @param factoryAdmin admin
-    */
-    constructor(address factoryAdmin, bool useCustomSalt_) {
-        if(factoryAdmin == address(0)){
-            revert  FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin();
-        }
-        if(useCustomSalt_){
-            useCustomSalt = useCustomSalt_;
-        }
-        _grantRole(DEFAULT_ADMIN_ROLE, factoryAdmin);
-        _grantRole(CMTAT_DEPLOYER_ROLE, factoryAdmin);
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-    * @notice get CMTAT proxy address
-    *
-    */
-    function CMTATProxyAddress(uint256 cmtatCounterId_) external view returns (address) {
-        return cmtats[cmtatCounterId_];
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    /**
-    * @param deploymentSalt salt for deployment
-    * @dev 
-    * if useCustomSalt is at false, the salt used is the current value of cmtatCounterId
-    */
-    function _checkAndDetermineDeploymentSalt(bytes32 deploymentSalt) internal returns(bytes32 saltBytes){
-       if(useCustomSalt){
-            if(customSaltUsed[deploymentSalt]){
-                revert FactoryErrors.CMTAT_Factory_SaltAlreadyUsed();
-            }else {
-                customSaltUsed[deploymentSalt] = true;
-                saltBytes = deploymentSalt;
-            }
-        }else{
-            saltBytes = bytes32(keccak256(abi.encodePacked(cmtatCounterId)));
-        }
-    }
-}
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/deployment/libraries/index.html b/doc/general/test/coverage/contracts/deployment/libraries/index.html deleted file mode 100644 index f46787fe..00000000 --- a/doc/general/test/coverage/contracts/deployment/libraries/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/ - - - - - - - -
-
-

- all files contracts/deployment/libraries/ -

-
-
- 100% - Statements - 8/8 -
-
- 100% - Branches - 10/10 -
-
- 100% - Functions - 4/4 -
-
- 100% - Lines - 16/16 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTATFactoryBase.sol
100%1/1100%2/2100%1/1100%3/3
CMTATFactoryInvariant.sol
100%0/0100%0/0100%0/0100%0/0
CMTATFactoryRoot.sol
100%7/7100%8/8100%3/3100%13/13
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/index.html b/doc/general/test/coverage/contracts/index.html deleted file mode 100644 index 6585f11a..00000000 --- a/doc/general/test/coverage/contracts/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/ - - - - - - - -
-
-

- all files contracts/ -

-
-
- 100% - Statements - 5/5 -
-
- 75% - Branches - 3/4 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 5/5 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_PROXY.sol
100%1/1100%0/0100%1/1100%1/1
CMTAT_PROXY_UUPS.sol
100%3/375%3/4100%3/3100%3/3
CMTAT_STANDALONE.sol
100%1/1100%0/0100%1/1100%1/1
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html b/doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html deleted file mode 100644 index 46226201..00000000 --- a/doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ICCIPToken.sol - - - - - - - -
-
-

- all files / contracts/interfaces/ ICCIPToken.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/**
-* @notice CCIP Pool with mint
-*/
-interface ICCIPMintERC20 {
-  /// @notice Mints new tokens for a given address.
-  /// @param account The address to mint the new tokens to.
-  /// @param value The number of tokens to be minted.
-  /// @dev this function increases the total supply.
-  function mint(address account, uint256 value) external;
-}
- 
-/**
-* @notice CCIP Pool with burnFrom
-*/
-interface ICCIPBurnFromERC20 {
-  /// @notice Burns tokens from a given address..
-  /// @param account The address to burn tokens from.
-  /// @param value The number of tokens to be burned.
-  /// @dev this function decreases the total supply.
-  function burnFrom(address account, uint256 value) external;
-}
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html b/doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html deleted file mode 100644 index 6643f881..00000000 --- a/doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ICMTATConstructor.sol - - - - - - - -
-
-

- all files / contracts/interfaces/ ICMTATConstructor.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//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";
- 
- 
- 
-/**
-* @notice interface to represent arguments used for CMTAT constructor / initialize
-*/
-interface ICMTATConstructor {
-    struct Engine {
-        IRuleEngine ruleEngine;
-        IDebtEngine debtEngine;
-        IAuthorizationEngine authorizationEngine;
-        IERC1643 documentEngine;
-    }
-    struct ERC20Attributes {
-        // name of the token,
-        string nameIrrevocable;
-        // name of the symbol
-        string symbolIrrevocable;
-        // number of decimals of the token, must be 0 to be compliant with Swiss law as per CMTAT specifications (non-zero decimal number may be needed for other use cases)
-        uint8 decimalsIrrevocable;
-    }
-    struct BaseModuleAttributes {
-        // name of the tokenId
-        string tokenId;
-        // terms associated with the token
-        string terms;
-        // additional information to describe the token
-        string information;
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html b/doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html deleted file mode 100644 index 1395b22e..00000000 --- a/doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ICMTATSnapshot.sol - - - - - - - -
-
-

- all files / contracts/interfaces/ ICMTATSnapshot.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/**
-* @notice minimum interface to represent a CMTAT with snapshot
-*/
-interface ICMTATSnapshot {
-    /** 
-    * @notice Return the number of tokens owned by the given owner at the time when the snapshot with the given time was created.
-    * @return value stored in the snapshot, or the actual balance if no snapshot
-    */
-    function snapshotBalanceOf(uint256 time,address owner) external view returns (uint256);
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * Retrieves the total supply at the specified time.
-    * @return value stored in the snapshot, or the actual totalSupply if no snapshot
-    */
-    function snapshotTotalSupply(uint256 time) external view returns (uint256);
-    /**
-    * @notice Return snapshotBalanceOf and snapshotTotalSupply to avoid multiple calls
-    * @return ownerBalance ,  totalSupply - see snapshotBalanceOf and snapshotTotalSupply
-    */
-    function snapshotInfo(uint256 time, address owner) external view returns (uint256 ownerBalance, uint256 totalSupply);
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256 time, address[] calldata addresses) external view returns (uint256[] memory ownerBalances, uint256 totalSupply);
- 
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256[] calldata times, address[] calldata addresses) external view returns (uint256[][] memory ownerBalances, uint256[] memory totalSupply);
- 
- 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index f02bbeca..00000000 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/draft-IERC1404.sol - - - - - - - -
-
-

- all files / contracts/interfaces/draft-IERC1404/ draft-IERC1404.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/*
-* @dev Contrary to the ERC-1404, this interface does not inherit from the ERC20 interface
-*/
-interface IERC1404 {
-    /**
-     * @dev See ERC-1404
-     *
-     */
-    function detectTransferRestriction(
-        address _from,
-        address _to,
-        uint256 _amount
-    ) external view returns (uint8);
- 
-    /**
-     * @dev See ERC-1404
-     *
-     */
-    function messageForTransferRestriction(
-        uint8 _restrictionCode
-    ) external view returns (string memory);
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 89805afc..00000000 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol - - - - - - - -
-
-

- all files / contracts/interfaces/draft-IERC1404/ draft-IERC1404EnumCode.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-interface IERC1404EnumCode {
-    /* 
-    * @dev leave the code 4-9 free/unused for further additions in your ruleEngine implementation
-    */
-    enum REJECTED_CODE_BASE {
-        TRANSFER_OK,
-        TRANSFER_REJECTED_PAUSED,
-        TRANSFER_REJECTED_FROM_FROZEN,
-        TRANSFER_REJECTED_TO_FROZEN
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 109ee153..00000000 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - - - - - - - -
-
-

- all files / contracts/interfaces/draft-IERC1404/ draft-IERC1404Wrapper.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "./draft-IERC1404.sol";
-import "./draft-IERC1404EnumCode.sol";
- 
-interface IERC1404Wrapper is IERC1404, IERC1404EnumCode  {
- 
-    /**
-     * @dev Returns true if the transfer is valid, and false otherwise.
-     */
-    function validateTransfer(
-        address _from,
-        address _to,
-        uint256 _amount
-    ) external view returns (bool isValid);
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html deleted file mode 100644 index a5b41084..00000000 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/ - - - - - - - -
-
-

- all files contracts/interfaces/draft-IERC1404/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
draft-IERC1404.sol
100%0/0100%0/0100%0/0100%0/0
draft-IERC1404EnumCode.sol
100%0/0100%0/0100%0/0100%0/0
draft-IERC1404Wrapper.sol
100%0/0100%0/0100%0/0100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html deleted file mode 100644 index 14799def..00000000 --- a/doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IAuthorizationEngine.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ IAuthorizationEngine.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
// SPDX-License-Identifier: MPL-2.0
- 
-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.
-     */
-    function operateOnGrantRole(
-        bytes32 role, address account
-    ) external returns (bool isValid);
- 
-    /**
-     * @dev Returns true if the operation is authorized, and false otherwise.
-     */
-    function operateOnRevokeRole(
-        bytes32 role, address account
-    ) external returns (bool isValid);
-   
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html deleted file mode 100644 index e9679c05..00000000 --- a/doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IDebtEngine.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ IDebtEngine.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
// SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
-import "./IDebtGlobal.sol";
- 
-/*
-* @dev minimum interface to define a DebtEngine
-*/
-interface IDebtEngine is IDebtGlobal {
-    /**
-     * @dev Returns debt information
-     */
-    function debt() external view returns(IDebtGlobal.DebtBase memory);
-    /**
-     * @dev Returns credit events
-     */
-    function creditEvents() external view returns(IDebtGlobal.CreditEvents memory);
-   
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/engine/IDebtGlobal.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IDebtGlobal.sol.html deleted file mode 100644 index ef54cf40..00000000 --- a/doc/general/test/coverage/contracts/interfaces/engine/IDebtGlobal.sol.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IDebtGlobal.sol - - - - - - - -
-
-

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

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/**
-* @notice interface to represent debt tokens
-*/
-interface IDebtGlobal {
-    struct DebtBase {
-        uint256 interestRate;
-        uint256 parValue;
-        string guarantor;
-        string bondHolder;
-        string maturityDate;
-        string interestScheduleFormat;
-        string interestPaymentDate;
-        string dayCountConvention;
-        string businessDayConvention;
-        string publicHolidaysCalendar;
-        string issuanceDate;
-        string couponFrequency;
-    }
- 
-    struct CreditEvents {
-        bool flagDefault;
-        bool flagRedeemed;
-        string rating;
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html deleted file mode 100644 index 6193844d..00000000 --- a/doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IRuleEngine.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ IRuleEngine.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
// SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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.
-     */
-    function operateOnTransfer(
-        address _from,
-        address _to,
-        uint256 _amount
-    ) external returns (bool isValid);
-   
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 0c21387c..00000000 --- a/doc/general/test/coverage/contracts/interfaces/engine/draft-IERC1643.sol.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/draft-IERC1643.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ draft-IERC1643.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/// @title IERC1643 Document Management 
-/// (part of the ERC1400 Security Token Standards)
-interface IERC1643 {
-    // Document Management
-    function getDocument(bytes32 _name) external view returns (string memory , bytes32, uint256);
-    function getAllDocuments() external view returns (bytes32[] memory);
-}
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/engine/index.html b/doc/general/test/coverage/contracts/interfaces/engine/index.html deleted file mode 100644 index 9192c698..00000000 --- a/doc/general/test/coverage/contracts/interfaces/engine/index.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/ - - - - - - - -
-
-

- all files contracts/interfaces/engine/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
IAuthorizationEngine.sol
100%0/0100%0/0100%0/0100%0/0
IDebtEngine.sol
100%0/0100%0/0100%0/0100%0/0
IDebtGlobal.sol
100%0/0100%0/0100%0/0100%0/0
IRuleEngine.sol
100%0/0100%0/0100%0/0100%0/0
draft-IERC1643.sol
100%0/0100%0/0100%0/0100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/interfaces/index.html b/doc/general/test/coverage/contracts/interfaces/index.html deleted file mode 100644 index 36e947e6..00000000 --- a/doc/general/test/coverage/contracts/interfaces/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ - - - - - - - -
-
-

- all files contracts/interfaces/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ICCIPToken.sol
100%0/0100%0/0100%0/0100%0/0
ICMTATConstructor.sol
100%0/0100%0/0100%0/0100%0/0
ICMTATSnapshot.sol
100%0/0100%0/0100%0/0100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/libraries/Errors.sol.html b/doc/general/test/coverage/contracts/libraries/Errors.sol.html deleted file mode 100644 index 8ce419b5..00000000 --- a/doc/general/test/coverage/contracts/libraries/Errors.sol.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - Code coverage report for contracts/libraries/Errors.sol - - - - - - - -
-
-

- all files / contracts/libraries/ Errors.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/*
-* @dev CMTAT custom errors
-*/
-library Errors {
-    // CMTAT
-    error CMTAT_InvalidTransfer(address from, address to, uint256 amount);
- 
-    // SnapshotModule
-    error CMTAT_SnapshotModule_SnapshotScheduledInThePast(
-        uint256 time,
-        uint256 timestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot(
-        uint256 time,
-        uint256 lastSnapshotTimestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot(
-        uint256 time,
-        uint256 nextSnapshotTimestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot(
-        uint256 time,
-        uint256 previousSnapshotTimestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotAlreadyExists();
-    error CMTAT_SnapshotModule_SnapshotAlreadyDone();
-    error CMTAT_SnapshotModule_NoSnapshotScheduled();
-    error CMTAT_SnapshotModule_SnapshotNotFound();
- 
-    // ERC20BaseModule
-    error CMTAT_ERC20BaseModule_WrongAllowance(
-        address spender,
-        uint256 currentAllowance,
-        uint256 allowanceProvided
-    );
- 
-    // BurnModule
-    error CMTAT_BurnModule_EmptyAccounts();
-    error CMTAT_BurnModule_AccountsValueslengthMismatch();
- 
-    // MintModule
-    error CMTAT_MintModule_EmptyAccounts();
-    error CMTAT_MintModule_AccountsValueslengthMismatch();
- 
-    // ERC20BaseModule
-    error CMTAT_ERC20BaseModule_EmptyTos();
-    error CMTAT_ERC20BaseModule_TosValueslengthMismatch();
- 
-    // DebtModule
-    error CMTAT_DebtModule_SameValue();
- 
-    // ValidationModule
-    error CMTAT_ValidationModule_SameValue();
- 
-    // AuthorizationModule
-    error CMTAT_AuthorizationModule_AddressZeroNotAllowed();
-    error CMTAT_AuthorizationModule_InvalidAuthorization();
-    error CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet(); 
- 
-    // DocumentModule
-    error CMTAT_DocumentModule_SameValue();
- 
-    // PauseModule
-    error CMTAT_PauseModule_ContractIsDeactivated();
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html b/doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html deleted file mode 100644 index 23707973..00000000 --- a/doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - Code coverage report for contracts/libraries/FactoryErrors.sol - - - - - - - -
-
-

- all files / contracts/libraries/ FactoryErrors.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/*
-* @dev Factory contract custom errors
-*/
-library FactoryErrors {
-    error CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin();
-    error CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner();
-    error CMTAT_Factory_AddressZeroNotAllowedForLogicContract();
-    error CMTAT_Factory_SaltAlreadyUsed();
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/libraries/index.html b/doc/general/test/coverage/contracts/libraries/index.html deleted file mode 100644 index d8d79f13..00000000 --- a/doc/general/test/coverage/contracts/libraries/index.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Code coverage report for contracts/libraries/ - - - - - - - -
-
-

- all files contracts/libraries/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
Errors.sol
100%0/0100%0/0100%0/0100%0/0
FactoryErrors.sol
100%0/0100%0/0100%0/0100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html b/doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html deleted file mode 100644 index 04d9627e..00000000 --- a/doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html +++ /dev/null @@ -1,785 +0,0 @@ - - - - Code coverage report for contracts/modules/CMTAT_BASE.sol - - - - - - - -
-
-

- all files / contracts/modules/ CMTAT_BASE.sol -

-
-
- 96.88% - Statements - 31/32 -
-
- 75% - Branches - 6/8 -
-
- 90% - Functions - 9/10 -
-
- 96.97% - Lines - 32/33 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× -385× -  -385× -  -385× -385× -  -  -385× -  -  -  -  -385× -385× -  -385× -  -  -  -385× -383× -383× -  -383× -383× -  -383× -383× -  -  -  -  -  -383× -383× -383× -  -  -383× -  -  -383× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -10× -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -439× -17× -  -  -  -  -  -  -422× -422× -  -  -  -  -  -  -  -  -  -  -  -  -  -1391× -  -  -  -  -  -  -  -  -1391× -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-// required OZ imports here
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
- 
-import "./wrapper/core/BaseModule.sol";
-import "./wrapper/core/ERC20BurnModule.sol";
-import "./wrapper/core/ERC20MintModule.sol";
-import "./wrapper/core/EnforcementModule.sol";
-import "./wrapper/core/ERC20BaseModule.sol";
-import "./wrapper/core/PauseModule.sol";
-/*
-* SnapshotModule:
-* Add this import in case you add the SnapshotModule
-*/
-import "./wrapper/extensions/ERC20SnapshotModule.sol";
- 
-import "./wrapper/controllers/ValidationModule.sol";
-import "./wrapper/extensions/MetaTxModule.sol";
-import "./wrapper/extensions/DebtModule.sol";
-import "./wrapper/extensions/DocumentModule.sol";
-import "./security/AuthorizationModule.sol";
-import "../interfaces/ICMTATConstructor.sol";
-import "../libraries/Errors.sol";
- 
-abstract contract CMTAT_BASE is
-    Initializable,
-    ContextUpgradeable,
-    // Core
-    BaseModule,
-    PauseModule,
-    ERC20MintModule,
-    ERC20BurnModule,
-    EnforcementModule,
-    ValidationModule,
-    ERC20BaseModule,
-    // Extension
-    MetaTxModule,
-    ERC20SnapshotModule,
-    DebtModule,
-    DocumentModule
-{   
- 
-    /*//////////////////////////////////////////////////////////////
-                         INITIALIZER FUNCTION
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice
-     * initialize the proxy contract
-     * The calls to this function will revert if the contract was deployed without a proxy
-     * @param admin address of the admin of contract (Access Control)
-     * @param ERC20Attributes_ ERC20 name, symbol and decimals
-     * @param baseModuleAttributes_ tokenId, terms, information
-     * @param engines_ external contract
-     */
-    function initialize(
-        address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ 
-    ) public virtual initializer {
-        __CMTAT_init(
-            admin,
-            ERC20Attributes_,
-            baseModuleAttributes_,
-            engines_
-        );
-    }
- 
- 
-    /**
-     * @dev calls the different initialize functions from the different modules
-     */
-    function __CMTAT_init(
-        address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ 
-    ) internal EonlyInitializing {
-        /* OpenZeppelin library */
-        // OZ init_unchained functions are called firstly due to inheritance
-        __Context_init_unchained();
-        __ERC20_init_unchained(ERC20Attributes_.nameIrrevocable, ERC20Attributes_.symbolIrrevocable);
-        // AccessControlUpgradeable inherits from ERC165Upgradeable
-        __ERC165_init_unchained();
-        // AuthorizationModule inherits from AccessControlUpgradeable
-        __AccessControl_init_unchained();
-        __Pausable_init_unchained();
- 
-        /* Internal Modules */
-        __Enforcement_init_unchained();
-        /*
-        SnapshotModule:
-        Add these two calls in case you add the SnapshotModule
-            */
-        __SnapshotModuleBase_init_unchained();
-        __ERC20Snapshot_init_unchained();
-    
-        __Validation_init_unchained(engines_ .ruleEngine);
- 
-        /* Wrapper */
-        // AuthorizationModule_init_unchained is called firstly due to inheritance
-        __AuthorizationModule_init_unchained(admin, engines_ .authorizationEngine);
-        __ERC20BurnModule_init_unchained();
-        __ERC20MintModule_init_unchained();
-        // EnforcementModule_init_unchained is called before ValidationModule_init_unchained due to inheritance
-        __EnforcementModule_init_unchained();
-        __ERC20BaseModule_init_unchained(ERC20Attributes_.decimalsIrrevocable);
-        // PauseModule_init_unchained is called before ValidationModule_init_unchained due to inheritance
-        __PauseModule_init_unchained();
-        __ValidationModule_init_unchained();
- 
-        /*
-        SnapshotModule:
-        Add this call in case you add the SnapshotModule
-        */
-        __ERC20SnasphotModule_init_unchained();
-        __DocumentModule_init_unchained(engines_ .documentEngine);
-        __DebtModule_init_unchained(engines_ .debtEngine);
- 
-        /* Other modules */
-        __Base_init_unchained(baseModuleAttributes_.tokenId, baseModuleAttributes_.terms, baseModuleAttributes_.information);
- 
-        /* own function */
-        __CMTAT_init_unchained();
-    }
- 
-    function __CMTAT_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @notice Returns the number of decimals used to get its user representation.
-     */
-    function decimals()
-        public
-        view
-        virtual
-        override(ERC20Upgradeable, ERC20BaseModule)
-        returns (uint8)
-    {
-        return ERC20BaseModule.decimals();
-    }
- 
-    function transferFrom(
-        address sender,
-        address recipient,
-        uint256 amount
-    )
-        public
-        virtual
-        override(ERC20Upgradeable, ERC20BaseModule)
-        returns (bool)
-    {
-        return ERC20BaseModule.transferFrom(sender, recipient, amount);
-    }
- 
-    /**
-    * @notice burn and mint atomically
-    * @param from current token holder to burn tokens
-    * @param to receiver to send the new minted tokens
-    * @param amountToBurn number of tokens to burn
-    * @param amountToMint number of tokens to mint
-    * @dev 
-    * - The access control is managed by the functions burn (ERC20BurnModule) and mint (ERC20MintModule)
-    * - Input validation is also managed by the functions burn and mint
-    * - You can mint more tokens than burnt
-    */
-    function burnAndMint(address from, address to, uint256 amountToBurn, uint256 amountToMint, string calldata reason) public  {
-        burn(from, amountToBurn, reason);
-        mint(to, amountToMint);
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @dev
-     *
-     */
-    function _update(
-        address from,
-        address to,
-        uint256 amount
-    ) internal override(ERC20Upgradeable) {
-        if (!ValidationModule._operateOnTransfer(from, to, amount)) {
-            revert Errors.CMTAT_InvalidTransfer(from, to, amount);
-        }
-        /*
-        SnapshotModule:
-        Add this in case you add the SnapshotModule
-        We call the SnapshotModule only if the transfer is valid
-        */
-        ERC20SnapshotModuleInternal._snapshotUpdate(from, to);
-        ERC20Upgradeable._update(from, to, amount);
-    }
-    /*//////////////////////////////////////////////////////////////
-                            METAXTX MODULE
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @dev This surcharge is not necessary if you do not use the MetaTxModule
-     */
-    function _msgSender()
-        internal
-        view
-        override(ERC2771ContextUpgradeable, ContextUpgradeable)
-        returns (address sender)
-    {
-        return ERC2771ContextUpgradeable._msgSender();
-    }
- 
-    /**
-     * @dev This surcharge is not necessary if you do not use the MetaTxModule
-     */
-    function _contextSuffixLength() internal view 
-    override(ERC2771ContextUpgradeable, ContextUpgradeable)
-    returns (uint256) {
-         return ERC2771ContextUpgradeable._contextSuffixLength();
-    }
- 
-    /**
-     * @dev This surcharge is not necessary if you do not use the MetaTxModule
-     */
-    function _msgData()
-        internal
-        view
-        override(ERC2771ContextUpgradeable, ContextUpgradeable)
-        returns (bytes calldata)
-    {
-        return ERC2771ContextUpgradeable._msgData();
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/index.html b/doc/general/test/coverage/contracts/modules/index.html deleted file mode 100644 index bd35beff..00000000 --- a/doc/general/test/coverage/contracts/modules/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/ - - - - - - - -
-
-

- all files contracts/modules/ -

-
-
- 96.88% - Statements - 31/32 -
-
- 75% - Branches - 6/8 -
-
- 90% - Functions - 9/10 -
-
- 96.97% - Lines - 32/33 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_BASE.sol
96.88%31/3275%6/890%9/1096.97%32/33
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html b/doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html deleted file mode 100644 index 3b52a76d..00000000 --- a/doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/ERC20SnapshotModuleInternal.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/ ERC20SnapshotModuleInternal.sol -

-
-
- 100% - Statements - 20/20 -
-
- 90% - Branches - 9/10 -
-
- 100% - Functions - 9/9 -
-
- 100% - Lines - 28/28 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -480× -480× -  -  -  -  -  -  -  -160× -160× -480× -  -160× -  -  -  -  -  -  -  -80× -80× -80× -80× -  -  -  -  -  -  -  -  -  -  -  -1200× -1200× -  -  -  -  -1200× -  -  -  -  -  -  -  -  -720× -720× -  -  -  -720× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -422× -422× -  -77× -77× -  -43× -  -  -34× -  -  -  -345× -345× -  -  -  -  -  -  -  -465× -465× -  -  -  -  -  -  -379× -379× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
-import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol';
-import "./base/SnapshotModuleBase.sol";
-import "../../interfaces/ICMTATSnapshot.sol";
-/**
- * @dev Snapshot module internal.
- *
- * 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.
- */
- 
-abstract contract ERC20SnapshotModuleInternal is ICMTATSnapshot, SnapshotModuleBase, ERC20Upgradeable {
-    using Arrays for uint256[];
-    /* ============  Initializer Function ============ */
-    function __ERC20Snapshot_init_unchained() internal EonlyInitializing {
-        // Nothing to do
-        // _currentSnapshotTime & _currentSnapshotIndex are initialized to zero
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-    * @notice Return snapshotBalanceOf and snapshotTotalSupply to avoid multiple calls
-    * @return ownerBalance ,  totalSupply - see snapshotBalanceOf and snapshotTotalSupply
-    */
-    function snapshotInfo(uint256 time, address owner) public view returns (uint256 ownerBalance, uint256 totalSupply) {
-        ownerBalance = snapshotBalanceOf(time, owner);
-        totalSupply = snapshotTotalSupply(time);
-    }
- 
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256 time, address[] calldata addresses) public view returns (uint256[] memory ownerBalances, uint256 totalSupply) {
-        ownerBalances = new uint256[](addresses.length);
-        for(uint256 i = 0; i < addresses.length; ++i){
-             ownerBalances[i]  = snapshotBalanceOf(time, addresses[i]);
-        }
-        totalSupply = snapshotTotalSupply(time);
-    }
- 
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256[] calldata times, address[] calldata addresses) public view returns (uint256[][] memory ownerBalances, uint256[] memory totalSupply) {
-        ownerBalances = new uint256[][](times.length);
-        totalSupply = new uint256[](times.length);
-        for(uint256 iT = 0; iT < times.length; ++iT){
-            (ownerBalances[iT], totalSupply[iT]) = snapshotInfoBatch(times[iT],addresses);
-        }
-    }
- 
-    /** 
-    * @notice Return the number of tokens owned by the given owner at the time when the snapshot with the given time was created.
-    * @return value stored in the snapshot, or the actual balance if no snapshot
-    */
-    function snapshotBalanceOf(
-        uint256 time,
-        address owner
-    ) public view returns (uint256) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        (bool snapshotted, uint256 value) = _valueAt(
-            time,
-            $._accountBalanceSnapshots[owner]
-        );
- 
-        return snapshotted ? value : balanceOf(owner);
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * Retrieves the total supply at the specified time.
-    * @return value stored in the snapshot, or the actual totalSupply if no snapshot
-    */
-    function snapshotTotalSupply(uint256 time) public view returns (uint256) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        (bool snapshotted, uint256 value) = _valueAt(
-            time,
-            $._totalSupplySnapshots
-        );
-        return snapshotted ? value : totalSupply();
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /** 
-    * @dev Update balance and/or total supply snapshots before the values are modified. This is implemented
-    * in the _beforeTokenTransfer hook, which is executed for _mint, _burn, and _transfer operations.
-    */
-    function _snapshotUpdate(
-        address from,
-        address to
-    ) internal virtual  {
-        _setCurrentSnapshot();
-        if (from != address(0)) {
-            // for both burn and transfer
-            _updateAccountSnapshot(from);
-            if (to != address(0)) {
-                // transfer
-                _updateAccountSnapshot(to);
-            } else {
-                // burn
-                _updateTotalSupplySnapshot();
-            }
-        } else {
-            // mint
-            _updateAccountSnapshot(to);
-            _updateTotalSupplySnapshot();
-        }
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    */
-    function _updateAccountSnapshot(address account) private {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _updateSnapshot($._accountBalanceSnapshots[account], balanceOf(account));
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    */
-    function _updateTotalSupplySnapshot() private {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _updateSnapshot($._totalSupplySnapshots, totalSupply());
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html b/doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html deleted file mode 100644 index 77e63443..00000000 --- a/doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html +++ /dev/null @@ -1,416 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/EnforcementModuleInternal.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/ EnforcementModuleInternal.sol -

-
-
- 100% - Statements - 12/12 -
-
- 83.33% - Branches - 5/6 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -946× -946× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -22× -22× - -  -20× -20× -20× -  -  -  -  -  -  -  -  -  -  -  - - - -  - - -  - -  -  -  -  -976× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
- 
-/**
- * @dev Enforcement module.
- *
- * Allows the issuer to freeze transfers from a given address
- */
-abstract contract EnforcementModuleInternal is
-    Initializable,
-    ContextUpgradeable
-{
-    /* ============ Events ============ */
-    /**
-     * @notice Emitted when an address is frozen.
-     */
-    event Freeze(
-        address indexed enforcer,
-        address indexed owner,
-        string indexed reasonIndexed,
-        string reason
-    );
- 
-    /**
-     * @notice Emitted when an address is unfrozen.
-     */
-    event Unfreeze(
-        address indexed enforcer,
-        address indexed owner,
-        string indexed reasonIndexed,
-        string reason
-    );
- 
-     /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.EnforcementModuleInternal")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant EnforcementModuleInternalStorageLocation = 0x0c7bc8a17be064111d299d7669f49519cb26c58611b72d9f6ccc40a1e1184e00;
-    
- 
-    /* ==== ERC-7201 State Variables === */
-    struct EnforcementModuleInternalStorage {
-        mapping(address => bool) _frozen;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                         INITIALIZER FUNCTION
-    //////////////////////////////////////////////////////////////*/
-    function __Enforcement_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @dev Returns true if the account is frozen, and false otherwise.
-     */
-    function frozen(address account) public view virtual returns (bool) {
-        EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage();
-        return $._frozen[account];
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @dev Freezes an address.
-     * @param account the account to freeze
-     * @param reason indicate why the account was frozen.
-     *
-     */
-    function _freeze(
-        address account,
-        string calldata reason
-    ) internal virtual returns (bool) {
-        EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage();
-        if ($._frozen[account]) {
-            return false;
-        }
-        $._frozen[account] = true;
-        emit Freeze(_msgSender(), account, reason, reason);
-        return true;
-    }
- 
-    /**
-     * @dev Unfreezes an address.
-     * @param account the account to unfreeze
-     * @param reason indicate why the account was unfrozen.
-     */
-    function _unfreeze(
-        address account,
-        string calldata reason
-    ) internal virtual returns (bool) {
-        EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage();
-        if (!$._frozen[account]) {
-            return false;
-        }
-        $._frozen[account] = false;
-        emit Unfreeze(_msgSender(), account, reason, reason);
- 
-        return true;
-    }
- 
-    /* ============ ERC-7201 ============ */
-    function _getEnforcementModuleInternalStorage() private pure returns (EnforcementModuleInternalStorage storage $) {
-        assembly {
-            $.slot := EnforcementModuleInternalStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html b/doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html deleted file mode 100644 index 71d93b5c..00000000 --- a/doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/ValidationModuleInternal.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/ ValidationModuleInternal.sol -

-
-
- 100% - Statements - 13/13 -
-
- 75% - Branches - 3/4 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× -18× -18× -18× -  -  -  -  -  -  -  -  -  -32× -32× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -12× -12× -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  - - -  -  -  -60× -60× -  -  -  -  -  -629× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import "../../interfaces/engine/IRuleEngine.sol";
-/**
- * @dev Validation module.
- *
- * Useful for to restrict and validate transfers
- */
-abstract contract ValidationModuleInternal is
-    Initializable,
-    ContextUpgradeable
-{
-    /* ============ Events ============ */
-    /**
-     * @dev Emitted when a rule engine is set.
-     */
-    event RuleEngine(IRuleEngine indexed newRuleEngine);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ValidationModuleInternal")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant ValidationModuleInternalStorageLocation = 0xb3e8f29e401cfa802cad91001b5f9eb50decccdb111d80cb07177ab650b04700;
-    /* ==== ERC-7201 State Variables === */
-    struct ValidationModuleInternalStorage {
-        IRuleEngine _ruleEngine;
-    }
-    /* ============  Initializer Function ============ */
-    function __Validation_init_unchained(
-        IRuleEngine ruleEngine_
-    ) internal EonlyInitializing {
-        if (address(ruleEngine_) != address(0)) {
-            ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-            $._ruleEngine = ruleEngine_;
-            emit RuleEngine(ruleEngine_);
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    function ruleEngine() public view returns(IRuleEngine){
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-    * @dev before making a call to this function, you have to check if a ruleEngine is set.
-    */
-    function _validateTransfer(
-        address from,
-        address to,
-        uint256 amount
-    ) internal view returns (bool) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.validateTransfer(from, to, amount);
-    }
- 
-    /**
-    * @dev before making a call to this function, you have to check if a ruleEngine is set.
-    */
-    function _messageForTransferRestriction(
-        uint8 restrictionCode
-    ) internal view returns (string memory) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.messageForTransferRestriction(restrictionCode);
-    }
- 
-    /**
-    * @dev before making a call to this function, you have to check if a ruleEngine is set.
-    */
-    function _detectTransferRestriction(
-        address from,
-        address to,
-        uint256 amount
-    ) internal view returns (uint8) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.detectTransferRestriction(from, to, amount);
-    }
- 
-    function _operateOnTransfer(address from, address to, uint256 amount) virtual internal returns (bool) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.operateOnTransfer(from, to, amount);
-    }
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getValidationModuleInternalStorage() internal pure returns (ValidationModuleInternalStorage storage $) {
-        assembly {
-            $.slot := ValidationModuleInternalStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index e7f0ea38..00000000 --- a/doc/general/test/coverage/contracts/modules/internal/base/SnapshotModuleBase.sol.html +++ /dev/null @@ -1,1361 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/base/SnapshotModuleBase.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/base/ SnapshotModuleBase.sol -

-
-
- 100% - Statements - 88/88 -
-
- 96.55% - Branches - 56/58 -
-
- 100% - Functions - 18/18 -
-
- 100% - Lines - 112/112 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -76× -76× -  -76× -68× -  -  -  -  -68× -48× -  -  -20× -  - -  -  - -  - - -  -  -  -  -  -  -28× -  -  -  -  -  -  -  -  -  -  -  -170× -  -170× -  -168× -  -94× -  -  -94× - -  -  -  -  -  - -  -  -164× -164× -  -  -  -  -  -  -12× -12× -10× -  -10× - -  -  - - -  - -  -  - -10× -10× -10× -  -  - -  - -  -  -  -  -  -  -22× -  -22× -20× -18× - -  -16× -12× - - - -  -  -  -  -  - -  -  - - - -  -  -  -  -  - -  - -  -  -  -  -  -  -14× -  -14× -10× - -  -  - - -  - - -  -  -  -  -  -  -  -  -  -10× -10× -  -10× -  - - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1920× -  -1920× -1484× -  -436× -  -  -  -  -  -  -  -  -  -  -  -  -  -844× -844× -844× -36× -36× -  -  -  -  -  -  -  -  -  -422× -422× -  -  -  -422× -18× -18× -  -  -  -  -  -  -  -  -  -844× -836× -  - -  -  -  -  -  -  -  -  -  -  -36× -36× -36× -  -36× -  -  -  -22× -  -  -  - -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -490× -490× -  -490× -  -  -  -404× -  -  -86× -86× -  -86× -116× -52× -52× -  -  -64× -  -  -86× -  -  -  -  -  -  -  -  -26× -26× - -  -20× -  -  -202× - -  -  -  -  -  -  -46× - -  -  -  -  -  -4862× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol';
- 
-import "../../../libraries/Errors.sol";
- 
-/**
- * @dev Base for the Snapshot module
- *
- * 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.
- */
- 
-abstract contract SnapshotModuleBase is Initializable {
-    using Arrays for uint256[];
-    /* ============ Structs ============ *
-    /** 
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * Snapshotted values have arrays of ids (time) and the value corresponding to that id.
-    * ids is expected to be sorted in ascending order, and to contain no repeated elements 
-    * because we use findUpperBound in the function _valueAt
-    */
-    struct Snapshots {
-        uint256[] ids;
-        uint256[] values;
-    }
-    /* ============ Events ============ */
-    /**
-    @notice Emitted when the snapshot with the specified oldTime was scheduled or rescheduled at the specified newTime.
-    */
-    event SnapshotSchedule(uint256 indexed oldTime, uint256 indexed newTime);
- 
-    /** 
-    * @notice Emitted when the scheduled snapshot with the specified time was cancelled.
-    */
-    event SnapshotUnschedule(uint256 indexed time);
- 
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.SnapshotModuleBase")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant SnapshotModuleBaseStorageLocation = 0x649d9af4a0486294740af60c5e3bf61210e7b49108a80b1f369042ea9fd02000;
-    /* ==== ERC-7201 State Variables === */
-    struct SnapshotModuleBaseStorage {
-        /**
-        * @dev See {OpenZeppelin - ERC20Snapshot}
-        */
-        mapping(address => Snapshots) _accountBalanceSnapshots;
-        Snapshots _totalSupplySnapshots;
-        /**
-        * @dev time instead of a counter for OpenZeppelin
-        */
-        // Initialized to zero
-        uint256  _currentSnapshotTime;
-        // Initialized to zero
-        uint256  _currentSnapshotIndex;
-        /** 
-        * @dev 
-        * list of scheduled snapshot (time)
-        * This list is sorted in ascending order
-        */
-        uint256[] _scheduledSnapshots;
-    }
-    /*//////////////////////////////////////////////////////////////
-                         INITIALIZER FUNCTION
-    //////////////////////////////////////////////////////////////*/
-    function __SnapshotModuleBase_init_unchained() internal EonlyInitializing {
-        // Nothing to do
-        // _currentSnapshotTime & _currentSnapshotIndex are initialized to zero
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /** 
-    *  
-    * @notice Get all snapshots
-    */
-    function getAllSnapshots() public view returns (uint256[] memory) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        return $._scheduledSnapshots;
-    }
- 
-    /** 
-    * @dev 
-    * Get the next scheduled snapshots
-    */
-    function getNextSnapshots() public view returns (uint256[] memory) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256[] memory nextScheduledSnapshot = new uint256[](0);
-        // no snapshot were planned
-        if ($._scheduledSnapshots.length > 0) {
-            (
-                uint256 timeLowerBound,
-                uint256 indexLowerBound
-            ) = _findScheduledMostRecentPastSnapshot();
-            // All snapshots are situated in the futur
-            if ((timeLowerBound == 0) && ($._currentSnapshotTime == 0)) {
-                return $._scheduledSnapshots;
-            } else {
-                // There are snapshots situated in the futur
-                if (indexLowerBound + 1 != $._scheduledSnapshots.length) {
-                    // All next snapshots are located after the snapshot specified by indexLowerBound
-                    uint256 arraySize = $._scheduledSnapshots.length -
-                        indexLowerBound -
-                        1;
-                    nextScheduledSnapshot = new uint256[](arraySize);
-                    // No need of unchecked block since Soliditiy 0.8.22
-                    for (uint256 i; i < arraySize; ++i) {
-                        nextScheduledSnapshot[i] = $._scheduledSnapshots[
-                            indexLowerBound + 1 + i
-                        ];
-                    }
-                }
-            }
-        }
-        return nextScheduledSnapshot;
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /** 
-    * @dev schedule a snapshot at the specified time
-    * You can only add a snapshot after the last previous
-    */
-    function _scheduleSnapshot(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        // Check the time firstly to avoid an useless read of storage
-       _checkTimeInThePast(time);
- 
-        if ($._scheduledSnapshots.length > 0) {
-            // We check the last snapshot on the list
-            uint256 nextSnapshotTime = $._scheduledSnapshots[
-                $._scheduledSnapshots.length - 1
-            ];
-            if (time < nextSnapshotTime) {
-                revert Errors
-                    .CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot(
-                        time,
-                        nextSnapshotTime
-                    );
-            } else if (time == nextSnapshotTime) {
-                revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists();
-            }
-        }
-        $._scheduledSnapshots.push(time);
-        emit SnapshotSchedule(0, time);
-    }
- 
-    /** 
-    * @dev schedule a snapshot at the specified time
-    */
-    function _scheduleSnapshotNotOptimized(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _checkTimeInThePast(time);
-        (bool isFound, uint256 index) = _findScheduledSnapshotIndex(time);
-        // Perfect match
-        if (isFound) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists();
-        }
-        // if no upper bound match found, we push the snapshot at the end of the list
-        if (index == $._scheduledSnapshots.length) {
-            $._scheduledSnapshots.push(time);
-        } else {
-            $._scheduledSnapshots.push(
-                $._scheduledSnapshots[$._scheduledSnapshots.length - 1]
-            );
-            for (uint256 i = $._scheduledSnapshots.length - 2; i > index; ) {
-                $._scheduledSnapshots[i] = $._scheduledSnapshots[i - 1];
-                unchecked {
-                    --i;
-                }
-            }
-            $._scheduledSnapshots[index] = time;
-        }
-        emit SnapshotSchedule(0, time);
-    }
- 
-    /** 
-    * @dev reschedule a scheduled snapshot at the specified newTime
-    */
-    function _rescheduleSnapshot(uint256 oldTime, uint256 newTime) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        // Check the time firstly to avoid an useless read of storage
-        _checkTimeSnapshotAlreadyDone(oldTime);
-        _checkTimeInThePast(newTime);
-        if ($._scheduledSnapshots.length == 0) {
-            revert Errors.CMTAT_SnapshotModule_NoSnapshotScheduled();
-        }
-        uint256 index = _findAndRevertScheduledSnapshotIndex(oldTime);
-        if (index + 1 < $._scheduledSnapshots.length) {
-            uint256 nextSnapshotTime = $._scheduledSnapshots[index + 1];
-            if (newTime > nextSnapshotTime) {
-                revert Errors
-                    .CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot(
-                        newTime,
-                        nextSnapshotTime
-                    );
-            } else if (newTime == nextSnapshotTime) {
-                revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists();
-            }
-        }
-        if (index > 0) {
-            if (newTime <= $._scheduledSnapshots[index - 1])
-                revert Errors
-                    .CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot(
-                        newTime,
-                        $._scheduledSnapshots[index - 1]
-                    );
-        }
-        $._scheduledSnapshots[index] = newTime;
- 
-        emit SnapshotSchedule(oldTime, newTime);
-    }
- 
-    /**
-    * @dev unschedule the last scheduled snapshot
-    */
-    function _unscheduleLastSnapshot(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        // Check the time firstly to avoid an useless read of storage
-        _checkTimeSnapshotAlreadyDone(time);
-        if ($._scheduledSnapshots.length == 0) {
-            revert Errors.CMTAT_SnapshotModule_NoSnapshotScheduled();
-        }
-        // All snapshot time are unique, so we do not check the indice
-        if (time !=$._scheduledSnapshots[$._scheduledSnapshots.length - 1]) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotNotFound();
-        }
-        $._scheduledSnapshots.pop();
-        emit SnapshotUnschedule(time);
-    }
- 
-    /** 
-    * @dev unschedule (remove) a scheduled snapshot in three steps:
-    * - search the snapshot in the list
-    * - If found, move all next snapshots one position to the left
-    * - Reduce the array size by deleting the last snapshot
-    */
-    function _unscheduleSnapshotNotOptimized(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _checkTimeSnapshotAlreadyDone(time);
-        
-        uint256 index = _findAndRevertScheduledSnapshotIndex(time);
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = index; i + 1 < $._scheduledSnapshots.length; ++i ) {
-            $._scheduledSnapshots[i] = $._scheduledSnapshots[i + 1];
-        }
-        $._scheduledSnapshots.pop();
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * @param time where we want a snapshot
-    * @param snapshots the struct where are stored the snapshots
-    * @return  snapshotExist true if a snapshot is found, false otherwise
-    * value 0 if no snapshot, balance value if a snapshot exists
-    */
-    function _valueAt(
-        uint256 time,
-        Snapshots storage snapshots
-    ) internal view returns (bool snapshotExist, uint256 value) {
-        // When a valid snapshot is queried, there are three possibilities:
-        //  a) The queried value was not modified after the snapshot was taken. Therefore, a snapshot entry was never
-        //  created for this id, and all stored snapshot ids are smaller than the requested one. The value that corresponds
-        //  to this id is the current one.
-        //  b) The queried value was modified after the snapshot was taken. Therefore, there will be an entry with the
-        //  requested id, and its value is the one to return.
-        //  c) More snapshots were created after the requested one, and the queried value was later modified. There will be
-        //  no entry for the requested id: the value that corresponds to it is that of the smallest snapshot id that is
-        //  larger than the requested one.
-        //
-        // In summary, we need to find an element in an array, returning the index of the smallest value that is larger if
-        // it is not found, unless said value doesn't exist (e.g. when all values are smaller). Arrays.findUpperBound does
-        // exactly this.
- 
-        uint256 index = snapshots.ids.findUpperBound(time);
- 
-        if (index == snapshots.ids.length) {
-            return (false, 0);
-        } else {
-            return (true, snapshots.values[index]);
-        }
-    }
- 
-    /** 
-    * @dev 
-    * Inside a struct Snapshots:
-    * - Update the array ids to the current Snapshot time if this one is greater than the snapshot times stored in ids.
-    * - Update the value to the corresponding value.
-    */
-    function _updateSnapshot(
-        Snapshots storage snapshots,
-        uint256 currentValue
-    ) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256 current = $._currentSnapshotTime;
-        if (_lastSnapshot(snapshots.ids) < current) {
-            snapshots.ids.push(current);
-            snapshots.values.push(currentValue);
-        }
-    }
- 
-    /** 
-    * @dev
-    * Set the currentSnapshotTime by retrieving the most recent snapshot
-    * if a snapshot exists, clear all past scheduled snapshot
-    */
-    function _setCurrentSnapshot() internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        (
-            uint256 scheduleSnapshotTime,
-            uint256 scheduleSnapshotIndex
-        ) = _findScheduledMostRecentPastSnapshot();
-        if (scheduleSnapshotTime > 0) {
-            $._currentSnapshotTime = scheduleSnapshotTime;
-            $._currentSnapshotIndex = scheduleSnapshotIndex;
-        }
-    }
- 
-    /**
-    * @return the last snapshot time inside a snapshot ids array
-    */
-    function _lastSnapshot(
-        uint256[] storage ids
-    ) private view returns (uint256) {
-        if (ids.length == 0) {
-            return 0;
-        } else {
-            return ids[ids.length - 1];
-        }
-    }
- 
-    /** 
-    * @dev Find the snapshot index at the specified time
-    * @return (true, index) if the snapshot exists, (false, 0) otherwise
-    */
-    function _findScheduledSnapshotIndex(
-        uint256 time
-    ) private view returns (bool, uint256) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256 indexFound = $._scheduledSnapshots.findUpperBound(time);
-        uint256 _scheduledSnapshotsLength = $._scheduledSnapshots.length;
-        // Exact match
-        if (
-            indexFound != _scheduledSnapshotsLength &&
-            $._scheduledSnapshots[indexFound] == time
-        ) {
-            return (true, indexFound);
-        }
-        // Upper bound match
-        else if (indexFound != _scheduledSnapshotsLength) {
-            return (false, indexFound);
-        }
-        // no match
-        else {
-            return (false, _scheduledSnapshotsLength);
-        }
-    }
- 
-    /** 
-    * @dev find the most recent past snapshot
-    * The complexity of this function is O(N) because we go through the whole list
-    */
-    function _findScheduledMostRecentPastSnapshot()
-        private
-        view
-        returns (uint256 time, uint256 index)
-    {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256 currentArraySize = $._scheduledSnapshots.length;
-        // no snapshot or the current snapshot already points on the last snapshot
-        if (
-            currentArraySize == 0 ||
-            (($._currentSnapshotIndex + 1 == currentArraySize) && (time != 0))
-        ) {
-            return (0, currentArraySize);
-        }
-        // mostRecent is initialized in the loop
-        uint256 mostRecent;
-        index = currentArraySize;
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = $._currentSnapshotIndex; i < currentArraySize; ++i ) {
-            if ($._scheduledSnapshots[i] <= block.timestamp) {
-                mostRecent = $._scheduledSnapshots[i];
-                index = i;
-            } else {
-                // All snapshot are planned in the futur
-                break;
-            }
-        }
-        return (mostRecent, index);
-    }
- 
-    /* ============ Utility functions ============ */
- 
- 
-    function _findAndRevertScheduledSnapshotIndex(
-        uint256 time
-    ) private view returns (uint256){
-        (bool isFound, uint256 index) = _findScheduledSnapshotIndex(time);
-        if (!isFound) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotNotFound();
-        }
-        return index;
-    }
-    function _checkTimeInThePast(uint256 time) internal view{
-        if (time <= block.timestamp) {
-                    revert Errors.CMTAT_SnapshotModule_SnapshotScheduledInThePast(
-                        time,
-                        block.timestamp
-                    );
-                }
-    }
-    function _checkTimeSnapshotAlreadyDone(uint256 time) internal view{
-        if (time <= block.timestamp) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyDone();
-        }
-    }
- 
-    /* ============ ERC-7201 ============ */
-    function _getSnapshotModuleBaseStorage() internal pure returns (SnapshotModuleBaseStorage storage $) {
-        assembly {
-            $.slot := SnapshotModuleBaseStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/internal/base/index.html b/doc/general/test/coverage/contracts/modules/internal/base/index.html deleted file mode 100644 index 6b2ce4d7..00000000 --- a/doc/general/test/coverage/contracts/modules/internal/base/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/base/ - - - - - - - -
-
-

- all files contracts/modules/internal/base/ -

-
-
- 100% - Statements - 88/88 -
-
- 96.55% - Branches - 56/58 -
-
- 100% - Functions - 18/18 -
-
- 100% - Lines - 112/112 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
SnapshotModuleBase.sol
100%88/8896.55%56/58100%18/18100%112/112
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/internal/index.html b/doc/general/test/coverage/contracts/modules/internal/index.html deleted file mode 100644 index 53c42414..00000000 --- a/doc/general/test/coverage/contracts/modules/internal/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/ - - - - - - - -
-
-

- all files contracts/modules/internal/ -

-
-
- 100% - Statements - 45/45 -
-
- 85% - Branches - 17/20 -
-
- 100% - Functions - 21/21 -
-
- 100% - Lines - 58/58 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ERC20SnapshotModuleInternal.sol
100%20/2090%9/10100%9/9100%28/28
EnforcementModuleInternal.sol
100%12/1283.33%5/6100%5/5100%15/15
ValidationModuleInternal.sol
100%13/1375%3/4100%7/7100%15/15
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html b/doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html deleted file mode 100644 index bc716af6..00000000 --- a/doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html +++ /dev/null @@ -1,422 +0,0 @@ - - - - Code coverage report for contracts/modules/security/AuthorizationModule.sol - - - - - - - -
-
-

- all files / contracts/modules/security/ AuthorizationModule.sol -

-
-
- 100% - Statements - 23/23 -
-
- 95.83% - Branches - 23/24 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 30/30 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× - -  -383× -383× -16× -16× -16× -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -16× -16× - -  -12× -12× -  -  -  -40× -40× - - -  - -  -  -36× -  -  -  -10× -10× - - -  - -  -  - -  -  -  -  -  -  -  -  -  -  -1285× -760× -  -525× -  -  -  -  -  -  -  -  -  -  -84× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
-import "../../libraries/Errors.sol";
-import "../../interfaces/engine/IAuthorizationEngine.sol";
- 
-abstract contract AuthorizationModule is AccessControlUpgradeable {
-    /* ============ Events ============ */
-    /**
-     * @dev Emitted when a rule engine is set.
-     */
-    event AuthorizationEngine(IAuthorizationEngine indexed newAuthorizationEngine);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.AuthorizationModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant AuthorizationModuleStorageLocation = 0x59b7f077fa4ad020f9053fd2197fef0113b19f0b11dcfe516e88cbc0e9226d00;
-    /* ==== ERC-7201 State Variables === */
-    struct AuthorizationModuleStorage {
-        IAuthorizationEngine _authorizationEngine;
-    }
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev
-     *
-     * - The grant to the admin role is done by AccessControlDefaultAdminRules
-     * - The control of the zero address is done by AccessControlDefaultAdminRules
-     *
-     */
-    function __AuthorizationModule_init_unchained(address admin, IAuthorizationEngine authorizationEngine_)
-    internal EonlyInitializing {
-        if(admin == address(0)){
-            revert Errors.CMTAT_AuthorizationModule_AddressZeroNotAllowed();
-        }
-        _grantRole(DEFAULT_ADMIN_ROLE, admin);
-        if (address(authorizationEngine_) != address (0)) {
-            AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-            $._authorizationEngine = authorizationEngine_;
-            emit AuthorizationEngine(authorizationEngine_);
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    function authorizationEngine() public view virtual returns (IAuthorizationEngine) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        return $._authorizationEngine;
-    }
- 
- 
-    /*
-    * @notice set an authorizationEngine if not already set
-    * @dev once an AuthorizationEngine is set, it is not possible to unset it
-    */
-    function setAuthorizationEngine(
-        IAuthorizationEngine authorizationEngine_
-    ) external onlyRole(DEFAULT_ADMIN_ROLE) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        if (address($._authorizationEngine) != address (0)){
-            revert Errors.CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet();
-        }
-        $._authorizationEngine = authorizationEngine_;
-        emit AuthorizationEngine(authorizationEngine_);
-    }
- 
-    function grantRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        if (address($._authorizationEngine) != address (0)) {
-            bool result = $._authorizationEngine.operateOnGrantRole(role, account);
-            if(!result) {
-                // Operation rejected by the authorizationEngine
-               revert Errors.CMTAT_AuthorizationModule_InvalidAuthorization();
-            }
-        }
-        return AccessControlUpgradeable.grantRole(role, account);
-    }
- 
-    function revokeRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        if (address($._authorizationEngine) != address (0)) {
-            bool result = $._authorizationEngine.operateOnRevokeRole(role, account);
-            if(!result) {
-                // Operation rejected by the authorizationEngine
-               revert Errors.CMTAT_AuthorizationModule_InvalidAuthorization();
-            }
-        }
-        return AccessControlUpgradeable.revokeRole(role, account);
-    }
- 
-    /** 
-     * @dev Returns `true` if `account` has been granted `role`.
-     */
-    function hasRole(
-        bytes32 role,
-        address account
-    ) public view virtual override(AccessControlUpgradeable) returns (bool) {
-        // The Default Admin has all roles
-        if (AccessControlUpgradeable.hasRole(DEFAULT_ADMIN_ROLE, account)) {
-            return true;
-        }
-        return AccessControlUpgradeable.hasRole(role, account);
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getAuthorizationModuleStorage() private pure returns (AuthorizationModuleStorage storage $) {
-        assembly {
-            $.slot := AuthorizationModuleStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/security/index.html b/doc/general/test/coverage/contracts/modules/security/index.html deleted file mode 100644 index b0be96c4..00000000 --- a/doc/general/test/coverage/contracts/modules/security/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/security/ - - - - - - - -
-
-

- all files contracts/modules/security/ -

-
-
- 100% - Statements - 23/23 -
-
- 95.83% - Branches - 23/24 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 30/30 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
AuthorizationModule.sol
100%23/2395.83%23/24100%7/7100%30/30
-
-
- - - - - - - 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 deleted file mode 100644 index ef51ee6d..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/controllers/ValidationModule.sol.html +++ /dev/null @@ -1,518 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/controllers/ValidationModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/controllers/ ValidationModule.sol -

-
-
- 100% - Statements - 40/40 -
-
- 97.37% - Branches - 37/38 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 35/35 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -18× -18× - -  -15× -15× -  -  -  -  -  -  -  -  -  -  -20× -20× - -  -  -  -  - -  -  -  -  - -  -  -  -  - -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -17× -17× - -  - -  - -  - -  - -  -  -  -  -  -  -  -  -19× - -  -15× -15× -12× -  - -  -  -  -  -  -  -  -  -  -  -  -458× -18× -  -440× -  -  -  -439× -14× -  -425× -425× -60× -  -365× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-import "../../internal/ValidationModuleInternal.sol";
-import "../core/PauseModule.sol";
-import "../core/EnforcementModule.sol";
- 
-import "../../../libraries/Errors.sol";
- 
-/**
- * @dev Validation module.
- *
- * Useful for to restrict and validate transfers
- */
-abstract contract ValidationModule is
-    ValidationModuleInternal,
-    PauseModule,
-    EnforcementModule,
-    IERC1404Wrapper
-{
-    /* ============ State Variables ============ */
-    string constant TEXT_TRANSFER_OK = "No restriction";
-    string constant TEXT_UNKNOWN_CODE = "Unknown code";
- 
-    /* ============  Initializer Function ============ */
-    function __ValidationModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /*
-    * @notice set a RuleEngine
-    * @param ruleEngine_ the call will be reverted if the new value of ruleEngine is the same as the current one
-    */
-    function setRuleEngine(
-        IRuleEngine ruleEngine_
-    ) external onlyRole(DEFAULT_ADMIN_ROLE) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if ($._ruleEngine == ruleEngine_){
-             revert Errors.CMTAT_ValidationModule_SameValue();
-        }
-        $._ruleEngine = ruleEngine_;
-        emit RuleEngine(ruleEngine_);
-    }
- 
-    /**
-     * @dev ERC1404 returns the human readable explaination corresponding to the error code returned by detectTransferRestriction
-     * @param restrictionCode The error code returned by detectTransferRestriction
-     * @return message The human readable explaination corresponding to the error code returned by detectTransferRestriction
-     */
-    function messageForTransferRestriction(
-        uint8 restrictionCode
-    ) external view override returns (string memory message) {
-          ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (restrictionCode == uint8(REJECTED_CODE_BASE.TRANSFER_OK)) {
-            return TEXT_TRANSFER_OK;
-        } else if (
-            restrictionCode ==
-            uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED)
-        ) {
-            return TEXT_TRANSFER_REJECTED_PAUSED;
-        } else if (
-            restrictionCode ==
-            uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN)
-        ) {
-            return TEXT_TRANSFER_REJECTED_FROM_FROZEN;
-        } else if (
-            restrictionCode ==
-            uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN)
-        ) {
-            return TEXT_TRANSFER_REJECTED_TO_FROZEN;
-        } else if (address($._ruleEngine) != address(0)) {
-            return _messageForTransferRestriction(restrictionCode);
-        } else {
-            return TEXT_UNKNOWN_CODE;
-        }
-    }
-    
-    /**
-     * @dev ERC1404 check if _value token can be transferred from _from to _to
-     * @param from address The address which you want to send tokens from
-     * @param to address The address which you want to transfer to
-     * @param amount uint256 the amount of tokens to be transferred
-     * @return code of the rejection reason
-     */
-    function detectTransferRestriction(
-        address from,
-        address to,
-        uint256 amount
-    ) public view override returns (uint8 code) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (paused()) {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED);
-        } else if (frozen(from)) {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN);
-        } else if (frozen(to)) {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN);
-        } else if (address($._ruleEngine) != address(0)) {
-            return _detectTransferRestriction(from, to, amount);
-        } else {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_OK);
-        }
-    }
- 
-    function validateTransfer(
-        address from,
-        address to,
-        uint256 amount
-    ) public view override returns (bool) {
-        if (!_validateTransferByModule(from, to, amount)) {
-            return false;
-        }
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (address($._ruleEngine) != address(0)) {
-            return _validateTransfer(from, to, amount);
-        }
-        return true;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function _validateTransferByModule(
-        address from,
-        address to,
-        uint256 /*amount*/
-    ) internal view returns (bool) {
-        if (paused() || frozen(from) || frozen(to)) {
-            return false;
-        }
-        return true;
-    }
- 
-    function _operateOnTransfer(address from, address to, uint256 amount) override internal returns (bool){
-        if (!_validateTransferByModule(from, to, amount)){
-            return false;
-        }
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (address($._ruleEngine) != address(0)) {
-            return ValidationModuleInternal._operateOnTransfer(from, to, amount);
-        }
-        return true;
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html b/doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html deleted file mode 100644 index ca23daa8..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/controllers/ - - - - - - - -
-
-

- all files contracts/modules/wrapper/controllers/ -

-
-
- 100% - Statements - 40/40 -
-
- 97.37% - Branches - 37/38 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 35/35 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ValidationModule.sol
100%40/4097.37%37/38100%7/7100%35/35
-
-
- - - - - - - 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 deleted file mode 100644 index 964e3579..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/BaseModule.sol.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/BaseModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ BaseModule.sol -

-
-
- 100% - Statements - 13/13 -
-
- 87.5% - Branches - 7/8 -
-
- 100% - Functions - 8/8 -
-
- 100% - Lines - 20/20 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× -383× -383× -383× -  -  -  -  -  -  -  -10× -10× -  -  -  -10× -10× -  -  - - -  -  -  -  -  -  -  -  - - - -  -  -  -  -  -  -  -  - - - -  -  -  -  -  -  -  -  - - - -  -  -  -  -  -  -  -  -  -417× -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
- 
-abstract contract BaseModule is AuthorizationModule {
-    /* ============ State Variables ============ */
-    /** 
-    * @notice 
-    * Get the current version of the smart contract
-    */
-    string public constant VERSION = "2.5.0";
-    
-    /* ============ Events ============ */
-    event Term(string indexed newTermIndexed, string newTerm);
-    event TokenId(string indexed newTokenIdIndexed, string newTokenId);
-    event Information(
-        string indexed newInformationIndexed,
-        string newInformation
-    );
-    event Flag(uint256 indexed newFlag);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.BaseModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant BaseModuleStorageLocation = 0xa98e72f7f70574363edb12c42a03ac1feb8cc898a6e0a30f6eefbab7093e0d00;
- 
-    /* ==== ERC-7201 State Variables === */
-    struct BaseModuleStorage {
-            string _tokenId;
-            string _terms;
-            string _information;
-    }
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev Sets the values for {name} and {symbol}.
-     *
-     * All two of these values are immutable: they can only be set once during
-     * construction.
-     */
-    function __Base_init_unchained(
-        string memory tokenId_,
-        string memory terms_,
-        string memory information_
-    ) internal EonlyInitializing {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._tokenId = tokenId_;
-        $._terms = terms_;
-        $._information = information_;
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    function tokenId() public view virtual returns (string memory) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        return $._tokenId;
-    }
- 
-    function terms() public view virtual returns (string memory) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        return $._terms;
-    }
-    function information() public view virtual returns (string memory) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        return $._information;
-    }
- 
-    /** 
-    * @notice the tokenId will be changed even if the new value is the same as the current one
-    */
-    function setTokenId(
-        string calldata tokenId_
-    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._tokenId = tokenId_;
-        emit TokenId(tokenId_, tokenId_);
-    }
- 
-    /** 
-    * @notice The terms will be changed even if the new value is the same as the current one
-    */
-    function setTerms(
-        string calldata terms_
-    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._terms  = terms_;
-        emit Term(terms_, terms_);
-    }
- 
-    /** 
-    * @notice The information will be changed even if the new value is the same as the current one
-    */
-    function setInformation(
-        string calldata information_
-    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._information  = information_;
-        emit Information(information_, information_);
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /* ============ ERC-7201 ============ */
-    function _getBaseModuleStorage() private pure returns (BaseModuleStorage storage $) {
-        assembly {
-            $.slot := BaseModuleStorageLocation
-        }
-    }
- 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index ee11870a..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BaseModule.sol.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ERC20BaseModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ ERC20BaseModule.sol -

-
-
- 100% - Statements - 13/13 -
-
- 75% - Branches - 6/8 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 20/20 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× -383× -  -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -10× - -  -  -  - - -  -  - -  -  -10× -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -10× -  - - -  -  - -  -  -  -  -  -  -  -  - - - -  - -  -  -  -  -  -  -  -  -  -  -385× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-// required OZ imports here
-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 ============ */
-    /**
-    * @notice Emitted when the specified `spender` spends the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance.
-    * @dev The allowance can be also "spend" with the function BurnFrom, but in this case, the emitted event is BurnFrom.
-    */
-    event Spend(address indexed owner, address indexed spender, uint256 value);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ERC20BaseModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant ERC20BaseModuleStorageLocation = 0x9bd8d607565c0370ae5f91651ca67fd26d4438022bf72037316600e29e6a3a00;
-    /* ==== ERC-7201 State Variables === */
-    struct ERC20BaseModuleStorage {
-        uint8 _decimals;
-    }
- 
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev Initializers: Sets the values for decimals.
-     *
-     * this value is immutable: it can only be set once during
-     * construction/initialization.
-     */
-    function __ERC20BaseModule_init_unchained(
-        uint8 decimals_
-    ) internal EonlyInitializing {
-        ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage();
-        $._decimals = decimals_;
-    }
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     *
-     * @notice Returns the number of decimals used to get its user representation.
-     * @inheritdoc ERC20Upgradeable
-     */
-    function decimals() public view virtual override returns (uint8) {
-        ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage();
-        return $._decimals;
-    }
- 
-    /**
-     * @notice batch version of transfer
-     * @param tos can not be empty, must have the same length as values
-     * @param values can not be empty
-     * @dev See {OpenZeppelin ERC20-transfer & ERC1155-safeBatchTransferFrom}.
-     *
-     *
-     * Requirements:
-     * - `tos` and `values` must have the same length
-     * - `tos`cannot contain a zero address (check made by transfer)
-     * - the caller must have a balance cooresponding to the total values
-     */
-    function transferBatch(
-        address[] calldata tos,
-        uint256[] calldata values
-    ) public returns (bool) {
-        if (tos.length == 0) {
-            revert Errors.CMTAT_ERC20BaseModule_EmptyTos();
-        }
-        // We do not check that values is not empty since
-        // this require will throw an error in this case.
-        if (bool(tos.length != values.length)) {
-            revert Errors.CMTAT_ERC20BaseModule_TosValueslengthMismatch();
-        }
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = 0; i < tos.length; ++i) {
-            // We call directly the internal function transfer
-            // The reason is that the public function adds only the owner address recovery
-            ERC20Upgradeable._transfer(_msgSender(), tos[i], values[i]);
-        }
-        // not really useful
-        // Here only to keep the same behaviour as transfer
-        return true;
-    }
- 
-    /**
-     * @notice Transfers `value` amount of tokens from address `from` to address `to`
-     * @custom:dev-cmtat
-     * Emits a {Spend} event indicating the spended allowance.
-     * @inheritdoc ERC20Upgradeable
-     *
-     */
-    function transferFrom(
-        address from,
-        address to,
-        uint256 value
-    ) public virtual override returns (bool) {
-        bool result = ERC20Upgradeable.transferFrom(from, to, value);
-        // The result will be normally always true because OpenZeppelin will revert in case of an error
-        Eif (result) {
-            emit Spend(from, _msgSender(), value);
-        }
- 
-        return result;
-    }
- 
-    /**
-    * @param addresses list of address to know their balance
-    * @return balances ,totalSupply array with balance for each address, totalSupply
-    * @dev useful for the snapshot rule
-    */
-    function balanceInfo(address[] calldata addresses) public view returns(uint256[] memory balances , uint256 totalSupply) {
-        balances = new uint256[](addresses.length);
-        for(uint256 i = 0; i < addresses.length; ++i){
-            balances[i] = ERC20Upgradeable.balanceOf(addresses[i]);
-        }
-        totalSupply = ERC20Upgradeable.totalSupply();
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getERC20BaseModuleStorage() private pure returns (ERC20BaseModuleStorage storage $) {
-        assembly {
-            $.slot := ERC20BaseModuleStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 5af9fc26..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BurnModule.sol.html +++ /dev/null @@ -1,452 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ERC20BurnModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ ERC20BurnModule.sol -

-
-
- 100% - Statements - 14/14 -
-
- 92.86% - Branches - 13/14 -
-
- 100% - Functions - 4/4 -
-
- 100% - Lines - 18/18 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -14× -12× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -12× - -  -  -  -10× - -  -  - -18× -16× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - - -  - -  -  - - -  -  - -  - -  - -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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");
-    bytes32 public constant BURNER_FROM_ROLE = keccak256("BURNER_FROM_ROLE");
-    
-    /* ============ Events ============ */
-    /**
-    * @notice Emitted when the specified `value` amount of tokens owned by `owner`are destroyed with the given `reason`
-    */
-    event Burn(address indexed owner, uint256 value, string reason);
-    /**
-    * @notice Emitted when the specified `spender` burns the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance.
-    */
-    event BurnFrom(address indexed owner, address indexed spender, uint256 value);
- 
- 
-    /* ============  Initializer Function ============ */
-    function __ERC20BurnModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @notice Destroys a `value` amount of tokens from `account`, by transferring it to address(0).
-     * @dev
-     * See {ERC20-_burn}
-     * Emits a {Burn} event
-     * Emits a {Transfer} event with `to` set to the zero address  (emits inside _burn).
-     * Requirements:
-     * - the caller must have the `BURNER_ROLE`.
-     */
-    function burn(
-        address account,
-        uint256 value,
-        string calldata reason
-    ) public onlyRole(BURNER_ROLE) {
-        _burn(account, value);
-        emit Burn(account, value, reason);
-    }
- 
- 
-    /**
-     *
-     * @notice batch version of {burn}.
-     * @dev
-     * See {ERC20-_burn} and {OpenZeppelin ERC1155_burnBatch}.
-     *
-     * For each burn action:
-     * -Emits a {Burn} event
-     * -Emits a {Transfer} event with `to` set to the zero address  (emits inside _burn).
-     * The burn `reason`is the same for all `accounts` which tokens are burnt.
-     * Requirements:
-     * - `accounts` and `values` must have the same length
-     * - the caller must have the `BURNER_ROLE`.
-     */
-    function burnBatch(
-        address[] calldata accounts,
-        uint256[] calldata values,
-        string calldata reason
-    ) public onlyRole(BURNER_ROLE) {
-        if (accounts.length == 0) {
-            revert Errors.CMTAT_BurnModule_EmptyAccounts();
-        }
-        // We do not check that values is not empty since
-        // this require will throw an error in this case.
-        if (bool(accounts.length != values.length)) {
-            revert Errors.CMTAT_BurnModule_AccountsValueslengthMismatch();
-        }
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = 0; i < accounts.length; ++i ) {
-            _burn(accounts[i], values[i]);
-            emit Burn(accounts[i], values[i], reason);
-        }
-    }
- 
-    /**
-     * @notice Destroys `amount` tokens from `account`, deducting from the caller's
-     * allowance.
-     * @dev 
-     * Can be used to authorize a bridge (e.g. CCIP) to burn token owned by the bridge
-     * No string parameter reason to be compatible with Bridge, e.g. CCIP
-     * 
-     * See {ERC20-_burn} and {ERC20-allowance}.
-     *
-     * Requirements:
-     *
-     * - the caller must have allowance for ``accounts``'s tokens of at least
-     * `value`.
-     */
-    function burnFrom(address account, uint256 value)
-        public
-        onlyRole(BURNER_FROM_ROLE)
-    {
-        // Allowance check
-        address sender =  _msgSender();
-        uint256 currentAllowance = allowance(account, sender);
-        if(currentAllowance < value){
-            // ERC-6093
-            revert ERC20InsufficientAllowance(sender, currentAllowance, value);
-        }
-        // Update allowance
-        unchecked {
-            _approve(account, sender, currentAllowance - value);
-        }
-        // burn
-        _burn(account, value);
-        // We also emit a burn event since its a burn operation
-        emit Burn(account, value, "burnFrom");
-        // Specific event for the operation
-        emit BurnFrom(account, sender, value);
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index ec866ec8..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20MintModule.sol.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ERC20MintModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ ERC20MintModule.sol -

-
-
- 100% - Statements - 7/7 -
-
- 90% - Branches - 9/10 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 9/9 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -291× -291× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -24× - -  -  -  -22× - -  -  -18× -54× -54× -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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");
-    /* ============ Events ============ */
-    /**
-     * @notice Emitted when the specified  `value` amount of new tokens are created and
-     * allocated to the specified `account`.
-     */
-    event Mint(address indexed account, uint256 value);
- 
- 
-    /* ============  Initializer Function ============ */
-    function __ERC20MintModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice  Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0)
-     * @param account token receiver
-     * @param value amount of tokens
-     * @dev
-     * See {OpenZeppelin ERC20-_mint}.
-     * Emits a {Mint} event.
-     * Emits a {Transfer} event with `from` set to the zero address (emits inside _mint).
-     *
-     * Requirements:
-     * - `account` cannot be the zero address (check made by _mint).
-     * - The caller must have the `MINTER_ROLE`.
-     */
-    function mint(address account, uint256 value) public onlyRole(MINTER_ROLE) {
-        _mint(account, value);
-        emit Mint(account, value);
-    }
- 
-    /**
-     *
-     * @notice batch version of {mint}
-     * @dev
-     * See {OpenZeppelin ERC20-_mint} and {OpenZeppelin ERC1155_mintBatch}.
-     *
-     * For each mint action:
-     * - Emits a {Mint} event.
-     * - Emits a {Transfer} event with `from` set to the zero address (emits inside _mint).
-     *
-     * Requirements:
-     * - `accounts` and `values` must have the same length
-     * - `accounts` cannot contain a zero address (check made by _mint).
-     * - the caller must have the `MINTER_ROLE`.
-     */
-    function mintBatch(
-        address[] calldata accounts,
-        uint256[] calldata values
-    ) public onlyRole(MINTER_ROLE) {
-        if (accounts.length == 0) {
-            revert Errors.CMTAT_MintModule_EmptyAccounts();
-        }
-        // We do not check that values is not empty since
-        // this require will throw an error in this case.
-        if (bool(accounts.length != values.length)) {
-            revert Errors.CMTAT_MintModule_AccountsValueslengthMismatch();
-        }
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = 0; i < accounts.length; ++i ) {
-            _mint(accounts[i], values[i]);
-            emit Mint(accounts[i], values[i]);
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 94408cc1..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/EnforcementModule.sol.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/EnforcementModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ EnforcementModule.sol -

-
-
- 100% - Statements - 2/2 -
-
- 83.33% - Branches - 5/6 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 2/2 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -22× -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-import "../../internal/EnforcementModuleInternal.sol";
- 
-/**
- * @title Enforcement module.
- * @dev 
- *
- * Allows the issuer to freeze transfers from a given address
- */
-abstract contract EnforcementModule is
-    EnforcementModuleInternal,
-    AuthorizationModule
-{
-    /* ============ State Variables ============ */
-    bytes32 public constant ENFORCER_ROLE = keccak256("ENFORCER_ROLE");
-    string internal constant TEXT_TRANSFER_REJECTED_FROM_FROZEN =
-        "Address FROM is frozen";
- 
-    string internal constant TEXT_TRANSFER_REJECTED_TO_FROZEN =
-        "Address TO is frozen";
- 
-    /* ============  Initializer Function ============ */
-    function __EnforcementModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice Freezes an address.
-     * @param account the account to freeze
-     * @param reason indicate why the account was frozen.
-     */
-    function freeze(
-        address account,
-        string calldata reason
-    ) public onlyRole(ENFORCER_ROLE) returns (bool) {
-        return _freeze(account, reason);
-    }
- 
-    /**
-     * @notice Unfreezes an address.
-     * @param account the account to unfreeze
-     * @param reason indicate why the account was unfrozen.
-     *
-     *
-     */
-    function unfreeze(
-        address account,
-        string calldata reason
-    ) public onlyRole(ENFORCER_ROLE) returns (bool) {
-        return _unfreeze(account, reason);
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 6d02c4f3..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/PauseModule.sol.html +++ /dev/null @@ -1,392 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/PauseModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ PauseModule.sol -

-
-
- 100% - Statements - 9/9 -
-
- 90% - Branches - 9/10 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 12/12 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -14× -  -  -  -  -  -  -  -  -  -  -  - - - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - - - -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -12× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
-import "../../security/AuthorizationModule.sol";
- 
-/**
- * @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. 
- *
- * Useful for scenarios such as preventing trades until the end of an evaluation
- * period, or having an emergency switch for freezing all token transfers in the
- * event of a large bug.
- */
-abstract contract PauseModule is PausableUpgradeable, AuthorizationModule {
-    /* ============ State Variables ============ */
-    bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
-    string internal constant TEXT_TRANSFER_REJECTED_PAUSED =
-        "All transfers paused";
-    /* ============ Events ============ */
-    event Deactivated(address account);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ERC20BaseModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant PauseModuleStorageLocation = 0x9bd8d607565c0370ae5f91651ca67fd26d4438022bf72037316600e29e6a3a00;
-    /* ==== ERC-7201 State Variables === */
-    struct PauseModuleStorage {
-        bool _isDeactivated;
-    }
-    /* ============  Initializer Function ============ */
-    function __PauseModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
-    
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice Pauses all token transfers.
-     * @dev See {ERC20Pausable} and {Pausable-_pause}.
-     *
-     * Requirements:
-     *
-     * - the caller must have the `PAUSER_ROLE`.
-     *
-     */
-    function pause() public onlyRole(PAUSER_ROLE) {
-        _pause();
-    }
- 
-    /**
-     * @notice Unpauses all token transfers.
-     * @dev See {ERC20Pausable} and {Pausable-_unpause}.
-     *
-     * Requirements:
-     *
-     * - the caller must have the `PAUSER_ROLE`.
-     */
-    function unpause() public onlyRole(PAUSER_ROLE) {
-        PauseModuleStorage storage $ = _getPauseModuleStorage();
-        if($._isDeactivated){
-            revert Errors.CMTAT_PauseModule_ContractIsDeactivated();
-        }
-        _unpause();
-    }
- 
-    /**
-    * @notice  deactivate the contract
-    * Warning: the operation is irreversible, be careful
-    * @dev
-    * Emits a {Deactivated} event indicating that the contract has been deactivated.
-    * Requirements:
-    *
-    * - the caller must have the `DEFAULT_ADMIN_ROLE`.
-    */
-    function deactivateContract()
-        public
-        onlyRole(DEFAULT_ADMIN_ROLE)
-    {
-        PauseModuleStorage storage $ = _getPauseModuleStorage();
-        $._isDeactivated = true;
-       _pause();
-       emit Deactivated(_msgSender());
-    }
- 
-    /**
-    * @notice Returns true if the contract is deactivated, and false otherwise.
-    */
-    function deactivated() view public returns (bool){
-        PauseModuleStorage storage $ = _getPauseModuleStorage();
-        return $._isDeactivated;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getPauseModuleStorage() private pure returns (PauseModuleStorage storage $) {
-        assembly {
-            $.slot := PauseModuleStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/index.html b/doc/general/test/coverage/contracts/modules/wrapper/core/index.html deleted file mode 100644 index b00ff654..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/index.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ - - - - - - - -
-
-

- all files contracts/modules/wrapper/core/ -

-
-
- 100% - Statements - 58/58 -
-
- 87.5% - Branches - 49/56 -
-
- 100% - Functions - 30/30 -
-
- 100% - Lines - 81/81 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
BaseModule.sol
100%13/1387.5%7/8100%8/8100%20/20
ERC20BaseModule.sol
100%13/1375%6/8100%6/6100%20/20
ERC20BurnModule.sol
100%14/1492.86%13/14100%4/4100%18/18
ERC20MintModule.sol
100%7/790%9/10100%3/3100%9/9
EnforcementModule.sol
100%2/283.33%5/6100%3/3100%2/2
PauseModule.sol
100%9/990%9/10100%6/6100%12/12
-
-
- - - - - - - 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 deleted file mode 100644 index 4156c3c8..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/DebtModule.sol.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/DebtModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ DebtModule.sol -

-
-
- 100% - Statements - 12/12 -
-
- 91.67% - Branches - 11/12 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 18/18 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× - - - -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  - - - -  - - -  -  -  - - - -  -  -  -  - - - -  -  -  -  -  -  -  -  -  -  -22× -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-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");
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.DebtModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant DebtModuleStorageLocation = 0xf8a315cc5f2213f6481729acd86e55db7ccc930120ccf9fb78b53dcce75f7c00;
- 
-    /* ==== ERC-7201 State Variables === */
-    struct DebtModuleStorage {
-        IDebtEngine _debtEngine;
-    }
-    /* ============ Events ============ */
-    /**
-    * @dev Emitted when a rule engine is set.
-    */
-    event DebtEngine(IDebtEngine indexed newDebtEngine);
- 
- 
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev
-     *
-     * - The grant to the admin role is done by AccessControlDefaultAdminRules
-     * - The control of the zero address is done by AccessControlDefaultAdminRules
-     *
-     */
-    function __DebtModule_init_unchained(IDebtEngine debtEngine_)
-    internal EonlyInitializing {
-        if (address(debtEngine_) != address (0)) {
-            DebtModuleStorage storage $ = _getDebtModuleStorage();
-            $._debtEngine = debtEngine_;
-            emit DebtEngine(debtEngine_);
-        }
-        
- 
-    }
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function debtEngine() public view virtual returns (IDebtEngine) {
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        return $._debtEngine;
-    }
- 
-    /*
-    * @notice set an authorizationEngine if not already set
-    * 
-    */
-    function setDebtEngine(
-        IDebtEngine debtEngine_
-    ) external onlyRole(DEBT_ROLE) {
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        if ($._debtEngine == debtEngine_){
-            revert Errors.CMTAT_DebtModule_SameValue();
-        }
-        $._debtEngine = debtEngine_;
-        emit DebtEngine(debtEngine_);
-    }
- 
-    function debt() public view returns(DebtBase memory debtBaseResult){
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        if(address($._debtEngine) != address(0)){
-            debtBaseResult =  $._debtEngine.debt();
-        }
-    }
- 
-    function creditEvents() public view returns(CreditEvents memory creditEventsResult){
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        if(address($._debtEngine) != address(0)){
-            creditEventsResult =  $._debtEngine.creditEvents();
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    /* ============ ERC-7201 ============ */
-    function _getDebtModuleStorage() private pure returns (DebtModuleStorage storage $) {
-        assembly {
-            $.slot := DebtModuleStorageLocation
-        }
-    }
- 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index d91a9797..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/DocumentModule.sol.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/DocumentModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ DocumentModule.sol -

-
-
- 100% - Statements - 14/14 -
-
- 91.67% - Branches - 11/12 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 19/19 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× -12× -12× -12× -  -  -  -  -  -  -  -28× -28× -  -  -  -  -  -  -  -  -  -16× -16× - -  -14× -14× -  -  -  -  -18× -18× -16× -  - -  -  -  -  - - - -  -  -  -  -  -  -  -  -  -  -80× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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 ============ */
-    /**
-     * @dev Emitted when a rule engine is set.
-     */
-    event DocumentEngine(IERC1643 indexed newDocumentEngine);
-   
-    /* ============ ERC-7201 ============ */
-     bytes32 public constant DOCUMENT_ROLE = keccak256("DOCUMENT_ROLE");
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.DocumentModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant DocumentModuleStorageLocation = 0x5edcb2767f407e647b6a4171ef53e8015a3eff0bb2b6e7765b1a26332bc43000;
-    /* ==== ERC-7201 State Variables === */
-    struct DocumentModuleStorage {
-        IERC1643  _documentEngine;
-    }
- 
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev
-     *
-     * - The grant to the admin role is done by AccessControlDefaultAdminRules
-     * - The control of the zero address is done by AccessControlDefaultAdminRules
-     *
-     */
-    function __DocumentModule_init_unchained(IERC1643 documentEngine_)
-    internal EonlyInitializing {
-        if (address(documentEngine_) != address (0)) {
-            DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-            $._documentEngine = documentEngine_;
-            emit DocumentEngine(documentEngine_);
-        }
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function documentEngine() public view virtual returns (IERC1643) {
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        return $._documentEngine;
-    }
- 
-    /*
-    * @notice set an authorizationEngine if not already set
-    * 
-    */
-    function setDocumentEngine(
-        IERC1643 documentEngine_
-    ) external onlyRole(DOCUMENT_ROLE) {
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        if ($._documentEngine == documentEngine_){
-             revert Errors.CMTAT_DocumentModule_SameValue();
-        }
-        $._documentEngine = documentEngine_;
-        emit DocumentEngine(documentEngine_);
-    }
- 
- 
-    function getDocument(bytes32 _name) public view returns (string memory, bytes32, uint256){
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        if(address($._documentEngine) != address(0)){
-            return $._documentEngine.getDocument( _name);
-        } else{
-            return ("",0x0, 0);
-        }
-    }
- 
-    function getAllDocuments() public view returns (bytes32[] memory documents){
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        if(address($._documentEngine) != address(0)){
-            documents =  $._documentEngine.getAllDocuments();
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /* ============ ERC-7201 ============ */
-    function _getDocumentModuleStorage() private pure returns (DocumentModuleStorage storage $) {
-        assembly {
-            $.slot := DocumentModuleStorageLocation
-        }
-    } 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 405ba87a..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ ERC20SnapshotModule.sol -

-
-
- 100% - Statements - 5/5 -
-
- 91.67% - Branches - 11/12 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 5/5 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -170× -  -  -  -  -  -  -  -  -  -  -12× -  -  -  -  -  -  -  -  -  -  -  -22× -  -  -  -  -  -  -  -  -  -  -14× -  -  -  -  -  -  -  -  -  -10× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-import "../../internal/ERC20SnapshotModuleInternal.sol";
- 
-/**
- * @title Snapshot module
- * @dev 
- *
- * Useful to take a snapshot of token holder balance and total supply at a specific time
- */
- 
-abstract contract ERC20SnapshotModule is
-    ERC20SnapshotModuleInternal,
-    AuthorizationModule
-{
-    /* ============ State Variables ============ */
-    bytes32 public constant SNAPSHOOTER_ROLE = keccak256("SNAPSHOOTER_ROLE");
-    /* ============  Initializer Function ============ */
-    function __ERC20SnasphotModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /** 
-    * @notice 
-    * Schedule a snapshot at the given time specified as a number of seconds since epoch.
-    * The time cannot be before the time of the latest scheduled, but not yet created snapshot.  
-    */
-    function scheduleSnapshot(uint256 time) public onlyRole(SNAPSHOOTER_ROLE) {
-        _scheduleSnapshot(time);
-    }
- 
-    /** 
-    * @notice 
-    * Schedule a snapshot at the given time specified as a number of seconds since epoch.
-    * The time cannot be before the time of the latest scheduled, but not yet created snapshot.  
-    */
-    function scheduleSnapshotNotOptimized(
-        uint256 time
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _scheduleSnapshotNotOptimized(time);
-    }
- 
-    /** 
-    * @notice
-    * Reschedule the scheduled snapshot, but not yet created snapshot with the given oldTime to be created at the given newTime specified as a number of seconds since epoch. 
-    * The newTime cannot be before the time of the previous scheduled, but not yet created snapshot, or after the time fo the next scheduled snapshot. 
-    */
-    function rescheduleSnapshot(
-        uint256 oldTime,
-        uint256 newTime
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _rescheduleSnapshot(oldTime, newTime);
-    }
- 
-    /**
-    * @notice 
-    * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. 
-    * There should not be any other snapshots scheduled after this one. 
-    */
-    function unscheduleLastSnapshot(
-        uint256 time
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _unscheduleLastSnapshot(time);
-    }
- 
-    /** 
-    * @notice 
-    * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. 
-    */
-    function unscheduleSnapshotNotOptimized(
-        uint256 time
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _unscheduleSnapshotNotOptimized(time);
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index a204efaa..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/MetaTxModule.sol.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/MetaTxModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ MetaTxModule.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol";
- 
-/**
- * @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.
- * ()
- */
-abstract contract MetaTxModule is ERC2771ContextUpgradeable {
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address trustedForwarder
-    ) ERC2771ContextUpgradeable(trustedForwarder) {
-        // Nothing to do
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html b/doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html deleted file mode 100644 index 4d80eba3..00000000 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/ - - - - - - - -
-
-

- all files contracts/modules/wrapper/extensions/ -

-
-
- 100% - Statements - 31/31 -
-
- 91.67% - Branches - 33/36 -
-
- 100% - Functions - 19/19 -
-
- 100% - Lines - 42/42 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
DebtModule.sol
100%12/1291.67%11/12100%6/6100%18/18
DocumentModule.sol
100%14/1491.67%11/12100%6/6100%19/19
ERC20SnapshotModule.sol
100%5/591.67%11/12100%6/6100%5/5
MetaTxModule.sol
100%0/0100%0/0100%1/1100%0/0
-
-
- - - - - - - 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 deleted file mode 100644 index f951aa06..00000000 --- a/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - Code coverage report for contracts/test/proxy/CMTAT_PROXY_TEST.sol - - - - - - - -
-
-

- all files / contracts/test/proxy/ CMTAT_PROXY_TEST.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../CMTAT_PROXY.sol";
- 
- 
-/**
- * @title a contrat used to test the proxy upgrade functionality
- */
-contract CMTAT_PROXY_TEST is CMTAT_PROXY {
-    /**
-     * @notice Contract version for the deployment with a proxy
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) CMTAT_PROXY(forwarderIrrevocable) {
-        // Nothing to do
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index aa1985b7..00000000 --- a/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - Code coverage report for contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol - - - - - - - -
-
-

- all files / contracts/test/proxy/ CMTAT_PROXY_TEST_UUPS.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../CMTAT_PROXY_UUPS.sol";
- 
- 
-/**
- * @title a contrat used to test the proxy upgrade functionality
- */
-contract CMTAT_PROXY_TEST_UUPS is CMTAT_PROXY_UUPS {
-    /**
-     * @notice Contract version for the deployment with a proxy
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) CMTAT_PROXY_UUPS(forwarderIrrevocable) {
-        // Nothing to do
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/contracts/test/proxy/index.html b/doc/general/test/coverage/contracts/test/proxy/index.html deleted file mode 100644 index 0e09264a..00000000 --- a/doc/general/test/coverage/contracts/test/proxy/index.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Code coverage report for contracts/test/proxy/ - - - - - - - -
-
-

- all files contracts/test/proxy/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 2/2 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_PROXY_TEST.sol
100%0/0100%0/0100%1/1100%0/0
CMTAT_PROXY_TEST_UUPS.sol
100%0/0100%0/0100%1/1100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/coverage-final.json b/doc/general/test/coverage/coverage-final.json deleted file mode 100644 index 650ed9c2..00000000 --- a/doc/general/test/coverage/coverage-final.json +++ /dev/null @@ -1,42 +0,0 @@ -{ -"contracts/CMTAT_PROXY_UUPS.sol":{"l":{"22":9,"42":5,"46":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":20,"loc":{"start":{"line":18,"column":4},"end":{"line":23,"column":4}}},"2":{"name":"initialize","line":41,"loc":{"start":{"line":38,"column":4},"end":{"line":47,"column":4}}},"3":{"name":"_authorizeUpgrade","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":53,"column":88}}}},"statementMap":{"1":{"start":{"line":22,"column":8},"end":{"line":22,"column":29}},"2":{"start":{"line":42,"column":8},"end":{"line":42,"column":1706}},"3":{"start":{"line":46,"column":8},"end":{"line":46,"column":41}}},"branchMap":{"1":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":67},"end":{"line":41,"column":67}},{"start":{"line":41,"column":67},"end":{"line":41,"column":67}}]},"2":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":58},"end":{"line":53,"column":58}},{"start":{"line":53,"column":58},"end":{"line":53,"column":58}}]}}}, -"contracts/CMTAT_PROXY.sol":{"l":{"21":198},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_PROXY.sol","s":{"1":198},"b":{},"f":{"1":198},"fnMap":{"1":{"name":"constructor","line":19,"loc":{"start":{"line":17,"column":4},"end":{"line":22,"column":4}}}},"statementMap":{"1":{"start":{"line":21,"column":8},"end":{"line":21,"column":29}}},"branchMap":{}}, -"contracts/CMTAT_STANDALONE.sol":{"l":{"30":191},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_STANDALONE.sol","s":{"1":191},"b":{},"f":{"1":191},"fnMap":{"1":{"name":"constructor","line":27,"loc":{"start":{"line":21,"column":4},"end":{"line":36,"column":4}}}},"statementMap":{"1":{"start":{"line":30,"column":8},"end":{"line":30,"column":1113}}},"branchMap":{}}, -"contracts/deployment/CMTAT_BEACON_FACTORY.sol":{"l":{"23":7,"24":1,"26":6,"28":1,"30":6,"45":3,"46":3,"49":3,"50":3,"62":2,"65":2,"73":1,"84":3,"85":3,"86":3,"87":3,"88":3,"89":3,"90":3,"100":5,"107":5},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_BEACON_FACTORY.sol","s":{"1":7,"2":6,"3":3,"4":3,"5":3,"6":2,"7":2,"8":1,"9":3,"10":3,"11":3,"12":3,"13":5},"b":{"1":[1,6],"2":[1,5],"3":[3,1]},"f":{"1":7,"2":3,"3":2,"4":1,"5":3,"6":5},"fnMap":{"1":{"name":"constructor","line":22,"loc":{"start":{"line":22,"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":23,"column":8},"end":{"line":23,"column":785}},"2":{"start":{"line":26,"column":8},"end":{"line":26,"column":921}},"3":{"start":{"line":45,"column":8},"end":{"line":45,"column":86}},"4":{"start":{"line":46,"column":8},"end":{"line":46,"column":1776}},"5":{"start":{"line":50,"column":8},"end":{"line":50,"column":20}},"6":{"start":{"line":62,"column":8},"end":{"line":62,"column":2354}},"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":3793}}},"branchMap":{"1":{"line":23,"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":23,"column":8}},{"start":{"line":23,"column":8},"end":{"line":23,"column":8}}]},"2":{"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}}]},"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":{"36":7,"37":5,"40":5,"42":5,"56":2,"59":2,"72":5,"73":5,"74":5,"75":5,"76":5,"77":5,"78":5,"88":7,"95":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":22,"loc":{"start":{"line":22,"column":4},"end":{"line":22,"column":129}}},"2":{"name":"deployCMTAT","line":35,"loc":{"start":{"line":30,"column":4},"end":{"line":43,"column":4}}},"3":{"name":"computedProxyAddress","line":51,"loc":{"start":{"line":51,"column":4},"end":{"line":60,"column":4}}},"4":{"name":"_deployBytecode","line":71,"loc":{"start":{"line":71,"column":4},"end":{"line":79,"column":5}}},"5":{"name":"_getBytecode","line":85,"loc":{"start":{"line":85,"column":5},"end":{"line":96,"column":5}}}},"statementMap":{"1":{"start":{"line":36,"column":8},"end":{"line":36,"column":86}},"2":{"start":{"line":37,"column":8},"end":{"line":37,"column":1404}},"3":{"start":{"line":42,"column":8},"end":{"line":42,"column":20}},"4":{"start":{"line":56,"column":8},"end":{"line":56,"column":2088}},"5":{"start":{"line":59,"column":8},"end":{"line":59,"column":91}},"6":{"start":{"line":72,"column":20},"end":{"line":72,"column":86}},"7":{"start":{"line":75,"column":20},"end":{"line":75,"column":62}},"8":{"start":{"line":77,"column":20},"end":{"line":77,"column":50}},"9":{"start":{"line":78,"column":20},"end":{"line":78,"column":32}},"10":{"start":{"line":88,"column":8},"end":{"line":88,"column":3379}}},"branchMap":{"1":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":13},"end":{"line":35,"column":13}},{"start":{"line":35,"column":13},"end":{"line":35,"column":13}}]}}}, -"contracts/deployment/CMTAT_UUPS_FACTORY.sol":{"l":{"35":2,"36":2,"39":2,"41":2,"53":2,"56":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"83":4,"90":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":21,"loc":{"start":{"line":21,"column":4},"end":{"line":21,"column":129}}},"2":{"name":"deployCMTAT","line":34,"loc":{"start":{"line":30,"column":4},"end":{"line":42,"column":4}}},"3":{"name":"computedProxyAddress","line":49,"loc":{"start":{"line":49,"column":4},"end":{"line":57,"column":4}}},"4":{"name":"_deployBytecode","line":66,"loc":{"start":{"line":66,"column":4},"end":{"line":74,"column":5}}},"5":{"name":"_getBytecode","line":80,"loc":{"start":{"line":80,"column":5},"end":{"line":91,"column":5}}}},"statementMap":{"1":{"start":{"line":35,"column":8},"end":{"line":35,"column":86}},"2":{"start":{"line":36,"column":8},"end":{"line":36,"column":1344}},"3":{"start":{"line":41,"column":8},"end":{"line":41,"column":20}},"4":{"start":{"line":53,"column":8},"end":{"line":53,"column":1931}},"5":{"start":{"line":56,"column":8},"end":{"line":56,"column":91}},"6":{"start":{"line":67,"column":20},"end":{"line":67,"column":86}},"7":{"start":{"line":70,"column":20},"end":{"line":70,"column":62}},"8":{"start":{"line":72,"column":20},"end":{"line":72,"column":50}},"9":{"start":{"line":73,"column":20},"end":{"line":73,"column":32}},"10":{"start":{"line":83,"column":8},"end":{"line":83,"column":3150}}},"branchMap":{"1":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":13},"end":{"line":34,"column":13}},{"start":{"line":34,"column":13},"end":{"line":34,"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":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/contracts/deployment/libraries/CMTATFactoryInvariant.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/deployment/libraries/CMTATFactoryRoot.sol":{"l":{"26":25,"27":2,"29":23,"30":13,"32":23,"33":23,"46":14,"59":12,"60":5,"61":2,"63":3,"64":3,"67":7},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryRoot.sol","s":{"1":25,"2":23,"3":23,"4":23,"5":14,"6":12,"7":5},"b":{"1":[2,23],"2":[13,10],"3":[5,7],"4":[2,3]},"f":{"1":25,"2":14,"3":12},"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/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/IDebtGlobal.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IDebtGlobal.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/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":385,"85":385,"86":385,"88":385,"90":385,"91":385,"94":385,"99":385,"100":385,"102":385,"106":385,"107":383,"108":383,"110":383,"111":383,"113":383,"114":383,"120":383,"121":383,"122":383,"125":383,"128":383,"150":2,"163":10,"178":6,"179":4,"194":439,"195":17,"202":422,"203":422,"217":1391,"226":1391,"238":0},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/CMTAT_BASE.sol","s":{"1":385,"2":385,"3":385,"4":385,"5":385,"6":385,"7":385,"8":385,"9":385,"10":385,"11":385,"12":383,"13":383,"14":383,"15":383,"16":383,"17":383,"18":383,"19":383,"20":383,"21":383,"22":383,"23":2,"24":10,"25":6,"26":4,"27":439,"28":422,"29":422,"30":1391,"31":1391,"32":0},"b":{"1":[385,1],"2":[385,0],"3":[383,0],"4":[17,422]},"f":{"1":385,"2":385,"3":383,"4":2,"5":10,"6":6,"7":439,"8":1391,"9":1391,"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":844,"302":844,"303":844,"304":36,"305":36,"315":422,"316":422,"320":422,"321":18,"322":18,"332":844,"333":836,"335":8,"346":36,"347":36,"348":36,"350":36,"354":22,"358":8,"362":6,"375":490,"376":490,"378":490,"382":404,"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":4862},"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":844,"58":844,"59":844,"60":36,"61":36,"62":422,"63":422,"64":422,"65":844,"66":836,"67":8,"68":36,"69":36,"70":36,"71":36,"72":22,"73":14,"74":8,"75":6,"76":490,"77":490,"78":490,"79":404,"80":86,"81":86,"82":116,"83":86,"84":26,"85":26,"86":20,"87":202,"88":46},"b":{"1":[385,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,808],"20":[18,404],"21":[836,8],"22":[22,14],"23":[8,6],"24":[404,86],"25":[404,0],"26":[52,64],"27":[6,20],"28":[6,196],"29":[6,40]},"f":{"1":385,"2":2,"3":76,"4":170,"5":12,"6":22,"7":14,"8":10,"9":1920,"10":844,"11":422,"12":844,"13":36,"14":490,"15":26,"16":202,"17":46,"18":4862},"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":946,"66":946,"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":976},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/EnforcementModuleInternal.sol","s":{"1":946,"2":946,"3":22,"4":22,"5":2,"6":20,"7":20,"8":8,"9":8,"10":2,"11":6,"12":6},"b":{"1":[385,0],"2":[2,20],"3":[2,6]},"f":{"1":385,"2":946,"3":22,"4":8,"5":976},"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":422,"107":422,"109":77,"110":77,"112":43,"115":34,"119":345,"120":345,"128":465,"129":465,"136":379,"137":379},"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":422,"10":422,"11":77,"12":77,"13":43,"14":34,"15":345,"16":345,"17":465,"18":465,"19":379,"20":379},"b":{"1":[385,0],"2":[400,800],"3":[36,684],"4":[77,345],"5":[43,34]},"f":{"1":385,"2":480,"3":160,"4":80,"5":1200,"6":720,"7":422,"8":465,"9":379},"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":385,"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":629},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/ValidationModuleInternal.sol","s":{"1":385,"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":[385,0],"2":[18,367]},"f":{"1":385,"2":32,"3":12,"4":6,"5":6,"6":60,"7":629},"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":385,"33":2,"35":383,"36":383,"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":1285,"102":760,"104":525,"115":84},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/security/AuthorizationModule.sol","s":{"1":385,"2":383,"3":383,"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":1285,"22":760,"23":525},"b":{"1":[385,0],"2":[2,383],"3":[16,367],"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":[760,525]},"f":{"1":385,"2":2,"3":16,"4":40,"5":10,"6":1285,"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":458,"136":18,"138":440,"142":439,"143":14,"145":425,"146":425,"147":60,"149":365},"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":458,"33":18,"34":440,"35":439,"36":14,"37":425,"38":425,"39":60,"40":365},"b":{"1":[383,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,440],"16":[12,4],"17":[4,2],"18":[14,425],"19":[60,365]},"f":{"1":383,"2":18,"3":20,"4":17,"5":19,"6":458,"7":439},"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":383,"46":383,"47":383,"48":383,"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":417},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/BaseModule.sol","s":{"1":383,"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":[383,0],"2":[2,2],"3":[2,2],"4":[2,2]},"f":{"1":383,"2":10,"3":10,"4":8,"5":2,"6":2,"7":2,"8":417},"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/contracts/modules/wrapper/core/EnforcementModule.sol","s":{"1":22,"2":8},"b":{"1":[383,0],"2":[22,2],"3":[8,2]},"f":{"1":383,"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":383,"43":383,"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":385},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20BaseModule.sol","s":{"1":383,"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":[383,0],"2":[2,8],"3":[4,4],"4":[2,0]},"f":{"1":383,"2":2,"3":10,"4":10,"5":4,"6":385},"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/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":[383,0],"2":[14,4],"3":[12,2],"4":[2,10],"5":[4,6],"6":[4,2],"7":[2,2]},"f":{"1":383,"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":291,"49":291,"71":24,"72":2,"76":22,"77":4,"80":18,"81":54,"82":54},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20MintModule.sol","s":{"1":291,"2":291,"3":24,"4":22,"5":18,"6":54,"7":54},"b":{"1":[383,0],"2":[291,4],"3":[24,2],"4":[2,22],"5":[4,18]},"f":{"1":383,"2":291,"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/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":[383,0],"2":[14,3],"3":[6,2],"4":[2,4],"5":[2,2]},"f":{"1":383,"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":383,"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/contracts/modules/wrapper/extensions/DebtModule.sol","s":{"1":383,"2":3,"3":3,"4":8,"5":8,"6":5,"7":5,"8":4,"9":3,"10":3,"11":3,"12":3},"b":{"1":[383,0],"2":[3,380],"3":[5,1],"4":[1,4],"5":[2,1],"6":[2,1]},"f":{"1":383,"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":383,"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/contracts/modules/wrapper/extensions/DocumentModule.sol","s":{"1":383,"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":[383,0],"2":[12,371],"3":[16,2],"4":[2,14],"5":[16,2],"6":[4,2]},"f":{"1":383,"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/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol","s":{"1":170,"2":12,"3":22,"4":14,"5":10},"b":{"1":[383,0],"2":[170,2],"3":[12,2],"4":[22,2],"5":[14,2],"6":[10,2]},"f":{"1":383,"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/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/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol","s":{},"b":{},"f":{"1":3},"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.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":19,"loc":{"start":{"line":17,"column":4},"end":{"line":21,"column":4}}}},"statementMap":{},"branchMap":{}}} diff --git a/doc/general/test/coverage/index.html b/doc/general/test/coverage/index.html deleted file mode 100644 index f002f99b..00000000 --- a/doc/general/test/coverage/index.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 99.72% - Statements - 362/363 -
-
- 92.42% - Branches - 244/264 -
-
- 99.28% - Functions - 138/139 -
-
- 99.78% - Lines - 462/463 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
contracts/
100%5/575%3/4100%5/5100%5/5
contracts/deployment/
100%33/33100%10/10100%16/16100%51/51
contracts/deployment/libraries/
100%8/8100%10/10100%4/4100%16/16
contracts/interfaces/
100%0/0100%0/0100%0/0100%0/0
contracts/interfaces/draft-IERC1404/
100%0/0100%0/0100%0/0100%0/0
contracts/interfaces/engine/
100%0/0100%0/0100%0/0100%0/0
contracts/libraries/
100%0/0100%0/0100%0/0100%0/0
contracts/modules/
96.88%31/3275%6/890%9/1096.97%32/33
contracts/modules/internal/
100%45/4585%17/20100%21/21100%58/58
contracts/modules/internal/base/
100%88/8896.55%56/58100%18/18100%112/112
contracts/modules/security/
100%23/2395.83%23/24100%7/7100%30/30
contracts/modules/wrapper/controllers/
100%40/4097.37%37/38100%7/7100%35/35
contracts/modules/wrapper/core/
100%58/5887.5%49/56100%30/30100%81/81
contracts/modules/wrapper/extensions/
100%31/3191.67%33/36100%19/19100%42/42
contracts/test/proxy/
100%0/0100%0/0100%2/2100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/base.css b/doc/general/test/coverage/lcov-report/base.css deleted file mode 100644 index 29737bcb..00000000 --- a/doc/general/test/coverage/lcov-report/base.css +++ /dev/null @@ -1,213 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.medium .chart { border:1px solid #f9cd0b; } -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } -/* light gray */ -span.cline-neutral { background: #eaeaea; } - -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} 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 deleted file mode 100644 index 9ed16b05..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/CMTAT_PROXY.sol - - - - - - - -
-
-

- all files / contracts/ CMTAT_PROXY.sol -

-
-
- 100% - Statements - 1/1 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 1/1 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -198× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) MetaTxModule(forwarderIrrevocable) {
-        // Disable the possibility to initialize the implementation
-        _disableInitializers();
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index fdef59e1..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY_UUPS.sol.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - Code coverage report for contracts/CMTAT_PROXY_UUPS.sol - - - - - - - -
-
-

- all files / contracts/ CMTAT_PROXY_UUPS.sol -

-
-
- 100% - Statements - 3/3 -
-
- 75% - Branches - 3/4 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 3/3 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  - -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-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");
-    /**
-     * @notice Contract version for the deployment with a proxy
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) MetaTxModule(forwarderIrrevocable) {
-        // Disable the possibility to initialize the implementation
-        _disableInitializers();
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    /**
-     * @notice
-     * initialize the proxy contract
-     * The calls to this function will revert if the contract was deployed without a proxy
-     * @param admin address of the admin of contract (Access Control)
-     * @param ERC20Attributes_ ERC20 name, symbol and decimals
-     * @param baseModuleAttributes_ tokenId, terms, information
-     * @param engines_ external contract
-     */
-    function initialize(  address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ ) public override Einitializer {
-        CMTAT_BASE.initialize( admin,
-            ERC20Attributes_,
-            baseModuleAttributes_,
-            engines_);
-        __UUPSUpgradeable_init_unchained();
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function _authorizeUpgrade(address) internal override onlyRole(PROXY_UPGRADE_ROLE) {}
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index a2fdbad4..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/CMTAT_STANDALONE.sol.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - Code coverage report for contracts/CMTAT_STANDALONE.sol - - - - - - - -
-
-

- all files / contracts/ CMTAT_STANDALONE.sol -

-
-
- 100% - Statements - 1/1 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 1/1 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -191× -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     * @param admin address of the admin of contract (Access Control)
-     * @param ERC20Attributes_ ERC20 name, symbol and decimals
-     * @param baseModuleAttributes_ tokenId, terms, information
-     * @param engines_ external contract
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable,
-        address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ 
-    ) MetaTxModule(forwarderIrrevocable) {
-        // Initialize the contract to avoid front-running
-        // Warning : do not initialize the proxy
-        initialize(
-            admin,
-            ERC20Attributes_,
-            baseModuleAttributes_,
-            engines_
-        );
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index c1c3d8e0..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html +++ /dev/null @@ -1,389 +0,0 @@ - - - - Code coverage report for contracts/deployment/CMTAT_BEACON_FACTORY.sol - - - - - - - -
-
-

- all files / contracts/deployment/ CMTAT_BEACON_FACTORY.sol -

-
-
- 100% - Statements - 13/13 -
-
- 100% - Branches - 6/6 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 21/21 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  - -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  - - -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  - - - - - - - -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  - -  - 
//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 "./libraries/CMTATFactoryRoot.sol";
- 
- 
-/**
-* @notice Factory to deploy beacon proxy
-* 
-*/
-contract CMTAT_BEACON_FACTORY is AccessControl, CMTATFactoryRoot {
-    UpgradeableBeacon public immutable beacon;
-    /**
-    * @param implementation_ contract implementation
-    * @param factoryAdmin admin
-    * @param beaconOwner owner
-    */
-    constructor(address implementation_, address factoryAdmin, address beaconOwner, bool useCustomSalt_)CMTATFactoryRoot(factoryAdmin, useCustomSalt_) {
-        if(beaconOwner == address(0)){
-            revert  FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner();
-        }
-        if(implementation_ == address(0)){
-           // Forwarder is the zero address if no implementation provided
-           implementation_ = address(new CMTAT_PROXY(address(0)));
-        }
-        beacon = new UpgradeableBeacon(implementation_, beaconOwner);
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-    * @notice deploy CMTAT with a beacon proxy
-    * 
-    */
-    function deployCMTAT(
-         bytes32 deploymentSaltInput,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument
-    ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(BeaconProxy cmtat)   {
-        bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput);
-        bytes memory bytecode = _getBytecode(
-        // CMTAT function initialize
-        cmtatArgument);
-        cmtat = _deployBytecode(bytecode,  deploymentSalt);
-        return cmtat;
-    }
- 
-    /**
-    * @param deploymentSalt salt for the deployment
-    * @param cmtatArgument argument for the function initialize
-    * @notice get the proxy address depending on a particular salt
-    */
-    function computedProxyAddress( 
-        bytes32 deploymentSalt,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) {
-        bytes memory bytecode =  _getBytecode(
-        // CMTAT function initialize
-        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
-    */
-    function _deployBytecode(bytes memory bytecode, bytes32  deploymentSalt) internal returns (BeaconProxy cmtat) {
-                    address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode);
-                    cmtat = BeaconProxy(payable(cmtatAddress));
-                    cmtats[cmtatCounterId] = address(cmtat);
-                    emit CMTAT(address(cmtat), cmtatCounterId);
-                    ++cmtatCounterId;
-                    cmtatsList.push(address(cmtat));
-                    return cmtat;
-     }
- 
-    
-    /**
-    * @notice return the smart contract bytecode
-    */
-     function _getBytecode( 
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) {
-        bytes memory _implementation = abi.encodeWithSelector(
-            CMTAT_PROXY(address(0)).initialize.selector,
-            cmtatArgument.CMTATAdmin,
-            cmtatArgument.ERC20Attributes,
-            cmtatArgument.baseModuleAttributes,
-            cmtatArgument.engines
-        );
-        bytecode = abi.encodePacked(type(BeaconProxy).creationCode,  abi.encode(address(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 deleted file mode 100644 index e50cd33c..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_TP_FACTORY.sol.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - Code coverage report for contracts/deployment/CMTAT_TP_FACTORY.sol - - - - - - - -
-
-

- all files / contracts/deployment/ CMTAT_TP_FACTORY.sol -

-
-
- 100% - Statements - 10/10 -
-
- 100% - Branches - 2/2 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  -  -  -  -  -  - - - - - - - -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  - -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
-import "../CMTAT_PROXY.sol";
-import "@openzeppelin/contracts/utils/Create2.sol";
-import "./libraries/CMTATFactoryInvariant.sol";
-import "./libraries/CMTATFactoryBase.sol";
- 
- 
-/**
-* @notice Factory to deploy CMTAT with a transparent proxy
-* 
-*/
-contract CMTAT_TP_FACTORY is CMTATFactoryBase {
- 
-    /**
-    * @param logic_ contract implementation, cannot be zero
-    * @param factoryAdmin admin
-    * @param useCustomSalt_ custom salt with create2 or not
-    */
-    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(
-        bytes32 deploymentSaltInput,
-        address proxyAdminOwner,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument
-    ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(TransparentUpgradeableProxy cmtat)   {
-        bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput);
-        bytes memory bytecode = _getBytecode(proxyAdminOwner,
-        // CMTAT function initialize
-        cmtatArgument);
-        cmtat = _deployBytecode(bytecode,  deploymentSalt);
-        
-        return cmtat;
-    }
- 
-    /**
-    * @param deploymentSalt salt for the deployment
-    * @param proxyAdminOwner admin of the proxy
-    * @param cmtatArgument argument for the function initialize
-    * @notice get the proxy address depending on a particular salt
-    */
-    function computedProxyAddress( 
-        bytes32 deploymentSalt,
-        address proxyAdminOwner,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) {
-        bytes memory bytecode =  _getBytecode(proxyAdminOwner,
-        // CMTAT function initialize
-        cmtatArgument);
-        return Create2.computeAddress(deploymentSalt,  keccak256(bytecode), address(this) );
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /**
-    * @notice Deploy CMTAT and push the created CMTAT in the list
-    */
-    function _deployBytecode(bytes memory bytecode, bytes32  deploymentSalt) internal returns (TransparentUpgradeableProxy cmtat) {
-                    address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode);
-                    cmtat = TransparentUpgradeableProxy(payable(cmtatAddress));
-                    cmtats[cmtatCounterId] = address(cmtat);
-                    emit CMTAT(address(cmtat), cmtatCounterId);
-                    ++cmtatCounterId;
-                    cmtatsList.push(address(cmtat));
-                    return cmtat;
-     }
- 
-    
-    /**
-    * @notice return the smart contract bytecode
-    */
-     function _getBytecode( address proxyAdminOwner,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) {
-        bytes memory implementation = abi.encodeWithSelector(
-            CMTAT_PROXY(address(0)).initialize.selector,
-                  cmtatArgument.CMTATAdmin,
-                    cmtatArgument.ERC20Attributes,
-                cmtatArgument.baseModuleAttributes,
-                cmtatArgument.engines
-        );
-        bytecode = abi.encodePacked(type(TransparentUpgradeableProxy).creationCode,  abi.encode(logic, proxyAdminOwner, implementation));
-     }
-}
-
-
- - - - - - - 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 deleted file mode 100644 index d265e30a..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - Code coverage report for contracts/deployment/CMTAT_UUPS_FACTORY.sol - - - - - - - -
-
-

- all files / contracts/deployment/ CMTAT_UUPS_FACTORY.sol -

-
-
- 100% - Statements - 10/10 -
-
- 100% - Branches - 2/2 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  - -  - -  -  -  -  -  -  -  -  -  -  -  - -  -  - -  -  -  -  -  -  -  -  -  -  - - - - - - - -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  - -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
-import "../CMTAT_PROXY_UUPS.sol";
-import "@openzeppelin/contracts/utils/Create2.sol";
-import "./libraries/CMTATFactoryInvariant.sol";
-import "./libraries/CMTATFactoryBase.sol";
- 
- 
-/**
-* @notice Factory to deploy CMTAT with a UUPS proxy
-* 
-*/
-contract CMTAT_UUPS_FACTORY is CMTATFactoryBase {
-    /**
-    * @param logic_ contract implementation, cannot be zero
-    * @param factoryAdmin admin
-    * @param useCustomSalt_ custom salt with create2 or not
-    */
-    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(
-        bytes32 deploymentSaltInput,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument
-    ) public onlyRole(CMTAT_DEPLOYER_ROLE) returns(ERC1967Proxy cmtat)   {
-        bytes32 deploymentSalt = _checkAndDetermineDeploymentSalt(deploymentSaltInput);
-        bytes memory bytecode = _getBytecode(
-        // CMTAT function initialize
-        cmtatArgument);
-        cmtat = _deployBytecode(bytecode,  deploymentSalt);
-        
-        return cmtat;
-    }
- 
-    /**
-    * @param deploymentSalt salt for the deployment
-    * @param cmtatArgument argument for the function initialize
-    * @notice get the proxy address depending on a particular salt
-    */
-    function computedProxyAddress( 
-        bytes32 deploymentSalt,
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) public view returns (address) {
-        bytes memory bytecode =  _getBytecode(
-        // CMTAT function initialize
-        cmtatArgument);
-        return Create2.computeAddress(deploymentSalt,  keccak256(bytecode), address(this) );
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-    * @notice Deploy CMTAT and push the created CMTAT in the list
-    */
-    function _deployBytecode(bytes memory bytecode, bytes32  deploymentSalt) internal returns (ERC1967Proxy cmtat) {
-                    address cmtatAddress = Create2.deploy(0, deploymentSalt, bytecode);
-                    cmtat = ERC1967Proxy(payable(cmtatAddress));
-                    cmtats[cmtatCounterId] = address(cmtat);
-                    emit CMTAT(address(cmtat), cmtatCounterId);
-                    ++cmtatCounterId;
-                    cmtatsList.push(address(cmtat));
-                    return cmtat;
-     }
- 
-    
-    /**
-    * @notice return the smart contract bytecode
-    */
-     function _getBytecode( 
-        // CMTAT function initialize
-        CMTAT_ARGUMENT calldata cmtatArgument) internal view returns(bytes memory bytecode) {
-        bytes memory implementation = abi.encodeWithSelector(
-            CMTAT_PROXY_UUPS(address(0)).initialize.selector,
-                  cmtatArgument.CMTATAdmin,
-                    cmtatArgument.ERC20Attributes,
-                cmtatArgument.baseModuleAttributes,
-                cmtatArgument.engines
-        );
-        bytecode = abi.encodePacked(type(ERC1967Proxy).creationCode,  abi.encode(logic, implementation));
-     }
-}
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/index.html b/doc/general/test/coverage/lcov-report/contracts/deployment/index.html deleted file mode 100644 index ec2b356f..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/deployment/ - - - - - - - -
-
-

- all files contracts/deployment/ -

-
-
- 100% - Statements - 33/33 -
-
- 100% - Branches - 10/10 -
-
- 100% - Functions - 16/16 -
-
- 100% - Lines - 51/51 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_BEACON_FACTORY.sol
100%13/13100%6/6100%6/6100%21/21
CMTAT_TP_FACTORY.sol
100%10/10100%2/2100%5/5100%15/15
CMTAT_UUPS_FACTORY.sol
100%10/10100%2/2100%5/5100%15/15
-
-
- - - - - - - 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 deleted file mode 100644 index 47dd6ba7..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryBase.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/CMTATFactoryBase.sol - - - - - - - -
-
-

- all files / contracts/deployment/libraries/ CMTATFactoryBase.sol -

-
-
- 100% - Statements - 1/1 -
-
- 100% - Branches - 2/2 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 3/3 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -16× - -  -14× -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "./CMTATFactoryRoot.sol";
- 
-/**
-* @notice Code common to TP and UUPS Factory
-* 
-*/
-abstract contract CMTATFactoryBase is CMTATFactoryRoot {
-    /* ============ State Variables ============ */
-    address public immutable logic;
-    /* ============ Constructor ============ */
-    /**
-    * @param logic_ contract implementation
-    * @param factoryAdmin admin
-    */
-    constructor(address logic_, address factoryAdmin, bool useCustomSalt_)CMTATFactoryRoot( factoryAdmin, useCustomSalt_) {
-        if(logic_ == address(0)){
-            revert  FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForLogicContract();
-        }
-        logic = logic_;
-    }
-}
-
-
- - - - - - - 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 deleted file mode 100644 index 9bf8bb27..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/CMTATFactoryInvariant.sol - - - - - - - -
-
-

- all files / contracts/deployment/libraries/ CMTATFactoryInvariant.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
- 
-import "../../interfaces/ICMTATConstructor.sol";
- 
-/**
-* @notice List of Invariant (struct, constant, events)
-* 
-*/
-abstract contract CMTATFactoryInvariant {
-    /* ============ 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);
-}
-
-
- - - - - - - 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 deleted file mode 100644 index c0528424..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryRoot.sol.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/CMTATFactoryRoot.sol - - - - - - - -
-
-

- all files / contracts/deployment/libraries/ CMTATFactoryRoot.sol -

-
-
- 100% - Statements - 7/7 -
-
- 100% - Branches - 8/8 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 13/13 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -25× - -  -23× -13× -  -23× -23× -  -  -  -  -  -  -  -  -  -  -  -  -14× -  -  -  -  -  -  -  -  -  -  -  -  -12× - - -  - - -  -  - -  -  - 
//SPDX-License-Identifier: MPL-2.0
-pragma solidity ^0.8.20;
- 
-import "../../libraries/FactoryErrors.sol";
-import '@openzeppelin/contracts/access/AccessControl.sol';
-import "./CMTATFactoryInvariant.sol";
-/**
-* @notice Code common to Beacon, TP and UUPS factory
-* 
-*/
-abstract contract CMTATFactoryRoot is AccessControl, CMTATFactoryInvariant {
-    /* ============ State Variables ============ */
-    // Public
-    address[] public cmtatsList;
-    bool immutable public useCustomSalt;
-    uint256 public cmtatCounterId;
-    /// mapping
-    mapping(uint256 => address) internal cmtats;
-    mapping(bytes32 => bool) internal customSaltUsed;
-    
-    /* ============ Constructor ============ */
-    /**
-    * @param factoryAdmin admin
-    */
-    constructor(address factoryAdmin, bool useCustomSalt_) {
-        if(factoryAdmin == address(0)){
-            revert  FactoryErrors.CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin();
-        }
-        if(useCustomSalt_){
-            useCustomSalt = useCustomSalt_;
-        }
-        _grantRole(DEFAULT_ADMIN_ROLE, factoryAdmin);
-        _grantRole(CMTAT_DEPLOYER_ROLE, factoryAdmin);
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-    * @notice get CMTAT proxy address
-    *
-    */
-    function CMTATProxyAddress(uint256 cmtatCounterId_) external view returns (address) {
-        return cmtats[cmtatCounterId_];
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    /**
-    * @param deploymentSalt salt for deployment
-    * @dev 
-    * if useCustomSalt is at false, the salt used is the current value of cmtatCounterId
-    */
-    function _checkAndDetermineDeploymentSalt(bytes32 deploymentSalt) internal returns(bytes32 saltBytes){
-       if(useCustomSalt){
-            if(customSaltUsed[deploymentSalt]){
-                revert FactoryErrors.CMTAT_Factory_SaltAlreadyUsed();
-            }else {
-                customSaltUsed[deploymentSalt] = true;
-                saltBytes = deploymentSalt;
-            }
-        }else{
-            saltBytes = bytes32(keccak256(abi.encodePacked(cmtatCounterId)));
-        }
-    }
-}
-
-
- - - - - - - 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 deleted file mode 100644 index f46787fe..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/deployment/libraries/ - - - - - - - -
-
-

- all files contracts/deployment/libraries/ -

-
-
- 100% - Statements - 8/8 -
-
- 100% - Branches - 10/10 -
-
- 100% - Functions - 4/4 -
-
- 100% - Lines - 16/16 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTATFactoryBase.sol
100%1/1100%2/2100%1/1100%3/3
CMTATFactoryInvariant.sol
100%0/0100%0/0100%0/0100%0/0
CMTATFactoryRoot.sol
100%7/7100%8/8100%3/3100%13/13
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/contracts/index.html b/doc/general/test/coverage/lcov-report/contracts/index.html deleted file mode 100644 index 6585f11a..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/ - - - - - - - -
-
-

- all files contracts/ -

-
-
- 100% - Statements - 5/5 -
-
- 75% - Branches - 3/4 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 5/5 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_PROXY.sol
100%1/1100%0/0100%1/1100%1/1
CMTAT_PROXY_UUPS.sol
100%3/375%3/4100%3/3100%3/3
CMTAT_STANDALONE.sol
100%1/1100%0/0100%1/1100%1/1
-
-
- - - - - - - 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 deleted file mode 100644 index 46226201..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICCIPToken.sol.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ICCIPToken.sol - - - - - - - -
-
-

- all files / contracts/interfaces/ ICCIPToken.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/**
-* @notice CCIP Pool with mint
-*/
-interface ICCIPMintERC20 {
-  /// @notice Mints new tokens for a given address.
-  /// @param account The address to mint the new tokens to.
-  /// @param value The number of tokens to be minted.
-  /// @dev this function increases the total supply.
-  function mint(address account, uint256 value) external;
-}
- 
-/**
-* @notice CCIP Pool with burnFrom
-*/
-interface ICCIPBurnFromERC20 {
-  /// @notice Burns tokens from a given address..
-  /// @param account The address to burn tokens from.
-  /// @param value The number of tokens to be burned.
-  /// @dev this function decreases the total supply.
-  function burnFrom(address account, uint256 value) external;
-}
-
-
- - - - - - - 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 deleted file mode 100644 index 6643f881..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATConstructor.sol.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ICMTATConstructor.sol - - - - - - - -
-
-

- all files / contracts/interfaces/ ICMTATConstructor.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//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";
- 
- 
- 
-/**
-* @notice interface to represent arguments used for CMTAT constructor / initialize
-*/
-interface ICMTATConstructor {
-    struct Engine {
-        IRuleEngine ruleEngine;
-        IDebtEngine debtEngine;
-        IAuthorizationEngine authorizationEngine;
-        IERC1643 documentEngine;
-    }
-    struct ERC20Attributes {
-        // name of the token,
-        string nameIrrevocable;
-        // name of the symbol
-        string symbolIrrevocable;
-        // number of decimals of the token, must be 0 to be compliant with Swiss law as per CMTAT specifications (non-zero decimal number may be needed for other use cases)
-        uint8 decimalsIrrevocable;
-    }
-    struct BaseModuleAttributes {
-        // name of the tokenId
-        string tokenId;
-        // terms associated with the token
-        string terms;
-        // additional information to describe the token
-        string information;
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 1395b22e..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATSnapshot.sol.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ICMTATSnapshot.sol - - - - - - - -
-
-

- all files / contracts/interfaces/ ICMTATSnapshot.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/**
-* @notice minimum interface to represent a CMTAT with snapshot
-*/
-interface ICMTATSnapshot {
-    /** 
-    * @notice Return the number of tokens owned by the given owner at the time when the snapshot with the given time was created.
-    * @return value stored in the snapshot, or the actual balance if no snapshot
-    */
-    function snapshotBalanceOf(uint256 time,address owner) external view returns (uint256);
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * Retrieves the total supply at the specified time.
-    * @return value stored in the snapshot, or the actual totalSupply if no snapshot
-    */
-    function snapshotTotalSupply(uint256 time) external view returns (uint256);
-    /**
-    * @notice Return snapshotBalanceOf and snapshotTotalSupply to avoid multiple calls
-    * @return ownerBalance ,  totalSupply - see snapshotBalanceOf and snapshotTotalSupply
-    */
-    function snapshotInfo(uint256 time, address owner) external view returns (uint256 ownerBalance, uint256 totalSupply);
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256 time, address[] calldata addresses) external view returns (uint256[] memory ownerBalances, uint256 totalSupply);
- 
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256[] calldata times, address[] calldata addresses) external view returns (uint256[][] memory ownerBalances, uint256[] memory totalSupply);
- 
- 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index f02bbeca..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/draft-IERC1404.sol - - - - - - - -
-
-

- all files / contracts/interfaces/draft-IERC1404/ draft-IERC1404.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/*
-* @dev Contrary to the ERC-1404, this interface does not inherit from the ERC20 interface
-*/
-interface IERC1404 {
-    /**
-     * @dev See ERC-1404
-     *
-     */
-    function detectTransferRestriction(
-        address _from,
-        address _to,
-        uint256 _amount
-    ) external view returns (uint8);
- 
-    /**
-     * @dev See ERC-1404
-     *
-     */
-    function messageForTransferRestriction(
-        uint8 _restrictionCode
-    ) external view returns (string memory);
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 89805afc..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol - - - - - - - -
-
-

- all files / contracts/interfaces/draft-IERC1404/ draft-IERC1404EnumCode.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-interface IERC1404EnumCode {
-    /* 
-    * @dev leave the code 4-9 free/unused for further additions in your ruleEngine implementation
-    */
-    enum REJECTED_CODE_BASE {
-        TRANSFER_OK,
-        TRANSFER_REJECTED_PAUSED,
-        TRANSFER_REJECTED_FROM_FROZEN,
-        TRANSFER_REJECTED_TO_FROZEN
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 109ee153..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - - - - - - - -
-
-

- all files / contracts/interfaces/draft-IERC1404/ draft-IERC1404Wrapper.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "./draft-IERC1404.sol";
-import "./draft-IERC1404EnumCode.sol";
- 
-interface IERC1404Wrapper is IERC1404, IERC1404EnumCode  {
- 
-    /**
-     * @dev Returns true if the transfer is valid, and false otherwise.
-     */
-    function validateTransfer(
-        address _from,
-        address _to,
-        uint256 _amount
-    ) external view returns (bool isValid);
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index a5b41084..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/interfaces/draft-IERC1404/ - - - - - - - -
-
-

- all files contracts/interfaces/draft-IERC1404/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
draft-IERC1404.sol
100%0/0100%0/0100%0/0100%0/0
draft-IERC1404EnumCode.sol
100%0/0100%0/0100%0/0100%0/0
draft-IERC1404Wrapper.sol
100%0/0100%0/0100%0/0100%0/0
-
-
- - - - - - - 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 deleted file mode 100644 index 14799def..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IAuthorizationEngine.sol.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IAuthorizationEngine.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ IAuthorizationEngine.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
// SPDX-License-Identifier: MPL-2.0
- 
-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.
-     */
-    function operateOnGrantRole(
-        bytes32 role, address account
-    ) external returns (bool isValid);
- 
-    /**
-     * @dev Returns true if the operation is authorized, and false otherwise.
-     */
-    function operateOnRevokeRole(
-        bytes32 role, address account
-    ) external returns (bool isValid);
-   
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index e9679c05..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtEngine.sol.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IDebtEngine.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ IDebtEngine.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
// SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
-import "./IDebtGlobal.sol";
- 
-/*
-* @dev minimum interface to define a DebtEngine
-*/
-interface IDebtEngine is IDebtGlobal {
-    /**
-     * @dev Returns debt information
-     */
-    function debt() external view returns(IDebtGlobal.DebtBase memory);
-    /**
-     * @dev Returns credit events
-     */
-    function creditEvents() external view returns(IDebtGlobal.CreditEvents memory);
-   
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtGlobal.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtGlobal.sol.html deleted file mode 100644 index ef54cf40..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtGlobal.sol.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IDebtGlobal.sol - - - - - - - -
-
-

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

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/**
-* @notice interface to represent debt tokens
-*/
-interface IDebtGlobal {
-    struct DebtBase {
-        uint256 interestRate;
-        uint256 parValue;
-        string guarantor;
-        string bondHolder;
-        string maturityDate;
-        string interestScheduleFormat;
-        string interestPaymentDate;
-        string dayCountConvention;
-        string businessDayConvention;
-        string publicHolidaysCalendar;
-        string issuanceDate;
-        string couponFrequency;
-    }
- 
-    struct CreditEvents {
-        bool flagDefault;
-        bool flagRedeemed;
-        string rating;
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 6193844d..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IRuleEngine.sol.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/IRuleEngine.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ IRuleEngine.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
// SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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.
-     */
-    function operateOnTransfer(
-        address _from,
-        address _to,
-        uint256 _amount
-    ) external returns (bool isValid);
-   
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 0c21387c..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/draft-IERC1643.sol.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/draft-IERC1643.sol - - - - - - - -
-
-

- all files / contracts/interfaces/engine/ draft-IERC1643.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/// @title IERC1643 Document Management 
-/// (part of the ERC1400 Security Token Standards)
-interface IERC1643 {
-    // Document Management
-    function getDocument(bytes32 _name) external view returns (string memory , bytes32, uint256);
-    function getAllDocuments() external view returns (bytes32[] memory);
-}
-
-
- - - - - - - 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 deleted file mode 100644 index 9192c698..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/index.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - Code coverage report for contracts/interfaces/engine/ - - - - - - - -
-
-

- all files contracts/interfaces/engine/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
IAuthorizationEngine.sol
100%0/0100%0/0100%0/0100%0/0
IDebtEngine.sol
100%0/0100%0/0100%0/0100%0/0
IDebtGlobal.sol
100%0/0100%0/0100%0/0100%0/0
IRuleEngine.sol
100%0/0100%0/0100%0/0100%0/0
draft-IERC1643.sol
100%0/0100%0/0100%0/0100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/index.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/index.html deleted file mode 100644 index 36e947e6..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/interfaces/ - - - - - - - -
-
-

- all files contracts/interfaces/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ICCIPToken.sol
100%0/0100%0/0100%0/0100%0/0
ICMTATConstructor.sol
100%0/0100%0/0100%0/0100%0/0
ICMTATSnapshot.sol
100%0/0100%0/0100%0/0100%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 deleted file mode 100644 index 8ce419b5..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/libraries/Errors.sol.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - Code coverage report for contracts/libraries/Errors.sol - - - - - - - -
-
-

- all files / contracts/libraries/ Errors.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/*
-* @dev CMTAT custom errors
-*/
-library Errors {
-    // CMTAT
-    error CMTAT_InvalidTransfer(address from, address to, uint256 amount);
- 
-    // SnapshotModule
-    error CMTAT_SnapshotModule_SnapshotScheduledInThePast(
-        uint256 time,
-        uint256 timestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot(
-        uint256 time,
-        uint256 lastSnapshotTimestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot(
-        uint256 time,
-        uint256 nextSnapshotTimestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot(
-        uint256 time,
-        uint256 previousSnapshotTimestamp
-    );
-    error CMTAT_SnapshotModule_SnapshotAlreadyExists();
-    error CMTAT_SnapshotModule_SnapshotAlreadyDone();
-    error CMTAT_SnapshotModule_NoSnapshotScheduled();
-    error CMTAT_SnapshotModule_SnapshotNotFound();
- 
-    // ERC20BaseModule
-    error CMTAT_ERC20BaseModule_WrongAllowance(
-        address spender,
-        uint256 currentAllowance,
-        uint256 allowanceProvided
-    );
- 
-    // BurnModule
-    error CMTAT_BurnModule_EmptyAccounts();
-    error CMTAT_BurnModule_AccountsValueslengthMismatch();
- 
-    // MintModule
-    error CMTAT_MintModule_EmptyAccounts();
-    error CMTAT_MintModule_AccountsValueslengthMismatch();
- 
-    // ERC20BaseModule
-    error CMTAT_ERC20BaseModule_EmptyTos();
-    error CMTAT_ERC20BaseModule_TosValueslengthMismatch();
- 
-    // DebtModule
-    error CMTAT_DebtModule_SameValue();
- 
-    // ValidationModule
-    error CMTAT_ValidationModule_SameValue();
- 
-    // AuthorizationModule
-    error CMTAT_AuthorizationModule_AddressZeroNotAllowed();
-    error CMTAT_AuthorizationModule_InvalidAuthorization();
-    error CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet(); 
- 
-    // DocumentModule
-    error CMTAT_DocumentModule_SameValue();
- 
-    // PauseModule
-    error CMTAT_PauseModule_ContractIsDeactivated();
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 23707973..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/libraries/FactoryErrors.sol.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - Code coverage report for contracts/libraries/FactoryErrors.sol - - - - - - - -
-
-

- all files / contracts/libraries/ FactoryErrors.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-/*
-* @dev Factory contract custom errors
-*/
-library FactoryErrors {
-    error CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin();
-    error CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner();
-    error CMTAT_Factory_AddressZeroNotAllowedForLogicContract();
-    error CMTAT_Factory_SaltAlreadyUsed();
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/contracts/libraries/index.html b/doc/general/test/coverage/lcov-report/contracts/libraries/index.html deleted file mode 100644 index d8d79f13..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/libraries/index.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Code coverage report for contracts/libraries/ - - - - - - - -
-
-

- all files contracts/libraries/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 0/0 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
Errors.sol
100%0/0100%0/0100%0/0100%0/0
FactoryErrors.sol
100%0/0100%0/0100%0/0100%0/0
-
-
- - - - - - - 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 deleted file mode 100644 index 04d9627e..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/CMTAT_BASE.sol.html +++ /dev/null @@ -1,785 +0,0 @@ - - - - Code coverage report for contracts/modules/CMTAT_BASE.sol - - - - - - - -
-
-

- all files / contracts/modules/ CMTAT_BASE.sol -

-
-
- 96.88% - Statements - 31/32 -
-
- 75% - Branches - 6/8 -
-
- 90% - Functions - 9/10 -
-
- 96.97% - Lines - 32/33 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× -385× -  -385× -  -385× -385× -  -  -385× -  -  -  -  -385× -385× -  -385× -  -  -  -385× -383× -383× -  -383× -383× -  -383× -383× -  -  -  -  -  -383× -383× -383× -  -  -383× -  -  -383× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -10× -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -439× -17× -  -  -  -  -  -  -422× -422× -  -  -  -  -  -  -  -  -  -  -  -  -  -1391× -  -  -  -  -  -  -  -  -1391× -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-// required OZ imports here
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
- 
-import "./wrapper/core/BaseModule.sol";
-import "./wrapper/core/ERC20BurnModule.sol";
-import "./wrapper/core/ERC20MintModule.sol";
-import "./wrapper/core/EnforcementModule.sol";
-import "./wrapper/core/ERC20BaseModule.sol";
-import "./wrapper/core/PauseModule.sol";
-/*
-* SnapshotModule:
-* Add this import in case you add the SnapshotModule
-*/
-import "./wrapper/extensions/ERC20SnapshotModule.sol";
- 
-import "./wrapper/controllers/ValidationModule.sol";
-import "./wrapper/extensions/MetaTxModule.sol";
-import "./wrapper/extensions/DebtModule.sol";
-import "./wrapper/extensions/DocumentModule.sol";
-import "./security/AuthorizationModule.sol";
-import "../interfaces/ICMTATConstructor.sol";
-import "../libraries/Errors.sol";
- 
-abstract contract CMTAT_BASE is
-    Initializable,
-    ContextUpgradeable,
-    // Core
-    BaseModule,
-    PauseModule,
-    ERC20MintModule,
-    ERC20BurnModule,
-    EnforcementModule,
-    ValidationModule,
-    ERC20BaseModule,
-    // Extension
-    MetaTxModule,
-    ERC20SnapshotModule,
-    DebtModule,
-    DocumentModule
-{   
- 
-    /*//////////////////////////////////////////////////////////////
-                         INITIALIZER FUNCTION
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice
-     * initialize the proxy contract
-     * The calls to this function will revert if the contract was deployed without a proxy
-     * @param admin address of the admin of contract (Access Control)
-     * @param ERC20Attributes_ ERC20 name, symbol and decimals
-     * @param baseModuleAttributes_ tokenId, terms, information
-     * @param engines_ external contract
-     */
-    function initialize(
-        address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ 
-    ) public virtual initializer {
-        __CMTAT_init(
-            admin,
-            ERC20Attributes_,
-            baseModuleAttributes_,
-            engines_
-        );
-    }
- 
- 
-    /**
-     * @dev calls the different initialize functions from the different modules
-     */
-    function __CMTAT_init(
-        address admin,
-        ICMTATConstructor.ERC20Attributes memory ERC20Attributes_,
-        ICMTATConstructor.BaseModuleAttributes memory baseModuleAttributes_,
-        ICMTATConstructor.Engine memory engines_ 
-    ) internal EonlyInitializing {
-        /* OpenZeppelin library */
-        // OZ init_unchained functions are called firstly due to inheritance
-        __Context_init_unchained();
-        __ERC20_init_unchained(ERC20Attributes_.nameIrrevocable, ERC20Attributes_.symbolIrrevocable);
-        // AccessControlUpgradeable inherits from ERC165Upgradeable
-        __ERC165_init_unchained();
-        // AuthorizationModule inherits from AccessControlUpgradeable
-        __AccessControl_init_unchained();
-        __Pausable_init_unchained();
- 
-        /* Internal Modules */
-        __Enforcement_init_unchained();
-        /*
-        SnapshotModule:
-        Add these two calls in case you add the SnapshotModule
-            */
-        __SnapshotModuleBase_init_unchained();
-        __ERC20Snapshot_init_unchained();
-    
-        __Validation_init_unchained(engines_ .ruleEngine);
- 
-        /* Wrapper */
-        // AuthorizationModule_init_unchained is called firstly due to inheritance
-        __AuthorizationModule_init_unchained(admin, engines_ .authorizationEngine);
-        __ERC20BurnModule_init_unchained();
-        __ERC20MintModule_init_unchained();
-        // EnforcementModule_init_unchained is called before ValidationModule_init_unchained due to inheritance
-        __EnforcementModule_init_unchained();
-        __ERC20BaseModule_init_unchained(ERC20Attributes_.decimalsIrrevocable);
-        // PauseModule_init_unchained is called before ValidationModule_init_unchained due to inheritance
-        __PauseModule_init_unchained();
-        __ValidationModule_init_unchained();
- 
-        /*
-        SnapshotModule:
-        Add this call in case you add the SnapshotModule
-        */
-        __ERC20SnasphotModule_init_unchained();
-        __DocumentModule_init_unchained(engines_ .documentEngine);
-        __DebtModule_init_unchained(engines_ .debtEngine);
- 
-        /* Other modules */
-        __Base_init_unchained(baseModuleAttributes_.tokenId, baseModuleAttributes_.terms, baseModuleAttributes_.information);
- 
-        /* own function */
-        __CMTAT_init_unchained();
-    }
- 
-    function __CMTAT_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @notice Returns the number of decimals used to get its user representation.
-     */
-    function decimals()
-        public
-        view
-        virtual
-        override(ERC20Upgradeable, ERC20BaseModule)
-        returns (uint8)
-    {
-        return ERC20BaseModule.decimals();
-    }
- 
-    function transferFrom(
-        address sender,
-        address recipient,
-        uint256 amount
-    )
-        public
-        virtual
-        override(ERC20Upgradeable, ERC20BaseModule)
-        returns (bool)
-    {
-        return ERC20BaseModule.transferFrom(sender, recipient, amount);
-    }
- 
-    /**
-    * @notice burn and mint atomically
-    * @param from current token holder to burn tokens
-    * @param to receiver to send the new minted tokens
-    * @param amountToBurn number of tokens to burn
-    * @param amountToMint number of tokens to mint
-    * @dev 
-    * - The access control is managed by the functions burn (ERC20BurnModule) and mint (ERC20MintModule)
-    * - Input validation is also managed by the functions burn and mint
-    * - You can mint more tokens than burnt
-    */
-    function burnAndMint(address from, address to, uint256 amountToBurn, uint256 amountToMint, string calldata reason) public  {
-        burn(from, amountToBurn, reason);
-        mint(to, amountToMint);
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @dev
-     *
-     */
-    function _update(
-        address from,
-        address to,
-        uint256 amount
-    ) internal override(ERC20Upgradeable) {
-        if (!ValidationModule._operateOnTransfer(from, to, amount)) {
-            revert Errors.CMTAT_InvalidTransfer(from, to, amount);
-        }
-        /*
-        SnapshotModule:
-        Add this in case you add the SnapshotModule
-        We call the SnapshotModule only if the transfer is valid
-        */
-        ERC20SnapshotModuleInternal._snapshotUpdate(from, to);
-        ERC20Upgradeable._update(from, to, amount);
-    }
-    /*//////////////////////////////////////////////////////////////
-                            METAXTX MODULE
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @dev This surcharge is not necessary if you do not use the MetaTxModule
-     */
-    function _msgSender()
-        internal
-        view
-        override(ERC2771ContextUpgradeable, ContextUpgradeable)
-        returns (address sender)
-    {
-        return ERC2771ContextUpgradeable._msgSender();
-    }
- 
-    /**
-     * @dev This surcharge is not necessary if you do not use the MetaTxModule
-     */
-    function _contextSuffixLength() internal view 
-    override(ERC2771ContextUpgradeable, ContextUpgradeable)
-    returns (uint256) {
-         return ERC2771ContextUpgradeable._contextSuffixLength();
-    }
- 
-    /**
-     * @dev This surcharge is not necessary if you do not use the MetaTxModule
-     */
-    function _msgData()
-        internal
-        view
-        override(ERC2771ContextUpgradeable, ContextUpgradeable)
-        returns (bytes calldata)
-    {
-        return ERC2771ContextUpgradeable._msgData();
-    }
-}
- 
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/index.html deleted file mode 100644 index bd35beff..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/ - - - - - - - -
-
-

- all files contracts/modules/ -

-
-
- 96.88% - Statements - 31/32 -
-
- 75% - Branches - 6/8 -
-
- 90% - Functions - 9/10 -
-
- 96.97% - Lines - 32/33 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_BASE.sol
96.88%31/3275%6/890%9/1096.97%32/33
-
-
- - - - - - - 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 deleted file mode 100644 index 3b52a76d..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/ERC20SnapshotModuleInternal.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/ ERC20SnapshotModuleInternal.sol -

-
-
- 100% - Statements - 20/20 -
-
- 90% - Branches - 9/10 -
-
- 100% - Functions - 9/9 -
-
- 100% - Lines - 28/28 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -480× -480× -  -  -  -  -  -  -  -160× -160× -480× -  -160× -  -  -  -  -  -  -  -80× -80× -80× -80× -  -  -  -  -  -  -  -  -  -  -  -1200× -1200× -  -  -  -  -1200× -  -  -  -  -  -  -  -  -720× -720× -  -  -  -720× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -422× -422× -  -77× -77× -  -43× -  -  -34× -  -  -  -345× -345× -  -  -  -  -  -  -  -465× -465× -  -  -  -  -  -  -379× -379× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
-import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol';
-import "./base/SnapshotModuleBase.sol";
-import "../../interfaces/ICMTATSnapshot.sol";
-/**
- * @dev Snapshot module internal.
- *
- * 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.
- */
- 
-abstract contract ERC20SnapshotModuleInternal is ICMTATSnapshot, SnapshotModuleBase, ERC20Upgradeable {
-    using Arrays for uint256[];
-    /* ============  Initializer Function ============ */
-    function __ERC20Snapshot_init_unchained() internal EonlyInitializing {
-        // Nothing to do
-        // _currentSnapshotTime & _currentSnapshotIndex are initialized to zero
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-    * @notice Return snapshotBalanceOf and snapshotTotalSupply to avoid multiple calls
-    * @return ownerBalance ,  totalSupply - see snapshotBalanceOf and snapshotTotalSupply
-    */
-    function snapshotInfo(uint256 time, address owner) public view returns (uint256 ownerBalance, uint256 totalSupply) {
-        ownerBalance = snapshotBalanceOf(time, owner);
-        totalSupply = snapshotTotalSupply(time);
-    }
- 
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256 time, address[] calldata addresses) public view returns (uint256[] memory ownerBalances, uint256 totalSupply) {
-        ownerBalances = new uint256[](addresses.length);
-        for(uint256 i = 0; i < addresses.length; ++i){
-             ownerBalances[i]  = snapshotBalanceOf(time, addresses[i]);
-        }
-        totalSupply = snapshotTotalSupply(time);
-    }
- 
-    /**
-    * @notice Return snapshotBalanceOf for each address in the array and the total supply
-    * @return ownerBalances array with the balance of each address, the total supply
-    */
-    function snapshotInfoBatch(uint256[] calldata times, address[] calldata addresses) public view returns (uint256[][] memory ownerBalances, uint256[] memory totalSupply) {
-        ownerBalances = new uint256[][](times.length);
-        totalSupply = new uint256[](times.length);
-        for(uint256 iT = 0; iT < times.length; ++iT){
-            (ownerBalances[iT], totalSupply[iT]) = snapshotInfoBatch(times[iT],addresses);
-        }
-    }
- 
-    /** 
-    * @notice Return the number of tokens owned by the given owner at the time when the snapshot with the given time was created.
-    * @return value stored in the snapshot, or the actual balance if no snapshot
-    */
-    function snapshotBalanceOf(
-        uint256 time,
-        address owner
-    ) public view returns (uint256) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        (bool snapshotted, uint256 value) = _valueAt(
-            time,
-            $._accountBalanceSnapshots[owner]
-        );
- 
-        return snapshotted ? value : balanceOf(owner);
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * Retrieves the total supply at the specified time.
-    * @return value stored in the snapshot, or the actual totalSupply if no snapshot
-    */
-    function snapshotTotalSupply(uint256 time) public view returns (uint256) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        (bool snapshotted, uint256 value) = _valueAt(
-            time,
-            $._totalSupplySnapshots
-        );
-        return snapshotted ? value : totalSupply();
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /** 
-    * @dev Update balance and/or total supply snapshots before the values are modified. This is implemented
-    * in the _beforeTokenTransfer hook, which is executed for _mint, _burn, and _transfer operations.
-    */
-    function _snapshotUpdate(
-        address from,
-        address to
-    ) internal virtual  {
-        _setCurrentSnapshot();
-        if (from != address(0)) {
-            // for both burn and transfer
-            _updateAccountSnapshot(from);
-            if (to != address(0)) {
-                // transfer
-                _updateAccountSnapshot(to);
-            } else {
-                // burn
-                _updateTotalSupplySnapshot();
-            }
-        } else {
-            // mint
-            _updateAccountSnapshot(to);
-            _updateTotalSupplySnapshot();
-        }
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    */
-    function _updateAccountSnapshot(address account) private {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _updateSnapshot($._accountBalanceSnapshots[account], balanceOf(account));
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    */
-    function _updateTotalSupplySnapshot() private {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _updateSnapshot($._totalSupplySnapshots, totalSupply());
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 77e63443..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/EnforcementModuleInternal.sol.html +++ /dev/null @@ -1,416 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/EnforcementModuleInternal.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/ EnforcementModuleInternal.sol -

-
-
- 100% - Statements - 12/12 -
-
- 83.33% - Branches - 5/6 -
-
- 100% - Functions - 5/5 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -946× -946× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -22× -22× - -  -20× -20× -20× -  -  -  -  -  -  -  -  -  -  -  - - - -  - - -  - -  -  -  -  -976× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
- 
-/**
- * @dev Enforcement module.
- *
- * Allows the issuer to freeze transfers from a given address
- */
-abstract contract EnforcementModuleInternal is
-    Initializable,
-    ContextUpgradeable
-{
-    /* ============ Events ============ */
-    /**
-     * @notice Emitted when an address is frozen.
-     */
-    event Freeze(
-        address indexed enforcer,
-        address indexed owner,
-        string indexed reasonIndexed,
-        string reason
-    );
- 
-    /**
-     * @notice Emitted when an address is unfrozen.
-     */
-    event Unfreeze(
-        address indexed enforcer,
-        address indexed owner,
-        string indexed reasonIndexed,
-        string reason
-    );
- 
-     /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.EnforcementModuleInternal")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant EnforcementModuleInternalStorageLocation = 0x0c7bc8a17be064111d299d7669f49519cb26c58611b72d9f6ccc40a1e1184e00;
-    
- 
-    /* ==== ERC-7201 State Variables === */
-    struct EnforcementModuleInternalStorage {
-        mapping(address => bool) _frozen;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                         INITIALIZER FUNCTION
-    //////////////////////////////////////////////////////////////*/
-    function __Enforcement_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @dev Returns true if the account is frozen, and false otherwise.
-     */
-    function frozen(address account) public view virtual returns (bool) {
-        EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage();
-        return $._frozen[account];
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @dev Freezes an address.
-     * @param account the account to freeze
-     * @param reason indicate why the account was frozen.
-     *
-     */
-    function _freeze(
-        address account,
-        string calldata reason
-    ) internal virtual returns (bool) {
-        EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage();
-        if ($._frozen[account]) {
-            return false;
-        }
-        $._frozen[account] = true;
-        emit Freeze(_msgSender(), account, reason, reason);
-        return true;
-    }
- 
-    /**
-     * @dev Unfreezes an address.
-     * @param account the account to unfreeze
-     * @param reason indicate why the account was unfrozen.
-     */
-    function _unfreeze(
-        address account,
-        string calldata reason
-    ) internal virtual returns (bool) {
-        EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage();
-        if (!$._frozen[account]) {
-            return false;
-        }
-        $._frozen[account] = false;
-        emit Unfreeze(_msgSender(), account, reason, reason);
- 
-        return true;
-    }
- 
-    /* ============ ERC-7201 ============ */
-    function _getEnforcementModuleInternalStorage() private pure returns (EnforcementModuleInternalStorage storage $) {
-        assembly {
-            $.slot := EnforcementModuleInternalStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 71d93b5c..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/ValidationModuleInternal.sol.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/ValidationModuleInternal.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/ ValidationModuleInternal.sol -

-
-
- 100% - Statements - 13/13 -
-
- 75% - Branches - 3/4 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 15/15 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× -18× -18× -18× -  -  -  -  -  -  -  -  -  -32× -32× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -12× -12× -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  - - -  -  -  -60× -60× -  -  -  -  -  -629× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import "../../interfaces/engine/IRuleEngine.sol";
-/**
- * @dev Validation module.
- *
- * Useful for to restrict and validate transfers
- */
-abstract contract ValidationModuleInternal is
-    Initializable,
-    ContextUpgradeable
-{
-    /* ============ Events ============ */
-    /**
-     * @dev Emitted when a rule engine is set.
-     */
-    event RuleEngine(IRuleEngine indexed newRuleEngine);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ValidationModuleInternal")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant ValidationModuleInternalStorageLocation = 0xb3e8f29e401cfa802cad91001b5f9eb50decccdb111d80cb07177ab650b04700;
-    /* ==== ERC-7201 State Variables === */
-    struct ValidationModuleInternalStorage {
-        IRuleEngine _ruleEngine;
-    }
-    /* ============  Initializer Function ============ */
-    function __Validation_init_unchained(
-        IRuleEngine ruleEngine_
-    ) internal EonlyInitializing {
-        if (address(ruleEngine_) != address(0)) {
-            ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-            $._ruleEngine = ruleEngine_;
-            emit RuleEngine(ruleEngine_);
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    function ruleEngine() public view returns(IRuleEngine){
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-    * @dev before making a call to this function, you have to check if a ruleEngine is set.
-    */
-    function _validateTransfer(
-        address from,
-        address to,
-        uint256 amount
-    ) internal view returns (bool) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.validateTransfer(from, to, amount);
-    }
- 
-    /**
-    * @dev before making a call to this function, you have to check if a ruleEngine is set.
-    */
-    function _messageForTransferRestriction(
-        uint8 restrictionCode
-    ) internal view returns (string memory) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.messageForTransferRestriction(restrictionCode);
-    }
- 
-    /**
-    * @dev before making a call to this function, you have to check if a ruleEngine is set.
-    */
-    function _detectTransferRestriction(
-        address from,
-        address to,
-        uint256 amount
-    ) internal view returns (uint8) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.detectTransferRestriction(from, to, amount);
-    }
- 
-    function _operateOnTransfer(address from, address to, uint256 amount) virtual internal returns (bool) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        return $._ruleEngine.operateOnTransfer(from, to, amount);
-    }
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getValidationModuleInternalStorage() internal pure returns (ValidationModuleInternalStorage storage $) {
-        assembly {
-            $.slot := ValidationModuleInternalStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index e7f0ea38..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/SnapshotModuleBase.sol.html +++ /dev/null @@ -1,1361 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/base/SnapshotModuleBase.sol - - - - - - - -
-
-

- all files / contracts/modules/internal/base/ SnapshotModuleBase.sol -

-
-
- 100% - Statements - 88/88 -
-
- 96.55% - Branches - 56/58 -
-
- 100% - Functions - 18/18 -
-
- 100% - Lines - 112/112 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -76× -76× -  -76× -68× -  -  -  -  -68× -48× -  -  -20× -  - -  -  - -  - - -  -  -  -  -  -  -28× -  -  -  -  -  -  -  -  -  -  -  -170× -  -170× -  -168× -  -94× -  -  -94× - -  -  -  -  -  - -  -  -164× -164× -  -  -  -  -  -  -12× -12× -10× -  -10× - -  -  - - -  - -  -  - -10× -10× -10× -  -  - -  - -  -  -  -  -  -  -22× -  -22× -20× -18× - -  -16× -12× - - - -  -  -  -  -  - -  -  - - - -  -  -  -  -  - -  - -  -  -  -  -  -  -14× -  -14× -10× - -  -  - - -  - - -  -  -  -  -  -  -  -  -  -10× -10× -  -10× -  - - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1920× -  -1920× -1484× -  -436× -  -  -  -  -  -  -  -  -  -  -  -  -  -844× -844× -844× -36× -36× -  -  -  -  -  -  -  -  -  -422× -422× -  -  -  -422× -18× -18× -  -  -  -  -  -  -  -  -  -844× -836× -  - -  -  -  -  -  -  -  -  -  -  -36× -36× -36× -  -36× -  -  -  -22× -  -  -  - -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -490× -490× -  -490× -  -  -  -404× -  -  -86× -86× -  -86× -116× -52× -52× -  -  -64× -  -  -86× -  -  -  -  -  -  -  -  -26× -26× - -  -20× -  -  -202× - -  -  -  -  -  -  -46× - -  -  -  -  -  -4862× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
-import {Arrays} from '@openzeppelin/contracts/utils/Arrays.sol';
- 
-import "../../../libraries/Errors.sol";
- 
-/**
- * @dev Base for the Snapshot module
- *
- * 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.
- */
- 
-abstract contract SnapshotModuleBase is Initializable {
-    using Arrays for uint256[];
-    /* ============ Structs ============ *
-    /** 
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * Snapshotted values have arrays of ids (time) and the value corresponding to that id.
-    * ids is expected to be sorted in ascending order, and to contain no repeated elements 
-    * because we use findUpperBound in the function _valueAt
-    */
-    struct Snapshots {
-        uint256[] ids;
-        uint256[] values;
-    }
-    /* ============ Events ============ */
-    /**
-    @notice Emitted when the snapshot with the specified oldTime was scheduled or rescheduled at the specified newTime.
-    */
-    event SnapshotSchedule(uint256 indexed oldTime, uint256 indexed newTime);
- 
-    /** 
-    * @notice Emitted when the scheduled snapshot with the specified time was cancelled.
-    */
-    event SnapshotUnschedule(uint256 indexed time);
- 
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.SnapshotModuleBase")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant SnapshotModuleBaseStorageLocation = 0x649d9af4a0486294740af60c5e3bf61210e7b49108a80b1f369042ea9fd02000;
-    /* ==== ERC-7201 State Variables === */
-    struct SnapshotModuleBaseStorage {
-        /**
-        * @dev See {OpenZeppelin - ERC20Snapshot}
-        */
-        mapping(address => Snapshots) _accountBalanceSnapshots;
-        Snapshots _totalSupplySnapshots;
-        /**
-        * @dev time instead of a counter for OpenZeppelin
-        */
-        // Initialized to zero
-        uint256  _currentSnapshotTime;
-        // Initialized to zero
-        uint256  _currentSnapshotIndex;
-        /** 
-        * @dev 
-        * list of scheduled snapshot (time)
-        * This list is sorted in ascending order
-        */
-        uint256[] _scheduledSnapshots;
-    }
-    /*//////////////////////////////////////////////////////////////
-                         INITIALIZER FUNCTION
-    //////////////////////////////////////////////////////////////*/
-    function __SnapshotModuleBase_init_unchained() internal EonlyInitializing {
-        // Nothing to do
-        // _currentSnapshotTime & _currentSnapshotIndex are initialized to zero
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /** 
-    *  
-    * @notice Get all snapshots
-    */
-    function getAllSnapshots() public view returns (uint256[] memory) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        return $._scheduledSnapshots;
-    }
- 
-    /** 
-    * @dev 
-    * Get the next scheduled snapshots
-    */
-    function getNextSnapshots() public view returns (uint256[] memory) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256[] memory nextScheduledSnapshot = new uint256[](0);
-        // no snapshot were planned
-        if ($._scheduledSnapshots.length > 0) {
-            (
-                uint256 timeLowerBound,
-                uint256 indexLowerBound
-            ) = _findScheduledMostRecentPastSnapshot();
-            // All snapshots are situated in the futur
-            if ((timeLowerBound == 0) && ($._currentSnapshotTime == 0)) {
-                return $._scheduledSnapshots;
-            } else {
-                // There are snapshots situated in the futur
-                if (indexLowerBound + 1 != $._scheduledSnapshots.length) {
-                    // All next snapshots are located after the snapshot specified by indexLowerBound
-                    uint256 arraySize = $._scheduledSnapshots.length -
-                        indexLowerBound -
-                        1;
-                    nextScheduledSnapshot = new uint256[](arraySize);
-                    // No need of unchecked block since Soliditiy 0.8.22
-                    for (uint256 i; i < arraySize; ++i) {
-                        nextScheduledSnapshot[i] = $._scheduledSnapshots[
-                            indexLowerBound + 1 + i
-                        ];
-                    }
-                }
-            }
-        }
-        return nextScheduledSnapshot;
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /** 
-    * @dev schedule a snapshot at the specified time
-    * You can only add a snapshot after the last previous
-    */
-    function _scheduleSnapshot(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        // Check the time firstly to avoid an useless read of storage
-       _checkTimeInThePast(time);
- 
-        if ($._scheduledSnapshots.length > 0) {
-            // We check the last snapshot on the list
-            uint256 nextSnapshotTime = $._scheduledSnapshots[
-                $._scheduledSnapshots.length - 1
-            ];
-            if (time < nextSnapshotTime) {
-                revert Errors
-                    .CMTAT_SnapshotModule_SnapshotTimestampBeforeLastSnapshot(
-                        time,
-                        nextSnapshotTime
-                    );
-            } else if (time == nextSnapshotTime) {
-                revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists();
-            }
-        }
-        $._scheduledSnapshots.push(time);
-        emit SnapshotSchedule(0, time);
-    }
- 
-    /** 
-    * @dev schedule a snapshot at the specified time
-    */
-    function _scheduleSnapshotNotOptimized(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _checkTimeInThePast(time);
-        (bool isFound, uint256 index) = _findScheduledSnapshotIndex(time);
-        // Perfect match
-        if (isFound) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists();
-        }
-        // if no upper bound match found, we push the snapshot at the end of the list
-        if (index == $._scheduledSnapshots.length) {
-            $._scheduledSnapshots.push(time);
-        } else {
-            $._scheduledSnapshots.push(
-                $._scheduledSnapshots[$._scheduledSnapshots.length - 1]
-            );
-            for (uint256 i = $._scheduledSnapshots.length - 2; i > index; ) {
-                $._scheduledSnapshots[i] = $._scheduledSnapshots[i - 1];
-                unchecked {
-                    --i;
-                }
-            }
-            $._scheduledSnapshots[index] = time;
-        }
-        emit SnapshotSchedule(0, time);
-    }
- 
-    /** 
-    * @dev reschedule a scheduled snapshot at the specified newTime
-    */
-    function _rescheduleSnapshot(uint256 oldTime, uint256 newTime) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        // Check the time firstly to avoid an useless read of storage
-        _checkTimeSnapshotAlreadyDone(oldTime);
-        _checkTimeInThePast(newTime);
-        if ($._scheduledSnapshots.length == 0) {
-            revert Errors.CMTAT_SnapshotModule_NoSnapshotScheduled();
-        }
-        uint256 index = _findAndRevertScheduledSnapshotIndex(oldTime);
-        if (index + 1 < $._scheduledSnapshots.length) {
-            uint256 nextSnapshotTime = $._scheduledSnapshots[index + 1];
-            if (newTime > nextSnapshotTime) {
-                revert Errors
-                    .CMTAT_SnapshotModule_SnapshotTimestampAfterNextSnapshot(
-                        newTime,
-                        nextSnapshotTime
-                    );
-            } else if (newTime == nextSnapshotTime) {
-                revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyExists();
-            }
-        }
-        if (index > 0) {
-            if (newTime <= $._scheduledSnapshots[index - 1])
-                revert Errors
-                    .CMTAT_SnapshotModule_SnapshotTimestampBeforePreviousSnapshot(
-                        newTime,
-                        $._scheduledSnapshots[index - 1]
-                    );
-        }
-        $._scheduledSnapshots[index] = newTime;
- 
-        emit SnapshotSchedule(oldTime, newTime);
-    }
- 
-    /**
-    * @dev unschedule the last scheduled snapshot
-    */
-    function _unscheduleLastSnapshot(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        // Check the time firstly to avoid an useless read of storage
-        _checkTimeSnapshotAlreadyDone(time);
-        if ($._scheduledSnapshots.length == 0) {
-            revert Errors.CMTAT_SnapshotModule_NoSnapshotScheduled();
-        }
-        // All snapshot time are unique, so we do not check the indice
-        if (time !=$._scheduledSnapshots[$._scheduledSnapshots.length - 1]) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotNotFound();
-        }
-        $._scheduledSnapshots.pop();
-        emit SnapshotUnschedule(time);
-    }
- 
-    /** 
-    * @dev unschedule (remove) a scheduled snapshot in three steps:
-    * - search the snapshot in the list
-    * - If found, move all next snapshots one position to the left
-    * - Reduce the array size by deleting the last snapshot
-    */
-    function _unscheduleSnapshotNotOptimized(uint256 time) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        _checkTimeSnapshotAlreadyDone(time);
-        
-        uint256 index = _findAndRevertScheduledSnapshotIndex(time);
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = index; i + 1 < $._scheduledSnapshots.length; ++i ) {
-            $._scheduledSnapshots[i] = $._scheduledSnapshots[i + 1];
-        }
-        $._scheduledSnapshots.pop();
-    }
- 
-    /**
-    * @dev See {OpenZeppelin - ERC20Snapshot}
-    * @param time where we want a snapshot
-    * @param snapshots the struct where are stored the snapshots
-    * @return  snapshotExist true if a snapshot is found, false otherwise
-    * value 0 if no snapshot, balance value if a snapshot exists
-    */
-    function _valueAt(
-        uint256 time,
-        Snapshots storage snapshots
-    ) internal view returns (bool snapshotExist, uint256 value) {
-        // When a valid snapshot is queried, there are three possibilities:
-        //  a) The queried value was not modified after the snapshot was taken. Therefore, a snapshot entry was never
-        //  created for this id, and all stored snapshot ids are smaller than the requested one. The value that corresponds
-        //  to this id is the current one.
-        //  b) The queried value was modified after the snapshot was taken. Therefore, there will be an entry with the
-        //  requested id, and its value is the one to return.
-        //  c) More snapshots were created after the requested one, and the queried value was later modified. There will be
-        //  no entry for the requested id: the value that corresponds to it is that of the smallest snapshot id that is
-        //  larger than the requested one.
-        //
-        // In summary, we need to find an element in an array, returning the index of the smallest value that is larger if
-        // it is not found, unless said value doesn't exist (e.g. when all values are smaller). Arrays.findUpperBound does
-        // exactly this.
- 
-        uint256 index = snapshots.ids.findUpperBound(time);
- 
-        if (index == snapshots.ids.length) {
-            return (false, 0);
-        } else {
-            return (true, snapshots.values[index]);
-        }
-    }
- 
-    /** 
-    * @dev 
-    * Inside a struct Snapshots:
-    * - Update the array ids to the current Snapshot time if this one is greater than the snapshot times stored in ids.
-    * - Update the value to the corresponding value.
-    */
-    function _updateSnapshot(
-        Snapshots storage snapshots,
-        uint256 currentValue
-    ) internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256 current = $._currentSnapshotTime;
-        if (_lastSnapshot(snapshots.ids) < current) {
-            snapshots.ids.push(current);
-            snapshots.values.push(currentValue);
-        }
-    }
- 
-    /** 
-    * @dev
-    * Set the currentSnapshotTime by retrieving the most recent snapshot
-    * if a snapshot exists, clear all past scheduled snapshot
-    */
-    function _setCurrentSnapshot() internal {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        (
-            uint256 scheduleSnapshotTime,
-            uint256 scheduleSnapshotIndex
-        ) = _findScheduledMostRecentPastSnapshot();
-        if (scheduleSnapshotTime > 0) {
-            $._currentSnapshotTime = scheduleSnapshotTime;
-            $._currentSnapshotIndex = scheduleSnapshotIndex;
-        }
-    }
- 
-    /**
-    * @return the last snapshot time inside a snapshot ids array
-    */
-    function _lastSnapshot(
-        uint256[] storage ids
-    ) private view returns (uint256) {
-        if (ids.length == 0) {
-            return 0;
-        } else {
-            return ids[ids.length - 1];
-        }
-    }
- 
-    /** 
-    * @dev Find the snapshot index at the specified time
-    * @return (true, index) if the snapshot exists, (false, 0) otherwise
-    */
-    function _findScheduledSnapshotIndex(
-        uint256 time
-    ) private view returns (bool, uint256) {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256 indexFound = $._scheduledSnapshots.findUpperBound(time);
-        uint256 _scheduledSnapshotsLength = $._scheduledSnapshots.length;
-        // Exact match
-        if (
-            indexFound != _scheduledSnapshotsLength &&
-            $._scheduledSnapshots[indexFound] == time
-        ) {
-            return (true, indexFound);
-        }
-        // Upper bound match
-        else if (indexFound != _scheduledSnapshotsLength) {
-            return (false, indexFound);
-        }
-        // no match
-        else {
-            return (false, _scheduledSnapshotsLength);
-        }
-    }
- 
-    /** 
-    * @dev find the most recent past snapshot
-    * The complexity of this function is O(N) because we go through the whole list
-    */
-    function _findScheduledMostRecentPastSnapshot()
-        private
-        view
-        returns (uint256 time, uint256 index)
-    {
-        SnapshotModuleBaseStorage storage $ = _getSnapshotModuleBaseStorage();
-        uint256 currentArraySize = $._scheduledSnapshots.length;
-        // no snapshot or the current snapshot already points on the last snapshot
-        if (
-            currentArraySize == 0 ||
-            (($._currentSnapshotIndex + 1 == currentArraySize) && (time != 0))
-        ) {
-            return (0, currentArraySize);
-        }
-        // mostRecent is initialized in the loop
-        uint256 mostRecent;
-        index = currentArraySize;
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = $._currentSnapshotIndex; i < currentArraySize; ++i ) {
-            if ($._scheduledSnapshots[i] <= block.timestamp) {
-                mostRecent = $._scheduledSnapshots[i];
-                index = i;
-            } else {
-                // All snapshot are planned in the futur
-                break;
-            }
-        }
-        return (mostRecent, index);
-    }
- 
-    /* ============ Utility functions ============ */
- 
- 
-    function _findAndRevertScheduledSnapshotIndex(
-        uint256 time
-    ) private view returns (uint256){
-        (bool isFound, uint256 index) = _findScheduledSnapshotIndex(time);
-        if (!isFound) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotNotFound();
-        }
-        return index;
-    }
-    function _checkTimeInThePast(uint256 time) internal view{
-        if (time <= block.timestamp) {
-                    revert Errors.CMTAT_SnapshotModule_SnapshotScheduledInThePast(
-                        time,
-                        block.timestamp
-                    );
-                }
-    }
-    function _checkTimeSnapshotAlreadyDone(uint256 time) internal view{
-        if (time <= block.timestamp) {
-            revert Errors.CMTAT_SnapshotModule_SnapshotAlreadyDone();
-        }
-    }
- 
-    /* ============ ERC-7201 ============ */
-    function _getSnapshotModuleBaseStorage() internal pure returns (SnapshotModuleBaseStorage storage $) {
-        assembly {
-            $.slot := SnapshotModuleBaseStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 6b2ce4d7..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/base/ - - - - - - - -
-
-

- all files contracts/modules/internal/base/ -

-
-
- 100% - Statements - 88/88 -
-
- 96.55% - Branches - 56/58 -
-
- 100% - Functions - 18/18 -
-
- 100% - Lines - 112/112 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
SnapshotModuleBase.sol
100%88/8896.55%56/58100%18/18100%112/112
-
-
- - - - - - - 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 deleted file mode 100644 index 53c42414..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - Code coverage report for contracts/modules/internal/ - - - - - - - -
-
-

- all files contracts/modules/internal/ -

-
-
- 100% - Statements - 45/45 -
-
- 85% - Branches - 17/20 -
-
- 100% - Functions - 21/21 -
-
- 100% - Lines - 58/58 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ERC20SnapshotModuleInternal.sol
100%20/2090%9/10100%9/9100%28/28
EnforcementModuleInternal.sol
100%12/1283.33%5/6100%5/5100%15/15
ValidationModuleInternal.sol
100%13/1375%3/4100%7/7100%15/15
-
-
- - - - - - - 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 deleted file mode 100644 index bc716af6..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/security/AuthorizationModule.sol.html +++ /dev/null @@ -1,422 +0,0 @@ - - - - Code coverage report for contracts/modules/security/AuthorizationModule.sol - - - - - - - -
-
-

- all files / contracts/modules/security/ AuthorizationModule.sol -

-
-
- 100% - Statements - 23/23 -
-
- 95.83% - Branches - 23/24 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 30/30 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -385× - -  -383× -383× -16× -16× -16× -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -16× -16× - -  -12× -12× -  -  -  -40× -40× - - -  - -  -  -36× -  -  -  -10× -10× - - -  - -  -  - -  -  -  -  -  -  -  -  -  -  -1285× -760× -  -525× -  -  -  -  -  -  -  -  -  -  -84× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
-import "../../libraries/Errors.sol";
-import "../../interfaces/engine/IAuthorizationEngine.sol";
- 
-abstract contract AuthorizationModule is AccessControlUpgradeable {
-    /* ============ Events ============ */
-    /**
-     * @dev Emitted when a rule engine is set.
-     */
-    event AuthorizationEngine(IAuthorizationEngine indexed newAuthorizationEngine);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.AuthorizationModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant AuthorizationModuleStorageLocation = 0x59b7f077fa4ad020f9053fd2197fef0113b19f0b11dcfe516e88cbc0e9226d00;
-    /* ==== ERC-7201 State Variables === */
-    struct AuthorizationModuleStorage {
-        IAuthorizationEngine _authorizationEngine;
-    }
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev
-     *
-     * - The grant to the admin role is done by AccessControlDefaultAdminRules
-     * - The control of the zero address is done by AccessControlDefaultAdminRules
-     *
-     */
-    function __AuthorizationModule_init_unchained(address admin, IAuthorizationEngine authorizationEngine_)
-    internal EonlyInitializing {
-        if(admin == address(0)){
-            revert Errors.CMTAT_AuthorizationModule_AddressZeroNotAllowed();
-        }
-        _grantRole(DEFAULT_ADMIN_ROLE, admin);
-        if (address(authorizationEngine_) != address (0)) {
-            AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-            $._authorizationEngine = authorizationEngine_;
-            emit AuthorizationEngine(authorizationEngine_);
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    function authorizationEngine() public view virtual returns (IAuthorizationEngine) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        return $._authorizationEngine;
-    }
- 
- 
-    /*
-    * @notice set an authorizationEngine if not already set
-    * @dev once an AuthorizationEngine is set, it is not possible to unset it
-    */
-    function setAuthorizationEngine(
-        IAuthorizationEngine authorizationEngine_
-    ) external onlyRole(DEFAULT_ADMIN_ROLE) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        if (address($._authorizationEngine) != address (0)){
-            revert Errors.CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet();
-        }
-        $._authorizationEngine = authorizationEngine_;
-        emit AuthorizationEngine(authorizationEngine_);
-    }
- 
-    function grantRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        if (address($._authorizationEngine) != address (0)) {
-            bool result = $._authorizationEngine.operateOnGrantRole(role, account);
-            if(!result) {
-                // Operation rejected by the authorizationEngine
-               revert Errors.CMTAT_AuthorizationModule_InvalidAuthorization();
-            }
-        }
-        return AccessControlUpgradeable.grantRole(role, account);
-    }
- 
-    function revokeRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) {
-        AuthorizationModuleStorage storage $ = _getAuthorizationModuleStorage();
-        if (address($._authorizationEngine) != address (0)) {
-            bool result = $._authorizationEngine.operateOnRevokeRole(role, account);
-            if(!result) {
-                // Operation rejected by the authorizationEngine
-               revert Errors.CMTAT_AuthorizationModule_InvalidAuthorization();
-            }
-        }
-        return AccessControlUpgradeable.revokeRole(role, account);
-    }
- 
-    /** 
-     * @dev Returns `true` if `account` has been granted `role`.
-     */
-    function hasRole(
-        bytes32 role,
-        address account
-    ) public view virtual override(AccessControlUpgradeable) returns (bool) {
-        // The Default Admin has all roles
-        if (AccessControlUpgradeable.hasRole(DEFAULT_ADMIN_ROLE, account)) {
-            return true;
-        }
-        return AccessControlUpgradeable.hasRole(role, account);
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getAuthorizationModuleStorage() private pure returns (AuthorizationModuleStorage storage $) {
-        assembly {
-            $.slot := AuthorizationModuleStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index b0be96c4..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/security/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/security/ - - - - - - - -
-
-

- all files contracts/modules/security/ -

-
-
- 100% - Statements - 23/23 -
-
- 95.83% - Branches - 23/24 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 30/30 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
AuthorizationModule.sol
100%23/2395.83%23/24100%7/7100%30/30
-
-
- - - - - - - 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 deleted file mode 100644 index ef51ee6d..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/ValidationModule.sol.html +++ /dev/null @@ -1,518 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/controllers/ValidationModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/controllers/ ValidationModule.sol -

-
-
- 100% - Statements - 40/40 -
-
- 97.37% - Branches - 37/38 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 35/35 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -18× -18× - -  -15× -15× -  -  -  -  -  -  -  -  -  -  -20× -20× - -  -  -  -  - -  -  -  -  - -  -  -  -  - -  - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -17× -17× - -  - -  - -  - -  - -  -  -  -  -  -  -  -  -19× - -  -15× -15× -12× -  - -  -  -  -  -  -  -  -  -  -  -  -458× -18× -  -440× -  -  -  -439× -14× -  -425× -425× -60× -  -365× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-import "../../internal/ValidationModuleInternal.sol";
-import "../core/PauseModule.sol";
-import "../core/EnforcementModule.sol";
- 
-import "../../../libraries/Errors.sol";
- 
-/**
- * @dev Validation module.
- *
- * Useful for to restrict and validate transfers
- */
-abstract contract ValidationModule is
-    ValidationModuleInternal,
-    PauseModule,
-    EnforcementModule,
-    IERC1404Wrapper
-{
-    /* ============ State Variables ============ */
-    string constant TEXT_TRANSFER_OK = "No restriction";
-    string constant TEXT_UNKNOWN_CODE = "Unknown code";
- 
-    /* ============  Initializer Function ============ */
-    function __ValidationModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /*
-    * @notice set a RuleEngine
-    * @param ruleEngine_ the call will be reverted if the new value of ruleEngine is the same as the current one
-    */
-    function setRuleEngine(
-        IRuleEngine ruleEngine_
-    ) external onlyRole(DEFAULT_ADMIN_ROLE) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if ($._ruleEngine == ruleEngine_){
-             revert Errors.CMTAT_ValidationModule_SameValue();
-        }
-        $._ruleEngine = ruleEngine_;
-        emit RuleEngine(ruleEngine_);
-    }
- 
-    /**
-     * @dev ERC1404 returns the human readable explaination corresponding to the error code returned by detectTransferRestriction
-     * @param restrictionCode The error code returned by detectTransferRestriction
-     * @return message The human readable explaination corresponding to the error code returned by detectTransferRestriction
-     */
-    function messageForTransferRestriction(
-        uint8 restrictionCode
-    ) external view override returns (string memory message) {
-          ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (restrictionCode == uint8(REJECTED_CODE_BASE.TRANSFER_OK)) {
-            return TEXT_TRANSFER_OK;
-        } else if (
-            restrictionCode ==
-            uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED)
-        ) {
-            return TEXT_TRANSFER_REJECTED_PAUSED;
-        } else if (
-            restrictionCode ==
-            uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN)
-        ) {
-            return TEXT_TRANSFER_REJECTED_FROM_FROZEN;
-        } else if (
-            restrictionCode ==
-            uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN)
-        ) {
-            return TEXT_TRANSFER_REJECTED_TO_FROZEN;
-        } else if (address($._ruleEngine) != address(0)) {
-            return _messageForTransferRestriction(restrictionCode);
-        } else {
-            return TEXT_UNKNOWN_CODE;
-        }
-    }
-    
-    /**
-     * @dev ERC1404 check if _value token can be transferred from _from to _to
-     * @param from address The address which you want to send tokens from
-     * @param to address The address which you want to transfer to
-     * @param amount uint256 the amount of tokens to be transferred
-     * @return code of the rejection reason
-     */
-    function detectTransferRestriction(
-        address from,
-        address to,
-        uint256 amount
-    ) public view override returns (uint8 code) {
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (paused()) {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED);
-        } else if (frozen(from)) {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN);
-        } else if (frozen(to)) {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN);
-        } else if (address($._ruleEngine) != address(0)) {
-            return _detectTransferRestriction(from, to, amount);
-        } else {
-            return uint8(REJECTED_CODE_BASE.TRANSFER_OK);
-        }
-    }
- 
-    function validateTransfer(
-        address from,
-        address to,
-        uint256 amount
-    ) public view override returns (bool) {
-        if (!_validateTransferByModule(from, to, amount)) {
-            return false;
-        }
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (address($._ruleEngine) != address(0)) {
-            return _validateTransfer(from, to, amount);
-        }
-        return true;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function _validateTransferByModule(
-        address from,
-        address to,
-        uint256 /*amount*/
-    ) internal view returns (bool) {
-        if (paused() || frozen(from) || frozen(to)) {
-            return false;
-        }
-        return true;
-    }
- 
-    function _operateOnTransfer(address from, address to, uint256 amount) override internal returns (bool){
-        if (!_validateTransferByModule(from, to, amount)){
-            return false;
-        }
-        ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage();
-        if (address($._ruleEngine) != address(0)) {
-            return ValidationModuleInternal._operateOnTransfer(from, to, amount);
-        }
-        return true;
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index ca23daa8..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/controllers/ - - - - - - - -
-
-

- all files contracts/modules/wrapper/controllers/ -

-
-
- 100% - Statements - 40/40 -
-
- 97.37% - Branches - 37/38 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 35/35 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ValidationModule.sol
100%40/4097.37%37/38100%7/7100%35/35
-
-
- - - - - - - 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 deleted file mode 100644 index 964e3579..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/BaseModule.sol.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/BaseModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ BaseModule.sol -

-
-
- 100% - Statements - 13/13 -
-
- 87.5% - Branches - 7/8 -
-
- 100% - Functions - 8/8 -
-
- 100% - Lines - 20/20 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× -383× -383× -383× -  -  -  -  -  -  -  -10× -10× -  -  -  -10× -10× -  -  - - -  -  -  -  -  -  -  -  - - - -  -  -  -  -  -  -  -  - - - -  -  -  -  -  -  -  -  - - - -  -  -  -  -  -  -  -  -  -417× -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
- 
-abstract contract BaseModule is AuthorizationModule {
-    /* ============ State Variables ============ */
-    /** 
-    * @notice 
-    * Get the current version of the smart contract
-    */
-    string public constant VERSION = "2.5.0";
-    
-    /* ============ Events ============ */
-    event Term(string indexed newTermIndexed, string newTerm);
-    event TokenId(string indexed newTokenIdIndexed, string newTokenId);
-    event Information(
-        string indexed newInformationIndexed,
-        string newInformation
-    );
-    event Flag(uint256 indexed newFlag);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.BaseModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant BaseModuleStorageLocation = 0xa98e72f7f70574363edb12c42a03ac1feb8cc898a6e0a30f6eefbab7093e0d00;
- 
-    /* ==== ERC-7201 State Variables === */
-    struct BaseModuleStorage {
-            string _tokenId;
-            string _terms;
-            string _information;
-    }
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev Sets the values for {name} and {symbol}.
-     *
-     * All two of these values are immutable: they can only be set once during
-     * construction.
-     */
-    function __Base_init_unchained(
-        string memory tokenId_,
-        string memory terms_,
-        string memory information_
-    ) internal EonlyInitializing {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._tokenId = tokenId_;
-        $._terms = terms_;
-        $._information = information_;
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    function tokenId() public view virtual returns (string memory) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        return $._tokenId;
-    }
- 
-    function terms() public view virtual returns (string memory) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        return $._terms;
-    }
-    function information() public view virtual returns (string memory) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        return $._information;
-    }
- 
-    /** 
-    * @notice the tokenId will be changed even if the new value is the same as the current one
-    */
-    function setTokenId(
-        string calldata tokenId_
-    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._tokenId = tokenId_;
-        emit TokenId(tokenId_, tokenId_);
-    }
- 
-    /** 
-    * @notice The terms will be changed even if the new value is the same as the current one
-    */
-    function setTerms(
-        string calldata terms_
-    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._terms  = terms_;
-        emit Term(terms_, terms_);
-    }
- 
-    /** 
-    * @notice The information will be changed even if the new value is the same as the current one
-    */
-    function setInformation(
-        string calldata information_
-    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
-        BaseModuleStorage storage $ = _getBaseModuleStorage();
-        $._information  = information_;
-        emit Information(information_, information_);
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /* ============ ERC-7201 ============ */
-    function _getBaseModuleStorage() private pure returns (BaseModuleStorage storage $) {
-        assembly {
-            $.slot := BaseModuleStorageLocation
-        }
-    }
- 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index ee11870a..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BaseModule.sol.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ERC20BaseModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ ERC20BaseModule.sol -

-
-
- 100% - Statements - 13/13 -
-
- 75% - Branches - 6/8 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 20/20 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× -383× -  -  -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -10× - -  -  -  - - -  -  - -  -  -10× -  -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -10× -  - - -  -  - -  -  -  -  -  -  -  -  - - - -  - -  -  -  -  -  -  -  -  -  -  -385× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-// required OZ imports here
-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 ============ */
-    /**
-    * @notice Emitted when the specified `spender` spends the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance.
-    * @dev The allowance can be also "spend" with the function BurnFrom, but in this case, the emitted event is BurnFrom.
-    */
-    event Spend(address indexed owner, address indexed spender, uint256 value);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ERC20BaseModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant ERC20BaseModuleStorageLocation = 0x9bd8d607565c0370ae5f91651ca67fd26d4438022bf72037316600e29e6a3a00;
-    /* ==== ERC-7201 State Variables === */
-    struct ERC20BaseModuleStorage {
-        uint8 _decimals;
-    }
- 
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev Initializers: Sets the values for decimals.
-     *
-     * this value is immutable: it can only be set once during
-     * construction/initialization.
-     */
-    function __ERC20BaseModule_init_unchained(
-        uint8 decimals_
-    ) internal EonlyInitializing {
-        ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage();
-        $._decimals = decimals_;
-    }
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     *
-     * @notice Returns the number of decimals used to get its user representation.
-     * @inheritdoc ERC20Upgradeable
-     */
-    function decimals() public view virtual override returns (uint8) {
-        ERC20BaseModuleStorage storage $ = _getERC20BaseModuleStorage();
-        return $._decimals;
-    }
- 
-    /**
-     * @notice batch version of transfer
-     * @param tos can not be empty, must have the same length as values
-     * @param values can not be empty
-     * @dev See {OpenZeppelin ERC20-transfer & ERC1155-safeBatchTransferFrom}.
-     *
-     *
-     * Requirements:
-     * - `tos` and `values` must have the same length
-     * - `tos`cannot contain a zero address (check made by transfer)
-     * - the caller must have a balance cooresponding to the total values
-     */
-    function transferBatch(
-        address[] calldata tos,
-        uint256[] calldata values
-    ) public returns (bool) {
-        if (tos.length == 0) {
-            revert Errors.CMTAT_ERC20BaseModule_EmptyTos();
-        }
-        // We do not check that values is not empty since
-        // this require will throw an error in this case.
-        if (bool(tos.length != values.length)) {
-            revert Errors.CMTAT_ERC20BaseModule_TosValueslengthMismatch();
-        }
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = 0; i < tos.length; ++i) {
-            // We call directly the internal function transfer
-            // The reason is that the public function adds only the owner address recovery
-            ERC20Upgradeable._transfer(_msgSender(), tos[i], values[i]);
-        }
-        // not really useful
-        // Here only to keep the same behaviour as transfer
-        return true;
-    }
- 
-    /**
-     * @notice Transfers `value` amount of tokens from address `from` to address `to`
-     * @custom:dev-cmtat
-     * Emits a {Spend} event indicating the spended allowance.
-     * @inheritdoc ERC20Upgradeable
-     *
-     */
-    function transferFrom(
-        address from,
-        address to,
-        uint256 value
-    ) public virtual override returns (bool) {
-        bool result = ERC20Upgradeable.transferFrom(from, to, value);
-        // The result will be normally always true because OpenZeppelin will revert in case of an error
-        Eif (result) {
-            emit Spend(from, _msgSender(), value);
-        }
- 
-        return result;
-    }
- 
-    /**
-    * @param addresses list of address to know their balance
-    * @return balances ,totalSupply array with balance for each address, totalSupply
-    * @dev useful for the snapshot rule
-    */
-    function balanceInfo(address[] calldata addresses) public view returns(uint256[] memory balances , uint256 totalSupply) {
-        balances = new uint256[](addresses.length);
-        for(uint256 i = 0; i < addresses.length; ++i){
-            balances[i] = ERC20Upgradeable.balanceOf(addresses[i]);
-        }
-        totalSupply = ERC20Upgradeable.totalSupply();
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getERC20BaseModuleStorage() private pure returns (ERC20BaseModuleStorage storage $) {
-        assembly {
-            $.slot := ERC20BaseModuleStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 5af9fc26..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BurnModule.sol.html +++ /dev/null @@ -1,452 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ERC20BurnModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ ERC20BurnModule.sol -

-
-
- 100% - Statements - 14/14 -
-
- 92.86% - Branches - 13/14 -
-
- 100% - Functions - 4/4 -
-
- 100% - Lines - 18/18 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -14× -12× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -12× - -  -  -  -10× - -  -  - -18× -16× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - - -  - -  -  - - -  -  - -  - -  - -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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");
-    bytes32 public constant BURNER_FROM_ROLE = keccak256("BURNER_FROM_ROLE");
-    
-    /* ============ Events ============ */
-    /**
-    * @notice Emitted when the specified `value` amount of tokens owned by `owner`are destroyed with the given `reason`
-    */
-    event Burn(address indexed owner, uint256 value, string reason);
-    /**
-    * @notice Emitted when the specified `spender` burns the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance.
-    */
-    event BurnFrom(address indexed owner, address indexed spender, uint256 value);
- 
- 
-    /* ============  Initializer Function ============ */
-    function __ERC20BurnModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /**
-     * @notice Destroys a `value` amount of tokens from `account`, by transferring it to address(0).
-     * @dev
-     * See {ERC20-_burn}
-     * Emits a {Burn} event
-     * Emits a {Transfer} event with `to` set to the zero address  (emits inside _burn).
-     * Requirements:
-     * - the caller must have the `BURNER_ROLE`.
-     */
-    function burn(
-        address account,
-        uint256 value,
-        string calldata reason
-    ) public onlyRole(BURNER_ROLE) {
-        _burn(account, value);
-        emit Burn(account, value, reason);
-    }
- 
- 
-    /**
-     *
-     * @notice batch version of {burn}.
-     * @dev
-     * See {ERC20-_burn} and {OpenZeppelin ERC1155_burnBatch}.
-     *
-     * For each burn action:
-     * -Emits a {Burn} event
-     * -Emits a {Transfer} event with `to` set to the zero address  (emits inside _burn).
-     * The burn `reason`is the same for all `accounts` which tokens are burnt.
-     * Requirements:
-     * - `accounts` and `values` must have the same length
-     * - the caller must have the `BURNER_ROLE`.
-     */
-    function burnBatch(
-        address[] calldata accounts,
-        uint256[] calldata values,
-        string calldata reason
-    ) public onlyRole(BURNER_ROLE) {
-        if (accounts.length == 0) {
-            revert Errors.CMTAT_BurnModule_EmptyAccounts();
-        }
-        // We do not check that values is not empty since
-        // this require will throw an error in this case.
-        if (bool(accounts.length != values.length)) {
-            revert Errors.CMTAT_BurnModule_AccountsValueslengthMismatch();
-        }
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = 0; i < accounts.length; ++i ) {
-            _burn(accounts[i], values[i]);
-            emit Burn(accounts[i], values[i], reason);
-        }
-    }
- 
-    /**
-     * @notice Destroys `amount` tokens from `account`, deducting from the caller's
-     * allowance.
-     * @dev 
-     * Can be used to authorize a bridge (e.g. CCIP) to burn token owned by the bridge
-     * No string parameter reason to be compatible with Bridge, e.g. CCIP
-     * 
-     * See {ERC20-_burn} and {ERC20-allowance}.
-     *
-     * Requirements:
-     *
-     * - the caller must have allowance for ``accounts``'s tokens of at least
-     * `value`.
-     */
-    function burnFrom(address account, uint256 value)
-        public
-        onlyRole(BURNER_FROM_ROLE)
-    {
-        // Allowance check
-        address sender =  _msgSender();
-        uint256 currentAllowance = allowance(account, sender);
-        if(currentAllowance < value){
-            // ERC-6093
-            revert ERC20InsufficientAllowance(sender, currentAllowance, value);
-        }
-        // Update allowance
-        unchecked {
-            _approve(account, sender, currentAllowance - value);
-        }
-        // burn
-        _burn(account, value);
-        // We also emit a burn event since its a burn operation
-        emit Burn(account, value, "burnFrom");
-        // Specific event for the operation
-        emit BurnFrom(account, sender, value);
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index ec866ec8..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20MintModule.sol.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ERC20MintModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ ERC20MintModule.sol -

-
-
- 100% - Statements - 7/7 -
-
- 90% - Branches - 9/10 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 9/9 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -291× -291× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -24× - -  -  -  -22× - -  -  -18× -54× -54× -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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");
-    /* ============ Events ============ */
-    /**
-     * @notice Emitted when the specified  `value` amount of new tokens are created and
-     * allocated to the specified `account`.
-     */
-    event Mint(address indexed account, uint256 value);
- 
- 
-    /* ============  Initializer Function ============ */
-    function __ERC20MintModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice  Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0)
-     * @param account token receiver
-     * @param value amount of tokens
-     * @dev
-     * See {OpenZeppelin ERC20-_mint}.
-     * Emits a {Mint} event.
-     * Emits a {Transfer} event with `from` set to the zero address (emits inside _mint).
-     *
-     * Requirements:
-     * - `account` cannot be the zero address (check made by _mint).
-     * - The caller must have the `MINTER_ROLE`.
-     */
-    function mint(address account, uint256 value) public onlyRole(MINTER_ROLE) {
-        _mint(account, value);
-        emit Mint(account, value);
-    }
- 
-    /**
-     *
-     * @notice batch version of {mint}
-     * @dev
-     * See {OpenZeppelin ERC20-_mint} and {OpenZeppelin ERC1155_mintBatch}.
-     *
-     * For each mint action:
-     * - Emits a {Mint} event.
-     * - Emits a {Transfer} event with `from` set to the zero address (emits inside _mint).
-     *
-     * Requirements:
-     * - `accounts` and `values` must have the same length
-     * - `accounts` cannot contain a zero address (check made by _mint).
-     * - the caller must have the `MINTER_ROLE`.
-     */
-    function mintBatch(
-        address[] calldata accounts,
-        uint256[] calldata values
-    ) public onlyRole(MINTER_ROLE) {
-        if (accounts.length == 0) {
-            revert Errors.CMTAT_MintModule_EmptyAccounts();
-        }
-        // We do not check that values is not empty since
-        // this require will throw an error in this case.
-        if (bool(accounts.length != values.length)) {
-            revert Errors.CMTAT_MintModule_AccountsValueslengthMismatch();
-        }
-        // No need of unchecked block since Soliditiy 0.8.22
-        for (uint256 i = 0; i < accounts.length; ++i ) {
-            _mint(accounts[i], values[i]);
-            emit Mint(accounts[i], values[i]);
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 94408cc1..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/EnforcementModule.sol.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/EnforcementModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ EnforcementModule.sol -

-
-
- 100% - Statements - 2/2 -
-
- 83.33% - Branches - 5/6 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 2/2 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -22× -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-import "../../internal/EnforcementModuleInternal.sol";
- 
-/**
- * @title Enforcement module.
- * @dev 
- *
- * Allows the issuer to freeze transfers from a given address
- */
-abstract contract EnforcementModule is
-    EnforcementModuleInternal,
-    AuthorizationModule
-{
-    /* ============ State Variables ============ */
-    bytes32 public constant ENFORCER_ROLE = keccak256("ENFORCER_ROLE");
-    string internal constant TEXT_TRANSFER_REJECTED_FROM_FROZEN =
-        "Address FROM is frozen";
- 
-    string internal constant TEXT_TRANSFER_REJECTED_TO_FROZEN =
-        "Address TO is frozen";
- 
-    /* ============  Initializer Function ============ */
-    function __EnforcementModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice Freezes an address.
-     * @param account the account to freeze
-     * @param reason indicate why the account was frozen.
-     */
-    function freeze(
-        address account,
-        string calldata reason
-    ) public onlyRole(ENFORCER_ROLE) returns (bool) {
-        return _freeze(account, reason);
-    }
- 
-    /**
-     * @notice Unfreezes an address.
-     * @param account the account to unfreeze
-     * @param reason indicate why the account was unfrozen.
-     *
-     *
-     */
-    function unfreeze(
-        address account,
-        string calldata reason
-    ) public onlyRole(ENFORCER_ROLE) returns (bool) {
-        return _unfreeze(account, reason);
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 6d02c4f3..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/PauseModule.sol.html +++ /dev/null @@ -1,392 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/PauseModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/core/ PauseModule.sol -

-
-
- 100% - Statements - 9/9 -
-
- 90% - Branches - 9/10 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 12/12 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -14× -  -  -  -  -  -  -  -  -  -  -  - - - -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - - - -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  -  -12× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
-import "../../security/AuthorizationModule.sol";
- 
-/**
- * @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. 
- *
- * Useful for scenarios such as preventing trades until the end of an evaluation
- * period, or having an emergency switch for freezing all token transfers in the
- * event of a large bug.
- */
-abstract contract PauseModule is PausableUpgradeable, AuthorizationModule {
-    /* ============ State Variables ============ */
-    bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
-    string internal constant TEXT_TRANSFER_REJECTED_PAUSED =
-        "All transfers paused";
-    /* ============ Events ============ */
-    event Deactivated(address account);
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.ERC20BaseModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant PauseModuleStorageLocation = 0x9bd8d607565c0370ae5f91651ca67fd26d4438022bf72037316600e29e6a3a00;
-    /* ==== ERC-7201 State Variables === */
-    struct PauseModuleStorage {
-        bool _isDeactivated;
-    }
-    /* ============  Initializer Function ============ */
-    function __PauseModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
-    
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /**
-     * @notice Pauses all token transfers.
-     * @dev See {ERC20Pausable} and {Pausable-_pause}.
-     *
-     * Requirements:
-     *
-     * - the caller must have the `PAUSER_ROLE`.
-     *
-     */
-    function pause() public onlyRole(PAUSER_ROLE) {
-        _pause();
-    }
- 
-    /**
-     * @notice Unpauses all token transfers.
-     * @dev See {ERC20Pausable} and {Pausable-_unpause}.
-     *
-     * Requirements:
-     *
-     * - the caller must have the `PAUSER_ROLE`.
-     */
-    function unpause() public onlyRole(PAUSER_ROLE) {
-        PauseModuleStorage storage $ = _getPauseModuleStorage();
-        if($._isDeactivated){
-            revert Errors.CMTAT_PauseModule_ContractIsDeactivated();
-        }
-        _unpause();
-    }
- 
-    /**
-    * @notice  deactivate the contract
-    * Warning: the operation is irreversible, be careful
-    * @dev
-    * Emits a {Deactivated} event indicating that the contract has been deactivated.
-    * Requirements:
-    *
-    * - the caller must have the `DEFAULT_ADMIN_ROLE`.
-    */
-    function deactivateContract()
-        public
-        onlyRole(DEFAULT_ADMIN_ROLE)
-    {
-        PauseModuleStorage storage $ = _getPauseModuleStorage();
-        $._isDeactivated = true;
-       _pause();
-       emit Deactivated(_msgSender());
-    }
- 
-    /**
-    * @notice Returns true if the contract is deactivated, and false otherwise.
-    */
-    function deactivated() view public returns (bool){
-        PauseModuleStorage storage $ = _getPauseModuleStorage();
-        return $._isDeactivated;
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
- 
-    /* ============ ERC-7201 ============ */
-    function _getPauseModuleStorage() private pure returns (PauseModuleStorage storage $) {
-        assembly {
-            $.slot := PauseModuleStorageLocation
-        }
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index b00ff654..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/index.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/core/ - - - - - - - -
-
-

- all files contracts/modules/wrapper/core/ -

-
-
- 100% - Statements - 58/58 -
-
- 87.5% - Branches - 49/56 -
-
- 100% - Functions - 30/30 -
-
- 100% - Lines - 81/81 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
BaseModule.sol
100%13/1387.5%7/8100%8/8100%20/20
ERC20BaseModule.sol
100%13/1375%6/8100%6/6100%20/20
ERC20BurnModule.sol
100%14/1492.86%13/14100%4/4100%18/18
ERC20MintModule.sol
100%7/790%9/10100%3/3100%9/9
EnforcementModule.sol
100%2/283.33%5/6100%3/3100%2/2
PauseModule.sol
100%9/990%9/10100%6/6100%12/12
-
-
- - - - - - - 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 deleted file mode 100644 index 4156c3c8..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DebtModule.sol.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/DebtModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ DebtModule.sol -

-
-
- 100% - Statements - 12/12 -
-
- 91.67% - Branches - 11/12 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 18/18 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× - - - -  -  -  -  -  -  -  -  - - -  -  -  -  -  -  -  -  -  - - - -  - - -  -  -  - - - -  -  -  -  - - - -  -  -  -  -  -  -  -  -  -  -22× -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-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");
-    /* ============ ERC-7201 ============ */
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.DebtModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant DebtModuleStorageLocation = 0xf8a315cc5f2213f6481729acd86e55db7ccc930120ccf9fb78b53dcce75f7c00;
- 
-    /* ==== ERC-7201 State Variables === */
-    struct DebtModuleStorage {
-        IDebtEngine _debtEngine;
-    }
-    /* ============ Events ============ */
-    /**
-    * @dev Emitted when a rule engine is set.
-    */
-    event DebtEngine(IDebtEngine indexed newDebtEngine);
- 
- 
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev
-     *
-     * - The grant to the admin role is done by AccessControlDefaultAdminRules
-     * - The control of the zero address is done by AccessControlDefaultAdminRules
-     *
-     */
-    function __DebtModule_init_unchained(IDebtEngine debtEngine_)
-    internal EonlyInitializing {
-        if (address(debtEngine_) != address (0)) {
-            DebtModuleStorage storage $ = _getDebtModuleStorage();
-            $._debtEngine = debtEngine_;
-            emit DebtEngine(debtEngine_);
-        }
-        
- 
-    }
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function debtEngine() public view virtual returns (IDebtEngine) {
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        return $._debtEngine;
-    }
- 
-    /*
-    * @notice set an authorizationEngine if not already set
-    * 
-    */
-    function setDebtEngine(
-        IDebtEngine debtEngine_
-    ) external onlyRole(DEBT_ROLE) {
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        if ($._debtEngine == debtEngine_){
-            revert Errors.CMTAT_DebtModule_SameValue();
-        }
-        $._debtEngine = debtEngine_;
-        emit DebtEngine(debtEngine_);
-    }
- 
-    function debt() public view returns(DebtBase memory debtBaseResult){
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        if(address($._debtEngine) != address(0)){
-            debtBaseResult =  $._debtEngine.debt();
-        }
-    }
- 
-    function creditEvents() public view returns(CreditEvents memory creditEventsResult){
-        DebtModuleStorage storage $ = _getDebtModuleStorage();
-        if(address($._debtEngine) != address(0)){
-            creditEventsResult =  $._debtEngine.creditEvents();
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    
-    /* ============ ERC-7201 ============ */
-    function _getDebtModuleStorage() private pure returns (DebtModuleStorage storage $) {
-        assembly {
-            $.slot := DebtModuleStorageLocation
-        }
-    }
- 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index d91a9797..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DocumentModule.sol.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/DocumentModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ DocumentModule.sol -

-
-
- 100% - Statements - 14/14 -
-
- 91.67% - Branches - 11/12 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 19/19 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -383× -12× -12× -12× -  -  -  -  -  -  -  -28× -28× -  -  -  -  -  -  -  -  -  -16× -16× - -  -14× -14× -  -  -  -  -18× -18× -16× -  - -  -  -  -  - - - -  -  -  -  -  -  -  -  -  -  -80× -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-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 ============ */
-    /**
-     * @dev Emitted when a rule engine is set.
-     */
-    event DocumentEngine(IERC1643 indexed newDocumentEngine);
-   
-    /* ============ ERC-7201 ============ */
-     bytes32 public constant DOCUMENT_ROLE = keccak256("DOCUMENT_ROLE");
-    // keccak256(abi.encode(uint256(keccak256("CMTAT.storage.DocumentModule")) - 1)) & ~bytes32(uint256(0xff))
-    bytes32 private constant DocumentModuleStorageLocation = 0x5edcb2767f407e647b6a4171ef53e8015a3eff0bb2b6e7765b1a26332bc43000;
-    /* ==== ERC-7201 State Variables === */
-    struct DocumentModuleStorage {
-        IERC1643  _documentEngine;
-    }
- 
-    /* ============  Initializer Function ============ */
-    /**
-     * @dev
-     *
-     * - The grant to the admin role is done by AccessControlDefaultAdminRules
-     * - The control of the zero address is done by AccessControlDefaultAdminRules
-     *
-     */
-    function __DocumentModule_init_unchained(IERC1643 documentEngine_)
-    internal EonlyInitializing {
-        if (address(documentEngine_) != address (0)) {
-            DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-            $._documentEngine = documentEngine_;
-            emit DocumentEngine(documentEngine_);
-        }
-    }
- 
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    function documentEngine() public view virtual returns (IERC1643) {
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        return $._documentEngine;
-    }
- 
-    /*
-    * @notice set an authorizationEngine if not already set
-    * 
-    */
-    function setDocumentEngine(
-        IERC1643 documentEngine_
-    ) external onlyRole(DOCUMENT_ROLE) {
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        if ($._documentEngine == documentEngine_){
-             revert Errors.CMTAT_DocumentModule_SameValue();
-        }
-        $._documentEngine = documentEngine_;
-        emit DocumentEngine(documentEngine_);
-    }
- 
- 
-    function getDocument(bytes32 _name) public view returns (string memory, bytes32, uint256){
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        if(address($._documentEngine) != address(0)){
-            return $._documentEngine.getDocument( _name);
-        } else{
-            return ("",0x0, 0);
-        }
-    }
- 
-    function getAllDocuments() public view returns (bytes32[] memory documents){
-        DocumentModuleStorage storage $ = _getDocumentModuleStorage();
-        if(address($._documentEngine) != address(0)){
-            documents =  $._documentEngine.getAllDocuments();
-        }
-    }
- 
- 
-    /*//////////////////////////////////////////////////////////////
-                            INTERNAL/PRIVATE FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
- 
-    /* ============ ERC-7201 ============ */
-    function _getDocumentModuleStorage() private pure returns (DocumentModuleStorage storage $) {
-        assembly {
-            $.slot := DocumentModuleStorageLocation
-        }
-    } 
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 405ba87a..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ ERC20SnapshotModule.sol -

-
-
- 100% - Statements - 5/5 -
-
- 91.67% - Branches - 11/12 -
-
- 100% - Functions - 6/6 -
-
- 100% - Lines - 5/5 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -170× -  -  -  -  -  -  -  -  -  -  -12× -  -  -  -  -  -  -  -  -  -  -  -22× -  -  -  -  -  -  -  -  -  -  -14× -  -  -  -  -  -  -  -  -  -10× -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../security/AuthorizationModule.sol";
-import "../../internal/ERC20SnapshotModuleInternal.sol";
- 
-/**
- * @title Snapshot module
- * @dev 
- *
- * Useful to take a snapshot of token holder balance and total supply at a specific time
- */
- 
-abstract contract ERC20SnapshotModule is
-    ERC20SnapshotModuleInternal,
-    AuthorizationModule
-{
-    /* ============ State Variables ============ */
-    bytes32 public constant SNAPSHOOTER_ROLE = keccak256("SNAPSHOOTER_ROLE");
-    /* ============  Initializer Function ============ */
-    function __ERC20SnasphotModule_init_unchained() internal EonlyInitializing {
-        // no variable to initialize
-    }
-    /*//////////////////////////////////////////////////////////////
-                            PUBLIC/EXTERNAL FUNCTIONS
-    //////////////////////////////////////////////////////////////*/
-    /** 
-    * @notice 
-    * Schedule a snapshot at the given time specified as a number of seconds since epoch.
-    * The time cannot be before the time of the latest scheduled, but not yet created snapshot.  
-    */
-    function scheduleSnapshot(uint256 time) public onlyRole(SNAPSHOOTER_ROLE) {
-        _scheduleSnapshot(time);
-    }
- 
-    /** 
-    * @notice 
-    * Schedule a snapshot at the given time specified as a number of seconds since epoch.
-    * The time cannot be before the time of the latest scheduled, but not yet created snapshot.  
-    */
-    function scheduleSnapshotNotOptimized(
-        uint256 time
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _scheduleSnapshotNotOptimized(time);
-    }
- 
-    /** 
-    * @notice
-    * Reschedule the scheduled snapshot, but not yet created snapshot with the given oldTime to be created at the given newTime specified as a number of seconds since epoch. 
-    * The newTime cannot be before the time of the previous scheduled, but not yet created snapshot, or after the time fo the next scheduled snapshot. 
-    */
-    function rescheduleSnapshot(
-        uint256 oldTime,
-        uint256 newTime
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _rescheduleSnapshot(oldTime, newTime);
-    }
- 
-    /**
-    * @notice 
-    * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. 
-    * There should not be any other snapshots scheduled after this one. 
-    */
-    function unscheduleLastSnapshot(
-        uint256 time
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _unscheduleLastSnapshot(time);
-    }
- 
-    /** 
-    * @notice 
-    * Cancel creation of the scheduled snapshot, but not yet created snapshot with the given time. 
-    */
-    function unscheduleSnapshotNotOptimized(
-        uint256 time
-    ) public onlyRole(SNAPSHOOTER_ROLE) {
-        _unscheduleSnapshotNotOptimized(time);
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index a204efaa..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/MetaTxModule.sol.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/MetaTxModule.sol - - - - - - - -
-
-

- all files / contracts/modules/wrapper/extensions/ MetaTxModule.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol";
- 
-/**
- * @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.
- * ()
- */
-abstract contract MetaTxModule is ERC2771ContextUpgradeable {
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address trustedForwarder
-    ) ERC2771ContextUpgradeable(trustedForwarder) {
-        // Nothing to do
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 4d80eba3..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/index.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - Code coverage report for contracts/modules/wrapper/extensions/ - - - - - - - -
-
-

- all files contracts/modules/wrapper/extensions/ -

-
-
- 100% - Statements - 31/31 -
-
- 91.67% - Branches - 33/36 -
-
- 100% - Functions - 19/19 -
-
- 100% - Lines - 42/42 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
DebtModule.sol
100%12/1291.67%11/12100%6/6100%18/18
DocumentModule.sol
100%14/1491.67%11/12100%6/6100%19/19
ERC20SnapshotModule.sol
100%5/591.67%11/12100%6/6100%5/5
MetaTxModule.sol
100%0/0100%0/0100%1/1100%0/0
-
-
- - - - - - - 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 deleted file mode 100644 index f951aa06..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - Code coverage report for contracts/test/proxy/CMTAT_PROXY_TEST.sol - - - - - - - -
-
-

- all files / contracts/test/proxy/ CMTAT_PROXY_TEST.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../CMTAT_PROXY.sol";
- 
- 
-/**
- * @title a contrat used to test the proxy upgrade functionality
- */
-contract CMTAT_PROXY_TEST is CMTAT_PROXY {
-    /**
-     * @notice Contract version for the deployment with a proxy
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) CMTAT_PROXY(forwarderIrrevocable) {
-        // Nothing to do
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index aa1985b7..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - Code coverage report for contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol - - - - - - - -
-
-

- all files / contracts/test/proxy/ CMTAT_PROXY_TEST_UUPS.sol -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 1/1 -
-
- 100% - Lines - 0/0 -
-
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
//SPDX-License-Identifier: MPL-2.0
- 
-pragma solidity ^0.8.20;
- 
-import "../../CMTAT_PROXY_UUPS.sol";
- 
- 
-/**
- * @title a contrat used to test the proxy upgrade functionality
- */
-contract CMTAT_PROXY_TEST_UUPS is CMTAT_PROXY_UUPS {
-    /**
-     * @notice Contract version for the deployment with a proxy
-     * @param forwarderIrrevocable address of the forwarder, required for the gasless support
-     */
-    /// @custom:oz-upgrades-unsafe-allow constructor
-    constructor(
-        address forwarderIrrevocable
-    ) CMTAT_PROXY_UUPS(forwarderIrrevocable) {
-        // Nothing to do
-    }
-}
- 
-
-
- - - - - - - 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 deleted file mode 100644 index 0e09264a..00000000 --- a/doc/general/test/coverage/lcov-report/contracts/test/proxy/index.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - Code coverage report for contracts/test/proxy/ - - - - - - - -
-
-

- all files contracts/test/proxy/ -

-
-
- 100% - Statements - 0/0 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 2/2 -
-
- 100% - Lines - 0/0 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
CMTAT_PROXY_TEST.sol
100%0/0100%0/0100%1/1100%0/0
CMTAT_PROXY_TEST_UUPS.sol
100%0/0100%0/0100%1/1100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/index.html b/doc/general/test/coverage/lcov-report/index.html deleted file mode 100644 index f002f99b..00000000 --- a/doc/general/test/coverage/lcov-report/index.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-
-

- / -

-
-
- 99.72% - Statements - 362/363 -
-
- 92.42% - Branches - 244/264 -
-
- 99.28% - Functions - 138/139 -
-
- 99.78% - Lines - 462/463 -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
contracts/
100%5/575%3/4100%5/5100%5/5
contracts/deployment/
100%33/33100%10/10100%16/16100%51/51
contracts/deployment/libraries/
100%8/8100%10/10100%4/4100%16/16
contracts/interfaces/
100%0/0100%0/0100%0/0100%0/0
contracts/interfaces/draft-IERC1404/
100%0/0100%0/0100%0/0100%0/0
contracts/interfaces/engine/
100%0/0100%0/0100%0/0100%0/0
contracts/libraries/
100%0/0100%0/0100%0/0100%0/0
contracts/modules/
96.88%31/3275%6/890%9/1096.97%32/33
contracts/modules/internal/
100%45/4585%17/20100%21/21100%58/58
contracts/modules/internal/base/
100%88/8896.55%56/58100%18/18100%112/112
contracts/modules/security/
100%23/2395.83%23/24100%7/7100%30/30
contracts/modules/wrapper/controllers/
100%40/4097.37%37/38100%7/7100%35/35
contracts/modules/wrapper/core/
100%58/5887.5%49/56100%30/30100%81/81
contracts/modules/wrapper/extensions/
100%31/3191.67%33/36100%19/19100%42/42
contracts/test/proxy/
100%0/0100%0/0100%2/2100%0/0
-
-
- - - - - - - diff --git a/doc/general/test/coverage/lcov-report/prettify.css b/doc/general/test/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/doc/general/test/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/doc/general/test/coverage/lcov-report/prettify.js b/doc/general/test/coverage/lcov-report/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/doc/general/test/coverage/lcov-report/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/doc/general/test/coverage/lcov-report/sort-arrow-sprite.png b/doc/general/test/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/doc/general/test/coverage/lcov.info b/doc/general/test/coverage/lcov.info deleted file mode 100644 index 3e6109f2..00000000 --- a/doc/general/test/coverage/lcov.info +++ /dev/null @@ -1,1374 +0,0 @@ -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_PROXY_UUPS.sol -FN:20,constructor -FN:41,initialize -FN:53,_authorizeUpgrade -FNF:3 -FNH:3 -FNDA:9,constructor -FNDA:5,initialize -FNDA:2,_authorizeUpgrade -DA:22,9 -DA:42,5 -DA:46,5 -LF:3 -LH:3 -BRDA:41,1,0,5 -BRDA:41,1,1,0 -BRDA:53,2,0,2 -BRDA:53,2,1,1 -BRF:4 -BRH:3 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_PROXY.sol -FN:19,constructor -FNF:1 -FNH:1 -FNDA:198,constructor -DA:21,198 -LF:1 -LH:1 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_STANDALONE.sol -FN:27,constructor -FNF:1 -FNH:1 -FNDA:191,constructor -DA:30,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:22,constructor -FN:44,deployCMTAT -FN:58,computedProxyAddress -FN:72,implementation -FN:83,_deployBytecode -FN:97,_getBytecode -FNF:6 -FNH:6 -FNDA:7,constructor -FNDA:3,deployCMTAT -FNDA:2,computedProxyAddress -FNDA:1,implementation -FNDA:3,_deployBytecode -FNDA:5,_getBytecode -DA:23,7 -DA:24,1 -DA:26,6 -DA:28,1 -DA:30,6 -DA:45,3 -DA:46,3 -DA:49,3 -DA:50,3 -DA:62,2 -DA:65,2 -DA:73,1 -DA:84,3 -DA:85,3 -DA:86,3 -DA:87,3 -DA:88,3 -DA:89,3 -DA:90,3 -DA:100,5 -DA:107,5 -LF:21 -LH:21 -BRDA:23,1,0,1 -BRDA:23,1,1,6 -BRDA:26,2,0,1 -BRDA:26,2,1,5 -BRDA:44,3,0,3 -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:22,constructor -FN:35,deployCMTAT -FN:51,computedProxyAddress -FN:71,_deployBytecode -FN:85,_getBytecode -FNF:5 -FNH:5 -FNDA:9,constructor -FNDA:7,deployCMTAT -FNDA:2,computedProxyAddress -FNDA:5,_deployBytecode -FNDA:7,_getBytecode -DA:36,7 -DA:37,5 -DA:40,5 -DA:42,5 -DA:56,2 -DA:59,2 -DA:72,5 -DA:73,5 -DA:74,5 -DA:75,5 -DA:76,5 -DA:77,5 -DA:78,5 -DA:88,7 -DA:95,7 -LF:15 -LH:15 -BRDA:35,1,0,7 -BRDA:35,1,1,2 -BRF:2 -BRH:2 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_UUPS_FACTORY.sol -FN:21,constructor -FN:34,deployCMTAT -FN:49,computedProxyAddress -FN:66,_deployBytecode -FN:80,_getBytecode -FNF:5 -FNH:5 -FNDA:5,constructor -FNDA:2,deployCMTAT -FNDA:2,computedProxyAddress -FNDA:2,_deployBytecode -FNDA:4,_getBytecode -DA:35,2 -DA:36,2 -DA:39,2 -DA:41,2 -DA:53,2 -DA:56,2 -DA:67,2 -DA:68,2 -DA:69,2 -DA:70,2 -DA:71,2 -DA:72,2 -DA:73,2 -DA:83,4 -DA:90,4 -LF:15 -LH:15 -BRDA:34,1,0,2 -BRDA:34,1,1,1 -BRF:2 -BRH:2 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryBase.sol -FN:18,constructor -FNF:1 -FNH:1 -FNDA:16,constructor -DA:19,16 -DA:20,2 -DA:22,14 -LF:3 -LH:3 -BRDA:19,1,0,2 -BRDA:19,1,1,14 -BRF:2 -BRH:2 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryInvariant.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryRoot.sol -FN:25,constructor -FN:45,CMTATProxyAddress -FN:58,_checkAndDetermineDeploymentSalt -FNF:3 -FNH:3 -FNDA:25,constructor -FNDA:14,CMTATProxyAddress -FNDA:12,_checkAndDetermineDeploymentSalt -DA:26,25 -DA:27,2 -DA:29,23 -DA:30,13 -DA:32,23 -DA:33,23 -DA:46,14 -DA:59,12 -DA:60,5 -DA:61,2 -DA:63,3 -DA:64,3 -DA:67,7 -LF:13 -LH:13 -BRDA:26,1,0,2 -BRDA:26,1,1,23 -BRDA:29,2,0,13 -BRDA:29,2,1,10 -BRDA:59,3,0,5 -BRDA:59,3,1,7 -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 -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/draft-IERC1643.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IAuthorizationEngine.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IDebtEngine.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IDebtGlobal.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IRuleEngine.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICCIPToken.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICMTATConstructor.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICMTATSnapshot.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/libraries/Errors.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/libraries/FactoryErrors.sol -FNF:0 -FNH:0 -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/CMTAT_BASE.sol -FN:64,initialize -FN:82,__CMTAT_init -FN:131,__CMTAT_init_unchained -FN:143,decimals -FN:153,transferFrom -FN:177,burnAndMint -FN:189,_update -FN:211,_msgSender -FN:223,_contextSuffixLength -FN:232,_msgData -FNF:10 -FNH:9 -FNDA:385,initialize -FNDA:385,__CMTAT_init -FNDA:383,__CMTAT_init_unchained -FNDA:2,decimals -FNDA:10,transferFrom -FNDA:6,burnAndMint -FNDA:439,_update -FNDA:1391,_msgSender -FNDA:1391,_contextSuffixLength -FNDA:0,_msgData -DA:65,385 -DA:85,385 -DA:86,385 -DA:88,385 -DA:90,385 -DA:91,385 -DA:94,385 -DA:99,385 -DA:100,385 -DA:102,385 -DA:106,385 -DA:107,383 -DA:108,383 -DA:110,383 -DA:111,383 -DA:113,383 -DA:114,383 -DA:120,383 -DA:121,383 -DA:122,383 -DA:125,383 -DA:128,383 -DA:150,2 -DA:163,10 -DA:178,6 -DA:179,4 -DA:194,439 -DA:195,17 -DA:202,422 -DA:203,422 -DA:217,1391 -DA:226,1391 -DA:238,0 -LF:33 -LH:32 -BRDA:64,1,0,385 -BRDA:64,1,1,1 -BRDA:82,2,0,385 -BRDA:82,2,1,0 -BRDA:131,3,0,383 -BRDA:131,3,1,0 -BRDA:194,4,0,17 -BRDA:194,4,1,422 -BRF:8 -BRH:6 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/base/SnapshotModuleBase.sol -FN:70,__SnapshotModuleBase_init_unchained -FN:82,getAllSnapshots -FN:91,getNextSnapshots -FN:131,_scheduleSnapshot -FN:158,_scheduleSnapshotNotOptimized -FN:187,_rescheduleSnapshot -FN:224,_unscheduleLastSnapshot -FN:245,_unscheduleSnapshotNotOptimized -FN:264,_valueAt -FN:297,_updateSnapshot -FN:314,_setCurrentSnapshot -FN:329,_lastSnapshot -FN:343,_findScheduledSnapshotIndex -FN:370,_findScheduledMostRecentPastSnapshot -FN:403,_findAndRevertScheduledSnapshotIndex -FN:412,_checkTimeInThePast -FN:420,_checkTimeSnapshotAlreadyDone -FN:427,_getSnapshotModuleBaseStorage -FNF:18 -FNH:18 -FNDA:385,__SnapshotModuleBase_init_unchained -FNDA:2,getAllSnapshots -FNDA:76,getNextSnapshots -FNDA:170,_scheduleSnapshot -FNDA:12,_scheduleSnapshotNotOptimized -FNDA:22,_rescheduleSnapshot -FNDA:14,_unscheduleLastSnapshot -FNDA:10,_unscheduleSnapshotNotOptimized -FNDA:1920,_valueAt -FNDA:844,_updateSnapshot -FNDA:422,_setCurrentSnapshot -FNDA:844,_lastSnapshot -FNDA:36,_findScheduledSnapshotIndex -FNDA:490,_findScheduledMostRecentPastSnapshot -FNDA:26,_findAndRevertScheduledSnapshotIndex -FNDA:202,_checkTimeInThePast -FNDA:46,_checkTimeSnapshotAlreadyDone -FNDA:4862,_getSnapshotModuleBaseStorage -DA:83,2 -DA:84,2 -DA:92,76 -DA:93,76 -DA:95,76 -DA:96,68 -DA:101,68 -DA:102,48 -DA:105,20 -DA:107,8 -DA:110,8 -DA:112,8 -DA:113,8 -DA:120,28 -DA:132,170 -DA:134,170 -DA:136,168 -DA:138,94 -DA:141,94 -DA:142,2 -DA:148,2 -DA:151,164 -DA:152,164 -DA:159,12 -DA:160,12 -DA:161,10 -DA:163,10 -DA:164,2 -DA:167,8 -DA:168,2 -DA:170,6 -DA:173,6 -DA:174,10 -DA:175,10 -DA:176,10 -DA:179,6 -DA:181,8 -DA:188,22 -DA:190,22 -DA:191,20 -DA:192,18 -DA:193,2 -DA:195,16 -DA:196,12 -DA:197,8 -DA:198,8 -DA:199,2 -DA:205,2 -DA:208,8 -DA:209,4 -DA:210,2 -DA:216,6 -DA:218,6 -DA:225,14 -DA:227,14 -DA:228,10 -DA:229,2 -DA:232,8 -DA:233,2 -DA:235,6 -DA:236,6 -DA:246,10 -DA:247,10 -DA:249,10 -DA:251,8 -DA:252,6 -DA:254,8 -DA:282,1920 -DA:284,1920 -DA:285,1484 -DA:287,436 -DA:301,844 -DA:302,844 -DA:303,844 -DA:304,36 -DA:305,36 -DA:315,422 -DA:316,422 -DA:320,422 -DA:321,18 -DA:322,18 -DA:332,844 -DA:333,836 -DA:335,8 -DA:346,36 -DA:347,36 -DA:348,36 -DA:350,36 -DA:354,22 -DA:358,8 -DA:362,6 -DA:375,490 -DA:376,490 -DA:378,490 -DA:382,404 -DA:385,86 -DA:386,86 -DA:388,86 -DA:389,116 -DA:390,52 -DA:391,52 -DA:394,64 -DA:397,86 -DA:406,26 -DA:407,26 -DA:408,6 -DA:410,20 -DA:413,202 -DA:414,6 -DA:421,46 -DA:422,6 -DA:428,4862 -LF:112 -LH:112 -BRDA:70,1,0,385 -BRDA:70,1,1,0 -BRDA:95,2,0,68 -BRDA:95,2,1,8 -BRDA:101,3,0,48 -BRDA:101,3,1,20 -BRDA:105,4,0,8 -BRDA:105,4,1,12 -BRDA:136,5,0,94 -BRDA:136,5,1,74 -BRDA:141,6,0,2 -BRDA:141,6,1,92 -BRDA:147,7,0,2 -BRDA:147,7,1,90 -BRDA:163,8,0,2 -BRDA:163,8,1,8 -BRDA:167,9,0,2 -BRDA:167,9,1,6 -BRDA:192,10,0,2 -BRDA:192,10,1,16 -BRDA:196,11,0,8 -BRDA:196,11,1,4 -BRDA:198,12,0,2 -BRDA:198,12,1,6 -BRDA:204,13,0,2 -BRDA:204,13,1,4 -BRDA:208,14,0,4 -BRDA:208,14,1,4 -BRDA:209,15,0,2 -BRDA:209,15,1,2 -BRDA:228,16,0,2 -BRDA:228,16,1,8 -BRDA:232,17,0,2 -BRDA:232,17,1,6 -BRDA:284,18,0,1484 -BRDA:284,18,1,436 -BRDA:303,19,0,36 -BRDA:303,19,1,808 -BRDA:320,20,0,18 -BRDA:320,20,1,404 -BRDA:332,21,0,836 -BRDA:332,21,1,8 -BRDA:350,22,0,22 -BRDA:350,22,1,14 -BRDA:357,23,0,8 -BRDA:357,23,1,6 -BRDA:378,24,0,404 -BRDA:378,24,1,86 -BRDA:379,25,0,404 -BRDA:379,25,1,0 -BRDA:389,26,0,52 -BRDA:389,26,1,64 -BRDA:407,27,0,6 -BRDA:407,27,1,20 -BRDA:413,28,0,6 -BRDA:413,28,1,196 -BRDA:421,29,0,6 -BRDA:421,29,1,40 -BRF:58 -BRH:56 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/EnforcementModuleInternal.sol -FN:53,__Enforcement_init_unchained -FN:64,frozen -FN:79,_freeze -FN:97,_unfreeze -FN:112,_getEnforcementModuleInternalStorage -FNF:5 -FNH:5 -FNDA:385,__Enforcement_init_unchained -FNDA:946,frozen -FNDA:22,_freeze -FNDA:8,_unfreeze -FNDA:976,_getEnforcementModuleInternalStorage -DA:65,946 -DA:66,946 -DA:83,22 -DA:84,22 -DA:85,2 -DA:87,20 -DA:88,20 -DA:89,20 -DA:101,8 -DA:102,8 -DA:103,2 -DA:105,6 -DA:106,6 -DA:108,6 -DA:113,976 -LF:15 -LH:15 -BRDA:53,1,0,385 -BRDA:53,1,1,0 -BRDA:84,2,0,2 -BRDA:84,2,1,20 -BRDA:102,3,0,2 -BRDA:102,3,1,6 -BRF:6 -BRH:5 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/ERC20SnapshotModuleInternal.sol -FN:21,__ERC20Snapshot_init_unchained -FN:34,snapshotInfo -FN:43,snapshotInfoBatch -FN:55,snapshotInfoBatch -FN:67,snapshotBalanceOf -FN:85,snapshotTotalSupply -FN:102,_snapshotUpdate -FN:127,_updateAccountSnapshot -FN:135,_updateTotalSupplySnapshot -FNF:9 -FNH:9 -FNDA:385,__ERC20Snapshot_init_unchained -FNDA:480,snapshotInfo -FNDA:160,snapshotInfoBatch -FNDA:80,snapshotInfoBatch -FNDA:1200,snapshotBalanceOf -FNDA:720,snapshotTotalSupply -FNDA:422,_snapshotUpdate -FNDA:465,_updateAccountSnapshot -FNDA:379,_updateTotalSupplySnapshot -DA:35,480 -DA:36,480 -DA:44,160 -DA:45,160 -DA:46,480 -DA:48,160 -DA:56,80 -DA:57,80 -DA:58,80 -DA:59,80 -DA:71,1200 -DA:72,1200 -DA:77,1200 -DA:86,720 -DA:87,720 -DA:91,720 -DA:106,422 -DA:107,422 -DA:109,77 -DA:110,77 -DA:112,43 -DA:115,34 -DA:119,345 -DA:120,345 -DA:128,465 -DA:129,465 -DA:136,379 -DA:137,379 -LF:28 -LH:28 -BRDA:21,1,0,385 -BRDA:21,1,1,0 -BRDA:77,2,0,400 -BRDA:77,2,1,800 -BRDA:91,3,0,36 -BRDA:91,3,1,684 -BRDA:107,4,0,77 -BRDA:107,4,1,345 -BRDA:110,5,0,43 -BRDA:110,5,1,34 -BRF:10 -BRH:9 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/ValidationModuleInternal.sol -FN:32,__Validation_init_unchained -FN:45,ruleEngine -FN:58,_validateTransfer -FN:70,_messageForTransferRestriction -FN:80,_detectTransferRestriction -FN:89,_operateOnTransfer -FN:96,_getValidationModuleInternalStorage -FNF:7 -FNH:7 -FNDA:385,__Validation_init_unchained -FNDA:32,ruleEngine -FNDA:12,_validateTransfer -FNDA:6,_messageForTransferRestriction -FNDA:6,_detectTransferRestriction -FNDA:60,_operateOnTransfer -FNDA:629,_getValidationModuleInternalStorage -DA:33,385 -DA:34,18 -DA:35,18 -DA:36,18 -DA:46,32 -DA:47,32 -DA:63,12 -DA:64,12 -DA:73,6 -DA:74,6 -DA:85,6 -DA:86,6 -DA:90,60 -DA:91,60 -DA:97,629 -LF:15 -LH:15 -BRDA:32,1,0,385 -BRDA:32,1,1,0 -BRDA:33,2,0,18 -BRDA:33,2,1,367 -BRF:4 -BRH:3 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/security/AuthorizationModule.sol -FN:31,__AuthorizationModule_init_unchained -FN:48,authorizationEngine -FN:60,setAuthorizationEngine -FN:69,grantRole -FN:81,revokeRole -FN:96,hasRole -FN:114,_getAuthorizationModuleStorage -FNF:7 -FNH:7 -FNDA:385,__AuthorizationModule_init_unchained -FNDA:2,authorizationEngine -FNDA:16,setAuthorizationEngine -FNDA:40,grantRole -FNDA:10,revokeRole -FNDA:1285,hasRole -FNDA:84,_getAuthorizationModuleStorage -DA:32,385 -DA:33,2 -DA:35,383 -DA:36,383 -DA:37,16 -DA:38,16 -DA:39,16 -DA:49,2 -DA:50,2 -DA:61,16 -DA:62,16 -DA:63,4 -DA:65,12 -DA:66,12 -DA:70,40 -DA:71,40 -DA:72,8 -DA:73,8 -DA:75,4 -DA:78,36 -DA:82,10 -DA:83,10 -DA:84,8 -DA:85,8 -DA:87,4 -DA:90,6 -DA:101,1285 -DA:102,760 -DA:104,525 -DA:115,84 -LF:30 -LH:30 -BRDA:31,1,0,385 -BRDA:31,1,1,0 -BRDA:32,2,0,2 -BRDA:32,2,1,383 -BRDA:36,3,0,16 -BRDA:36,3,1,367 -BRDA:60,4,0,16 -BRDA:60,4,1,4 -BRDA:62,5,0,4 -BRDA:62,5,1,12 -BRDA:69,6,0,40 -BRDA:69,6,1,2 -BRDA:71,7,0,8 -BRDA:71,7,1,32 -BRDA:73,8,0,4 -BRDA:73,8,1,4 -BRDA:81,9,0,10 -BRDA:81,9,1,2 -BRDA:83,10,0,8 -BRDA:83,10,1,2 -BRDA:85,11,0,4 -BRDA:85,11,1,4 -BRDA:101,12,0,760 -BRDA:101,12,1,525 -BRF:24 -BRH:23 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/controllers/ValidationModule.sol -FN:28,__ValidationModule_init_unchained -FN:43,setRuleEngine -FN:57,messageForTransferRestriction -FN:92,detectTransferRestriction -FN:111,validateTransfer -FN:130,_validateTransferByModule -FN:141,_operateOnTransfer -FNF:7 -FNH:7 -FNDA:383,__ValidationModule_init_unchained -FNDA:18,setRuleEngine -FNDA:20,messageForTransferRestriction -FNDA:17,detectTransferRestriction -FNDA:19,validateTransfer -FNDA:458,_validateTransferByModule -FNDA:439,_operateOnTransfer -DA:44,18 -DA:45,18 -DA:46,3 -DA:48,15 -DA:49,15 -DA:60,20 -DA:61,20 -DA:62,3 -DA:67,4 -DA:72,2 -DA:77,2 -DA:79,6 -DA:81,3 -DA:97,17 -DA:98,17 -DA:99,4 -DA:101,2 -DA:103,2 -DA:105,6 -DA:107,3 -DA:116,19 -DA:117,4 -DA:119,15 -DA:120,15 -DA:121,12 -DA:123,3 -DA:135,458 -DA:136,18 -DA:138,440 -DA:142,439 -DA:143,14 -DA:145,425 -DA:146,425 -DA:147,60 -DA:149,365 -LF:35 -LH:35 -BRDA:28,1,0,383 -BRDA:28,1,1,0 -BRDA:43,2,0,18 -BRDA:43,2,1,3 -BRDA:45,3,0,3 -BRDA:45,3,1,15 -BRDA:61,4,0,3 -BRDA:61,4,1,17 -BRDA:63,5,0,4 -BRDA:63,5,1,13 -BRDA:68,6,0,2 -BRDA:68,6,1,11 -BRDA:73,7,0,2 -BRDA:73,7,1,9 -BRDA:78,8,0,6 -BRDA:78,8,1,3 -BRDA:98,9,0,4 -BRDA:98,9,1,13 -BRDA:100,10,0,2 -BRDA:100,10,1,11 -BRDA:102,11,0,2 -BRDA:102,11,1,9 -BRDA:104,12,0,6 -BRDA:104,12,1,3 -BRDA:116,13,0,4 -BRDA:116,13,1,15 -BRDA:120,14,0,12 -BRDA:120,14,1,3 -BRDA:135,15,0,18 -BRDA:135,15,1,440 -BRDA:135,16,0,12 -BRDA:135,16,1,4 -BRDA:135,17,0,4 -BRDA:135,17,1,2 -BRDA:142,18,0,14 -BRDA:142,18,1,425 -BRDA:146,19,0,60 -BRDA:146,19,1,365 -BRF:38 -BRH:37 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/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:383,__Base_init_unchained -FNDA:10,tokenId -FNDA:10,terms -FNDA:8,information -FNDA:2,setTokenId -FNDA:2,setTerms -FNDA:2,setInformation -FNDA:417,_getBaseModuleStorage -DA:45,383 -DA:46,383 -DA:47,383 -DA:48,383 -DA:56,10 -DA:57,10 -DA:61,10 -DA:62,10 -DA:65,8 -DA:66,8 -DA:75,2 -DA:76,2 -DA:77,2 -DA:86,2 -DA:87,2 -DA:88,2 -DA:97,2 -DA:98,2 -DA:99,2 -DA:109,417 -LF:20 -LH:20 -BRDA:44,1,0,383 -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:27,__EnforcementModule_init_unchained -FN:42,freeze -FN:56,unfreeze -FNF:3 -FNH:3 -FNDA:383,__EnforcementModule_init_unchained -FNDA:22,freeze -FNDA:8,unfreeze -DA:43,22 -DA:57,8 -LF:2 -LH:2 -BRDA:27,1,0,383 -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:41,__ERC20BaseModule_init_unchained -FN:53,decimals -FN:70,transferBatch -FN:100,transferFrom -FN:119,balanceInfo -FN:134,_getERC20BaseModuleStorage -FNF:6 -FNH:6 -FNDA:383,__ERC20BaseModule_init_unchained -FNDA:2,decimals -FNDA:10,transferBatch -FNDA:10,transferFrom -FNDA:4,balanceInfo -FNDA:385,_getERC20BaseModuleStorage -DA:42,383 -DA:43,383 -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,385 -LF:20 -LH:20 -BRDA:41,1,0,383 -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:32,__ERC20BurnModule_init_unchained -FN:53,burn -FN:77,burnBatch -FN:109,burnFrom -FNF:4 -FNH:4 -FNDA:383,__ERC20BurnModule_init_unchained -FNDA:14,burn -FNDA:12,burnBatch -FNDA:4,burnFrom -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:119,2 -DA:120,2 -DA:123,2 -DA:125,2 -DA:127,2 -LF:18 -LH:18 -BRDA:32,1,0,383 -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:27,__ERC20MintModule_init_unchained -FN:47,mint -FN:70,mintBatch -FNF:3 -FNH:3 -FNDA:383,__ERC20MintModule_init_unchained -FNDA:291,mint -FNDA:24,mintBatch -DA:48,291 -DA:49,291 -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:27,1,0,383 -BRDA:27,1,1,0 -BRDA:47,2,0,291 -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:34,__PauseModule_init_unchained -FN:50,pause -FN:62,unpause -FN:81,deactivateContract -FN:92,deactivated -FN:104,_getPauseModuleStorage -FNF:6 -FNH:6 -FNDA:383,__PauseModule_init_unchained -FNDA:14,pause -FNDA:6,unpause -FNDA:2,deactivateContract -FNDA:4,deactivated -FNDA:12,_getPauseModuleStorage -DA:51,14 -DA:63,6 -DA:64,6 -DA:65,2 -DA:67,4 -DA:83,2 -DA:84,2 -DA:85,2 -DA:86,2 -DA:93,4 -DA:94,4 -DA:105,12 -LF:12 -LH:12 -BRDA:34,1,0,383 -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:42,__DebtModule_init_unchained -FN:54,debtEngine -FN:65,setDebtEngine -FN:74,debt -FN:81,creditEvents -FN:94,_getDebtModuleStorage -FNF:6 -FNH:6 -FNDA:383,__DebtModule_init_unchained -FNDA:8,debtEngine -FNDA:5,setDebtEngine -FNDA:3,debt -FNDA:3,creditEvents -FNDA:22,_getDebtModuleStorage -DA:43,383 -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:82,3 -DA:83,3 -DA:84,2 -DA:95,22 -LF:18 -LH:18 -BRDA:42,1,0,383 -BRDA:42,1,1,0 -BRDA:43,2,0,3 -BRDA:43,2,1,380 -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:11 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/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:383,__DocumentModule_init_unchained -FNDA:28,documentEngine -FNDA:16,setDocumentEngine -FNDA:18,getDocument -FNDA:6,getAllDocuments -FNDA:80,_getDocumentModuleStorage -DA:43,383 -DA:44,12 -DA:45,12 -DA:46,12 -DA:54,28 -DA:55,28 -DA:65,16 -DA:66,16 -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:19 -BRDA:42,1,0,383 -BRDA:42,1,1,0 -BRDA:43,2,0,12 -BRDA:43,2,1,371 -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:11 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/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:383,__ERC20SnasphotModule_init_unchained -FNDA:170,scheduleSnapshot -FNDA:12,scheduleSnapshotNotOptimized -FNDA:22,rescheduleSnapshot -FNDA:14,unscheduleLastSnapshot -FNDA:10,unscheduleSnapshotNotOptimized -DA:34,170 -DA:45,12 -DA:57,22 -DA:68,14 -DA:78,10 -LF:5 -LH:5 -BRDA:22,1,0,383 -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:11 -end_of_record -TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/MetaTxModule.sol -FN:19,constructor -FNF:1 -FNH:1 -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 -FN:19,constructor -FNF:1 -FNH:1 -FNDA:3,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.sol -FN:19,constructor -FNF:1 -FNH:1 -FNDA:1,constructor -LF:0 -LH:0 -BRF:0 -BRH:0 -end_of_record diff --git a/doc/general/test/coverage/prettify.css b/doc/general/test/coverage/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/doc/general/test/coverage/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/doc/general/test/coverage/prettify.js b/doc/general/test/coverage/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/doc/general/test/coverage/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/doc/general/test/coverage/sort-arrow-sprite.png b/doc/general/test/coverage/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/doc/modules/controllers/surya_report.md b/doc/modules/controllers/surya_report.md new file mode 100644 index 00000000..88c7987e --- /dev/null +++ b/doc/modules/controllers/surya_report.md @@ -0,0 +1,37 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/controllers/ValidationEngineModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **ValidationModule** | Implementation | Initializable, ContextUpgradeable, PauseModule, EnforcementModule, IERC1404Wrapper ||| +| └ | __ValidationModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | ruleEngine | Public ❗️ | |NO❗️ | +| └ | setRuleEngine | External ❗️ | 🛑 | onlyRole | +| └ | messageForTransferRestriction | External ❗️ | |NO❗️ | +| └ | detectTransferRestriction | Public ❗️ | |NO❗️ | +| └ | validateTransfer | Public ❗️ | |NO❗️ | +| └ | _validateTransfer | Internal 🔒 | | | +| └ | _validateTransferByModule | Internal 🔒 | | | +| └ | _setRuleEngine | Internal 🔒 | 🛑 | | +| └ | _operateOnTransfer | Internal 🔒 | 🛑 | | +| └ | _getValidationModuleInternalStorage | Internal 🔒 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/controllers/validation.md b/doc/modules/controllers/validation.md index c3e7a675..c1ca6d5e 100644 --- a/doc/modules/controllers/validation.md +++ b/doc/modules/controllers/validation.md @@ -12,87 +12,13 @@ This document defines the Validation Module for the CMTA Token specification. Th ### Inheritance -#### ValidationModule - -![surya_inheritance_ValidationModule.sol](../../../schema/surya_inheritance/surya_inheritance_ValidationModule.sol.png) - -#### ValidationModuleInternal - -![surya_inheritance_ValidationModuleInternal.sol](../../../schema/surya_inheritance/surya_inheritance_ValidationModuleInternal.sol.png) - -### UML - -![ValidationModule](../../../schema/sol2uml/ValidationModule.svg) +![surya_inheritance_ValidationModule.sol](../../schema/surya_inheritance/surya_inheritance_ValidationModule.sol.png) ### Graph -#### ValidationModule - -![surya_graph_ValidationModule.sol](../../../schema/surya_graph/surya_graph_ValidationModule.sol.png) - -#### ValidationModuleInternal - -![surya_graph_ValidationModuleInternal.sol](../../../schema/surya_graph/surya_graph_ValidationModuleInternal.sol.png) - - - -## Sūrya's Description Report - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - -### ValidationModule - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| -------------------------------------------------- | ---------------------------------------- | -| ./modules/wrapper/controllers/ValidationModule.sol | 109054150a46ef0f010693889f9c1c44e151719b | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :------------------: | :-------------------------------: | :----------------------------------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ValidationModule** | Implementation | ValidationModuleInternal, PauseModule, EnforcementModule, IERC1404Wrapper | | | -| └ | __ValidationModule_init | Internal 🔒 | 🛑 | onlyInitializing | -| └ | __ValidationModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | setRuleEngine | External ❗️ | 🛑 | onlyRole | -| └ | detectTransferRestriction | Public ❗️ | | NO❗️ | -| └ | messageForTransferRestriction | External ❗️ | | NO❗️ | -| └ | validateTransfer | Public ❗️ | | NO❗️ | - -### ValidationModuleInternal - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| ----------------------------------------------- | ---------------------------------------- | -| ./modules/internal/ValidationModuleInternal.sol | 7520ea131a1c5befcc07ff41eada7406ab745850 | - - -#### Contracts Description Table +![surya_graph_ValidationModule.sol](../../schema/surya_graph/surya_graph_ValidationModule.sol.png) -| Contract | Type | Bases | | | -| :--------------------------: | :----------------------------: | :-------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ValidationModuleInternal** | Implementation | Initializable, ContextUpgradeable | | | -| └ | __Validation_init | Internal 🔒 | 🛑 | onlyInitializing | -| └ | __Validation_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | _validateTransfer | Internal 🔒 | | | -| └ | _messageForTransferRestriction | Internal 🔒 | | | -| └ | _detectTransferRestriction | Internal 🔒 | | | ## API for Ethereum diff --git a/doc/modules/core/base.md b/doc/modules/core/Base/base.md similarity index 66% rename from doc/modules/core/base.md rename to doc/modules/core/Base/base.md index a6405ecb..6a2196d3 100644 --- a/doc/modules/core/base.md +++ b/doc/modules/core/Base/base.md @@ -16,46 +16,11 @@ This document defines Base Module for the CMTA Token specification. ### Inheritance -![surya_inheritance_BaseModule.sol](../../schema/surya_inheritance/surya_inheritance_BaseModule.sol.png) - -### UML - -![BaseModule](../../schema/sol2uml/BaseModule.svg) +![surya_inheritance_BaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_BaseModule.sol.png) ### Graph -![surya_graph_BaseModule.sol](../../schema/surya_graph/surya_graph_BaseModule.sol.png) - -## Sūrya's Description Report - -### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------------- | ---------------------------------------- | -| ./modules/wrapper/core/BaseModule.sol | 88c3e7f8f49a491cc6432472783d33ac3127d536 | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :------------: | :-------------------: | :-----------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **BaseModule** | Implementation | AuthorizationModule | | | -| └ | __Base_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | setTokenId | Public ❗️ | 🛑 | onlyRole | -| └ | setTerms | Public ❗️ | 🛑 | onlyRole | -| └ | setInformation | Public ❗️ | 🛑 | onlyRole | - - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | +![surya_graph_BaseModule.sol](../../../schema/surya_graph/surya_graph_BaseModule.sol.png) diff --git a/doc/modules/core/Base/surya_report.md b/doc/modules/core/Base/surya_report.md new file mode 100644 index 00000000..08a795b1 --- /dev/null +++ b/doc/modules/core/Base/surya_report.md @@ -0,0 +1,37 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/core/BaseModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **BaseModule** | Implementation | AuthorizationModule ||| +| └ | __Base_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | tokenId | Public ❗️ | |NO❗️ | +| └ | terms | Public ❗️ | |NO❗️ | +| └ | information | Public ❗️ | |NO❗️ | +| └ | setTokenId | Public ❗️ | 🛑 | onlyRole | +| └ | setTerms | Public ❗️ | 🛑 | onlyRole | +| └ | setInformation | Public ❗️ | 🛑 | onlyRole | +| └ | _setTokenId | Internal 🔒 | 🛑 | | +| └ | _setTerms | Internal 🔒 | 🛑 | | +| └ | _setInformation | Internal 🔒 | 🛑 | | +| └ | _getBaseModuleStorage | Private 🔐 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/core/ERC20base.md b/doc/modules/core/ERC20Base/ERC20base.md similarity index 75% rename from doc/modules/core/ERC20base.md rename to doc/modules/core/ERC20Base/ERC20base.md index fd58c947..be74d2c5 100644 --- a/doc/modules/core/ERC20base.md +++ b/doc/modules/core/ERC20Base/ERC20base.md @@ -14,46 +14,15 @@ The ERC20Base Module sets forth the ERC20 basic functionalities a token must hav ### Inheritance -![surya_inheritance_ERC20BaseModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20BaseModule.sol.png) +![surya_inheritance_ERC20BaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20BaseModule.sol.png) -### UML -![ERC20BaseModule](../../schema/sol2uml/ERC20BaseModule.svg) ### Graph -![surya_graph_ERC20BaseModule.sol](../../schema/surya_graph/surya_graph_ERC20BaseModule.sol.png) +![surya_graph_ERC20BaseModule.sol](../../../schema/surya_graph/surya_graph_ERC20BaseModule.sol.png) -## Sūrya's Description Report -### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------------------ | ---------------------------------------- | -| ./modules/wrapper/core/ERC20BaseModule.sol | 8889ab8d2108f2e86eca040147be7cb9a8c5eb1f | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-----------------: | :------------------------------: | :--------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ERC20BaseModule** | Implementation | ERC20Upgradeable | | | -| └ | __ERC20BaseModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | decimals | Public ❗️ | | NO❗️ | -| └ | transferBatch | Public ❗️ | 🛑 | NO❗️ | -| └ | transferFrom | Public ❗️ | 🛑 | NO❗️ | -| └ | approve | Public ❗️ | 🛑 | NO❗️ | - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | ## API for Ethereum diff --git a/doc/modules/core/ERC20Base/surya_report.md b/doc/modules/core/ERC20Base/surya_report.md new file mode 100644 index 00000000..5346162c --- /dev/null +++ b/doc/modules/core/ERC20Base/surya_report.md @@ -0,0 +1,37 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/core/ERC20BaseModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **ERC20BaseModule** | Implementation | ERC20Upgradeable, AuthorizationModule ||| +| └ | __ERC20BaseModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | decimals | Public ❗️ | |NO❗️ | +| └ | transferFrom | Public ❗️ | 🛑 |NO❗️ | +| └ | name | Public ❗️ | |NO❗️ | +| └ | symbol | Public ❗️ | |NO❗️ | +| └ | transferBatch | Public ❗️ | 🛑 |NO❗️ | +| └ | balanceInfo | Public ❗️ | |NO❗️ | +| └ | setName | Public ❗️ | 🛑 | onlyRole | +| └ | setSymbol | Public ❗️ | 🛑 | onlyRole | +| └ | enforceTransfer | Public ❗️ | 🛑 | onlyRole | +| └ | _getERC20BaseModuleStorage | Private 🔐 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/core/ERC20Burn.md b/doc/modules/core/ERC20Burn/ERC20Burn.md similarity index 50% rename from doc/modules/core/ERC20Burn.md rename to doc/modules/core/ERC20Burn/ERC20Burn.md index 16997ab8..f30536a5 100644 --- a/doc/modules/core/ERC20Burn.md +++ b/doc/modules/core/ERC20Burn/ERC20Burn.md @@ -14,45 +14,13 @@ This document defines the ERC20Burn Module for the CMTA Token specification. ### Inheritance -![surya_inheritance_BurnModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20BurnModule.sol.png) +![surya_inheritance_BurnModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20BurnModule.sol.png) -### UML -![BurnModule](../../schema/sol2uml/ERC20BurnModule.svg) ### Graph -![surya_graph_BurnModule.sol](../../schema/surya_graph/surya_graph_ERC20BurnModule.sol.png) - -## Sūrya's Description Report - -### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------------------ | ---------------------------------------- | -| ./modules/wrapper/core/ERC20BurnModule.sol | 127c0419786d6b33f117b4f8dda6e15ef9a04e1e | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-----------------: | :------------------------------: | :-----------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ERC20BurnModule** | Implementation | ERC20Upgradeable, AuthorizationModule | | | -| └ | __ERC20BurnModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | forceBurn | Public ❗️ | 🛑 | onlyRole | -| └ | forceBurnBatch | Public ❗️ | 🛑 | onlyRole | - - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | +![surya_graph_BurnModule.sol](../../../schema/surya_graph/surya_graph_ERC20BurnModule.sol.png) ## API for Ethereum diff --git a/doc/modules/core/ERC20Burn/surya_report.md b/doc/modules/core/ERC20Burn/surya_report.md new file mode 100644 index 00000000..82774e8d --- /dev/null +++ b/doc/modules/core/ERC20Burn/surya_report.md @@ -0,0 +1,30 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/core/ERC20BurnModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **ERC20BurnModule** | Implementation | ERC20Upgradeable, ICCIPBurnFromERC20, AuthorizationModule ||| +| └ | __ERC20BurnModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | burn | Public ❗️ | 🛑 | onlyRole | +| └ | burnBatch | Public ❗️ | 🛑 | onlyRole | +| └ | burnFrom | Public ❗️ | 🛑 | onlyRole | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/core/ERC20Mint.md b/doc/modules/core/ERC20Mint.md deleted file mode 100644 index 8c62e31b..00000000 --- a/doc/modules/core/ERC20Mint.md +++ /dev/null @@ -1,122 +0,0 @@ -# ERC20Mint Module - -This document defines ERC20Mint Module for the CMTA Token specification. - -[TOC] - - - -## Rationale - -> Traditional securities could be issued in different ways. Bonds are usually issued all at once. Normal shares could be issued several times, when the issuer wants to raise more capital. ETF shares are continuously issued on demand. The Mint Module covers scenarios for CMTA Token specification when the issuer needs to create new tokens in response to securities issuances. - -## Schema - -### Inheritance - -![surya_inheritance_MintModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20MintModule.sol.png) - -### UML - -![MintModule](../../schema/sol2uml/ERC20MintModule.svg) - -### Graph - -![surya_graph_MintModule.sol](../../schema/surya_graph/surya_graph_ERC20MintModule.sol.png) - - - -## Sūrya's Description Report - -### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------------------ | ---------------------------------------- | -| ./modules/wrapper/core/ERC20MintModule.sol | 163107a3a34a1924a3c84b2d66149fed16ac9cc1 | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-----------------: | :------------------------------: | :-----------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ERC20MintModule** | Implementation | ERC20Upgradeable, AuthorizationModule | | | -| └ | __ERC20MintModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | mint | Public ❗️ | 🛑 | onlyRole | -| └ | mintBatch | Public ❗️ | 🛑 | onlyRole | - - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - - - -## API for Ethereum - -This section describes the Ethereum API of Issue Module. - -### Function - -#### `mint(address,uint256)` - -##### Definition - -```solidity -function mint(address account, uint256 value) -public onlyRole(MINTER_ROLE) -``` - -##### Description - - Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0) - - -##### Requirements - -- Only authorized users (`MINTER_ROLE`) are allowed to call this function. -- `account` cannot be the zero address (check made by _mint). - -#### `mintBatch(address[],uint256[]) ` - -##### Definition - -```solidity -function mintBatch(address[] calldata accounts,uint256[] calldata values) -public onlyRole(MINTER_ROLE) -``` - -##### Description - -For each address in `accounts`, create the corresponding amount of tokens given by `amounts` and allocate them to the given address`to`. - -##### Requirements - -Only authorized users (`MINTER_ROLE`) are allowed to call this function - -`accounts` and `values` must have the same length - -`accounts` cannot contain a zero address (check made by _mint). - -### Events - -#### `Mint(address,uint256)` - -##### Definition - - -```solidity -event Mint(address indexed account, uint256 value) -``` - -##### Description - -Emitted when the specified `value` amount of new tokens are created and -allocated to the specified `account`. - diff --git a/doc/modules/core/ERC20Mint/ERC20Mint.md b/doc/modules/core/ERC20Mint/ERC20Mint.md new file mode 100644 index 00000000..7a946d1a --- /dev/null +++ b/doc/modules/core/ERC20Mint/ERC20Mint.md @@ -0,0 +1,88 @@ +# ERC20Mint Module + +This document defines ERC20Mint Module for the CMTA Token specification. + +[TOC] + + + +## Rationale + +> Traditional securities could be issued in different ways. Bonds are usually issued all at once. Normal shares could be issued several times, when the issuer wants to raise more capital. ETF shares are continuously issued on demand. The Mint Module covers scenarios for CMTA Token specification when the issuer needs to create new tokens in response to securities issuances. + +## Schema + +### Inheritance + +![surya_inheritance_MintModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20MintModule.sol.png) + + + +### Graph + +![surya_graph_MintModule.sol](../../../schema/surya_graph/surya_graph_ERC20MintModule.sol.png) + + + +## API for Ethereum + +This section describes the Ethereum API of Issue Module. + +### Function + +#### `mint(address,uint256)` + +##### Definition + +```solidity +function mint(address account, uint256 value) +public onlyRole(MINTER_ROLE) +``` + +##### Description + + Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0) + + +##### Requirements + +- Only authorized users (`MINTER_ROLE`) are allowed to call this function. +- `account` cannot be the zero address (check made by _mint). + +#### `mintBatch(address[],uint256[]) ` + +##### Definition + +```solidity +function mintBatch(address[] calldata accounts,uint256[] calldata values) +public onlyRole(MINTER_ROLE) +``` + +##### Description + +For each address in `accounts`, create the corresponding amount of tokens given by `amounts` and allocate them to the given address`to`. + +##### Requirements + +Only authorized users (`MINTER_ROLE`) are allowed to call this function + +`accounts` and `values` must have the same length + +`accounts` cannot contain a zero address (check made by _mint). + +### Events + +#### `Mint(address,uint256)` + +##### Definition + + +```solidity +event Mint(address indexed account, uint256 value) +``` + +##### Description + +Emitted when the specified `value` amount of new tokens are created and +allocated to the specified `account`. + diff --git a/doc/modules/core/ERC20Mint/surya_report.md b/doc/modules/core/ERC20Mint/surya_report.md new file mode 100644 index 00000000..5d2af346 --- /dev/null +++ b/doc/modules/core/ERC20Mint/surya_report.md @@ -0,0 +1,29 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/core/ERC20MintModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **ERC20MintModule** | Implementation | ERC20Upgradeable, ICCIPMintERC20, AuthorizationModule ||| +| └ | __ERC20MintModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | mint | Public ❗️ | 🛑 | onlyRole | +| └ | mintBatch | Public ❗️ | 🛑 | onlyRole | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/core/Enforcement/enforcement.md b/doc/modules/core/Enforcement/enforcement.md new file mode 100644 index 00000000..ada8f1d7 --- /dev/null +++ b/doc/modules/core/Enforcement/enforcement.md @@ -0,0 +1,116 @@ +# Enforcement Module + +This document defines Enforcement Module for the CMTA Token specification. + +[TOC] + +## Rationale + +> The issuer (or a third party appointed by it) must be in a position to freeze tokens on specific distributed ledger addresses (as opposed to pausing the whole smart contract) to prevent the transfer of tokens that have been earmarked for transfer to a third party (e.g. between the execution of a transaction on a trading platform and the settlement of the trade in the distributed ledger). + +## Schema + +### Inheritance + +#### EnforcementModule + +![surya_inheritance_EnforcementModule.sol](../../../schema/surya_inheritance/surya_inheritance_EnforcementModule.sol.png) + +#### EnforcementModuleInternal + +![surya_inheritance_EnforcementModuleInternal.sol](../../../schema/surya_inheritance/surya_inheritance_EnforcementModuleInternal.sol.png) + + + +### Graph + +#### EnforcementModule + +![surya_graph_EnforcementModule.sol](../../../schema/surya_graph/surya_graph_EnforcementModule.sol.png) + +#### EnforcementModuleInternal + +![surya_graph_EnforcementModuleInternal.sol](../../../schema/surya_graph/surya_graph_EnforcementModuleInternal.sol.png) + +## + +## API for Ethereum + +This section describes the Ethereum API of the Enforcement Module. + +### Functions + +#### `freeze(address,string)` + +##### Definition: + +```solidity +function freeze(address account,string memory reason) +public onlyRole(ENFORCER_ROLE) +returns (bool) +``` + +#### Description: + +Prevents `account` to perform any transfer. +Only authorized users are allowed to call this function. +Returns `true` if the address is not yet frozen, `false` otherwise. + +#### `unfreeze(address,string)` + +##### Definition: + +```solidity +function unfreeze(address account,string memory reason) +public onlyRole(ENFORCER_ROLE) +returns (bool) +``` + +#### Description: + +Re-authorizes `account` to perform transfers if it was frozen. +Only authorized users are allowed to call this function. +Returns `true` if the address was frozen, `false` otherwise. + +#### `frozen(address)` + +Origin: EnforcementModuleInternal + +##### Definition: + +```solidity +function frozen(address account) +public view virtual +returns (bool) +``` + +##### Description: + +Tell, whether the given `account` is frozen. + +### Events + + +#### `Freeze(address,address)` + +##### Definition: + +```solidity +event Freeze (address indexed enforcer, address indexed owner) +``` + +##### Description: + +Emitted when address `owner` is frozen by `enforcer`. + +#### `Unfreeze(address,address)` + +##### Definition: + +```solidity +event Unfreeze (address indexed enforcer, address indexed owner) +``` + +##### Description: + +Emitted when address `owner` is unfrozen by `enforcer`. diff --git a/doc/modules/core/Enforcement/surya_report_EnforcementModule.sol.md b/doc/modules/core/Enforcement/surya_report_EnforcementModule.sol.md new file mode 100644 index 00000000..a9f5bcc0 --- /dev/null +++ b/doc/modules/core/Enforcement/surya_report_EnforcementModule.sol.md @@ -0,0 +1,29 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/core/EnforcementModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **EnforcementModule** | Implementation | EnforcementModuleInternal, AuthorizationModule ||| +| └ | __EnforcementModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | freeze | Public ❗️ | 🛑 | onlyRole | +| └ | unfreeze | Public ❗️ | 🛑 | onlyRole | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/core/Enforcement/surya_report_EnforcementModuleInternal.sol.md b/doc/modules/core/Enforcement/surya_report_EnforcementModuleInternal.sol.md new file mode 100644 index 00000000..8dc2c685 --- /dev/null +++ b/doc/modules/core/Enforcement/surya_report_EnforcementModuleInternal.sol.md @@ -0,0 +1,31 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/internal/EnforcementModuleInternal.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **EnforcementModuleInternal** | Implementation | Initializable, ContextUpgradeable, ERC20Upgradeable ||| +| └ | __Enforcement_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | frozen | Public ❗️ | |NO❗️ | +| └ | _freeze | Internal 🔒 | 🛑 | | +| └ | _unfreeze | Internal 🔒 | 🛑 | | +| └ | _getEnforcementModuleInternalStorage | Private 🔐 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/core/pause.md b/doc/modules/core/Pause/pause.md similarity index 55% rename from doc/modules/core/pause.md rename to doc/modules/core/Pause/pause.md index 61fbad81..3782a3e3 100644 --- a/doc/modules/core/pause.md +++ b/doc/modules/core/Pause/pause.md @@ -16,47 +16,13 @@ However, this is not enforced in the functions that allow to change a user’s a ### Inheritance -![surya_inheritance_PauseModule.sol](../../schema/surya_inheritance/surya_inheritance_PauseModule.sol.png) - -### UML - -![PauseModule](../../schema/sol2uml/PauseModule.svg) +![surya_inheritance_PauseModule.sol](../../../schema/surya_inheritance/surya_inheritance_PauseModule.sol.png) ### Graph -![surya_graph_PauseModule.sol](../../schema/surya_graph/surya_graph_PauseModule.sol.png) - -## Sūrya's Description Report - -### Files Description Table - - -| File Name | SHA-1 Hash | -| -------------------------------------- | ---------------------------------------- | -| ./modules/wrapper/core/PauseModule.sol | 5f48d5b8b0d5e26e5939aa45e58a0bbf035ba8e0 | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-------------: | :--------------------------: | :--------------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **PauseModule** | Implementation | PausableUpgradeable, AuthorizationModule | | | -| └ | __PauseModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | pause | Public ❗️ | 🛑 | onlyRole | -| └ | unpause | Public ❗️ | 🛑 | onlyRole | -| └ | deactivateContract | Public ❗️ | 🛑 | onlyRole | -| └ | deactivated | Public ❗️ | | NO❗️ | - - -### Legend +![surya_graph_PauseModule.sol](../../../schema/surya_graph/surya_graph_PauseModule.sol.png) -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | +## ## API for Ethereum diff --git a/doc/modules/core/Pause/surya_report_PauseModule.sol.md b/doc/modules/core/Pause/surya_report_PauseModule.sol.md new file mode 100644 index 00000000..c199643c --- /dev/null +++ b/doc/modules/core/Pause/surya_report_PauseModule.sol.md @@ -0,0 +1,32 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/core/PauseModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **PauseModule** | Implementation | PausableUpgradeable, AuthorizationModule ||| +| └ | __PauseModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | pause | Public ❗️ | 🛑 | onlyRole | +| └ | unpause | Public ❗️ | 🛑 | onlyRole | +| └ | deactivateContract | Public ❗️ | 🛑 | onlyRole | +| └ | deactivated | Public ❗️ | |NO❗️ | +| └ | _getPauseModuleStorage | Private 🔐 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/core/enforcement.md b/doc/modules/core/enforcement.md deleted file mode 100644 index 5d153d84..00000000 --- a/doc/modules/core/enforcement.md +++ /dev/null @@ -1,173 +0,0 @@ -# Enforcement Module - -This document defines Enforcement Module for the CMTA Token specification. - -[TOC] - -## Rationale - -> The issuer (or a third party appointed by it) must be in a position to freeze tokens on specific distributed ledger addresses (as opposed to pausing the whole smart contract) to prevent the transfer of tokens that have been earmarked for transfer to a third party (e.g. between the execution of a transaction on a trading platform and the settlement of the trade in the distributed ledger). - -## Schema - -### Inheritance - -#### EnforcementModule - -![surya_inheritance_EnforcementModule.sol](../../schema/surya_inheritance/surya_inheritance_EnforcementModule.sol.png) - -#### EnforcementModuleInternal - -![surya_inheritance_EnforcementModuleInternal.sol](../../schema/surya_inheritance/surya_inheritance_EnforcementModuleInternal.sol.png) - -### UML - -![EnforcementModule](../../schema/sol2uml/EnforcementModule.svg) - -### Graph - -#### EnforcementModule - -![surya_graph_EnforcementModule.sol](../../schema/surya_graph/surya_graph_EnforcementModule.sol.png) - -#### EnforcementModuleInternal - -![surya_graph_EnforcementModuleInternal.sol](../../schema/surya_graph/surya_graph_EnforcementModuleInternal.sol.png) - - - -## Sūrya's Description Report - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - -### EnforcementModule - -### Files Description Table - - -| File Name | SHA-1 Hash | -| -------------------------------------------- | ---------------------------------------- | -| ./modules/wrapper/core/EnforcementModule.sol | 8d23b8c60e119a6421150f1bab0cb2061a1e640a | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-------------------: | :--------------------------------: | :--------------------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **EnforcementModule** | Implementation | EnforcementModuleInternal, AuthorizationModule | | | -| └ | __EnforcementModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | freeze | Public ❗️ | 🛑 | onlyRole | -| └ | unfreeze | Public ❗️ | 🛑 | onlyRole | - -### EnforcementModuleInternal - -### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------------------------ | ---------------------------------------- | -| ./modules/internal/EnforcementModuleInternal.sol | 4b56bc3e6903e1a3fd67afcfdd4a6dd936827c0c | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :---------------------------: | :--------------------------: | :-------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **EnforcementModuleInternal** | Implementation | Initializable, ContextUpgradeable | | | -| └ | __Enforcement_init | Internal 🔒 | 🛑 | onlyInitializing | -| └ | __Enforcement_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | frozen | Public ❗️ | | NO❗️ | -| └ | _freeze | Internal 🔒 | 🛑 | | -| └ | _unfreeze | Internal 🔒 | 🛑 | | - -## API for Ethereum - -This section describes the Ethereum API of the Enforcement Module. - -### Functions - -#### `freeze(address,string)` - -##### Definition: - -```solidity -function freeze(address account,string memory reason) -public onlyRole(ENFORCER_ROLE) -returns (bool) -``` - -#### Description: - -Prevents `account` to perform any transfer. -Only authorized users are allowed to call this function. -Returns `true` if the address is not yet frozen, `false` otherwise. - -#### `unfreeze(address,string)` - -##### Definition: - -```solidity -function unfreeze(address account,string memory reason) -public onlyRole(ENFORCER_ROLE) -returns (bool) -``` - -#### Description: - -Re-authorizes `account` to perform transfers if it was frozen. -Only authorized users are allowed to call this function. -Returns `true` if the address was frozen, `false` otherwise. - -#### `frozen(address)` - -Origin: EnforcementModuleInternal - -##### Definition: - -```solidity -function frozen(address account) -public view virtual -returns (bool) -``` - -##### Description: - -Tell, whether the given `account` is frozen. - -### Events - - -#### `Freeze(address,address)` - -##### Definition: - -```solidity -event Freeze (address indexed enforcer, address indexed owner) -``` - -##### Description: - -Emitted when address `owner` is frozen by `enforcer`. - -#### `Unfreeze(address,address)` - -##### Definition: - -```solidity -event Unfreeze (address indexed enforcer, address indexed owner) -``` - -##### Description: - -Emitted when address `owner` is unfrozen by `enforcer`. diff --git a/doc/modules/extensions/ERC20Snapshot.md b/doc/modules/extensions/ERC20Snapshot.md deleted file mode 100644 index 90cbf428..00000000 --- a/doc/modules/extensions/ERC20Snapshot.md +++ /dev/null @@ -1,64 +0,0 @@ -# Snapshot Module - -This document defines the Snapshot Module for the CMTA Token specification. - -[TOC] - -## Rationale - -> In relation to distributions or the exercise of rights attached to tokenized securities, it is necessary to determine the number of tokens held by certain users at a certain point in time to allow issuers to carry out certain corporate actions such as dividend or interest payments. -> -> Such moments are generally referred to in practice as the "record date" or the "record time" (i.e. the time that is relevant to determine the eligibility of security holders for the relevant corporate action). -> -> The snapshot functions to determine the number of tokens recorded on the various ledger addresses at a specific point in time and to use that information to carry out transactions on-chain. - -## Schema - -### Inheritance - -![surya_inheritance_ERC20SnapshotModule.sol](../../schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png) - -### UML - -![SnapshotModule](../../schema/sol2uml/ERC20SnapshotModule.svg) - -### Graph - -#### SnapshotModule - -![surya_graph_ERC20SnapshotModule.sol](../../schema/surya_graph/surya_graph_ERC20SnapshotModule.sol.png) - -## Sūrya's Description Report - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - -### SnapshotModule - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| ---------------------------------------------------- | ---------------------------------------- | -| ./modules/wrapper/extensions/ERC20SnapshotModule.sol | fbe645e4def4944ea02fa9b07ecd3dfe367ff725 | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :---------------------: | :----------------------------------: | :----------------------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ERC20SnapshotModule** | Implementation | ERC20SnapshotModuleInternal, AuthorizationModule | | | -| └ | __ERC20SnasphotModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | scheduleSnapshot | Public ❗️ | 🛑 | onlyRole | -| └ | scheduleSnapshotNotOptimized | Public ❗️ | 🛑 | onlyRole | -| └ | rescheduleSnapshot | Public ❗️ | 🛑 | onlyRole | -| └ | unscheduleLastSnapshot | Public ❗️ | 🛑 | onlyRole | -| └ | unscheduleSnapshotNotOptimized | Public ❗️ | 🛑 | onlyRole | - diff --git a/doc/modules/extensions/debt.md b/doc/modules/extensions/debt.md deleted file mode 100644 index e644afc5..00000000 --- a/doc/modules/extensions/debt.md +++ /dev/null @@ -1,58 +0,0 @@ -# Debt Module - -This document defines Debt Module for the CMTA Token specification. - -[TOC] - -## Schema - -### Inheritance - -![surya_inheritance_DebtBaseModule.sol](../../schema/surya_inheritance/surya_inheritance_DebtModule.sol.png) - - - - - -### Graph - -![surya_graph_DebtBaseModule.sol](../../schema/surya_graph/surya_graph_DebtModule.sol.png) - -## Sūrya's Description Report - -### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------------------- | ---------------- | -| ./modules/wrapper/extensions/DebtModule.sol | [object Promise] | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :------------: | :-------------------------: | :------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **DebtModule** | Implementation | AuthorizationModule, IDebtEngine | | | -| └ | __DebtModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | debtEngine | Public ❗️ | | NO❗️ | -| └ | setDebtEngine | External ❗️ | 🛑 | onlyRole | -| └ | debt | Public ❗️ | | NO❗️ | -| └ | creditEvents | Public ❗️ | | NO❗️ | -| └ | _getDebtModuleStorage | Private 🔐 | | | - - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - -## API for Ethereum - -This section describes the Ethereum API of Debt Module. - - diff --git a/doc/modules/extensions/debt/debt.md b/doc/modules/extensions/debt/debt.md new file mode 100644 index 00000000..96a1cbf7 --- /dev/null +++ b/doc/modules/extensions/debt/debt.md @@ -0,0 +1,27 @@ +# Debt Module + +This document defines Debt Module for the CMTA Token specification. + +[TOC] + +## Schema + +### Inheritance + +![surya_inheritance_DebtBaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_DebtModule.sol.png) + + + + + +### Graph + +![surya_graph_DebtBaseModule.sol](../../../schema/surya_graph/surya_graph_DebtModule.sol.png) + +## + +## API for Ethereum + +This section describes the Ethereum API of Debt Module. + + diff --git a/doc/modules/extensions/debt/surya_report.md b/doc/modules/extensions/debt/surya_report.md new file mode 100644 index 00000000..10dae16d --- /dev/null +++ b/doc/modules/extensions/debt/surya_report.md @@ -0,0 +1,33 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/extensions/DebtEngineModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **DebtModule** | Implementation | AuthorizationModule, IDebtEngine ||| +| └ | __DebtModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | debtEngine | Public ❗️ | |NO❗️ | +| └ | debt | Public ❗️ | |NO❗️ | +| └ | creditEvents | Public ❗️ | |NO❗️ | +| └ | setDebtEngine | External ❗️ | 🛑 | onlyRole | +| └ | _setDebtEngine | Internal 🔒 | 🛑 | | +| └ | _getDebtModuleStorage | Private 🔐 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/extensions/document.md b/doc/modules/extensions/document.md deleted file mode 100644 index 8e96a151..00000000 --- a/doc/modules/extensions/document.md +++ /dev/null @@ -1,54 +0,0 @@ -# Document Module - -This document defines Document Module for the CMTA Token specification. - -[TOC] - -## Schema - -### Inheritance - -![surya_inheritance_DebtBaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_DocumentModule.sol.png) - - - - - -### Graph - -![surya_graph_DebtBaseModule.sol](../../../schema/surya_graph/surya_graph_DocumentModule.sol.png) - -## Sūrya's Description Report - -| | [object Promise] | -| ---- | ---------------- | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :----------------: | :-----------------------------: | :---------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **DocumentModule** | Implementation | AuthorizationModule, IERC1643 | | | -| └ | __DocumentModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | documentEngine | Public ❗️ | | NO❗️ | -| └ | setDocumentEngine | External ❗️ | 🛑 | onlyRole | -| └ | getDocument | Public ❗️ | | NO❗️ | -| └ | getAllDocuments | Public ❗️ | | NO❗️ | -| └ | _getDocumentModuleStorage | Private 🔐 | | | - - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - -## API for Ethereum - -This section describes the Ethereum API of Document Module. - - diff --git a/doc/modules/extensions/document/document.md b/doc/modules/extensions/document/document.md new file mode 100644 index 00000000..63d30fca --- /dev/null +++ b/doc/modules/extensions/document/document.md @@ -0,0 +1,19 @@ +# Document Module + +This document defines Document Module for the CMTA Token specification. + +[TOC] + +## Schema + +### Inheritance + +![surya_inheritance_DebtBaseModule.sol](../../../schema/surya_inheritance/surya_inheritance_DocumentModule.sol.png) + + + + + +### Graph + +![surya_graph_DebtBaseModule.sol](../../../schema/surya_graph/surya_graph_DocumentModule.sol.png) diff --git a/doc/modules/extensions/document/surya_report.md b/doc/modules/extensions/document/surya_report.md new file mode 100644 index 00000000..55ac61e0 --- /dev/null +++ b/doc/modules/extensions/document/surya_report.md @@ -0,0 +1,33 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/extensions/DocumentEngineModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **DocumentModule** | Implementation | AuthorizationModule, IERC1643 ||| +| └ | __DocumentModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | documentEngine | Public ❗️ | |NO❗️ | +| └ | getDocument | Public ❗️ | |NO❗️ | +| └ | getAllDocuments | Public ❗️ | |NO❗️ | +| └ | setDocumentEngine | External ❗️ | 🛑 | onlyRole | +| └ | _setDocumentEngine | Internal 🔒 | 🛑 | | +| └ | _getDocumentModuleStorage | Private 🔐 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/extensions/metatx.md b/doc/modules/extensions/metatx.md deleted file mode 100644 index 567637f4..00000000 --- a/doc/modules/extensions/metatx.md +++ /dev/null @@ -1,79 +0,0 @@ -# MetaTx Module - -This document defines the MetaTx Module for the CMTA Token specification. The goal of the MetaTx Module is to enable wallets to transfer tokens without having native tokens in their wallet. - -[TOC] - -## Rationale - -> Support for transaction fee transfer, also known as "gasless transactions" in the Ethereum context. - -## Schema - -### Inheritance - -![surya_inheritance_MetaTxModule.sol](../../schema/surya_inheritance/surya_inheritance_MetaTxModule.sol.png) - -### UML - -![MetaTxModule](../../schema/sol2uml/MetaTxModule.svg) - -### Graph - -![surya_graph_MetaTxModule.sol](../../schema/surya_graph/surya_graph_MetaTxModule.sol.png) - -## Sūrya's Description Report - -### Files Description Table - - -| File Name | SHA-1 Hash | -| --------------------------------------------- | ---------------------------------------- | -| ./modules/wrapper/extensions/MetaTxModule.sol | 2e73511096a5a8abc9e0ff129cb15bc946192f37 | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :--------------: | :---------------: | :-----------------------: | :------------: | :-----------------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **MetaTxModule** | Implementation | ERC2771ContextUpgradeable | | | -| └ | | Public ❗️ | 🛑 | ERC2771ContextUpgradeable | -| └ | _msgSender | Internal 🔒 | | | -| └ | _msgData | Internal 🔒 | | | - - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - - - -## API for Ethereum - -This section describes the Ethereum API of the MetaTx Module. - -This modules uses ERC2771 implementation from OpenZeppelin: [https://docs.openzeppelin.com/contracts/4.x/api/metatx](https://docs.openzeppelin.com/contracts/4.x/api/metatx) - -### Functions - -Origin: OpenZeppelin - -#### `isTrustedForwarder(address)` - -##### Signature: - -```solidity -function isTrustedForwarder(address forwarder) -public view virtual -returns (bool) -``` - -##### Description: - -Return `true`if the address put in parameter is the forwarder of the contract, false otherwise diff --git a/doc/modules/extensions/metatx/metatx.md b/doc/modules/extensions/metatx/metatx.md new file mode 100644 index 00000000..7f64eb6b --- /dev/null +++ b/doc/modules/extensions/metatx/metatx.md @@ -0,0 +1,45 @@ +# MetaTx Module + +This document defines the MetaTx Module for the CMTA Token specification. The goal of the MetaTx Module is to enable wallets to transfer tokens without having native tokens in their wallet. + +[TOC] + +## Rationale + +> Support for transaction fee transfer, also known as "gasless transactions" in the Ethereum context. + +## Schema + +### Inheritance + +![surya_inheritance_MetaTxModule.sol](../../../schema/surya_inheritance/surya_inheritance_MetaTxModule.sol.png) + +### Graph + +![surya_graph_MetaTxModule.sol](../../../schema/surya_graph/surya_graph_MetaTxModule.sol.png) + +## + +## API for Ethereum + +This section describes the Ethereum API of the MetaTx Module. + +This modules uses ERC2771 implementation from OpenZeppelin: [https://docs.openzeppelin.com/contracts/4.x/api/metatx](https://docs.openzeppelin.com/contracts/4.x/api/metatx) + +### Functions + +Origin: OpenZeppelin + +#### `isTrustedForwarder(address)` + +##### Signature: + +```solidity +function isTrustedForwarder(address forwarder) +public view virtual +returns (bool) +``` + +##### Description: + +Return `true`if the address put in parameter is the forwarder of the contract, false otherwise diff --git a/doc/modules/extensions/metatx/surya_report.md b/doc/modules/extensions/metatx/surya_report.md new file mode 100644 index 00000000..8137ec12 --- /dev/null +++ b/doc/modules/extensions/metatx/surya_report.md @@ -0,0 +1,27 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/extensions/MetaTxModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **MetaTxModule** | Implementation | ERC2771ContextUpgradeable ||| +| └ | | Public ❗️ | 🛑 | ERC2771ContextUpgradeable | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/modules/extensions/snapshot/Snapshot.md b/doc/modules/extensions/snapshot/Snapshot.md new file mode 100644 index 00000000..08273160 --- /dev/null +++ b/doc/modules/extensions/snapshot/Snapshot.md @@ -0,0 +1,28 @@ +# Snapshot Module + +This document defines the Snapshot Module for the CMTA Token specification. + +[TOC] + +## Rationale + +> In relation to distributions or the exercise of rights attached to tokenized securities, it is necessary to determine the number of tokens held by certain users at a certain point in time to allow issuers to carry out certain corporate actions such as dividend or interest payments. +> +> Such moments are generally referred to in practice as the "record date" or the "record time" (i.e. the time that is relevant to determine the eligibility of security holders for the relevant corporate action). +> +> The snapshot functions to determine the number of tokens recorded on the various ledger addresses at a specific point in time and to use that information to carry out transactions on-chain. + +## Schema + +### Inheritance + +![surya_inheritance_ERC20SnapshotModule.sol](../../../schema/surya_inheritance/surya_inheritance_SnapshotEngineModule.sol.png) + + + +### Graph + + + +![surya_graph_ERC20SnapshotModule.sol](../../../schema/surya_graph/surya_graph_SnapshotEngineModule.sol.png) + diff --git a/doc/modules/extensions/snapshot/surya_report.md b/doc/modules/extensions/snapshot/surya_report.md new file mode 100644 index 00000000..1a7c15d5 --- /dev/null +++ b/doc/modules/extensions/snapshot/surya_report.md @@ -0,0 +1,31 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| ./modules/wrapper/extensions/SnapshotEngineModule.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **SnapshotEngineModule** | Implementation | AuthorizationModule ||| +| └ | __SnapshotModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | +| └ | snapshotEngine | Public ❗️ | |NO❗️ | +| └ | setSnapshotEngine | External ❗️ | 🛑 | onlyRole | +| └ | _setSnapshotEngine | Internal 🔒 | 🛑 | | +| └ | _getSnapshotEngineModuleStorage | Private 🔐 | | | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/doc/schema/PlantUML/CMTAT_BASE_plantUML.wsd b/doc/schema/PlantUML/CMTAT_BASE_plantUML.wsd deleted file mode 100644 index 3e66e315..00000000 --- a/doc/schema/PlantUML/CMTAT_BASE_plantUML.wsd +++ /dev/null @@ -1,57 +0,0 @@ -@startuml -' -- generated by: https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor -' -' -- for auto-render install: https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml -' -- options -- - - - -' -- classes -- - - -class CMTAT_BASE { - ' -- inheritance -- - {abstract}Initializable - {abstract}ContextUpgradeable - {abstract}BaseModule - {abstract}PauseModule - {abstract}MintModule - {abstract}BurnModule - {abstract}EnforcementModule - {abstract}ValidationModule - {abstract}MetaTxModule - {abstract}ERC20BaseModule - {abstract}DebtBaseModule - {abstract}CreditEvents - - ' -- usingFor -- - - ' -- vars -- - -[[uint256]] __gap - - ' -- methods -- - +initialize() - #__CMTAT_init() - #__CMTAT_init_unchained() - +🔍decimals() - +transferFrom() - #🔍_beforeTokenTransfer() - #🔍_msgSender() - #🔍_msgData() - -} -' -- inheritance / usingFor -- -CMTAT_BASE --[#DarkGoldenRod]|> Initializable -CMTAT_BASE --[#DarkGoldenRod]|> ContextUpgradeable -CMTAT_BASE --[#DarkGoldenRod]|> BaseModule -CMTAT_BASE --[#DarkGoldenRod]|> PauseModule -CMTAT_BASE --[#DarkGoldenRod]|> MintModule -CMTAT_BASE --[#DarkGoldenRod]|> BurnModule -CMTAT_BASE --[#DarkGoldenRod]|> EnforcementModule -CMTAT_BASE --[#DarkGoldenRod]|> ValidationModule -CMTAT_BASE --[#DarkGoldenRod]|> MetaTxModule -CMTAT_BASE --[#DarkGoldenRod]|> ERC20BaseModule -CMTAT_BASE --[#DarkGoldenRod]|> DebtBaseModule -CMTAT_BASE --[#DarkGoldenRod]|> CreditEvents - -@enduml \ No newline at end of file diff --git a/doc/schema/PlantUML/CMTAT_PROXY_plantUML.wsd b/doc/schema/PlantUML/CMTAT_PROXY_plantUML.wsd deleted file mode 100644 index d629fdf6..00000000 --- a/doc/schema/PlantUML/CMTAT_PROXY_plantUML.wsd +++ /dev/null @@ -1,28 +0,0 @@ -@startuml -' -- generated by: https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor -' -' -- for auto-render install: https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml -' -- options -- - - - -' -- classes -- - - -class CMTAT_PROXY { - ' -- inheritance -- - {abstract}CMTAT_BASE - - ' -- usingFor -- - - ' -- vars -- - -[[uint256]] __gap - - ' -- methods -- - +**__constructor__**() - -} -' -- inheritance / usingFor -- -CMTAT_PROXY --[#DarkGoldenRod]|> CMTAT_BASE - -@enduml \ No newline at end of file diff --git a/doc/schema/accessControl/RBAC-diagram.drawio b/doc/schema/accessControl/RBAC-diagram.drawio index b1d209f1..4aaebb53 100644 --- a/doc/schema/accessControl/RBAC-diagram.drawio +++ b/doc/schema/accessControl/RBAC-diagram.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/doc/schema/accessControl/RBAC-diagram.svg b/doc/schema/accessControl/RBAC-diagram.svg index b1810e47..8fa49412 100644 --- a/doc/schema/accessControl/RBAC-diagram.svg +++ b/doc/schema/accessControl/RBAC-diagram.svg @@ -1,3 +1,4 @@ + -
mint
mint
forceBurn
forceBurn
pause
pause
unpause
unpause
setDebt
setDebt
setInterestRate
setInterestRate
scheduleSnapshot
scheduleSnapshot
SNAPSHOOTER_ROLE
SNAPSHOOTER_ROLE
rescheduleSnapshot
rescheduleSnapshot
unscheduleLastSnapshot
unscheduleLastSnapshot
DEFAULT_ADMIN_ROLE
DEFAULT_ADMIN_ROLE
PAUSER_ROLE
PAUSER_ROLE
BURNER_ROLE
BURNER_ROLE
MINTER_ROLE
MINTER_ROLE
setTokenId
setTokenId
setTerms
setTerms
kill
kill
setRuleEngine
setRuleEngine
DEBT_ROLE
DEBT_ROLE
scheduleSnapshotNotOptimized
scheduleSnapshotNotOptimized
unscheduleSnapshotNotOptimized
unscheduleSnapshotNotOptimized
setFlag
setFlag
setInformation
setInformation
freeze
freeze
ENFORCER_ROLE
ENFORCER_ROLE
setParValue
setParValue
setGuarantor
setGuarantor
setBondHolder
setBondHolder
setMaturityDate
setMaturityDate
setInterestScheduleFormat
setInterestScheduleFormat
setInterestPaymentDate
setInterestPaymentDate
setDayCountConvention
setDayCountConvention
setBusinessDayConvention
setBusinessDayConvention
setPublicHolidayCalendar
setPublicHolidayCalendar
setIssuanceDate
setIssuanceDate
setCouponFrequency
setCouponFrequency
unfreeze
unfreeze
DEBT_CREDIT_EVENT_ROLE
DEBT_CREDIT_EVENT_ROLE
setCreditEvents
setCreditEvents
setFlagDefault
setFlagDefault
setFlagRedeemed
setFlagRedeemed
setRating
setRating
manage + is
manage +...
manage + is
manage +...
manage + is
manage +...
is
is
manage + is
manage +...
manage
manage
manage
manage
manage
manage
manage
manage
Admin
Admin
The role DEFAULT_ADMIN_ROLE has automatically
all the roles 
The role DEFAULT_ADMIN_ROLE has a...
Text is not SVG - cannot display
\ No newline at end of file +
mint
mint
burn
burn
pause
pause
unpause
unpause
SNAPSHOOTER_ROLE
SNAPSHOOTER_ROLE
setSnapshotEngine
setSnapshotEngine
DEFAULT_ADMIN_ROLE
DEFAULT_ADMIN_ROLE
PAUSER_ROLE
PAUSER_ROLE
BURNER_ROLE
BURNER_ROLE
MINTER_ROLE
MINTER_ROLE
setTokenId
setTokenId
setTerms
setTerms
deactivateContract
(PauseModule)
deactivateContract...
setRuleEngine
(ValidationModule)
setRuleEngine...
DEBT_ROLE
DEBT_ROLE
setFlag
setFlag
setInformation
setInformation
freeze
freeze
ENFORCER_ROLE
ENFORCER_ROLE
setDebtEngine
setDebtEngine
unfreeze
unfreeze
manage + is
manage +...
is
is
Admin
Admin
The role DEFAULT_ADMIN_ROLE has automatically
all the roles 
The role DEFAULT_ADMIN_ROLE has a...
mintBatch
mintBatch
burnBatch
burnBatch
BURNER_FROM_ROLE
BURNER_FROM_ROLE
burnFrom
burnFrom
Only CMTAT_UUPS_PROXY
Only CMTAT_UUPS_PROXY
PROXY_UPGRADE_ROLE
PROXY_UPGRADE_ROLE
_authorizeUpgrade
_authorizeUpgrade
DOCUMENT_ROLE
DOCUMENT_ROLE
setDocumentEngine
setDocumentEngine
Text is not SVG - cannot display
\ No newline at end of file diff --git a/doc/schema/drawio/architecture.drawio b/doc/schema/drawio/architecture.drawio index 13b92569..7d2876b9 100644 --- a/doc/schema/drawio/architecture.drawio +++ b/doc/schema/drawio/architecture.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/doc/schema/drawio/architecture.pdf b/doc/schema/drawio/architecture.pdf index c22d31fe86ed9afac3601cb2ab116597201abe42..837a2115de3423be5949b162880828e3f06d8f87 100644 GIT binary patch delta 43332 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

4pKMSy*ZIM+gCC++G!O(?8-PC8N|e>6@M7qz zgJuHh724N8q02w`4U}m|XJaZ89FR;U8eI~aend-^nAp^(b3DnEZ2t!sQp~vud8tA( z>|qR`a+j?n0;+lPvmFs=jXN!>AT(s4qtF`g=Say-T*qQ`w^PToPSAa&tUkLYVfrU5 zEzFsVza0ht<;auYCA3$kQGjt+ZYE=3g*$VxHv0Dh9tf5l^j9O{6`5y%=Y)2oy3b0R zu6+;%Rt~)>K0s}O*EODkx#MuglUZ@K9tUPMZgM>a!8CAFrHGg^H3tn;l|Y|*4*5Qo z2Z=WQUtSd^U>jE>&&~*Fz0O|39$s6OE{FoXPxVeEO(vs8-B`!fP1mqB3H#lcZ0PE^ zLjCcT3)^0kIZhmp3fEWhT%NpR@kXx1mS$Y+y@8^8XPvXY=-oE8)O6N*W)eXm%eNGH za=(Kbf==0PAD)!zCP{NaRTrDiJPL!n0kG1j#hieghZw&y)5x~%mXU!j{ z&x+`QuST*9mhM?n#I@Yd!9v@3pLji3bspkykGoW5WTP`m#oTS-@-LoCu%6pP2`9;E zHx6RA{geXwe>2^$ssBW|E%OLs|Jh)45<7B7XgB`6BzXo?<~s{UY%W zPD%R5G5prxDLsi_P)n9tn~_>pobPT0j}HeUJIadiez%XVem5UFi5JfFDsvTZcq>q2 zkHHRNHJY>IDS(@Y>cR>EGi5Qc=P5Ef{Pdv!f(&6_sjqx>ox!*84!-K(f~j>~ufa`R z-%Hf@)W)=OENJ7OzITy*TbucHU+iT?dH5=N`|$I!Xrxg&6?D((;9AK@*(p?^Xh@|0 zjxBcZ`RLd4?As05+k0lsv;3b|ec`*z=w(d6?z=0DlS`HYXd<}R0`~FUQE)cR1 zB`+Q`l{PNjY{rj36N<6jiQKkcVB|@CP^(XSZVg&lex^CI@d^Ih!84RNvOEfrpwAJs zL@V!bau z2Hd}IM8!e;piCBV6mh7C2><^S3JW0%|F2C%yt75rbDkbuDdHUK09 v68^iM*#F-uF=3(q4I(NA68qmEqT+%A!kIt`6nTKCxTpv}?z3k~+Ti~O%|+5% delta 43588 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 - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/security - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - diff --git a/doc/schema/sol2uml/archive/BaseModule.svg b/doc/schema/sol2uml/archive/BaseModule.svg deleted file mode 100644 index 9dcc427d..00000000 --- a/doc/schema/sol2uml/archive/BaseModule.svg +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/security - - -cluster_1 - -contracts/modules/wrapper/core - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -26 - -<<Abstract>> -BaseModule -contracts/modules/wrapper/core/BaseModule.sol - -Private: -   __gap: uint256[50] -Public: -   VERSION: string -   tokenId: string -   terms: string -   information: string -   flag: uint256 - -Internal: -    __Base_init_unchained(tokenId_: string, terms_: string, information_: string, flag_: uint256) <<onlyInitializing>> -Public: -    <<event>> Term(newTermIndexed: string, newTerm: string) -    <<event>> TokenId(newTokenIdIndexed: string, newTokenId: string) -    <<event>> Information(newInformationIndexed: string, newInformation: string) -    <<event>> Flag(newFlag: uint256) -    setTokenId(tokenId_: string) <<onlyRole>> -    setTerms(terms_: string) <<onlyRole>> -    setInformation(information_: string) <<onlyRole>> -    setFlag(flag_: uint256) <<onlyRole>> - - - -26->18 - - - - - diff --git a/doc/schema/sol2uml/archive/CMTAT_BASE.svg b/doc/schema/sol2uml/archive/CMTAT_BASE.svg deleted file mode 100644 index 8f01b57b..00000000 --- a/doc/schema/sol2uml/archive/CMTAT_BASE.svg +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/interfaces - - -cluster_1 - -contracts/interfaces/draft-IERC1404 - - -cluster_2 - -contracts/modules - - -cluster_3 - -contracts/modules/internal - - -cluster_4 - -contracts/modules/security - - -cluster_5 - -contracts/modules/wrapper/controllers - - -cluster_6 - -contracts/modules/wrapper/core - - -cluster_7 - -contracts/modules/wrapper/extensions/DebtModule - - -cluster_8 - -contracts/modules/wrapper/extensions - - - -3 - -<<Struct>> -DebtBase -contracts/interfaces/IDebtGlobal.sol - -interestRate: uint256 -parValue: uint256 -guarantor: string -bondHolder: string -maturityDate: string -interestScheduleFormat: string -interestPaymentDate: string -dayCountConvention: string -businessDayConvention: string -publicHolidaysCalendar: string -issuanceDate: string -couponFrequency: string - - - -2 - -<<Interface>> -IDebtGlobal -contracts/interfaces/IDebtGlobal.sol - - - -3->2 - - - - - -4 - -<<Struct>> -CreditEvents -contracts/interfaces/IDebtGlobal.sol - -flagDefault: bool -flagRedeemed: bool -rating: string - - - -4->2 - - - - - -8 - -<<Interface>> -IERC1404 -contracts/interfaces/draft-IERC1404/draft-IERC1404.sol - -External: -     detectTransferRestriction(_from: address, _to: address, _amount: uint256): uint8 -     messageForTransferRestriction(_restrictionCode: uint8): string - - - -10 - -<<Enum>> -REJECTED_CODE_BASE -contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - -TRANSFER_OK: 0 -TRANSFER_REJECTED_PAUSED: 1 -TRANSFER_REJECTED_FROM_FROZEN: 2 -TRANSFER_REJECTED_TO_FROZEN: 3 - - - -9 - -<<Interface>> -IERC1404Wrapper -contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - -External: -     validateTransfer(_from: address, _to: address, _amount: uint256): (isValid: bool) - - - -10->9 - - - - - -9->8 - - - - - -7 - -<<Abstract>> -CMTAT_BASE -contracts/modules/CMTAT_BASE.sol - -Private: -   __gap: uint256[50] - -Internal: -    __CMTAT_init(admin: address, initialDelayToAcceptAdminRole: uint48, nameIrrevocable: string, symbolIrrevocable: string, decimalsIrrevocable: uint8, tokenId_: string, terms_: string, ruleEngine_: IERC1404Wrapper, information_: string, flag_: uint256) <<onlyInitializing>> -    __CMTAT_init_unchained() <<onlyInitializing>> -    _update(from: address, to: address, amount: uint256) -    _msgSender(): (sender: address) -    _msgData(): bytes -Public: -    initialize(admin: address, initialDelayToAcceptAdminRole: uint48, nameIrrevocable: string, symbolIrrevocable: string, decimalsIrrevocable: uint8, tokenId_: string, terms_: string, ruleEngine_: IERC1404Wrapper, information_: string, flag_: uint256) <<initializer>> -    decimals(): uint8 -    transferFrom(sender: address, recipient: address, amount: uint256): bool - - - -7->9 - - - - - -25 - -<<Abstract>> -ValidationModule -contracts/modules/wrapper/controllers/ValidationModule.sol - -Private: -   __gap: uint256[50] -Public: -   TEXT_TRANSFER_OK: string -   TEXT_UNKNOWN_CODE: string - -Internal: -    __ValidationModule_init_unchained() <<onlyInitializing>> -External: -    setRuleEngine(ruleEngine_: IERC1404Wrapper) <<onlyRole>> -    messageForTransferRestriction(restrictionCode: uint8): (message: string) -Public: -    detectTransferRestriction(from: address, to: address, amount: uint256): (code: uint8) -    validateTransfer(from: address, to: address, amount: uint256): bool - - - -7->25 - - - - - -26 - -<<Abstract>> -BaseModule -contracts/modules/wrapper/core/BaseModule.sol - -Private: -   __gap: uint256[50] -Public: -   VERSION: string -   tokenId: string -   terms: string -   information: string -   flag: uint256 - -Internal: -    __Base_init_unchained(tokenId_: string, terms_: string, information_: string, flag_: uint256) <<onlyInitializing>> -Public: -    <<event>> Term(newTermIndexed: string, newTerm: string) -    <<event>> TokenId(newTokenIdIndexed: string, newTokenId: string) -    <<event>> Information(newInformationIndexed: string, newInformation: string) -    <<event>> Flag(newFlag: uint256) -    setTokenId(tokenId_: string) <<onlyRole>> -    setTerms(terms_: string) <<onlyRole>> -    setInformation(information_: string) <<onlyRole>> -    setFlag(flag_: uint256) <<onlyRole>> - - - -7->26 - - - - - -27 - -<<Abstract>> -ERC20BaseModule -contracts/modules/wrapper/core/ERC20BaseModule.sol - -Private: -   _decimals: uint8 -   __gap: uint256[50] - -Internal: -    __ERC20BaseModule_init_unchained(decimals_: uint8) <<onlyInitializing>> -Public: -    <<event>> Spend(owner: address, spender: address, value: uint256) -    decimals(): uint8 -    transferBatch(tos: address[], values: uint256[]): bool -    transferFrom(from: address, to: address, value: uint256): bool -    approve(spender: address, value: uint256, currentAllowance: uint256): bool - - - -7->27 - - - - - -28 - -<<Abstract>> -ERC20BurnModule -contracts/modules/wrapper/core/ERC20BurnModule.sol - -Private: -   __gap: uint256[50] - -Internal: -    __ERC20BurnModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> Burn(owner: address, value: uint256, reason: string) -    forceBurn(account: address, value: uint256, reason: string) <<onlyRole>> -    forceBurnBatch(accounts: address[], values: uint256[], reason: string) <<onlyRole>> - - - -7->28 - - - - - -29 - -<<Abstract>> -ERC20MintModule -contracts/modules/wrapper/core/ERC20MintModule.sol - -Private: -   __gap: uint256[50] - -Internal: -    __ERC20MintModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> Mint(account: address, value: uint256) -    mint(account: address, value: uint256) <<onlyRole>> -    mintBatch(accounts: address[], values: uint256[]) <<onlyRole>> - - - -7->29 - - - - - -30 - -<<Abstract>> -EnforcementModule -contracts/modules/wrapper/core/EnforcementModule.sol - -Private: -   __gap: uint256[50] -Internal: -   TEXT_TRANSFER_REJECTED_FROM_FROZEN: string -   TEXT_TRANSFER_REJECTED_TO_FROZEN: string - -Internal: -    __EnforcementModule_init_unchained() <<onlyInitializing>> -Public: -    freeze(account: address, reason: string): bool <<onlyRole>> -    unfreeze(account: address, reason: string): bool <<onlyRole>> - - - -7->30 - - - - - -31 - -<<Abstract>> -PauseModule -contracts/modules/wrapper/core/PauseModule.sol - -Private: -   isDeactivated: bool -   __gap: uint256[50] -Internal: -   TEXT_TRANSFER_REJECTED_PAUSED: string - -Internal: -    __PauseModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> Deactivated(account: address) -    pause() <<onlyRole>> -    unpause() <<onlyRole>> -    deactivateContract() <<onlyRole>> -    deactivated(): bool - - - -7->31 - - - - - -34 - -<<Abstract>> -CreditEventsModule -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol - -Private: -   __gap: uint256[50] -Public: -   creditEvents: CreditEvents - -Internal: -    __CreditEvents_init_unchained() <<onlyInitializing>> -Public: -    <<event>> FlagDefault(newFlagDefault: bool) -    <<event>> FlagRedeemed(newFlagRedeemed: bool) -    <<event>> Rating(newRatingIndexed: string, newRating: string) -    setCreditEvents(flagDefault_: bool, flagRedeemed_: bool, rating_: string) <<onlyRole>> -    setFlagDefault(flagDefault_: bool) <<onlyRole>> -    setFlagRedeemed(flagRedeemed_: bool) <<onlyRole>> -    setRating(rating_: string) <<onlyRole>> - - - -7->34 - - - - - -35 - -<<Abstract>> -DebtBaseModule -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol - -Private: -   __gap: uint256[50] -Public: -   debt: DebtBase - -Internal: -    __DebtBaseModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> InterestRate(newInterestRate: uint256) -    <<event>> ParValue(newParValue: uint256) -    <<event>> Guarantor(newGuarantorIndexed: string, newGuarantor: string) -    <<event>> BondHolder(newBondHolderIndexed: string, newBondHolder: string) -    <<event>> MaturityDate(newMaturityDateIndexed: string, newMaturityDate: string) -    <<event>> InterestScheduleFormat(newInterestScheduleFormatIndexed: string, newInterestScheduleFormat: string) -    <<event>> InterestPaymentDate(newInterestPaymentDateIndexed: string, newInterestPaymentDate: string) -    <<event>> DayCountConvention(newDayCountConventionIndexed: string, newDayCountConvention: string) -    <<event>> BusinessDayConvention(newBusinessDayConventionIndexed: string, newBusinessDayConvention: string) -    <<event>> PublicHolidaysCalendar(newPublicHolidaysCalendarIndexed: string, newPublicHolidaysCalendar: string) -    <<event>> IssuanceDate(newIssuanceDateIndexed: string, newIssuanceDate: string) -    <<event>> CouponFrequency(newCouponFrequencyIndexed: string, newCouponFrequency: string) -    setDebt(debt_: DebtBase) <<onlyRole>> -    setInterestRate(interestRate_: uint256) <<onlyRole>> -    setParValue(parValue_: uint256) <<onlyRole>> -    setGuarantor(guarantor_: string) <<onlyRole>> -    setBondHolder(bondHolder_: string) <<onlyRole>> -    setMaturityDate(maturityDate_: string) <<onlyRole>> -    setInterestScheduleFormat(interestScheduleFormat_: string) <<onlyRole>> -    setInterestPaymentDate(interestPaymentDate_: string) <<onlyRole>> -    setDayCountConvention(dayCountConvention_: string) <<onlyRole>> -    setBusinessDayConvention(businessDayConvention_: string) <<onlyRole>> -    setPublicHolidaysCalendar(publicHolidaysCalendar_: string) <<onlyRole>> -    setIssuanceDate(issuanceDate_: string) <<onlyRole>> -    setCouponFrequency(couponFrequency_: string) <<onlyRole>> - - - -7->35 - - - - - -33 - -<<Abstract>> -MetaTxModule -contracts/modules/wrapper/extensions/MetaTxModule.sol - -Private: -   __gap: uint256[50] - -Internal: -    _msgSender(): (sender: address) -    _msgData(): bytes -Public: -    constructor(trustedForwarder: address) - - - -7->33 - - - - - -16 - -<<Abstract>> -EnforcementModuleInternal -contracts/modules/internal/EnforcementModuleInternal.sol - -Private: -   _frozen: mapping(address=>bool) -   __gap: uint256[50] - -Internal: -    __Enforcement_init() <<onlyInitializing>> -    __Enforcement_init_unchained() <<onlyInitializing>> -    _freeze(account: address, reason: string): bool -    _unfreeze(account: address, reason: string): bool -Public: -    <<event>> Freeze(enforcer: address, owner: address, reasonIndexed: string, reason: string) -    <<event>> Unfreeze(enforcer: address, owner: address, reasonIndexed: string, reason: string) -    frozen(account: address): bool - - - -17 - -<<Abstract>> -ValidationModuleInternal -contracts/modules/internal/ValidationModuleInternal.sol - -Private: -   __gap: uint256[50] -Public: -   ruleEngine: IERC1404Wrapper - -Internal: -    __Validation_init(ruleEngine_: IERC1404Wrapper) <<onlyInitializing>> -    __Validation_init_unchained(ruleEngine_: IERC1404Wrapper) <<onlyInitializing>> -    _validateTransfer(from: address, to: address, amount: uint256): bool -    _messageForTransferRestriction(restrictionCode: uint8): string -    _detectTransferRestriction(from: address, to: address, amount: uint256): uint8 -Public: -    <<event>> RuleEngine(newRuleEngine: IERC1404Wrapper) - - - -17->9 - - - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -25->10 - - - - - -25->9 - - - - - -25->17 - - - - - -25->30 - - - - - -25->31 - - - - - -26->18 - - - - - -28->18 - - - - - -29->18 - - - - - -30->16 - - - - - -30->18 - - - - - -31->18 - - - - - -34->4 - - - - - -34->2 - - - - - -34->18 - - - - - -35->3 - - - - - -35->2 - - - - - -35->18 - - - - - diff --git a/doc/schema/sol2uml/archive/CMTAT_PROXY.svg b/doc/schema/sol2uml/archive/CMTAT_PROXY.svg deleted file mode 100644 index f9fe3f0c..00000000 --- a/doc/schema/sol2uml/archive/CMTAT_PROXY.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts - - -cluster_1 - -contracts/modules - - - -0 - -CMTAT_PROXY -contracts/CMTAT_PROXY.sol - -Private: -   __gap: uint256[50] - -Public: -    constructor(forwarderIrrevocable: address) - - - -7 - -<<Abstract>> -CMTAT_BASE -contracts/modules/CMTAT_BASE.sol - -Private: -   __gap: uint256[50] - -Internal: -    __CMTAT_init(admin: address, initialDelayToAcceptAdminRole: uint48, nameIrrevocable: string, symbolIrrevocable: string, decimalsIrrevocable: uint8, tokenId_: string, terms_: string, ruleEngine_: IERC1404Wrapper, information_: string, flag_: uint256) <<onlyInitializing>> -    __CMTAT_init_unchained() <<onlyInitializing>> -    _update(from: address, to: address, amount: uint256) -    _msgSender(): (sender: address) -    _msgData(): bytes -Public: -    initialize(admin: address, initialDelayToAcceptAdminRole: uint48, nameIrrevocable: string, symbolIrrevocable: string, decimalsIrrevocable: uint8, tokenId_: string, terms_: string, ruleEngine_: IERC1404Wrapper, information_: string, flag_: uint256) <<initializer>> -    decimals(): uint8 -    transferFrom(sender: address, recipient: address, amount: uint256): bool - - - -0->7 - - - - - diff --git a/doc/schema/sol2uml/archive/CMTAT_STANDALONE.svg b/doc/schema/sol2uml/archive/CMTAT_STANDALONE.svg deleted file mode 100644 index f7f9462d..00000000 --- a/doc/schema/sol2uml/archive/CMTAT_STANDALONE.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts - - -cluster_1 - -contracts/interfaces/draft-IERC1404 - - -cluster_2 - -contracts/modules - - - -1 - -CMTAT_STANDALONE -contracts/CMTAT_STANDALONE.sol - -Public: -    constructor(forwarderIrrevocable: address, admin: address, initialDelay: uint48, nameIrrevocable: string, symbolIrrevocable: string, decimalsIrrevocable: uint8, tokenId_: string, terms_: string, ruleEngine_: IERC1404Wrapper, information_: string, flag_: uint256) - - - -7 - -<<Abstract>> -CMTAT_BASE -contracts/modules/CMTAT_BASE.sol - -Private: -   __gap: uint256[50] - -Internal: -    __CMTAT_init(admin: address, initialDelayToAcceptAdminRole: uint48, nameIrrevocable: string, symbolIrrevocable: string, decimalsIrrevocable: uint8, tokenId_: string, terms_: string, ruleEngine_: IERC1404Wrapper, information_: string, flag_: uint256) <<onlyInitializing>> -    __CMTAT_init_unchained() <<onlyInitializing>> -    _update(from: address, to: address, amount: uint256) -    _msgSender(): (sender: address) -    _msgData(): bytes -Public: -    initialize(admin: address, initialDelayToAcceptAdminRole: uint48, nameIrrevocable: string, symbolIrrevocable: string, decimalsIrrevocable: uint8, tokenId_: string, terms_: string, ruleEngine_: IERC1404Wrapper, information_: string, flag_: uint256) <<initializer>> -    decimals(): uint8 -    transferFrom(sender: address, recipient: address, amount: uint256): bool - - - -1->7 - - - - - -9 - -<<Interface>> -IERC1404Wrapper -contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - -External: -     validateTransfer(_from: address, _to: address, _amount: uint256): (isValid: bool) - - - diff --git a/doc/schema/sol2uml/archive/CreditEventsModule.svg b/doc/schema/sol2uml/archive/CreditEventsModule.svg deleted file mode 100644 index b5506875..00000000 --- a/doc/schema/sol2uml/archive/CreditEventsModule.svg +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/interfaces - - -cluster_1 - -contracts/modules/security - - -cluster_2 - -contracts/modules/wrapper/extensions/DebtModule - - - -4 - -<<Struct>> -CreditEvents -contracts/interfaces/IDebtGlobal.sol - -flagDefault: bool -flagRedeemed: bool -rating: string - - - -2 - -<<Interface>> -IDebtGlobal -contracts/interfaces/IDebtGlobal.sol - - - -4->2 - - - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -34 - -<<Abstract>> -CreditEventsModule -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol - -Private: -   __gap: uint256[50] -Public: -   creditEvents: CreditEvents - -Internal: -    __CreditEvents_init_unchained() <<onlyInitializing>> -Public: -    <<event>> FlagDefault(newFlagDefault: bool) -    <<event>> FlagRedeemed(newFlagRedeemed: bool) -    <<event>> Rating(newRatingIndexed: string, newRating: string) -    setCreditEvents(flagDefault_: bool, flagRedeemed_: bool, rating_: string) <<onlyRole>> -    setFlagDefault(flagDefault_: bool) <<onlyRole>> -    setFlagRedeemed(flagRedeemed_: bool) <<onlyRole>> -    setRating(rating_: string) <<onlyRole>> - - - -34->4 - - - - - -34->2 - - - - - -34->18 - - - - - diff --git a/doc/schema/sol2uml/archive/DebtBaseModule.svg b/doc/schema/sol2uml/archive/DebtBaseModule.svg deleted file mode 100644 index 55c72819..00000000 --- a/doc/schema/sol2uml/archive/DebtBaseModule.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/interfaces - - -cluster_1 - -contracts/modules/security - - -cluster_2 - -contracts/modules/wrapper/extensions/DebtModule - - - -3 - -<<Struct>> -DebtBase -contracts/interfaces/IDebtGlobal.sol - -interestRate: uint256 -parValue: uint256 -guarantor: string -bondHolder: string -maturityDate: string -interestScheduleFormat: string -interestPaymentDate: string -dayCountConvention: string -businessDayConvention: string -publicHolidaysCalendar: string -issuanceDate: string -couponFrequency: string - - - -2 - -<<Interface>> -IDebtGlobal -contracts/interfaces/IDebtGlobal.sol - - - -3->2 - - - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -35 - -<<Abstract>> -DebtBaseModule -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol - -Private: -   __gap: uint256[50] -Public: -   debt: DebtBase - -Internal: -    __DebtBaseModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> InterestRate(newInterestRate: uint256) -    <<event>> ParValue(newParValue: uint256) -    <<event>> Guarantor(newGuarantorIndexed: string, newGuarantor: string) -    <<event>> BondHolder(newBondHolderIndexed: string, newBondHolder: string) -    <<event>> MaturityDate(newMaturityDateIndexed: string, newMaturityDate: string) -    <<event>> InterestScheduleFormat(newInterestScheduleFormatIndexed: string, newInterestScheduleFormat: string) -    <<event>> InterestPaymentDate(newInterestPaymentDateIndexed: string, newInterestPaymentDate: string) -    <<event>> DayCountConvention(newDayCountConventionIndexed: string, newDayCountConvention: string) -    <<event>> BusinessDayConvention(newBusinessDayConventionIndexed: string, newBusinessDayConvention: string) -    <<event>> PublicHolidaysCalendar(newPublicHolidaysCalendarIndexed: string, newPublicHolidaysCalendar: string) -    <<event>> IssuanceDate(newIssuanceDateIndexed: string, newIssuanceDate: string) -    <<event>> CouponFrequency(newCouponFrequencyIndexed: string, newCouponFrequency: string) -    setDebt(debt_: DebtBase) <<onlyRole>> -    setInterestRate(interestRate_: uint256) <<onlyRole>> -    setParValue(parValue_: uint256) <<onlyRole>> -    setGuarantor(guarantor_: string) <<onlyRole>> -    setBondHolder(bondHolder_: string) <<onlyRole>> -    setMaturityDate(maturityDate_: string) <<onlyRole>> -    setInterestScheduleFormat(interestScheduleFormat_: string) <<onlyRole>> -    setInterestPaymentDate(interestPaymentDate_: string) <<onlyRole>> -    setDayCountConvention(dayCountConvention_: string) <<onlyRole>> -    setBusinessDayConvention(businessDayConvention_: string) <<onlyRole>> -    setPublicHolidaysCalendar(publicHolidaysCalendar_: string) <<onlyRole>> -    setIssuanceDate(issuanceDate_: string) <<onlyRole>> -    setCouponFrequency(couponFrequency_: string) <<onlyRole>> - - - -35->3 - - - - - -35->2 - - - - - -35->18 - - - - - diff --git a/doc/schema/sol2uml/archive/ERC20BaseModule.svg b/doc/schema/sol2uml/archive/ERC20BaseModule.svg deleted file mode 100644 index 15ce4ff4..00000000 --- a/doc/schema/sol2uml/archive/ERC20BaseModule.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/wrapper/core - - - -27 - -<<Abstract>> -ERC20BaseModule -contracts/modules/wrapper/core/ERC20BaseModule.sol - -Private: -   _decimals: uint8 -   __gap: uint256[50] - -Internal: -    __ERC20BaseModule_init_unchained(decimals_: uint8) <<onlyInitializing>> -Public: -    <<event>> Spend(owner: address, spender: address, value: uint256) -    decimals(): uint8 -    transferBatch(tos: address[], values: uint256[]): bool -    transferFrom(from: address, to: address, value: uint256): bool -    approve(spender: address, value: uint256, currentAllowance: uint256): bool - - - diff --git a/doc/schema/sol2uml/archive/ERC20BurnModule.svg b/doc/schema/sol2uml/archive/ERC20BurnModule.svg deleted file mode 100644 index 7987a9d2..00000000 --- a/doc/schema/sol2uml/archive/ERC20BurnModule.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/security - - -cluster_1 - -contracts/modules/wrapper/core - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -28 - -<<Abstract>> -ERC20BurnModule -contracts/modules/wrapper/core/ERC20BurnModule.sol - -Private: -   __gap: uint256[50] - -Internal: -    __ERC20BurnModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> Burn(owner: address, value: uint256, reason: string) -    forceBurn(account: address, value: uint256, reason: string) <<onlyRole>> -    forceBurnBatch(accounts: address[], values: uint256[], reason: string) <<onlyRole>> - - - -28->18 - - - - - diff --git a/doc/schema/sol2uml/archive/ERC20MintModule.svg b/doc/schema/sol2uml/archive/ERC20MintModule.svg deleted file mode 100644 index 9ff0c7b9..00000000 --- a/doc/schema/sol2uml/archive/ERC20MintModule.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/security - - -cluster_1 - -contracts/modules/wrapper/core - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -29 - -<<Abstract>> -ERC20MintModule -contracts/modules/wrapper/core/ERC20MintModule.sol - -Private: -   __gap: uint256[50] - -Internal: -    __ERC20MintModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> Mint(account: address, value: uint256) -    mint(account: address, value: uint256) <<onlyRole>> -    mintBatch(accounts: address[], values: uint256[]) <<onlyRole>> - - - -29->18 - - - - - diff --git a/doc/schema/sol2uml/archive/ERC20SnapshotModule.svg b/doc/schema/sol2uml/archive/ERC20SnapshotModule.svg deleted file mode 100644 index bf433680..00000000 --- a/doc/schema/sol2uml/archive/ERC20SnapshotModule.svg +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_2 - -contracts/modules/wrapper/extensions - - -cluster_0 - -contracts/modules/internal - - -cluster_1 - -contracts/modules/security - - - -15 - -<<Struct>> -Snapshots -contracts/modules/internal/ERC20SnapshotModuleInternal.sol - -ids: uint256[] -values: uint256[] - - - -14 - -<<Abstract>> -ERC20SnapshotModuleInternal -contracts/modules/internal/ERC20SnapshotModuleInternal.sol - -Private: -   _accountBalanceSnapshots: mapping(address=>Snapshots) -   _totalSupplySnapshots: Snapshots -   _currentSnapshotTime: uint256 -   _currentSnapshotIndex: uint256 -   _scheduledSnapshots: uint256[] -   __gap: uint256[50] - -Private: -    _valueAt(time: uint256, snapshots: Snapshots): (snapshotExist: bool, value: uint256) -    _updateAccountSnapshot(account: address) -    _updateTotalSupplySnapshot() -    _updateSnapshot(snapshots: Snapshots, currentValue: uint256) -    _lastSnapshot(ids: uint256[]): uint256 -    _findScheduledSnapshotIndex(time: uint256): (bool, uint256) -    _findScheduledMostRecentPastSnapshot(): (time: uint256, index: uint256) -Internal: -    __ERC20Snapshot_init(name_: string, symbol_: string) <<onlyInitializing>> -    __ERC20Snapshot_init_unchained() <<onlyInitializing>> -    _scheduleSnapshot(time: uint256) -    _scheduleSnapshotNotOptimized(time: uint256) -    _rescheduleSnapshot(oldTime: uint256, newTime: uint256) -    _unscheduleLastSnapshot(time: uint256) -    _unscheduleSnapshotNotOptimized(time: uint256) -    _update(from: address, to: address, amount: uint256) -    _setCurrentSnapshot() -Public: -    <<event>> SnapshotSchedule(oldTime: uint256, newTime: uint256) -    <<event>> SnapshotUnschedule(time: uint256) -    getNextSnapshots(): uint256[] -    getAllSnapshots(): uint256[] -    snapshotBalanceOf(time: uint256, owner: address): uint256 -    snapshotTotalSupply(time: uint256): uint256 - - - -15->14 - - - - - -14->15 - - - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -32 - -<<Abstract>> -ERC20SnapshotModule -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol - -Private: -   __gap: uint256[50] - -Internal: -    __ERC20SnasphotModule_init_unchained() <<onlyInitializing>> -Public: -    scheduleSnapshot(time: uint256) <<onlyRole>> -    scheduleSnapshotNotOptimized(time: uint256) <<onlyRole>> -    rescheduleSnapshot(oldTime: uint256, newTime: uint256) <<onlyRole>> -    unscheduleLastSnapshot(time: uint256) <<onlyRole>> -    unscheduleSnapshotNotOptimized(time: uint256) <<onlyRole>> - - - -32->14 - - - - - -32->18 - - - - - diff --git a/doc/schema/sol2uml/archive/EnforcementModule.svg b/doc/schema/sol2uml/archive/EnforcementModule.svg deleted file mode 100644 index 9460f47e..00000000 --- a/doc/schema/sol2uml/archive/EnforcementModule.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/internal - - -cluster_1 - -contracts/modules/security - - -cluster_2 - -contracts/modules/wrapper/core - - - -16 - -<<Abstract>> -EnforcementModuleInternal -contracts/modules/internal/EnforcementModuleInternal.sol - -Private: -   _frozen: mapping(address=>bool) -   __gap: uint256[50] - -Internal: -    __Enforcement_init() <<onlyInitializing>> -    __Enforcement_init_unchained() <<onlyInitializing>> -    _freeze(account: address, reason: string): bool -    _unfreeze(account: address, reason: string): bool -Public: -    <<event>> Freeze(enforcer: address, owner: address, reasonIndexed: string, reason: string) -    <<event>> Unfreeze(enforcer: address, owner: address, reasonIndexed: string, reason: string) -    frozen(account: address): bool - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -30 - -<<Abstract>> -EnforcementModule -contracts/modules/wrapper/core/EnforcementModule.sol - -Private: -   __gap: uint256[50] -Internal: -   TEXT_TRANSFER_REJECTED_FROM_FROZEN: string -   TEXT_TRANSFER_REJECTED_TO_FROZEN: string - -Internal: -    __EnforcementModule_init_unchained() <<onlyInitializing>> -Public: -    freeze(account: address, reason: string): bool <<onlyRole>> -    unfreeze(account: address, reason: string): bool <<onlyRole>> - - - -30->16 - - - - - -30->18 - - - - - diff --git a/doc/schema/sol2uml/archive/IERC1404Wrapper.svg b/doc/schema/sol2uml/archive/IERC1404Wrapper.svg deleted file mode 100644 index 8d15d11d..00000000 --- a/doc/schema/sol2uml/archive/IERC1404Wrapper.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/interfaces/draft-IERC1404 - - - -8 - -<<Interface>> -IERC1404 -contracts/interfaces/draft-IERC1404/draft-IERC1404.sol - -External: -     detectTransferRestriction(_from: address, _to: address, _amount: uint256): uint8 -     messageForTransferRestriction(_restrictionCode: uint8): string - - - -9 - -<<Interface>> -IERC1404Wrapper -contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - -External: -     validateTransfer(_from: address, _to: address, _amount: uint256): (isValid: bool) - - - -9->8 - - - - - diff --git a/doc/schema/sol2uml/archive/MetaTxModule.svg b/doc/schema/sol2uml/archive/MetaTxModule.svg deleted file mode 100644 index 0a1c3c29..00000000 --- a/doc/schema/sol2uml/archive/MetaTxModule.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/wrapper/extensions - - - -33 - -<<Abstract>> -MetaTxModule -contracts/modules/wrapper/extensions/MetaTxModule.sol - -Private: -   __gap: uint256[50] - -Internal: -    _msgSender(): (sender: address) -    _msgData(): bytes -Public: -    constructor(trustedForwarder: address) - - - diff --git a/doc/schema/sol2uml/archive/PauseModule.svg b/doc/schema/sol2uml/archive/PauseModule.svg deleted file mode 100644 index bc4eade3..00000000 --- a/doc/schema/sol2uml/archive/PauseModule.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/modules/security - - -cluster_1 - -contracts/modules/wrapper/core - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -31 - -<<Abstract>> -PauseModule -contracts/modules/wrapper/core/PauseModule.sol - -Private: -   isDeactivated: bool -   __gap: uint256[50] -Internal: -   TEXT_TRANSFER_REJECTED_PAUSED: string - -Internal: -    __PauseModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> Deactivated(account: address) -    pause() <<onlyRole>> -    unpause() <<onlyRole>> -    deactivateContract() <<onlyRole>> -    deactivated(): bool - - - -31->18 - - - - - diff --git a/doc/schema/sol2uml/archive/ValidationModule.svg b/doc/schema/sol2uml/archive/ValidationModule.svg deleted file mode 100644 index b6383e8b..00000000 --- a/doc/schema/sol2uml/archive/ValidationModule.svg +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/interfaces/draft-IERC1404 - - -cluster_1 - -contracts/modules/internal - - -cluster_2 - -contracts/modules/security - - -cluster_3 - -contracts/modules/wrapper/controllers - - -cluster_4 - -contracts/modules/wrapper/core - - - -8 - -<<Interface>> -IERC1404 -contracts/interfaces/draft-IERC1404/draft-IERC1404.sol - -External: -     detectTransferRestriction(_from: address, _to: address, _amount: uint256): uint8 -     messageForTransferRestriction(_restrictionCode: uint8): string - - - -10 - -<<Enum>> -REJECTED_CODE_BASE -contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - -TRANSFER_OK: 0 -TRANSFER_REJECTED_PAUSED: 1 -TRANSFER_REJECTED_FROM_FROZEN: 2 -TRANSFER_REJECTED_TO_FROZEN: 3 - - - -9 - -<<Interface>> -IERC1404Wrapper -contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol - -External: -     validateTransfer(_from: address, _to: address, _amount: uint256): (isValid: bool) - - - -10->9 - - - - - -9->8 - - - - - -16 - -<<Abstract>> -EnforcementModuleInternal -contracts/modules/internal/EnforcementModuleInternal.sol - -Private: -   _frozen: mapping(address=>bool) -   __gap: uint256[50] - -Internal: -    __Enforcement_init() <<onlyInitializing>> -    __Enforcement_init_unchained() <<onlyInitializing>> -    _freeze(account: address, reason: string): bool -    _unfreeze(account: address, reason: string): bool -Public: -    <<event>> Freeze(enforcer: address, owner: address, reasonIndexed: string, reason: string) -    <<event>> Unfreeze(enforcer: address, owner: address, reasonIndexed: string, reason: string) -    frozen(account: address): bool - - - -17 - -<<Abstract>> -ValidationModuleInternal -contracts/modules/internal/ValidationModuleInternal.sol - -Private: -   __gap: uint256[50] -Public: -   ruleEngine: IERC1404Wrapper - -Internal: -    __Validation_init(ruleEngine_: IERC1404Wrapper) <<onlyInitializing>> -    __Validation_init_unchained(ruleEngine_: IERC1404Wrapper) <<onlyInitializing>> -    _validateTransfer(from: address, to: address, amount: uint256): bool -    _messageForTransferRestriction(restrictionCode: uint8): string -    _detectTransferRestriction(from: address, to: address, amount: uint256): uint8 -Public: -    <<event>> RuleEngine(newRuleEngine: IERC1404Wrapper) - - - -17->9 - - - - - -18 - -<<Abstract>> -AuthorizationModule -contracts/modules/security/AuthorizationModule.sol - -Private: -   __gap: uint256[50] -Public: -   BURNER_ROLE: bytes32 -   DEBT_CREDIT_EVENT_ROLE: bytes32 -   DEBT_ROLE: bytes32 -   ENFORCER_ROLE: bytes32 -   MINTER_ROLE: bytes32 -   PAUSER_ROLE: bytes32 -   SNAPSHOOTER_ROLE: bytes32 - -Internal: -    __AuthorizationModule_init(admin: address, initialDelay: uint48) <<onlyInitializing>> -    __AuthorizationModule_init_unchained() <<onlyInitializing>> -Public: -    hasRole(role: bytes32, account: address): bool -    transferAdminshipDirectly(newAdmin: address) <<onlyRole>> - - - -25 - -<<Abstract>> -ValidationModule -contracts/modules/wrapper/controllers/ValidationModule.sol - -Private: -   __gap: uint256[50] -Public: -   TEXT_TRANSFER_OK: string -   TEXT_UNKNOWN_CODE: string - -Internal: -    __ValidationModule_init_unchained() <<onlyInitializing>> -External: -    setRuleEngine(ruleEngine_: IERC1404Wrapper) <<onlyRole>> -    messageForTransferRestriction(restrictionCode: uint8): (message: string) -Public: -    detectTransferRestriction(from: address, to: address, amount: uint256): (code: uint8) -    validateTransfer(from: address, to: address, amount: uint256): bool - - - -25->10 - - - - - -25->9 - - - - - -25->17 - - - - - -30 - -<<Abstract>> -EnforcementModule -contracts/modules/wrapper/core/EnforcementModule.sol - -Private: -   __gap: uint256[50] -Internal: -   TEXT_TRANSFER_REJECTED_FROM_FROZEN: string -   TEXT_TRANSFER_REJECTED_TO_FROZEN: string - -Internal: -    __EnforcementModule_init_unchained() <<onlyInitializing>> -Public: -    freeze(account: address, reason: string): bool <<onlyRole>> -    unfreeze(account: address, reason: string): bool <<onlyRole>> - - - -25->30 - - - - - -31 - -<<Abstract>> -PauseModule -contracts/modules/wrapper/core/PauseModule.sol - -Private: -   isDeactivated: bool -   __gap: uint256[50] -Internal: -   TEXT_TRANSFER_REJECTED_PAUSED: string - -Internal: -    __PauseModule_init_unchained() <<onlyInitializing>> -Public: -    <<event>> Deactivated(account: address) -    pause() <<onlyRole>> -    unpause() <<onlyRole>> -    deactivateContract() <<onlyRole>> -    deactivated(): bool - - - -25->31 - - - - - -30->16 - - - - - -30->18 - - - - - -31->18 - - - - - diff --git a/doc/schema/surya_graph/surya_graph_AuthorizationEngineMock.sol.png b/doc/schema/surya_graph/surya_graph_AuthorizationEngineMock.sol.png deleted file mode 100644 index c2611f761df39be5745a59fcc6fcbf80bf268da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54084 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 YLMGZiC+kuXO@jYUsc0z|D4GTQ7blq^`Tzg` diff --git a/doc/schema/surya_graph/surya_graph_AuthorizationModule.sol.png b/doc/schema/surya_graph/surya_graph_AuthorizationModule.sol.png index c61cff42822da009d2d6baba449b655dc3b05bd5..09b79a152ca721b27ed03555412bb1e33d15cdcc 100644 GIT binary patch literal 69624 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 z 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�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 diff --git a/doc/schema/surya_graph/surya_graph_BaseModule.sol.png b/doc/schema/surya_graph/surya_graph_BaseModule.sol.png index 7a8351837b9efaf24d784849cb8352a22ccb76f3..b4edb404f94238c16c12db37b5ad992465e14bb4 100644 GIT binary patch literal 78027 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 Oafmg+-l7VB`r6;eOM0mQ diff --git a/doc/schema/surya_graph/surya_graph_CMTATFactoryBase.sol.png b/doc/schema/surya_graph/surya_graph_CMTATFactoryBase.sol.png deleted file mode 100644 index 5821ed670956959acd714b66b384938b80ed0ff1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36609 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 i-n0NF0Ah*Rg8e)Pq@?JRc*) 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 BHAx3zEYB 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�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 z

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 literal 441985 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

&-({nvI_(XnF%D2n+BO_D1 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Μ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�ANZBN^PzKjH+PBotdrdx>e~2DH7fU6_;zmnx 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

  • &_v+yv3SNzqgXExDST>de;y;$F01dVT$_Q#mw>5 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%0D$=nj?77~{%rEzN|0!7*xuAB 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%0D*%Ee$pxj{!> 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 r2_zjGe2M)Ov#<&Muc(Qw4BGt;hM-P0k|y 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 F{|iK`36uZ; literal 0 HcmV?d00001 diff --git a/doc/schema/surya_graph/surya_graph_CMTAT_PROXY_ERC1363.sol.png b/doc/schema/surya_graph/surya_graph_CMTAT_PROXY_ERC1363.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..b373400e3e02b2ba2131ae2358bea039a0ddf825 GIT binary patch literal 23413 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 literal 0 HcmV?d00001 diff --git a/doc/schema/surya_graph/surya_graph_CMTAT_STANDALONE_ERC1363.sol.png b/doc/schema/surya_graph/surya_graph_CMTAT_STANDALONE_ERC1363.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..6cd191c96da643d89584288910aa963c55bf53f6 GIT binary patch literal 24325 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
    fps<9rg>A^-8yC!jBf;+2n9d>HDmb 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
  • |q7;eHwS^!BnrXJRjM0bL>d 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 diff --git a/doc/schema/surya_graph/surya_graph_CMTAT_UUPS_FACTORY.sol.png b/doc/schema/surya_graph/surya_graph_CMTAT_UUPS_FACTORY.sol.png deleted file mode 100644 index 41976837eb545b3280e2bf69ea59033e99f26510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113736 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

    Y_(RiE5> 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

    F#b6m4glXURHD5x*|)e+aHpN{mm%1FgX+uX8w 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 EKT#t27XSbN literal 404037 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

    M0P!7)``x)wr++j&K_Wac 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

    #VN+pb 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 #-XF&Ygwc;-`xK<^s7oYZr*#ff?zGbN$kfn#$ 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

    Ccs{F*WWpLTdc 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%0DEPGjg&Gca3 z5Ds|Q+8B31IH9G#H_B*`y!Y&Wp}u>*)d*Ep@bypEs{Y*kg{5TxE6DIf?u37J{pQZ} zLc{ADG}zC*9f^M6`}XhW=C5P$#G53V=cIUQV|W42jjeO2_>gn)RVJmYaNo(sKFTM)iZ+=p;svOdaj1oo_?^}s zIj(e>QF&dSpL(C|)Bp|CqJ3slhIsTrl&9}^;c^p~eDwE?E6@vK@$%NlQMuN=`)@wS z>o;&w9X?%)23YEC8>W13rsjI~XPs*;k)@H#Ng8GhYUwid)jc#(`7*|tXClazTHF^h z%T|z+M+faNY_#v>#g#Xq&?a5&xOq6$Nfb$=mfrnif2)>FTG75@-p59OLZE`t823eE z&1b$>kHwdQ9#z@1EQfSdot}He>#aV!D3k%j4!#YhN+u|QzRcUSEDMiJa(^c^e)fnl z>ZSa>pQK6v$|$9pKbQ+do=Hk-iiSNZ>$R!@bcl+9pYZai%+H~d%1w8`sDe0#o<>Hs z;%EX%YjFdg!D97{t<|uDB>jIg9v=0Cdz1dAfq4KUQ$xv#j{3CYq%*$*!#|kSdMZ3= zONqYT%ww>GyRR619pE77#R{6YCzDC|GSWq)PnezP_B&3@%F7>%n(rxO=}2J+JBF><2qhn7pgZ8h)ZE<{6=-K_lT{};${@YFzAE(u&Iy85F zU!@&z>hqN8*nmn340&D~pb3Mr|5bv6ivSh8AB-?f8ZP!Bs3AiWa2knEz~T>(5cLDi zPaoX&ek#=eb)>uYzf!Uk93E3^RpGpE<|PV-9zV1rHxBKneixMnpu!YGa`~_^nH~pu zPTyoCUFJr%NrElyaYy=i{*`-wK>}nmP7$| z|5po8tm<8sPhjYx(+Y40D@SPTxR{H;6Q_5QSa8}d^f>A`r5HMVQ=ZZ|_dRzr8EqoC z8uYvT2GzB8t^K0udaIVY`cO?-1;!#Ax0BnOH+KRdervbo$`>jW5wn4`sgY7?BU*lcz(uUI(-}vKCE>#68%Q35A=W|p#Z)ij_4iPzy@~4fa z(T_32tJ|=^>j55m8k$A6y4&VqPOosCIh<(+NP{~{Eo>^_Cs|0LGl)n2S$J_ySaym% zXQp>tA++NL(uT({$fZzLv)MC3j3CJN7j}0CKp$i8=GKzy`@c#6ggcoy89Oz{IyWsmMyh%VSlqVdhUn&ge26R#$8{Jf=jg#toP6U=n^@i_!qC0|J+p$R`YH`~ zB^fk7DRx4RcU9fE<<@u7*8Bs+_QSSMQL)S0n^_rWN-0xHabT6TV2OYEecT01rLaQk^7>y+4jphAVuf8 z;o4`->XTpJta)NnQ{|v$L}u8+)LIx842o!=5Oanx{99jsH7ZA0fGn3nvfa(i_fk2n zy}j5_N;ft(LYE9ehIjt{{#H8Ma`#?sZLA1fj-0ap89!e8_Tw(kF9?kv0LP1VxzPR8qqu&AB}~k^K~x_)o&BYl67L#&YT~lFT`KRjag_6imw?`5R^D8)I%=Qz zHIqA`Xz!xhbmAwv;L~$wHS7U-=So|*jctJo;KrZ7rLO<9RzJg=!X749auhHNUry35 zHTV4P3%^dSGcK77c+u@K5CU0)&Pq%mCGhBOAFdC50ytG9m(ER%} zK^G9WMe~qBRPem`!f6lb-KScJ5R3-*; z-e_T>Hh^o8^Z}x9Mkc0UNcAkJhT1%$y%CUQOP8^<^`)gH_o1>+pT1j`r0^aggI8aV zjHrUnjxqujrAkKue3KZMn24kZhTy^n!-Vs%y<5}aVYe`*u>dR1m^jMylk`h4W3w5l zLi#5tCP0JoKmE_VqlV`+9kdR8nWCBCCp}nrgU?~yfwOYZo7n(Q(7qo4^e#=)*pdN8 z=zpt=etDI$B!bwyy~n6PvPo)$;3e+8ujKwU{S-=DSH#0HS|#n3@UoQTwre;_KCsyO z6#A1806U;TJnN{TnqR3c+-xkoWKoHWD(fqFrm-?Pg{C|mf1-T>nEowmJjPK%*?0Wk z_l5figQN)SYPB9n)kOooti98cLTh>}M^5lJ)u~E;Nynx4U^0DHQh;CF9lW?ujDJly7NwgOM?;p4G zS>Q_~XS0z*8=!sKdWb%LR%{!Bx!-%}U>MR2j zt>pDvi5j-K+NN#Sp9064v1NnsS$D5a&>?Ba7}_`a3?VWSl3P_ew`F2Z{?6EW0F)0> zBY3(k+DAml1JzKWYECVcS+88<0u^f`gIZc^kk;-y~bm#nVd{sV9 zc_cTfQD*B~m7TaXwOx^{ajlqHE$;Cr6H)*dr6yD1rR;G2%Qy;^>3FCd(r9lAkO?lb zj4AfllY@#5Ns2(+6(HXo$Pf;NK?x!v830-X(I^JJ43f@%>7M~9vyeaqN}N@&5-mW? z3=t6#1l2$$4mQBqIUvdg!DD4nI%;dxQ`JQJn~AtWBppeq zgXEF^FTHa=`C*@cW{VaIK?o##49%h(F-jvT0A8sL27ir0>& z$$3+EeR%Cvc9_ar?KVomNt(5&;=iwVWpiS;(z2NWx{jdSq}0Guj`t+62%(2(kaj;p zLY($}kOXSU>k`X`g{76^gVWJtHKfY-KMUP6_a1il{$f7W?<_wfBZleK7FlgbXA zl4zLZ*z4`jB<#~`a+&Pf1Yi80tiDOg6uw)MYr|-jUf%O5O)K3kj#H>WK)RkMJ$5=4 z2JKz@UFk6{`v7hw`>rE`c~8Gy!-;P|Le>`lVGD}Kb9zONK^{pT+oiI~mq)1ky!vxP zv*6r=h96Tyry=TL&(~`PhOgo!$|foRKtwW}ntjgT;m|WOI{r}L9d7b+s|QMB8$VSm z1Ts?bs098?38^s02Wg7)#?WidhGypGAsrhGAO@m{>8p} zmRnKI3F{w&BZH>%*7yTA|1ZzDDqpLq-8w3`rJzZ2FxdCmVZ&Op+ABkr`Fb}x`Iv~n z&NUXj21k*VWY3u$m-${GFBrQBzYChr(~MG1Q?Bt~3A#Ft)um}(onAS^KZ#>=lOd!i z@MH0cEL07633$-GC|WA17P8Uw#)!d?LMfF+&uk}dUT~6Lw|WTe{}%O`oVIfD6I^k-^G>z z*`t>zAo&F=-G`|T%ZKzbwEXS^XZhRYMY93TUE& z6TcW(CR{>-9~kf%0Bu5IUl8Ld;CXrpsJ>obO*qOSNkioF#28!>1K_Riio372F;la5 zhe`{;Cz}{n7h-fhd`H-1UUSC+#4#jAA_fK?!asTTG^;h0?~<&oFgDOT={S*Nc3ZfW zNSopl;=X_Sdm9Tm+J_IN$N!bA!qH9`{yywJ^|zsztQ{T_&zeqK>PYvr`4~T|I890G zUl={Yc66fdI&W+Siw8LAyl-m%Vg=St!eA~wJ&xjAVEy$miyLECTK>yd%w2>MN@Df;#zFvr?u)u6>po9jDBMz!C1LjwgcA-Ia5dwl}s$-FmOi1WCqCk2Iy+AiF%#)vG2D0ZrIw3W0tdz*WJ{d3a5@2 zu6^Qn9Rvvy9~+9%nsf*6mii$da=!alP+Bj-D2`&k=HCzT`8Un=&9k`;G7?x^bmn8` zr{iZYc+RXDp?gud!@DmweErYxk%i3kIyr%dap!**SC!=I)EC0^A{)dQ#9hKt@;y9xfVYPmCv;k)Qu+y3`6b> zkZRrGHjSWdBYKj{ulmkM|0apR&4^lR2ML@}N1Ra_k=j9MZQ zhJ4q73eSD2@?`#db7CIm5CLQCd*memO6W6K^@N0lH|H97uiwOZ32B3gdbDME(e&@( zt5-n248kgbaOZtkmwBBY#TPwZwiQ_@1UWC)o(LMB8Jo~RZD6l$c#;6x8|Aq}FGHv7MzR!!_ ze%#x){d=~Rab5w4W+i_H|62@nq}m)Ya7dKc=vO$v*=B6q@nvVF`sTO!RoC0;kw^5L z2f{2ucD5sYchCI#mOixq896pG9B<=!@o@1eXlbtYPwri* z#_P>XXGs~nO;3a=-n4#Y%Jgmnvh6LfsgNiD$`~vqrNIXt#XCW_nG}%-o@(1US-6zp z9xX6v@h!1Q5F6TMRwlN$DtN(OCm^PVxGMiod^)T&h;%ogdIA$vEj6+ z#?VJ6By<2^cml^7@{9T5Lk331Ah2{N!{5fl#f@721+w%*dz1;G*WBMPV_pvggb-Zo9m{N0>=*CGC1PYu3OOmKQIXyA)C)CsRs!|~ ztwuCm`tnnFmij#G8A4a|-(-Wwrp%z8WYw)DfF}cCAIV_$C@p=8R>KCIojaf>NFoz* z9VCO0kcQ@|sQA5CtZ-27hPA||KCoSD>O0nP-UfG->)y})%ZoFFwOt>~gaP40AS)px zB&3`-Ha6Zm$EoaME!-|LtLio?kAhrgz+(Pm1QpZnL2U$N5b`Dg>w{3QK#1E&Wg^M} zt+X6A>8W2$@izK1%<9B3CeM}zMvCwwBGw{GY%)GjMSbjEk&e83I&dbaT6rG|*}9x< zJSfYWmt?1R0xN!1SReiDsnMU0`Pfb0M%4OyWD$p*%y&%7tZT^Rk&rE4>JOgVR-Z(z zrxo1%3&Xn8HX134M~-7UessIAVrYNW+$#xVryTs#xVfXLMAOa?cvskWMKt4T@$FwU zVA@K9N}>1556!}c^@K8c;NSHWXZeGoFF_=lY#5xuw`{@~rzw3j1kzF{Qv0NUQIt`M zW!4(K5~3Fmq7sC+c;9>X5HG6-$X7&Y1WF9#3{M6ySR-?9UKi1PAY!=G)ZW`lLah)J z@20UziH)We!lgh?w2(fJvTw93FdjfJ(fpwv_ftU%N{-QB{l|D{f#z>uAnk4WJ~$pcR?;sS%d z1)5dpTfn_MkSQ8TF9TL=BO@bdJnz9^4r*af@Qe;IifSS4hUBB(KJUFFVXO0rs3HZ1 z@04v+rf&91o5B)F(?RI+Ln7TnCcm2|j;)WTW%C&il?)q3vLASJPa@un(OY?=$c=uypln^>o6Ax45!*$=kdqUC#vei5e6gPsKMf9L zyB8U0?Y+qw-FLd-90?2sfr*8`6tq4Bd)^PD}YKaRp~33J^(lE->#*o04d9YDsHdFs=F zpCP(ndT4~eascFioxbeV(+hL@<%HZ3cx6NO+ctx zqMpB#F_U~p1Y0oND@}De-p>*}%|GMrk;!IP9_^nij#DTzffiu|l{*qq4tsW-N9NwE z3VNvf?E0GMNpGKU?DUTF6sRC7zeov@fSUePzr73I{}~d&ngv1Kz{3luV!RFTHex5Pr6%=-JRP`c+VxKp0zRza0W>|WnU@j<| zmn8X@e9(7%L-FaGgyBc)r*2)oH%OK-IgG}+W=>qU5h0O{RX#ckQY3@Y== z3%>r*?Q|Zrdzg*ZT6WJJ;Azw1evt_!d`&2ZE+xKo$H_hDH9Bl-|u zNwTwLgctB5SKD`Kmn;rj+~Selw^SEV^pKT z@d1)DI$&_0KFo^P6B!qEI-iGFdq`;O1z}|eMAy}f*T)wV7mxL*DG9ej=j#qJ+?xVvfJ2993Smf->inB1tf?S4DDxK1%EnvAqU%v*z_Uo@Q^dZNy5_@8OjN2 zbD;lxU9RGxCXbHVFx$}75YAa*1fb-aMp5-xXtt%ZV|q>>g}Q?Km|*eP#;T_^$4sWp zXVs7Pw%0WldjtYYpQQG#uHxp8ZmoKLdcI|297h4wCvJq+UDFVbYA+iY=zUMfrb;er z^Ny#r`dmYU?On}0UMZV4({SzEReC#>U;8!I9ig1%Ne)N!JVt>m4Ok@Ic`6r0%H01r zH4L>D7{`Q@d$&1+=+_HL>-6;HrdmpkU5;K%JkHa5uQ`ISRK}(77#+hzbuaDTVe~}* z7@m!WrVNZ1WzdnTLkY3)DW82w)_jJzS)_ zilp>A9Lu_ZbBmhQJL*NRT?uDMb_$Zy420GJFm;XqHB`qMrocOO^>jhUq zuiO;7-WdO6z~5evF^>#6Ng%+)NkYZNDtEtZq z0#jGUU*^8n9N|ei^Icr3Wka|Ry^KR;_6euHBT`_$=NH^<|II%t7R*+b`jC*q+w*ko&5{{M0A2^t=JAPoSgNc)2O|j^QnodBARB@&-?Ap4Sq7!g<~e zOw6Q7wa)34p|LE$)$IpUC-A4C}K%Acb9xHZfi960Msy zLiS7Nv+iVmY5F`i$qt8!R-hT`SCJYY`S6q;rTe0b#trTkTzOUR6uWty1Uwl$k11Y! zuO><)x|~|fq;wMQ0E9$-F!Lv4rRpz7oFr4TFh}Dzo$?&9;wxn-DG}xWA~d9Pq3QUd zF-63TO?gFf=K$*uR@1jl4Jy44*U5)L^*%8KC7J7*1op%ZqlCe%Am3{aGv+X_GQjs$ITr;=_gHiJb!sP0$Mh! z}6B!KkV?AemLPN~I&HBr8fsL21c9 z|3yzQqsf;i-0t)E*f3f{c-PYdn_QBTx3#JK7s(Q|<;8lAL+3hfw3xk>(m%SS4>wy=i z7~2CTK&J{#1`Jc49Gz92{M(*MSMKM*z{39Iu>-BVxqG+0=Z4o%`{Zhh`k|dI z?8vUD#rtDd`WEu$D32^?%NkX#=!T=Zro*bvJC{Wp#}~P8cH){@4?m}7aW9l~&146s zz*AEzFC8*ROF!2Cs|5f(Oye&hz-`i7xXim%%?)ENHoXDPylsLBbhI?QdT`%98NV0M z-wJe%ee5jd)er6*`!Gj3h7dx8(N@a@qFSkxBM~S*;0WL)j==a}DeWKHmS_2-Oc})b zQFPKlpL&M(MWtnqj_cFt6|$zaPa9_T&e#4@fNImo_g(8~>vxd9yy(A%5}u09?$T@> z3Yi=b;5&%Oo?$$L9Ee~3yBsksZH1sYo=&?h#y)WkAM*z5>6jxxL86wZyeVe%EUv@KHq; zC^GGmR38Nnx960d{=(yqo>_&166103Q1CSO9(H^nAOvMPwZ)G7WdeKl^%onbbU+$2 z?O=!Ny@?z{7cIWqtZCqF(|n@i13lKF@e$2O4osjaGh&#idGNvdz`P?1%4EEq*C_&M z01rcZp?pL@3BZC{@V!~e2w7Fbm{dx|*IELNZA#Rl+?z*HG&%Ar9gCm8{qb$$ z<#3sTE9=Q>7bb5Y@Dj=0fw7y`8}ivSCtVIIJqS%M)I#rR#n0q=xzyA-0V;*&N6?pebslr<+8iup=@YDCyw;XK zkZ3~&nX!l%6ohY3rPqC0$9TP9x%iYx?1hoWR~A=~-J(0!lohJhVkvLE_u$81`pPW^ zh4R>Cu?NqwHh3^fjK0A$1LPrW`4|a31g$0LOLuN=1r+u6f-BT!SO3%DS& zIp`V3OK|Ksl97a3B$@!BFTtZ|pC;&i@(6|(5qEcYLx$Nf$OHl>;VKxtr!$B zZVk9W$?y0U(w<}E;?&FZ!2V!}T(n4{EocN`E=&dhydP9QB4!xmi=h1f`C8~6J`4}0 z{^zuq78i#GY`q|O|LZrJOwG&$I!b!i66oPXHTH-shaE{LE2aLB*%Ex0 zWF_;&`zloR-)q}SF-?FU_EERIi{>b^RveN?61PSq7MtS_d)9jYXTZ|q8-{ajk7~(> zCQ~LbmFK-x6vUkj#cjy{owrOjs`%LGIYqa$_%*Gkq(Uh|2GgjZkwXBd)F!{zADUF0 zGK!*VsF=P2=-Wu~XIGL6W$YP;Os=s$==1GyKmT+Sew`o&#g-*E1;X5z^{2E0kc#B_ zf&&NzW;MbrI7&eLkmrXO0rr3YehJS8kSNGBXoJaDkWj3besKw*)QvDt1;8f0F;o#y z_<$h*k>IlG)yEn5T~sA74}o43wo9YOAqF-!5|WR^fIDnY`$0YRf8x@Y7Z+RM|GWSC zSO6;A3rVUwBwy?opF(Cw0KE({WDyYNIH(UGQ=Y{_nm~yZ+D)CQcteJ7?|39*U&`0My3g}u zD+<&V-)BD)2X=S|sb(5Je5taG@%iR&-CZYnwzR$w|2vH%i+8|fW9+@?E=3Ya98Lew zAEX!eZg9y30*JU~Po$~kTIgY|*{N;vk>W0uW_a9#$3uL-L-@$IQrSN^AP*dw@)YWO z$;-v0Z_S4KOL$@yf@hF0SA^xm0)Nog%xDyrhN6B6RA7q%gDHN3j-qaJGO87!G4!Y{ z&=L1@rw{&{9&~QG%RhOLKC+o_p??hdWDq|9X`UZot-fXtgaIu&N&IhCWp>pqj0|2{XD4x3L^ zMFo+|11AFtrQ81n?qrz{W+1lcqv_G1CTM0qBSYYd2vjG-IbVY9Q7WH6wfk1*>6Q&$#S7)+FEbMKUjxy! z1KerWZ!`;@Qi;n3f2Os+@rLl`zT%J|9P|{sVnd9|lXu*wh4$g(28(SUr4(Q)(C3;I zaYBQ`U6h$}>-x1IlXbB_>}I||$dih?H;Jk}^hu8blVf7D#JCtvI6`Muf+JoN!P&I*`zs;Hd>Tz;+m z@lxxQRZz$S4Yp>BvW9KheRnUd9gML&_1P%BvAPuQNQ){BtW(Y6JK<8|;OGE->)Pen zo;f6wL(XTlz8ATZ-OTVTjh3`T4`%7|>6U5Iy#|j;<0C5lQIl|GYy5Yz4cz zH0mn`8(2F4#ejuM-}Lx_c&pz`;9LKhdiMSc8UPc81lRd6yRg`B7tv~OM$uS3q$<%t z2B^ViOoQ-`p^_K8z)JNPM+&d;Wr9oujvi)aW@Jb!b9~Ru_^VaNb^ip=!+tO{%*l_? z(AC9Jk7vQbX>1f&Jc@s3*;R_YSHp&kIn3}_BSXx#FcmO~%YqPeCMS|*HhoQ1X4=K| z;6A){%Q%2XF)%xTLsI)qGzweC?MYJ>`RPL9FWVyyv9sl-Q7NZTTtM-|;5IBm#AQAH_vVTXQS}BO%lG~iXeIX z`ZN)F%70rczrX!eU!%&r?&zq;FGrX_4Jp1GAxG>4l}wb1C=Jz$hNIPA&G!01dQ7Uv zkwWIdIqB;tNHN0uDDS0gaXz2HL!{XHs!*Rgxm(pVpp*JAT%OSwsD0#;f}x9on12wS zXZy;0uWvc0sO<8p+3oK`3Ka8rLE>^`NIt|Ab#jak{MUhoi zI(P3>Ee-1AY1~r(PIb#vTAT38p8Q`EMozZ`FF!x|^^_<*$abua}~|{kEuoEL=kuUC6=*NrT(qq9?jfQ4FW+GbB^P*3d_sVv}9(P`sRCQ-x6lVKX`z~|hDy^bnKq~sq zIAiH*;%&d~_&^Zb3|r{(ojz@jJ)@%Ta`)F#)iM+HMMqthUruDd)-4E10pl76 zC%%ms3jrl|R~IQa9dSR0<@7br?CdWr7IzY>492anzH(i0?f!H-_V2*L#)}}h7ICfA zx{fe%_*-u`d#4}~3R}}3RS4{BZ*PZ)?aj!7JjuCqtrDHUi7nIq6mDdIXv@5kwl*2S zN-L1Nhn{WVdw#hgy9dGLH$V85!?17j?idD83?5WuUW7p^5af9u5q2Z9L7=RmKG4O) z9L7%q+f6yl$}SXID;%kNL2oH)F|GBj;J7@-oCK_--q-MuC~QT@J)^0y^hr8?oed!dp5Z@>2oP8 zLu%E{?A08wE9W;fyqKRiDyRHYMa8=2{#nR{U(b=mZMPxTuF~g?7x~`eaFMjO#+MKn z5V3F8ohqbygb_MJ9DA#00sD+ZC~lvCcV+(TreuNB?x<58-7y}uoL?Be?%g4?SE0vp z0%lXDbCS_58&PN47hV{XH+fzgbH!3Cu2<*JxL2$w=(Bje?|$8V?%TGPENH{#w(_$z zXdq9BZ+-j9}H#UZ}7;fZ{B>tkM4|b=$ zz#P~VFc&+l4ZaP&yB9Agz%v59>kB_2ZtgphDiEB_>%5NeUm2i=qv_=!BO{vyYYYmc zmmN%7l|`qg_ouu4{3!Yt9_|;DZo&bfLwVY047-*K9++iRke3&TeD2@Bu1L*?Wa@J% z2rksIwVXR5u^nGbvCA3{u-4O@@R&eL4?-k*7&HR`5k!)Ph!O5@P0P+<`)YP5+ek0@ zix)4D=?@@8j#U(RPhng88Vv5&K7-g1{)1S70so(Gprcc};`oag4r^v0QYaX)#i2lI zJ`LnoLDQBB--++PADIZI{sm?YAT~~9S~BuV)YoSh?SYSdfWoe^6~yNF|EBSX51&>1 zsE*Avy$IXm@k!)t^l2ID?xL3)7u3103zt8C(rgb!ydU#hHrH0{$n-|zH`6*opvPXDDlgr_{jt#v1{g%ey ziO9GG2ak%;L&I3(+j|U+oyFZ{2geS6>%;qz2lgG`Snt-P#mhXHGMsrmxIySw8zVLkgbaY(? zw;;OnE@ZUj8AB zc{&^8hV8N@kWuVzE5=!OBVbr6J}-pg!0x5&ORPu@;qhXLZTtNsq3z0DlSG?DUn?FS zI+|#zzO|Fx<>WEp(5bnK`#40jp{PYPIsKCzjUNx)bAR1hbLkgc@Wo8ui&i@lcD+*~ z%}qH+M=i{VZ$&u%nb86F#m)AJQ(eUc%i@{|_w1b; zZ?Yfe_bnITimo11_byWn6f(fXn&9QnEw_c)@~>0UC2`%3R2OaQKjn3@xvUb>Ib!~S zYTQz(X}|q>t~uRq-8XgAo@L(plrd9Kq_dE$yx0|`uZXOem@592noa#?xS9*KI_oq1 zyjW`4^|VsJE`_8b*)XhY?A8~>cbZ?PV)SF96UYoZzJ2A(pm3TgssFa>bYsJBI zswlAGJH9)|oWGr;kK(^ExXk@8dFtncDom@>G8hw>CBWCPWxeJ)U>f0u zClj6P9xP~G7*llSR#;f?pkY13bXHic{^O+q zO5byMhWC*49%Rf2+_`h-d{fCU#EluXwXp4@!0^yULc=nZEW0K{De6n#^>aRHM`t>g zYY~rOwcXZd`!&xrcWoO}t#nFn<>d#cgopHSS`7Yv^)E--+LnwH0y7&YSJc=ZOht5k(w!c)@FrI^1AOXqxyJ|_IR-1PQ% z(t18Dq^I&L*P8pfeabP{L7Y&4c)Uh&HG359=g#wU*=Zi}AYgefZgeKcPLc zl%iFA8|%%q-#>2WXuDpAR*#CzjH7g$bwE~-Fz1)lyZU+oWWpFjqHdd#-@hO3!E^*+ zET!zV)Y`EhKdb+4&A?xxiWnFR)QT-w*>9MhZx@VH>5tY##kjRVDiN=qq3Dy+l7AKd z!>7Q>Z|5R6IMRBzN$e3NR}%S&$N1os*?fmyxSNAbZ*^0Mb&40zQKyG4A0 ztP5r_Rrkie6VRLo6_%SQV=X0S&s^gdQx0KNoeQ#UlaLH%6DJ`jPs!apbbg~sP}V9J zoONANGn=6$B@FZS7h;#W_^1fJa(-RU5K{EEBJIb;=;>^>ov?oJcwLJM5MuV?O`-I zSR~rbet&Tn%HQP~SL?#_>(_1Mp8ZP_#(a;)eeF)XVqI($Wp?}IQ`pzAKl(e&bizyO zdz&9D85zBzh2uj8-am>y)2FXcVY4J>_1(JtO~lQ6!0n(}Tq1-Z>o|^x4AN?~zQb@; zEqlqCJ0|EAUON>q$g26M#O^Epp!H=G+*%p-e0>M2z2(n4N?)=N;Goa< zU$E&<$(5HR4Z8Xe@7bd;SHw9?<@UN4E!|f2gOt#hLf!ZH%QSiCLiq5dISwN7993`lZpj?q{>nXjqOdS6GNFe0AIi zT<>4!as3hf%wO8ze&H+LVjb8ONVT}M@Z=U#YDLX9ZubuQx!XAB=vLMf{CfMgxH!d7 zS0-B>wt_${-t0rS+e-_!N5N_$bGFt@^npo~N%D?-r~YT%mj1b=_w+DN-&R(>p>}%I z?S@lq$?(we_wuhZJTb2K(S>-Q)*4zuA~XJcQs*Bs=3XNYDQS;;E;ng2ryzzGMX0#Q zcjZ7i;X|nw|MB0u262YtZ%+!cVpZktuZ}xf%5#q<XP2kX5c=nE7!fQXCa?QD) zMlep{$p`=Lo)vK{e!6z&D`#8V`eayu5lN{WGkVs*Wb&jQjfYweP*|Z`-%5epoU0>) zt9EgGVF^o17O0*`yMIUCf0{)gdeVvykrFFllL;n3K@0G;FT|S;-#Ib$bEYvSa;I)e zI44iel2`nTJD5w*s`XCR-f6Lr}vKM`u+aL30Wl>k&Nt_nT(9Gx2#B3_TGC__R8L)jF1S~J0g3NkZeWv zp1<>Wy+7aIA8xl^>BaMLJ+A9q_j5nz-0u_>TEX!oYI;k4+*g<=W*yxN)!#^Yb1zfr zEeM$Bi7LdW6!w%C-)s_o*W67dO)HGJdrNp9A1nmtPN0xA7(}8+I+*OFPJk11e0kI| z2;T09>2N2Iu!|INPdHiX{1z^}EiU4OtA)L**DFN=_hgXI@6$6`*LdJ)do)8isnvN6 z+1PZ>WP%=o2NrrVKB&?iZ6-F!4le8C;-~Z~_xbVRJYJ^mDqnJKQXSKaYS!rVgMat> za=THc@Px4U#%T&%WK$;7l45iL9=dzS+N+Z(qr9sr_asT-m)Z18YR%NAY9eex%7cu_|v>6r=y#Lw-`uPF{GtZQsO^r;536y=4Cr2fh7j@-Np&u&!VxLq8n z^}fZgLf@ij?4>hXT2P6>ouGiPBGG3r+Dc+QhTFfd%a-kF?^?0h>h^hLuD%*k*!a9< zV9_=rE;3n?3Xx;+`HcI7*N=-8TlOqpF225ofIx#bE{+>`7!MvifSQzWLP7!->XZBY z=(kLTz6(wY_OO{Wwya*%MwC<4i!2SyJcb0QSov{c4u=>z{tafz+>qqXrVhvt7kS+U zS{A)aE$hPXUf$ioQ?yTb_pW@rIgzBR>HA~stsFTP*kGn7rd-0DnSoDGZNK$*{O-u@ zX{`9AGYH>DHrnHj$DfOz5Bw1di4bHr1ORZoAAbu!Br`^b%0YUQ0aWyX(~Fa+|~h?*n~o;e4c5%Ud_2*-?4 zv*<>@0b5UdK(YqqT8K%zeZ%Yyp6q?naiOeB{xZfUC4hMv^dG-tuXONcc{y&r8z1Va zBp&SKjV=$|Mi%MMyz}Oa8{^!eclr_GuhqJ-RW0q>guZ7CBwzGfP5vdvmMwKXR%jzF z=u_>S4zsHiwBXfPVJSHI;BeI30C^e9gT#cFJs!3*PG87g2AFr-1gN&snGl@FiER3( zU(5H$euwSgLlGix${D|&UbcF=vc5wq+?amM{*h4A$!qf;T~K^&&f+zMrbwNY-olya z$xH0}o8=;d`efv*R)gDc63q(wEqc>_1yBCW90J}pg;2U@uZnWUwBBnI`q|6s{BIdi+iD%u<0|RAm|qfgz|LosM6yo(ewFRbaavIbEE+V4;MoDogMgo8C^?{ zRBYVx%syM+jIko`B7jY{A0f-b)nX*F_jqM5|DXJG#!sduyK+hS4;Big2L4|!KrXN* zfzcR!>lxCvoP59D;dG)bCprF7cF!IU`^a3L^cIrzuhFfw*A_0{{E6AWM=a3-0Ko%=jj-|r^ft$ z%9LCBw59UvRQ0QrU~vnHR7shZthc5-F_cU>3Gb%*6!;{(=y5h`X-aA;aVwo<#k{XA zj8BNp{d#!1V@QJG4Z~Y9C3@xz=dsg1^yT|6tzUlr=xS`N`|vJS+?~ugd&Om5qN|b= z{iaLSYW@05ug$uUgoNCN_lAW?RkHUCDS3WJ&;GKAIm7ZXX z99<;BtrL)2NN>ypi2gA3@W64djCZnPvR+ep%nQf#MH}125sh;9V{2L_$>)VU<0^Kg zAAS)v@uu9{?@Ej6Z<3-C)L>lvx+sIg7)u~a&79EzF(R(Ln+~Kw@feN9OMYlPhU@__ zdg)I{xNe^`{Yz@t>CyAPp6xqlu@-6DE8=~f>QnG@OE%uIG)oJf>iKw|kb`dmkD}%a zR?=(hmn};yodr8Ux2Vg`@9brx9tSc7%Qs`+9-H7vISyfU8|cSvFfwqMcwx2^p?@BT zP1tGblJW$fV}h=9K4eN%LUQ?JcU9os*_+yqcXBKwO3iQg9uKT$b$Trjv};MYU&C4u zlL-IZ-y9W_K~+9b6-{7;{b;-sXaN3hH-gFrGqoiS0x9V(ENbQsrD>&V{_4-e&9PC@ zQLtgu(9{GFeDzl_0-|&KsmU)^ucGRGV$8q&2Ze=3s^nO*)W~Te?q>b*d!`i@hux+j zf%RvpfuX%&WBa{_nZZgc%Bh1kS<|)UC!OM(*%}u{H)55Fcd4iX)};8(Vx}TK{nboi zeU`uW*GZfIQ!=%_kPmO5>f7sTXrDTt1Ah5JrftDhJ!EVBp?^p!y*%oUQA9IELLjD4 zk}S_FH5+~n#yjJIid6><`hK+JUeQq-0%@aG+wb2~I%X6|R^GSbCL?<)Q0R4yE|?JR z|Io+3O+D}bq;&AwY@02)m2iGUhmZBy`@|8Z#e#>;m%x@~HJr8dK9_?5En|!;GS~qu zPA^c6-(YANDHsdD0OcY@(i2XG7h5`mHXb#o+t%MIGu9q+u{$)TZ?n(!o=~#NKM%)Q ze0pC3rL8b$cnrA^Cmv5$PBo`KH)4gg2Yh3CX6j^k6b5i{=JUY&JCWpiuahaNDXh!w zhP&P}SBPozM@=SRGcy(usF@Vps3l)1dro#KeFP`BJ9M62~a) zV~Pn@Je`EEuz|- z@8k>TZe8@{oaRs8aeTYyuDEW9(Cj~2jljmjC&o4$XRHprNjN;5I}jTGnaDKTf$Ctz z^HBS!V!A%vpL|G^D*RmX^dI14ACY?x9}c9rO0@(AmUQ#0WAXu&*1F{92mG!3N~#%R zP#Y>i1H(CQtxD^HL9;TqIl zmVSY$>mZ$gI}6J$JA%6Z02&ZBe*5FxRy zxQu^0J5dAP18u^)Bl)hlPhX$B(wWv%R~K>g>A+poGkEQU<{?L^S*_PiY@>ODsVm=^p2JXOng*fFsgL-AgcPQHC=)T1=UqBiBf9N}%`NjrRAuu8EZ@8^DS8iod|iZk z^X7~AZXA=?k4tf7OYu~FlQoONU;mi58tw0&3Qe2NNkJ0&+Vnn0%H%p3@2sd#Ys*&6 z@@%K)s^`U49K*b-?#xeTR`?hmS}obLv$G|j>22ED#JT zyqsU%Z|br15huLtW#&s(1NiVmTcN3r(trP%pkx3Ipc$@y(Wu4quGl+D5l&;`gYPA(n7t?om!rbvbx`ZEIQ^fLO(w^(WG(Qbqsby0*?0W_-?o+uCsvh@HKl-Z(z*#ck zbQF$Pd57Z)B`0>S%K9-ZG5y50F~g&)tA(q@kSEhTPMNim6lG133{d4P#>g!1xWvA4 zJ#+ne^PhCa_EFd3pO`(ZQ==ze>VHow&WUWmURBpv27}^dnBo0B>o!MEj_1^Q*NoF` zQ)fVMovky5>TCsE$992!+eMscptV{R6iQrOA3^z_D_O@8duqziw)P2U0^rXSJ{L-S z(c8b`vh$$xmK#t(~TzKWni?`@c8!x;gyjO z1~*$!E^7@$lIV4l32q`;fgFBL0&LyN^3-Hiy@hWM90W;U*(`Lwy7W&*rCn7**ok0x zun=-nbSeGQ9QlwFx7Ah`8B_ku#W|<6n=yL+efUt2oB`Zqu95J|2ISc!((4(X0a!Cg zj=KAm3I?ybL>?CL3eMpVm?Er~Cdp{J&H;SJO9!4=QC;OjMoflV9u0$dXLv}OG=s_q zdsV>t-(6&{f`wj{)no;jd!PG?B5t*jJOjTw2$hY&+?GGnXp!uNhQ>D-A3laYRcN!J zu(7c*HZ|pj*TCMmEvCdjk6!+l1OEo$Q|9ksqq!m|%IYF*FK0=I^Wy@LQPMsOHTF$Xp`YPJipd*s;h{XS}4F6AEu|7T%(AMFFmSl!N zYHdx=8O^p+PE#Ig9|AEh)gKBAJ}%0ewvAc9^G$TQFjFU&2`BxL%>wk#8AH!8G$!5e z8%7)X$;>+Hrj(cKA2UA&qwTK;FP4qdi zev7KpbR!c~p$k$HX9S=jc!T29b+D!8-cKOw;Ygh}9wyl1{CVdLFnEoasQj$YV5N|| z=`mTD%xyA-n?B!A_xsVHjRTjZ&Z>5o zn_~+P(lsuzuk8E@NvB?F8^hTpJA>4ylp7{43j~iRR zpZcKy2cJPLKI`FDwnEo)%d_^`I9xxbxMfm8J+ugtK7CO{WDR)=#Z=o z&V2HjTVt?!n6Gl17zyWBI1@*ufutmqjD2^cxy~ZcxG;}X?g{L3;E@l6J8I$Vd5)|j zd9O|Iqf*-@5Wuq~D`!asqB6OG!|eGH8)cz~LF=IWhL-sA@t7aNJ`}~T+49B zFIBCIHZ?{@gZxS&6Uf*1H|DmOTc3P6WldV^vc-@KDAX22Pb*M?g^`uT_Bz_k2hSQP z?m~^&!q!$wL&HZOq^!ZzSyomyrQfv4vDLE5@R78nQQ2ffaj|)tl%^(0z!U%IXuO}( z(_s?LX?>8dJI7M<@DSEa_d~~3ijW64*p|_rF@R<>T7|*xHOoF;A>Ez*P^EjP-w$ph zCD)dt%XG1P`;Gyxhtv`%0l%@Zz6a<9J^?B-hluVz=61J;m?{=f#m{j58Wml0%o$Wz zzocAOCjD%F$0xC;V2abqRM!|%Gwb4;@uoD?asDrOrQ>~gcT)7G1e4YVWo%qh@b zB$+^qEM5p&dcTyR;d@_sB_#$Zua1ok&r8$bW8n=D91*y_blcN8aq8R55;k0I;@x_F zgVeoIH4;NeCt4ky6VHV6TANmTv37a!^AYi#Y%>o0ypU1Zqk^M9z3a;4TA5$!=Oi96 z;2~@RL}2_+dUfv)aM-O|-ma=;BMgbV@QDlHD!$||y4-9Zi-2Ys0BU4UYuxDd=0T+w z-@HpE*Y69X6>muM}Qgs!V{YKkEY7 zhCJboYuOvQJ*tvL`THN^eAn5V{6v8RifsvfDO{tv#6cG4O4`;6YA#DlOK;-|^#}0- zp5TibCVpx+G5$%FpQQSTpKn`h*@)Iv>8U=zBhU%V&1efnvtwuqQ$9q!h(Oc)qSu!A zKy&x_xT}tDPwz5z_m=O^Z8cNpLDCBMdx}x#uf9^%7A%tuY>??Fw@{A+XfPY;clsTi z)Vw7Eh**@onf$V6%4$kJsxCN`sIBmBH|~l`4$<~ObeUQq(f=?b$@oLsC&0x({zpGS zF#EZzQ|EQC6flk!0T$$QK0*;MNq8P`MtRfwwMxYzik+mMhQuFTZI(JFNmTXkD|av6 z*lPXe+crcCTO7WdOD;pc_R#r|i_ROmS)km|s=3fQDcB+vR`tdT=Y97n$6vp;H$!h| z!qW$QCnY;u%oE1qnw3KLzcv1gAU} zRPD$IB?{WzF=W1U+M5fJaGis)AQLThTl+WqeDIuod%}jH1gmc~dkfH3!lo{{C z$RnHjaP89lW|SA>FL~hQNP6`6m$a%c8JN_2*O^5$XbrSRSf@n$y~yNWCWRaOz4`OP zrlRF>i!4tpVc$C-k$^Rwe?Fsttw1fn7AXsAh6Zc~WABT8%P7{o5U~}2Y)F2ZgCceh z8}I)<66w6bLMx!-EUF_Rss@pj*KckeOI*BpWHeUTPwW8I<;~@|xorMzK%6DATJ3Wz zS5mf|nttcc770ug8F&)zeo`{`fBE`Dyk&!YG>H;pFvYMj{TRGaB% zP7ql|CJ2`FR&TYglzb6-3y@mO2T$ev9-VI&gj;42KDhGf z$&N~s0%Ka1&Sn?M@%jZ5I=J4vQf1GWCE_1KNps=niq)T_h8IcICCU}I^cDG2pbq}c zCW0A@=ot~y*J5q1LcIcCkL$d35r6WSvh2E56s?K$2Z=9nu}^{jM{p zGZUU(bXoNJksA@%KeVkeilN_qQHDjTbSbczZ64PdH$mU-%ii|x_J5xi%h~aDosh;3 z5l56)m~^M;SH@E1+Llezvxv0DMJ1<#|ga zOT&}U{WUtMZ?}J8X28jz5R=l(=*Z@&Snf2JqfvOYDXfpByi1wtW!B>DZ-1MS)tP>i z&l&gVyy*n6Ba+U^_7ZRXI}_YnFpO|CRExMK*Q9*lz{;`FkEO2rn?LSaYBesnUQqGbhB_WCJ~dB) zY&iDWf9KWbO&)$)-pw-)J$c_KDDcB(#XGA*M-vZ4LB5|eJER0>liTVpeNy3~S8CM_ z$o37Ol>@ft-s8blc&QGow%!#nkDa!bGD@A?b5;V-k_bI->J|5oH|bnzGJMMWr4!Sm zdEJR8KHUMc;;xww}ms`G5bG}R3n1` zuQGFn0T>PyY(D!i^lIaG*9%colLa{(wBfwn&5VZB<@9eL}J#WpMA=rqL+xZDA`WO!N%Z=1dCjo_&jkLw@hj zH@$T|xd-`B(POGgKsZ9G_T)QC?G*M%S&Gf_We2SLO!&)`2iQo&X+1U(#izIs)LHSj zqi>XqDhh6SbmgKI&A~79zX&hQd_mTFVb=I^5dAFfP@ZX*guzL>dAZla`8-#M za~>6Hq3T;j=XIxpry28Yh7*0md3p|u`}N;h{lbMu^*Zd7-uLK?TgA0Pd(Upk$qV7b z$Yu*c?c&ssT{|?-_mo+PXA`NrPc&`g_Ab6zWmFZ z`f)=-`hu7xi0C9j>qqljDE2^@5AH+RtXi6^g-em$wk2gc-F6l8h3N0UUq7B0^-}>k zSwbsV-Cl#8y|?sw(`ZEDA{BaLuH~bAv=n|{d)5w| z2?0w_iOELwCc}M9|K|67 zhfz0}9gt?zWj2(VPis5o@0h^8gBqKTA))bo&n9w93F6i@$fDpc@uh_rZqZM~t-15b zW9Lt(LM{%W0NO+JIB&VN_DlXFna8V5Em2_LNf9ulUkER;*I)5zOg&~enw%YkMzVKT z=`VQp*6a1-?o*HbAPJhz#}KGi+Xe*c@x)8D*8l$jH|W?==2!;_kagf!UVr=I^k z1St!UaL`vo&HQkQ#vejL?BScjYoy<>ZX+8<${$b-q~DC^-zE&@tm(hpegCnOP>e8z zD5WD+*UV9EPm$<44)Ze{ylH1UCUa;z)Ev--;OJiRmkYXA_NS!97D|2GV#$?O+OTgK zc6=Xypn2=B5Z)F;V3LklLF`=$Z`lqEoodw}cnHKQ?}pB+HAbYsug- z##8i}`gVCM?PhjB{%T(seLGC|zfJPapv;A%PL3UxnMT!ECg$S#!b|lu))TdZ?BM;{ zz<2)(wwxXNW@9zI)wq(X&S{R-Zv`9_)9Wc|O5CWH#c{;is8+r&|zvS9`NX z^Wyw;dtHDdY02L9vM!F2w28RxT^ewVdV?OiDys79H3xlD^CLZ-e9BxS;E;NzKT+im z3ndEMyvklJkDp@a+Sa=H zcJ{{NW#8FdDzZ7d<lv_UAS+{TUQ5G16W)-#c(&iVUpx3tRP~X-qn-GY?EBQ^C60G1eJXFQ z^Aivpjn8%|uB0D79k}IQw2}Y1na_1gDlmy$tRPaH@^M!8rGY>KKmI)vEmP*j**9)y z3Pfwncpc{m(goa&1Dh2EpfZZMYm_(j0S53MGb?pAGSQ5rBL7`I(J$Z*XOY(^bG(G^ z0=TCt7~=2t;-2X0zY&ZbM*Lhq--@n60 zt-qnmCa>Fx@QrnH-;Hh~iyLSZ2=z^f(xx>wHJbzaW~HN=N09yU03j?t&2D08z+(GN zct!K*mSlNV3WC7ooajX@jIo5rh&eYl2hHJT^4!_k_KRmpbj%qKd1Km(T z{Qn()RHTeU*q|&Si9s5-{w>}@nTFO$eD9{TH(T2_WJYaVL2SL>D@HqKC}j9NK0Feim8Q9^t}&j?x)u>E1&IgHyq+U1P%ME$ z5di_zCkrqN9A2E6C>$!AhI0q?8JISs7*-KuK#;_$w7>Sp#puL%eA!QDLZSaBOL zgEzdH?oK6IbcGG~H^Rxj=qdcHK4h`>hDIi|Q9NLw;0g0@x;a@Qmf@Yy)V4k&kywgI z{?Fsh8hrWAQW+|!lA&l_M8(A;-7lz}7Z4#t1L9Mz#(-Z+R+w7!4aX@A%^k@*AJ0tWiMO zsc)rOO&%67d)?H{jSv2JpTh&src>UE4?l94aKhh{b25PaotRi4J5EP6At51#}h`Z;(bwDKNzQMqD(REwqT9G1kY*yfNS`WZW(9I@DL3^Q-cCSnj7Grp!fK z-PH1(y0_vo>)Wrgi$5nKL1NSwckn{IW@D<4XlW!1IW^b1eFrZuQXc#L|1653wgK6r z@jF|erEfxY|5E63urY2Ihw)U&Sn>~!W1zrm5v6B1sy3yYRo8T_O7kK9Jj1#6_Ks36 z=d;3e#?9)@mGL~y6SqGtvbTK3Z)NLypgrxi7{f+2_zwMc&z3mef7c&d-vNe}cO^}4 zp%uDWpu+$lcXc3T@Eb95QW2OVpo|F#4!-_(eci&`Jm=lJ02np_$7%~3n|xT~yLdqb129w!PqkuNwwl~;>GIDa^iyw)xq&U(k(q*IRkOG-a>2?11Tk?Q^ zkh^hi;=)xu=EFnX+GSc9o0=*MDsvtl z9!ty1vEUb=r$=dF@%4*>{l;#H#dcKS^$Aga+Pz z0!0eyF6&1|-`phsoOYrtBx%VcA#C^nQMFytw%I z1D41X8NxHs$V4xea4}9&a&>Q!De3a6+DVz_rims%=1Sw;d98GC73&OpVn9n9{D*?} zmCc>NU)EK2%Ya!cM(g80YL_h>`qUi#9amGac*uv`xkximejK;FGr1uYd_xbDRx$U0 zbNT$ECgmD^y2{!Qye(xFv8jB*!ILhDgzkD ztGiu4)UdRn*2u`FO#Y1gJB}&j2q7-?YkoYJB(m|fRezq77aRQ;;30)6DClno7b!JW zRWT0_fyBhbv5ASlVZN}D!Edv6)^=qevllk*`Z1G7+Qc%T!Av(|_ z3xB^xOkDmqyttSJDcpmr=DsUp^lod*4nIL5?O_I)X=LJ(fZgp<*nXNwSq$L&a=(*v=aDFF3 z@`{@fCul#<{wkfb`d&KejbOcTaxRB1%c{SL*p>YsD^(hb zTeC1h7)Rq5%OokH05!~Wi}P%EzIk0}U+y^~YYCC8+D}!6Cd#~*o7aQ=&~>$NoZ6Of zwT8<5VakizXU>SOs!6GPtS0*SM_?>1T~Hyn=7A+9b7hjstI{Wlo|>WiL|D)!Ca(I) zNw>`f-ZZ^HMxXB4rlHE&``e#nwokkfpC{0sym$_EVkRQw?7B8|4-S6F$$6s8y|=r& z|I6#Cw*?HVX(WQ~z*8{0I5;>!0UN6Iz*bO^P7!or0l9FoyxZiwB}&@;e#+-|B0u+T zmxe~%9Jq;$xnyr#zIpTgcd;{(?5p{_po|$G?v|p9eojd?e#G99pFHG2uqZpA7=O59 ze^^)R)o6{7;DrF=(e(TcT7bV+zi4MDHaZs<69fLYzJeYaliHiMDBQHEL>S>I8xhgV z>332(kB5%kgGEY5KdHNG&?b4{}AAM_gj|Si;zY&Rj_4 zuKVnWl4mJ-rI{4ca!nokJ?$s> z8RwtpL;BX!_}I#N7k56}Oh2l&p85*@XU7W>99SXk05WE5`6MMJVT-~nW{QZ9;GGC_ zd9nzY;cE)d1))!5Xb{wj0pGYbWFlM8YJv?Bcfe-MxPN{f-6)C5tj}c_iUcV*G4S8F#$F%X zIq^Qe@ZH&S#_}ZF`}X`mzJwlX>)5g?$@(8HO`x}`jQd}S!Nl87os{fQ>iC*HdetYm zikUHVf$@(y`P+j#Z9|453V`z=ws^0s$8?Q4Whd5b88^4aRfk|BQX8`}F4#HAeZ-(}b`M3Q34G4M^KEz*aO2(nonBFONH2V`m0>=!m2T7?NDG zKi}y>)(6H4$zf%Ow}@y1?*Brl|65MJ-(jj3=0#C{cYk5@;62fJo>)RQR_>c|VC4G4 zZTs&p%^)tP4E%p6f$d)*#u)_}%C@{`@?2QnJHZMP+rd+_zwzo(x(juWZ4KOG&MNmG ziLl^fbv*8)reEpPvnu_UxB=B8m#$wIUI&$dFZgMdMC_r1DE=x+-o?RaG>XmQC3j)P zU-upD5v!SO500v`hV5F>Yh0AihF*sfy=xoG!A0}53doNPC3-4OOGDvq2{h~b_q$Qm zcJ|;;-x<_(Fl7d^H!zF)7}0-+y+JFhT1K}C`covb83s?Bot@WcMotgbi^|Hn{y1}k z1Qz0_mm%Qv#-EOqcP7>g^A&R+)IbVE54$2oD`4u3q(`50+oAeLjlFo=O(C5N&Q+Hz zKJs@s*O3kmG@9z4RPyJF421LcTFRw{dtNZq7YGn~-u}0 zaX8GvmLuZeHq*hgwq~0%bs6AEFNTlbkqF0TRZ##TX_7D~^rLpqUQ7%^QEu0KJQqz+ zNd~99qv;KB#xa^AB0BT1I?!28PSh}~^uK~QBX22{7?s1) zb}~mj@G#oIuw95-JQdTKKSt*EFSn+_U5DN&7EyLf7 z`|htk>U>PrrUhloBA)S^GARCq=J*VK6<?6y$E$E;3_tfdG z9(p#8|B%yWvT5ylkyIb4t@gmL=(P7)2ove6H(2&WhE>|Ka&k0WT({%9-^^_xn-*3i zblkTsg?>eGcx>!Vw=oShbpW9M-Q8U{T(EYdzkWr(XKKGA4n0>KYNcG`YbNI~7ueDhioFBwOLBV54}#m{QZe1_tledwVOAGu(%cY?|G=7sG-`I|KeGV?; zWjc3%E3sWH#_u(2VGu>}nealW}JlTQ$PaGSxM(SAM9a-3m@tDjKEZjj=6bb+CB@3v(8YL zebt0|Z{KDr?3Sv!G$;@(xeop_#;6RYRd2(h5%Gwo*>HVqVPR3LQ+iuI96it-A1BD% z!s1=GSSGac~?A`%QN!3xFs9{4eo$uJk2CG>kmp|^$>u>`uxZ50wp zmAvlo9Gd6&7`TSwJ=d-=)8$Rd797n{opUo3DBkbR%Q#x+Et561^|0-k@yhZVa9SvF z=+HKbeQ5Nw;bHbe*X#e5Mst*zW0N^sIsHupdPy||aDwEAtD*^bg@uJVd3ky5 z8pMtZaSO_PMzpoV@VEomlq0~kRbRJMyEwEGx$Jw z%jVttw;X8A$kPkVdj*nO-QcsdTax-0)$wxirSsgc1V>LH&;DndO(hxN|7B;=y!`L& z8`lkxK`{IlP7IH?*>t35+wkv^inpSwTKSnGl>6oj+k!}xn#VK{Z!t|f+&>h)KDQ~tvM3TRhMdOo%1H9}P ztjFg9hPWWF+Z$6;-hmEQE|v)C5OS>NpQ<(%zR>dUBj_$>5zWF$hb#6+gX~De{WcK z&8;TIWzu{pkg#$tciwR|7kj)5-HqF8xiKJ()Bz^P?fJ=ifB(HrOZ;Xy4@SwxU;=^I z#DD-G%Iaz!m8h?f+b<7B5Eih@TwhsQ+HS+7LMAZEJ@!lu4Gpz<_8%2BWz?vus{Z(5 zL5QgRaWw4{fGNi!7^BcJ$q-c%u`84}rVIv(ES8^l{Z**W-VqRwqc8e36^3$Xby&$` z&iJuXldq_@eCRNY?#W~7Seej>2-^Gi{UP@Qx$)_5)a{Kko{~maPjG?%M1bTUS`SHm~Y;y7>&6W70uqfC($Itg3=vy^| znw#Wj+LVvZnp~fZ$>1%k)CroondmP%Y*ZLn_n52pzhcsri$0?ykws}UqVhZE0#6<~ z#L^g4aMs?Ap8uO|NJf5lcsLGw!$yVnmOS0T5vew4YJk7Dwc}Q6LB_3b9v_##8*_t) zYWL???K4fN@YvGo>KD3I81F>vBpRQ-6%H+5Hd^<-`Z8!ypV~0q(EPl>#9_nGcI?-8 z-o(kVhKwN*U?TqcOTfiUjSBi)K=#1H)1cbNDlia&e2ew2C*pXGc!a}PCmV>MqG94~ zLsvF8=-&PETz>#EZ4!`9$1fnR%ZQzv00{HV`JO#M0Use=*d2(scq8lwa6mKQPE8}X zbNUI+AW9$NK@X20N~#@(aXZ}Rd?pz<^8P|{1A1|E;2Y7}`ULdj?lqiza)A0|UiGcD z(n{^11BW#I7m_*ey_<+1D98#LK`f=_o!@&I59W~gi(J6tgV@Y(p`67-~K6fRjyXOGqZqzfTH#)h*$Nc^TmKM z**2(~)OY=5PLx9uLqvlO$e`M-=Ck81zpHf>2bRjIKF~nK!on)t^C?o71F<*6C|fGG zyu0a6nwqVxZM>(z7Y)J8=#mmP0zyIv7I`^2Io;FWRaWeu`MjmN@LMuF7&JH04*b`4 z9 z!lA9Ljik{Q>^tIA@L2SBI;idOp2{;J9hMTXc>`ypwL`B z(@sq?^l)erMis$5kDLu?c;V!F6E(X2YBK0haUb1$am+z`Rxp1}V@mS;Gi zU{Zh9(%L|1)COCVdov^%Tc#FO+OPt8ncqASeM(R?m6ew_g3L2R*eeOqAp~PG74Q^? zt^8F(Q}-Llvb4j7K_wOTbZ#P19ghN!qD&>Xr(Nr^$ z9VG0*<%^>^>5tD(#2ktU)-~hc2 zH|9Z&uxoOX1dNP8KT^iTgr3TK8x=SPMp4mh@IJft8N`QmJi^bW{!?t2Qy#>Q?=X7G1EGud_+>SBw~>&#n{y|KxgG97PcrZL76z9c!L z;)(f^yL$Vgd&`40Nr=%aF1SzjE)WE>seR7SSs|)dxihy*@A`Y; z@W88s=yWT;!iHo76z6E+$4|2A{gMJD|~&f)|F zS1oT~3c&>c@t%WLD)Kkz#l8an-*Z@nPvy2w*|&s+?H<4-0$*cZc=)Ri2EnM#KbBUy z!uP_n?A!e>93N>khugTB^0n3IpTe1lSm6v!#K*|2eOX~ED4#0s5&S@1Nnwblo39ux_QheAy>%gyGVJ8F12!HhnX$@rl=+l?ju>(tf}r>jJ^i5Q!af> zS#9*4@_+kFaa|y~cd_4UFFoG#W17mi(Rz3Mu3ZrQ7c|7I4z?9*ne~}lUf}E3FKV~X zg?_?p%H||J0k%|b>`U7^j4+9jC8x0;YBAfNJ+PlYh&=0`F$y>Z^MCVsG@f>nfxjHb?Y5Xk>sHL15aZP&64 z@PZLge380#uGIyAkZA2sD{x6=i1?&|LYX$nLwnyIs#akarDS$p%f=Sqw11!L#sRuW zMx<2cTx5!GMPyj5)Y+_j;p&1QUAET*QMU!8?`etsT7?K2*$ znTR+sXt+Nj?frJ{`x6IL*RJ119!M`(FS3+WkxGrKKD~j~Ei9&MWywe=y1T_LYVzyG zEA;8tvPZIJZ(qGlrXl=U4;M4yPiniOpe!rRj%rA;w3Ql#KCTX70fj?cY zDP;DdTpftNZI*x z^tK%F!d@HscBSZZwsfxFExz$wqRc?M`yo58Ye|u2(9aGH+s8w{aN3}Xhq@YpsX=o4 zb^wGRP!)V~(M5dsZdkvm(~&>SC)qW*{a&Az0&QG~WAAHgQ()85CihMu-{In`E-U6r z!oa}b&m8dNkovfJuI_?rvl%ggd!c!QPU2V)}^e2A$L;nr6wL~(MEzChShO9TH`{%5=q9baj8V%{3czET>_NW#-FNBb$Q-4tJ;#fEYW6E6aB1w~{= zx-J2#nc(ru&OUJAqpL>oTwNWXkZ`e-=^V0?hZa|GFyQsPfBta_j649WTkPY>8=XPc zkqhF%(5wL>#_C(3S@(w#1)|<)UJ6HN5V@T$f=xbT`}WYr2#Gy=h7U6743LkMx}D%& zTzsL|xO%B^WhK`8RUmfk?P96#k5M>>R~HbwSw!L3Aj``Z~dYGW$?e_A3e_g z)iATLh?Pz5!I|CpipzoG=Q>!%LV#|+Hbm{{+vqZ%*IWhN&GHFT=^i+jT z_+PCy%H*KJjHv%3etwXjwPr{4{v|2X(AWQN?~g0|t8)SRUtp^7PNLj5DBAsiR085S zNV|75HTIjfTUOP#v<%HDza#)n=Qe}doVlRi0*Uk#I!bIJ%vHbSA2B*fxm+iyA`A>f z;e>nQi}oikk<-H`G_jl(BXoxwQ|(BKtH?LIJ9(Wm% zvyDnYLOSpSec%dV&j&f1mT6Fg7-{kIJ9>ukv~VCOBA-kCkLhOTzvUXf`g4(fk@FlD|p3iOz2;uZk!}@)qQ`6aU151b-1(Rr80Gie016fgu6zK1S)oVtE&3Zed|4 z5R=MIgipfCI^VRW7eXYY+-Wz|PY5*c)I< zfhbbkrj>%M>-c0f8+Atf#_#h4L6mIYQ)bVmEX0fyE*bEE1&z>EL?``9NI8SQ4PY|R zC+7D0D9O66cLznz*g)rhnKWSNA# z^Be*^loyV6Nlwo!SOWtCpM4zPWX^q)l*^qzAIDT)yZ~g0q3lzRQMEj#T`^-ZueT{F z-$QTHYBhPfH2kgNv7O-uU2uM&Vxk_`W@Y3Si#)zXA-I%9SzG*J3N9wtJYYI(KW$Tk zn0x}^%gn@dpOLX^Hs5!pFBK}tABTN(zn^@T6JPxlJb=2;xLgNmMj~V;_0KcupB7dy zI}?Un;8il&-B#6XSA3kQ(DkaN{l?@?%=_}G-{4B-$~VTDRM#8D8OE^*vfhC=#NoUQ zW8$tZVzx2xdK~LAK=*jx)2E@%C^arl43INIegL*w2Gvxv?{BGvb~*?*7d(&~nwIu8 z$jT!X9l*81NEif^HS1J!v_2UFKLrjSJkS2dR6L^Z0;=ZRfYg024m44kPye!l7fIbh zI4cO@w;PskLmjR5Bjgs-$v|;X7OD3 zgD)f;UgS7W)w{4lT^zXygK$aeKPcA&xSJ)h0pQ#=I2Z#WvW{TyaI}Moi8)%cbz*1% zanZreh>evM5#X0%h-CWlRTY~$Vsr~p@s)?q?r5Lk1+|Q3 z*R;=>hWcV*PoQ&1Fn+;A#={X&Qz*(q4mdMC?=JD~*)u)8frCkXW$*KB?9ZJdmAUWV zr|_(vr_2NfUUS`?k@fZ#x;kGKoh|z}*OEPL+Yp8D6Hrrvo!q_BpUw>CmUeT^@SzKo zvj-yY^4QnuJa80w6Fm6xW+qyPM=uZT-@dH>kE-{M=eiBs#}$XnS=sU_c^O@e?sHZ@tMpOWkC2}woW@kx zLJ86^cGIb8J^JFhnw#790pOety9{R7xrdnCR5F_b&gjP6g( zaR9xAq2w7O8(rPqdF5>WLk;+xe>!QfXc-OMQvQVPh$O!1wKkF33sw(RFjs;t&bkT9qixHv9S*TV&w!DT$pi095zs6Ch33iqu)~QHr`cBSYJ(orQgv8=o~oX`4w1*h3bKT-b+9{_E=z z21<|ZQfJ<`#ni5w;8p=d7ihAzK+;Krk0O?$E?vBu{FhwbA=W(_<*TgadHUtM0+y21 zi}0h#J7w>4YUL%br$^z-`Z%|)*hfS~i9_vgU|;~)cTIgtwKPOP5DkM|mCtcK+&mbA zRW55d9Hx`Y$e;tM2J)o9=2~@HCz9uySdR)Kw{$+ozj4XZX(74zUW?IVGJ_#KX1 z4KzSVlZzzrrpVyg0NG05v!ey(rsY({MrQ770)fx(H{V;{{?!LKHJ#R7VXZYtiPufs z4J{u(4AULh&YTSXLOy)_N$dk%0BVIe%#;Ac==$~R2uz=zj*`?rzIfK(*S8E)R4g59 zUt~$`0Xt*-tVuDqfV;yQ;>)ysFDo%c7PV@wDs$kcPxe))TbL0Dk7`FFRbD~+|p98#{( zGDIL@L%>LCn0W%DEFRk}wz-=r;t5oXNzzm^&JCCZ^tvu2uW>r}$tJ&lYC$a?(~{F6 z|1zerM_Alv=u&&z76op%PA*cM;o;#21enas%nz8DS}b`y1Rp-#70}buYi(@>R0|}< zk!fjj1{SX?cw0=U@KdUj?>6H4X76B4VZOYfaoF%lqfFNz-ddAI`ay*m%!)8ZS_uT0 z0Ao;EHv_egIR@}{v@p1m_rTt#ou53czT#iIaptl3gm?rZM=FR zD7;0e&A@JCd=%mL>pO-m+E*r{yG@F7M4{^DvcySf;k;&##I}BHIKluDXwJ-tqd~0= zrBP8WTaPtxy)t2!`?o?OvI zqKHKy=sdtgrBF%gzCBdqvHbb1@o2Ue$`(nEC*~vYFKE^~v%-}Mozn;e@r9QhSbrt< zKDPbgeOT1k16E2#6cmx$rz9v@qg}reY=Y2yr~^Qdi2^rAt0A4GM*HG5gWplrU zPLU{=L;L7aczQZDfR>Q4LJn~>`rOy0-9$8??=^KnFAEOak>}_>`E#oI?-jVOm^d=B znAq8&rk^$Fjb(+Uz1$1)M)DzL? z3Yj7*3xSNs?eUr9rS6GK*o4D^p=;QJ`HI%KNwHD7f&LN;hE?i126fH75Gg3rp698e z-MDcFCM}qoKVXQ$C{mY~l=LUTWpzZy^lzQnJ=)uAfjsW2gOw<#`upAd7g`RFPySgr z*3tyfSYrN?fbM{;hbxN&gCiH9l0wJx?-8sX8J-5*h;pOO+lXN`(qw{Q#sCYV`$AK* z3tB*vO>YIEc7fXczY!u3XYNM@)=v6&P#g;Od|D^$V@@2)Mnn158^Nx^z`g{d$0e>m zvArvNO@L2SRMbW633H5LsV2N`DBS}$V*H%jVcc%=JUR1N%z?_k`{Q?l6m!LasJ*~$ zr5P4=p9!NmDDrC_4x3qQ;=L({2TCgi;l~_13q!4W&r>Kw}3E*;qQ|hfH*@A_J?Wf-I`7{Mue; z9PRaXD{9J`=r6gjnK~xCo60j)`GMN z)rWxAK#@6g4QRW6p?oQYkvJ~jy`gGAPz1nSujeRl{KoTlmV&+>{cB9jINy*2vKN9v zC8)ci;F8q1<=CgpSz_AAY_a3`h!%rd8;^>L%0=uOfOdfrzU_uBK%EC>I|+6X$M1A% z)fdb$(3V;F^Ct{Gy<84Hq@=^<@YdjtgoFvAZ&}P_cHR#ejhv{RC`D+{YMZdJX+O}$ z#4p64ONx@MqKh(=rRh$Vh~&n|lMk-7e8$}SQdud4p4ExWbS^c7t(nu65xE0rMgQS% zqg(r<`wu|C{@CboR0f1Nr~=WRq=~$(f%FTR{RcCF?&?(B2!q@KDGhIv^L>NtMh5O9 zxVn+d3r_rF<1W16U1GL)NsEP9wjwG&tx_w zn%FPKNR(E|D7hSNQav@+fyqge7Kt{bKCWu))A@>hnZd35iXx`$lPmg*=N{) z9w*EOg{ugvWmZHJU|bB3yq+)pL6EM+r8wBE(5X=x64&`Zr4OWKl9E)wqYCkFvMF|Gl&GR_(bbj%-l7Z?~~MN>E^cuXfJNLj z)AWqPi85vU34Cvo1)oA={^Idd`6FwZm-!E?vTa_sbfINf z113ezXX^t6R3IRD&y|&ZVUiro@;rci9J1#TfbTQ2vKlG!hgyO6f!v?F3*V8kV^AEW zG&BfhD>K1l9t81(F2E!6A?i_!!FqEnU&dHT_NDjpxSB4`6c-^E0HCmsa29QGZQ~2Z zk+3iLoT8+qUJ}H}({TurMxfzo`D?S4*sYCEOiZMZ0B{M|AuIw>Q2RyYm&Zf3&=G{d z&m4mpBe!C`t>NTfcq*7@age0IP@?{~TGrB-soa9`R&)X%{aO_2i>e2atlix1xUlcr zyGO+%PS`Vsy_K{!ox>*hzld}NvvD4;_es;elGuCLQV)lm4-PjJ4X}cD&!Iu}-LyPI zy+9Vm|G+vxZWSIKP3MkXVFc+F+`YO0^F4JdiP0h6raaaf#$jm$}H7I1@1dLe}?cp`vn##=&xYVO!j_FAuuop;iV(_1m4+-pu zMCFJJHh<;#d)bHnUW^JCN`8>=5gMikhFN{n>YjjNG6Je18BAn-_KmE&exEr>Ly-0Z z@+(=u=@XbILCqM@ZupcfE($6)@X!Y|#!-}!f#H*2yOjjE(7^tHAsu!w2b6=86FNm% zkiq#34Lz@O`J)&{DZD=0Cc8V?9|3}3Rv6{y?i<`2*5lAb*?fnHL9kbHpB zP5vHo7hmdrMx25+EgO64?nu9|k?{j{#BvYwO~({YOGV$!t1xP?^gBoDInza56we1O0M8 zb7P*n<&z3PT!+$(fPf%84ea!ttLleg93Tqhg4B=#A%7K?x7vCJSuen1bw#dcaK56d zN>zJN;0imznx(#f=}JWz}aAsAvy*I4K1zj{JcJ-#{y2oj`cH&Fx~~2!H}%iG_$d>F^G!JT|8iC zcPYtIF9-|`We^dWP4R)QHWswT==n7JL})8m$y#~7a#+w~?Gy3jJu24yY^J{W&_0^K zP_RCfzyY)Tu9*rm`%3f16`=})i$2__jwEA$B(4sv9mjOm^EqlH#l4@MlMz+#3FPIlBpA_WmmCFP(3ss^W$`6U#Y%@p z9^{9lYxMqNPoV_^?;c4M@$lwTH+iY4zg>Je)y*1CfBpc9VV9%6eTGKeuo-LVk_jN@ zLR#jibfxw3<;G>xW^HC>>xILY*_vCBYx)HQ;8Rj60%R7FO8EHkRXD5i+e+=;%6iExR=XJe>LN3LyhG*=FFQ6tQWOsdpv`BapJ1=M}4aU z>3oJZ&JTC~>HV?i9eq+v8u~n~nc>D|BKa5h-zA&wjrj|@8s}qrB?YDI5i;N6QFBDa zJ%9VMsR`3>%G-X_y=$fMw)-8n+D+5EdtU_khi0ZJyw`4c|MZX?ysM!?!k<(&^jYa> zt*x7)+a=x30v<$hx*tz~0t6o*!zmJ+hf>76a>|`-2nVi1aX9G1=CFUcEeO%jMpHY= zElxHS7*vW3^wh*#=RGqg^&i#f6}&mwB*2s`T9#B3yH7{w2fNE9>|=gFbDCbKOf;t0 z7@kk(Un(QR4T-Rcf@n1)mwXTrx2wMTica(HBl-U6X#2ZxF}d;NzW%=J_ixQG3gvG{ z+#SEF_7(eDvYKZ_Y?}Wd8?u+*_AWQ%bklBp!m7#LKq9VJ&Ft^flnW}~ zGCjJI3H83sOK#GWOqw~bZfy>PTK95^q?k;1sgc(0MM&E>jJdm>c<0v`Hcspc)wT4FQ4#@D&|jj*k6+UYzIU-#IeFGko=#n1rJNTH;TEuK zxR4HA8#e=y#Aw*uk@z(?C^CLK!-TQYU%w#(o*xYG(D`+`b;9uA!58(C>j?_0O(aEf zY><&3S&Bh;t<(z9W|J;bM_~4lw^V5ZFF7UGr?qQbnf}s`e<-oBzn-q3+tJ6yIV|hc z5Os39bX*ff7t1>Y)9nU~cpX(Xz@qpla~(ZJPVIVz@E7!CKZSj)h}=JntSiFXm@mG5 z$qM=^jh7Lo|JBPjWa283T;@o2tvr43kz5E08sBvbLOKQRTzm`M!wv%!YKP76`8FD? zx_K+e`AwB4=~BboQ+p5N?ivNX?m)khVU$lwi$_Mb_4_&6(=YE;7MC~Tb5E$(QB!-~ zeoE@K`R6)Qo?qUlm>hzJvBf!2KNy7EFacJ}5$Dn$ze-mq%!_@X4M0T~BV%w-jr3f- z4fLb|hQ@bTkNbmmbL%2ebKfc&g{L-WX=vC}1A8%ExUk(w0d#nR0m%GE~yetWh2 zDwTPtAeZX*BgfdNLu#2VqMiutDc%%gL0gaS@eR*{%h;GTb^FR4i?9jdZI}3342Qt# z_IYQh5kvB;@9wIy z&T#vT!c@M4C;|mfh#?Zicc>%bZCwO$b$reCjd)KFm3wrno`fKPMc4PSLqQEjwP?@< z7&OVp=0Qwc-9&+|4K-8`pXmKH-&jUr?aNZQqmU~*-IwQKn~dy>oTe8dy?PKBD`CxE zf00?ugbt5ZME@+NBe{(q#j@+?Q1(k3o)6ZmC+lmq6#R$Ds>g#SmBSS6KczUzq?!FExR8xI{hrF&#s!`ELqFy4Rxge zhR|-7nPwopdz-S?qj3D-oqAwQ=OR@W+TV9>wKOwzf{s0Kf8m8Kucj zD&tL`gYHhTDMg~L5v(D5`(pm6`^73sy7L#=uMDGdw}BxPUiXkXVlnbTBI`hcBqvii z@vd#__rd|){+K$JB&%Qly{~E5r^Y7Bavc_(Wq`S3#+j|P!KB;$r8S4?Bfb*T<{pF| z%33a9&%GAC_A|EX88#|jq5{E90zYR70~YF&11l1)_xy3Y$<^QQ2;|AVr04HRCcS|% zqPDTj>|nPbwxJwpj+v?VnrR_FVF&Fg5DlexJFphox}!>!{z?uJH^g5UMtx$&fTt0A z^GF8g;U}H8R3G6!mgLTZ$PLO8kG>-kTzVnDKKiAc?YMP=ofmHs0P&liSP}W3ysl;y zTgRMH!r;l%bqUK)4+iK(l;VOD{7#Q@xkmThOm1Y+P@Xa}-YdvkHbHJA!rwjXIC=*deXM>@f-S;fMH?u+VS)#5i^8U17 ze!=?>_>`Fn>K%!N+}LBdhpsaSUFc4uFNBMI%Ykw<0Sn>@R#k$(n$t$X`6TrCD6Kc{ z%A!0qH^bh1N+2oxM0IvQ{;j+IF4fSnobM1O*XhS6X%dr z)Oug%h}^#Kf#u!Z*Yf0hRBDy(7zF9R*rv57tnFh8*_%_t=hyD-iGEb%j#A2`>u<91_(GS6cjT4fAn59MGBW8^%frg!m~Y zs7n4ARc}Ogv7C~D^$=p`pdyFwkOdw7{JA-2rMQmS;I)D_xhjr&si&<7zpOwj=q{su zT(ZO)+V0h5(sH8gc$MdM(S1yb;uWlkCXajhAg5m8@5Qi3b6e2A@f6Q*K!I_jl*^qd z?bh1?;r63Px#qVy;`*|j!pFl8qse|g1_AL+~h0$TP%yU_Q9t6j=Gr) zKGYQ|${*e>R|uA}wDKh#Ft7;;PQp$>XYxqvI*;R=0u68S20KC{%np1;s=KU+#Brm`iBJ zlI0+BLGr_Fwy&V}0Etd0M1lU?ciy-%o>L$YUuxIe)}>kVgnR|cFpp#vk=$dAh31-q zTa>vY1q!UwoPrm=~e|;wlmooM*R%0HJ135IU{^)+UeFq z*<-%9iQH1KRvAlz%ibT`9|r*=|ErK0|HPY;BXeP5HfO(WeaTTw;ICUM&S{$+UTs1K zjGP($3w=|z8Dv&i~o zZ-!gUQc<~mOLL`Ht6%2~7-AF+!wvA@^8-(vT$RdL{wL8xd@PiOf4f>YFgy}H7Pk(p zVtyjK>tB|#dUyU8wQcm-7Km$Z``bwpQ?$ZbN5O;lh&msxX8)0eM_Ejb^dK!FOOJV7 zE4t?;woOym^^yj29FK{n&XSxZ9rlzf5?s?KBt*O=HMV-&TM@_>SsA4gK04i z)qB%A_Pj?#b3s3H3LPe43qm#me;S`-nhx2ci-XH~3bA&wG#ml*??2Qw5R!}1W?D_o zHWB4RAyLURM!44gI`)l3clXA>;*0wwZ*#P6-2_=r#_@+^pf~WCSY`(0^h#3t4-J28 z_3@=f(bw>EV7q)-XWU0OYQvdh5Y-f*%}Mphq$i>$rfzB z3fl52Eep5IVS5);7WUEKA0U-Z<_=w`Ti~8$i6kDA!A{;4Zn@P$r5~B-BN~M|mdmki zy`%V5xQ6?-3i8;dgk_je+b=YRAFTroARrj$fcM{#`OHHTB9<)mzt6t$YOA>6VC@sT z3t6JfPku2w(Y+Af8YsStfdXz>bZ~g7Zyv4?NM1#KIgf#C!{C5w9ugnL9wtHWIEmHK zrEm2(2LAFbeTxafc_iP<)=d<)1VV-hvrb$tn=wj1xK@Oqd!XGpMZdXqYr^%Sr2Cy? znxhETDR$N<`V*h~>FQ5gRUItek32zcwb`X`zT-#7;<}-(_u|^x&wWo69wvPp9XqD* zgl>bN!Jl3A<5zH7A1jS}*J!yoMg6;yTV`n>{!7Vj(!6Z<<0)RE9QG|dzuTRXV&m_R z@7<0{J*DLFUrR81YR)G2igHE~JQ#Y^p*(J&P{cXoI@6>qCr?rBgw7YG-ZZzQPWQVJ zk=(~JI8SD}-$7|=@b9Z>h&U|cZZH<{8TXkR{a-?4)95-2I(%An}bB&CdlCC~nay!be}zF7}?p>(U--4*IgVw^7rV`!T z`>rkuRZW}#?l!;Jy~b4!-B8a2BmjQ+M}^!m4cxO?PTqg70@t$A7o~`gcuC`@s z3H^NJ^Z!B^McrFiDM4_>`95dNVGUd6bV*mirDrs#MGg-Iabp+`HSguUil?dlY1=qv zo&!iVFZ#uM-eP7F{P`pKP|K^2f>!+NVD@ z_b`2_9nqSPuUZQtO6azvZQRB@@_yh7uwU zE2c|#3zk!8xwZW$@sHd6a~vf1hVTl!RolQl{IGG+C5M2C`?_ldJ|!~Txqmw*c}X&< z>|6FMv1ht^zQjQFP7Mv=f;++xE8kb_ju|^$;JWw6%-)t>mrx#<4p0>KYhAz9 zNbyNpyXNQJnh$Cb1yJEWDs`kq^4RX$ge|$-%MToYGynhOs6vUUn}+AhS9jY#85U3I z&Mls8VguF+d>8QA06GT%kI-CD%tifXT5iCRl9tnonE3ppp*V1 zt{No}MfRJ%vAqYqq~*V-f9Si7%Sc`F=QO;0KNlPuyZ#kdn;Pa8ndPI2@ozJ^f8T^tk$vD7nXdoz{{U*%QSFA{zX0f(SI$aylzfLq3B&ay&InX zZS*Znb{t)gK3?@+i2{|hdT6*38`_KN1vw23$)Nq|>Fs?Z1g-NSi%I}}NO3MVappEh zEh^98Q|`itFH&DxT6z!SHo(Vbe2Qkj6?qYB=c(3_t>JM0{gqW0iKbSfrWCDuX!$>$ z6r{p*(9MRu`M%}({RQR9kUEfO;*pbYd;M=u7H~Jc3c+IA?@UQS!1z4|q zpU1VE*DrK_s3Mo^Dr9{XJ;&`OT}U1|z(6Eo;n5z3(mmJhrEQGq??0w< zv`eh&ogDnCDRh*i<|0u}ID0nijMRv6162Ygn9+`I-eJ1VqT!H}hLT&-XXfd-)oVNG}Q z=1qJ&yyt5(tD9i~I}KQ@gNCJ}n;|a{II%9j6XCo8y6;q&R6fken8Ue^iD_Yr-7sXApzxWr@kxFp zs#Z~KWMm|%Y&N(Hk$xu|wQvf_e&XuN2aSNXwl=`2xC9QodaAzIyM8^uO^`eTb)TD(p5F>T*TXYZZPISF zmRG*Nf$CfY0P^S1WX-mwi;`#L{Prk)FXk72)~F1W(2i;X_e9pxuBIHmF}$uxPoAci zUQvEr?#d7)$B<#4Cp7B~y&i-lw7ObHcB&R~2_hr73!vQ^-PI)n9Y7$)UY-^XbJ@^} z;Uz1Y6}3IFvnxH@YHbw*;k(5F7X~&qa3=!*@HaFvf=LB50s@IYe`J_**oI@Wpi3yI#(>QtBQJj+jO&5(?xN-aK)$hYc0HCeP!0F?_JF5$ zhnQFzbP*gcmt3yUT3*2b3}Bz_H1B6-W|GdWt*q2~5TK!<;lX#=+jBs30KNomMMY3{ z1xD$edmCsBvHiQb(@qCKzNlYPB`;^DJsM_Q=CD$x8Znc}wLApJ}o0 zT2e3cwldA=%0cKsk;{qn^FsqY-b@&Dw1BUmV=@LX)t&r^j9t z7$3lZ1#&U$252eLF);;N&(sYUz2b#~G+i#?h^ClK4jh#opPB93)6YPIJ^OifI=%7T z7IX3aQOeC>XHfdUSNcQeDL~}~=wOg+PE<|PqWg03D%IvvYy0W$VPU9tKZpg0R#-P3 zF$^U7Jw;}9YVqW zS+$F~M%$aeI(DuH#G@5mlBTaX0WI{nel(wb$uviIyZa>d`qkBaX)RjGs63j_)B$&L zrH0tksbGsk*CmL5;YP-7)ACv=Wol@JRa9_6gaAGU^s8Z+kQOowpveCG`3HP(L&GVh z3w%b!+h1c#ypYh4*O1Z(HdSaRsne=+ub@b3>%iTlg1Z&{XHeQm*c+B& z81VIK!(?;JaBnNe{gUFyrfI@+@cj*3j#@|ipx^TA$^YHzSgS??vdX7A(YNLlytc0+ zr{T%tTKT=lX$<$>vf!1g0nGXK+L^29@mnwDD~WjFV35()=A07&L1gxJNqg`!ir$xF zFHz{&F!;XFUtPuBySe-9h@OKzQdNaHj+xCwv+EK5b%C8haXhW4kqtVKWJ5Q6!WC$R z3-+~;og4rWSDvlb5BUZ32z5P0P>sbFZjQz-6 z*M%M`3Pjs)u=_!^Ymm{n)1uSfYNe9Zi}w-)zN_?o-)T#~Zca0^J=Xn^d3INT5%6KO zg-kS6PpHkrm)k`YU#?prDY3q4EN2q-^dqy`7#e&r8O$XP<#EsYvDe0&%|s^AL$(G)T%l&X`t!0 z%+X#l>}+HC5<~h2FBdFoMEO9(CLKlz%}=bjUP+LEhqOI`Ubt3KY5>&i-Xd2^9{oq2 zB`2v%O`Q?7#@ZGQ(HV6a*dsXiCnLA_{@KUWdfwZm*F$^TBAXTk49a^NBB6Fub`n2n zwRUAL4`3;PN2v(tqAuT&Z>KmRT1MV~?>LC)MNPnNCNKZ5LnpvCkx%`^^I4~?h{G*2 zcTZo*jhB_Hp*>7?e^X8cMbIyOY`EuWUApgOkhM4wPCQoSCCHKA*sBu3z6>uxZ8Cka zLknCSRuZRYS7D8UVL|z`SA3VG`kH1w5t8ap+iti#Q=RUwoGxBD)Y7TusMqbSGdW{r zePw+yWnI1EY&HC&hl4W?yAQu|x}Tnq;7&NjOEVIZ_?4qh?NvEnpS)Yk`<_Cp*OK|y z`aC-B<2I%3>p)-xu88GaQ%YN#1jK=_T15~ShghnJBY34a9@yeF)*ZHvRqp+fMz^!N zhkX-~4gu{3u>_C~CC|vtM#II$bwAvcgvbl>J-Baf#%%UHjJWlDTf5Jz-^rQEZWQ7d4g_t<0tx{D?!L5sHMH-Vv-yO2{i(G z)FmhMZiU~wq|IqsiU}RDjOLFk)u~TGOG9&h?Y!{%&=`KYk$fjd+oSB36I4np@8Eus zq`fltJ;(8pX>Ip?weHvDlVJ5|2;#f#*~TRC54R0C5f!_;WS%5mA)1;4)Fo?7XcBUYTLd z-oJHah+_PWkBq(c&f70{PyIdPJV$xBXPE1TfBj7ITDe%)n{AdA&#?T-w_z8Vl9+;g zW=0`JzMbPRR*GJqzt=uZJF&Ykuf?QmX#Rp31@fI`bRHP9L@%vmwaJvx@WiwqvyGiN z%GBaSc}V~G)%+gkUNehVb9kXijRsu=X`|N0gMQtBH#c8-R(gt0u$Sh+j9*Znsb1wl#_7#6lRUF%TsW+K#X zspBzFuYuNUFIkU)2y`?yKWH^|f+T)t%3KI%dZ>podJX=nmc=}LtU3t=f;dCK*D2)0u?P_AkUWrnK{GE~; zjU6}VaNtk%WykRo&XpdBeL@lY$TE=2^=|i|-Pm8`S?L^C&eBIBMV%DswWut9vO}7c zL{0ciGVW%=g4}{9!)MZ7bZ)U>(Prp2fq0wOnL8Jg3&nG4mSFe~nJ3d5A{IGq6y| zR~Y`c7YVH#X1`sX%l*iVRoNL++ThFd-%92RUF4|_r*aMZ@j{EMphr$yfn17liTAs!e%hB%D@&0D=li+=yUewz3qBI_B-5U;7PN9MupG+$l5 zsT$RGaO9tmeLGL!8^g*|Y4RiKz|_97Trfxg}gcy>Wm^>uZN;7J70`~*~npoS7>+e#i77(mRAc6WE(kFI{NHR-op zzdW62<~coNLsn9J!o&gO_-4AEdyBsxYIvl=sbGA$?uhYnFTH!`j>>%1L;cC(rrq z*tRA6*e)fqS=+h|p9@5ow;Uusb&b99EmtefnlmafwTZgauln*ZS|HBeyZ+3L_86l> zf$TeM?AqT|zqG8bq0EE5jOp*GN@6P@rW(NhpLUwiIix%Ti^tJl^64S~M|i@ge>UX} ztjg`5rSG$(!^(iijsgVs4v<9g*)OAm#a#x_yMV>S#nc;9Ww#^+6{mOr_S1r~zw_^L z%N*7Q7>>eS_xpJfy%sROi`09;@eaf-cu;pCnzHQN+;Uhs^%CoIv@Dy3y_@iE=wWGr zl^M$p8mEh^{j@6-JmB_&0+6j91trcUWzEG&b? z%WF{}379;pWxS$1B|YQmz5c{srZ(;#?)I2X}Q^!4>g{Q(7jH)Nin zpphxp@QsSP3k$cx?tOwKW%ONGy!bPerlXrIBjH$>m}0pj3)|ZY`ufxsm89O@-r#7^ z4x-2~_)8!lbIuxETV9p`F*z7!FhIqQL&g&x6Qj1)1aghmi3t%)20p%H7ac0@ME8_$ zf9lzik`TKX_d|=z2h4lGHfr1QFv?%wz zf@eEs<(fn0tiY}XM7`hl_&okSL}5`cw6z4IDv&^a_(19Y5p*hd$jExZ>4zT#2aRjo z2@1%`10D7*2#`kIcYx2_m&hIDb#c1aDSEk=dGjJicPqgx75*X)3N|U%M@nILKGGf7 za){p*QssbpzRYP$9i=0bBB-0OqbT47TNM1$xn0?O&mH?WI2LFl@;xabNp#h1-q!fS(RAifqxl*(}H zK&FfjV)3{*m+qt3)Kp!YS@~g$%9^@5kZwQ<9ZbrdKkoEgTO0cum^v-}{09-5KeQP} zQ?pN!>7V>vL4^N@O_z`=#)It$_&Xu|e3RbTjESu`za8?nvVrCts?E*T5KG3qI(p>B z;{rtZTU4Im5N#5x=e&~O4q&3#pyjcoJEq(H5b8aDGQW0DmnYdq>22@a-^+lG%ohTw zcpCl$*ZlBs@^{zeOpmeFKQ(uh%-=;`xLgT^uX;09&Gw1;D{eyO)B&%=4-QnT#lH3N zT0$`qrxB3JFtifb4O0~qXp|u42MveguOK;6%ox>}?WFQnuq=EV6Iea#9t0^c>LXYy zL<$qjrqdJu*y#Az+@%z-Nx{L!2m%tA3G7Zg432rs!rCI?^ERbWm%jr8m9Tp>BKfjk zmVvM=z0-7NjVQpiI(0WIV;{b3Ma30D`39yYeGr^>4-Sk$;NS`Ns|}Z@TZpp(;96jH z(g#jw!|9~gTmFv=U`{%*YwP0jpEnFhxCn@dkc|NnP@fMUZmq1W;H+xZ+S7xI(i2R> z5Mc!vhIj=b9#gTetXn{h^S?GJ zQ&mt3>9M174;!AZWV)m&^7(R;+2OsimI4zKb#CAu$VaFLCodACX zY>gRfu-t1{RSvhm!c8-^y-pMiqi5z$B$p z=MY5o$kk>K!nEsnBqUvBCcU=K&Zc1D6>4F5xe887 zB{3(Uuq&u0_USiW0y&`B-{o%50h22!DZv}+1ZP}u?x``t_7$C*~C)K`p`K zCPyKg&&{&YO!*7%{c8qf0A3iT(d$14zAfz3l^Q$*JM*!AC3=;zgA95zZp8X-S)%lxDJj;Jm z=Gn6wq^a{oc_nJ9s%Sss{IIaG8FpkfvM!qbU8Ao*2Z@ z5rRPVtP$D%ENPvH8gq=%Ats2f5XT0eYp958I^v)A{ub^kuJUlPXv7Fh|7bN|0_|BPUCH!cl+%$`3$@m?>cU@K}<7ZX1c`(43u~o`$p=<(oMd z2WZ+sDTp{+fg_LkZs;2wi=An3cpR-CTxn46$HalpsT0M?Jsxw44MqdKa30;j0S20s zCUCEUxl;b@Maj5FL2VHBXrja;$fgkUJH#Lzy!WQ6ZM?hr2|p_&AOza(&i(gfh#C2~-Pl@gA>}Vc7EPOH1y;4Us(Nn1m)5{^{+L&!TQ}bqJQ3o`s^nu}> zC4rEoH!~A`0-`~F%V``~uG@By5!rsxMjAd(>H!ltICCiJ)Ke%$sA zlz(g&PoF-8DIYoG*q6}UgLe#g$=sJMv~5Y$^l>+fOB@Sz-s9g+ZaF1{^o@`hf%_B( z*j^RUc=6_{)Ec3*34%*o# zMnA=WB~QeJ-q#AppP};%;>|2m<8COgv4o>2DD3fXx#?^NdPO=Ld>V+E3nT}O5aytl z+WF7N2L*-4W;VD*pBgNqp;Yk)s0SQ`zJtzg5CX?6)#CTwG0>%Z# zrw1F*E!u?v_u!8rZ)*BEOa1~NiOCu}qxU6h<R>{&EZ8X?2)Ia?NAn0P&R?)KFFBo9*>4FXlbCcMf*7P{FdJfVmymWd}@J zBF3VjR{CjNf4~s6P5+VpBN9+#hmPI*yT8v527e&9ENxCo`b9s71l?IZupUDMxFjHe4qj; z%Kii(PeO(UY*Hf+a)JIzstl@R@3 zeH}#RY0v%s(3?a)AmU|+3VfEt!*81UXE^H?QharH2ZF#IL1IwAQ3wo$Y@idr2K&ju zQeHs;*#}Tkpn=IYK!ae3llk>)IFu$J*=&V`q!zYy>7?ah(|A$!tQ?5>5f>E5hl9!a zBWD{uMhZ08LHG|Hsdi(IJ9qDX2krYGbNz| zqo9Dq6Ul9$2Kv%6s1G{&(3@+pta}Fs%LodzmgapE)NOa5EC;JrFhW=WS)myu&WLs$ z8Sen@eh~c@;}vY6lmhpNKrowKiu_a5)PNWYf|0PQn%WCE^yXY%a6g0!Zi60i1)`^u zV?;B^e=jEqaZeyXtQI*j8GaMa8_%ZYlt6}(6)A1r!)77O1fIJ_| z%Q?Zd8}SG%Qs2^4EL*JuM@;9el9<&m;JA;Z5l96h8AQa*S8A-1yvx@jeT`~QbzQ}C zcoj>iDD^yNo?R&Jko^9^{h^nRIB614`Q(o1jN_GD38a_l)R0);H8D2UR*e84OXQu~ zAH47*svlXi?dgFk0-@&DXa{HCKg(ed{>uvY*AdWT5M$L>RhEd?AY7}6Iy}b+&@fi; ziv*j_;nKf8&u1Z>cl$SK241YoAY2uMJm-97txs+3Z{yLCXVzH&-4UHwzBq{x4~x^jzbuP*M^1$M85w92jkAfECfo;Qo|ci$s@=+5}!b&&V3>T z?F7`+TR(RiQ>ZFMBUch7efWLunB1=^-IiMHS+cF-*YkIwmgwE{@VJiTYj*8?uW%}q z5^ntD`?X;7aDX`M7eS`fuZHR&LN8hSI5bN|d+Adxc!P^jK*8`BZU7SeIj=Kz*a(bEAcb*2gSg+>pGhA9z>9I zaG`_>Viinv4X11D4vXbp#92D=05@PVYx28NV%h^IHu@=o-{!|ICF^W1=l(T5NJ-xR zsZJp5OSIq@`ylF~i{{e2QRMYT%R605iRy?Ttn-WHQHc&6VFoJ;xSsmpSPwuN0HRF; z0Peu*V<)k2h1Jj84a!WUl@FjXg`hLI%#eV=1E*=9t%Bxcxbm7ZAlwdI=Oa2JcI9=$ z6F-s8Q}9DFS=X3@ZM;koZ9X5$xW&5o>^q=CpEdssPH z74Fa><0k1%j-f~4fEU$FW^2Ubh0s7}OQJk` z>`&&*qz99^pk9Y(kh>d6*f7nC^MLd5NBfeFnWy*~dUA4@V0_~V1qOgLStA=CLqh2P zr#lCNyqM4jel?!}vxMskeEdFu4%z{dALw!-MsLX4QHfH5hmb%RcR^pWqiFY?!TaQU zLaorFTh4c|tKuK&9u1sbY2478O}kvV*sF5YTXJD&JA8^1$foid6`@0Y^u`}9Q)rt- znJA>WRDKWkwSQKQB08kX$@(aO2)N-#!mJ%i#J>P6ULnUte9Ph1hr2>NiN`8Bl*#Xy z0-g}&5^RG76!PufS6*;OgUd+h)fO~S!9rq8pm;hj85(NJGb*xn@(X^Q7>YG%-7b0jPR`v1QC9oGcckLe$LTh6hn)vA%xQC;@^ ztpPZCLF_3k0wXzPSUSx0Lq(Zn5uare`T%K=_-`Qxq}FS5cbU#oN56!9Ir#WOAly74 zbD*zdaaq#+%q2RMHt|WxgaZ^*fPr+t0YofnA@=}$4cb%UfOJ46E|? z9hfk@>2k-;`5IJ)S*TYe3iq{~jP9!LiH+xX5v5Isw6R z1dBD%hq=J;7-F$vn#eOCAN`-So!CU2+FanZxr?~qbq}=6-`VX<(}7|oV)oh&U8-h= z_8iyd{qA0lT}r4*;=TSvSH>Lq@AE&2L|TlZ+wI*9QGS>i|Dn5DXpHjwFY+9oPv*=1 z-hE7DmVhlYI!?2~(>EZnfn%GJS6s}%%^idAL@bgaeM24k{ESRm=^aqYz*b5c3~QlC zE2Djf=LESMV#+kSt-AQDBkE00PI{e>;j70)MK@v;{a=NX4R{U2U-ZXMKdTHqDs#W{ zoWiGhGA(=)Ppm);Bkwj%4Ridw#hJKO)XH0b^MU`0qQ~0#`x~~agQ|JrGC`-fJTV17 zA|yB$O@1n!jS9*Jxl_G2_4#4frlt-v?2wgFOreGGHo)LP#O#pHq5ufGyK4*YmAw5O zIMcyzK%*UZ{asBlbS@!<28%%#A@HjMa+m|bQ1aW9(ws?KR+sjIDJ-fa+-sXCzSHk_ zOHZIn+A+BOL9dd^i%9gm;9{@*c)>L0M8MB{de0|j! z(G$SthNMJzdF`w#K7W2^nMK|8;|KA4VwZB@l#=>lU+Mh4T8_JG-ILI}WGTL_**Lid ztM2N8C%5FZ9AI2?vMkwERkmlg-w2uMcA-xZ58* z&&)CCXfR*SskK*N_}bqe5EBE8`qwk(n2Ze3qjFt2v_9XyoxwTCeycEIq*)x13~-0H z@V!AKc+|V3wRJNbkU%R>ZjdTUYe{XeJbOjqsM7+ zV?lPuj;%nun=H0Fh^ZZ;E6U1Zb-YXJ>ei;{+|W;XhrfWzbIQ<={BA?TdH_HG67X=B zU0l8n3|!MsIg;E!-8C{Y^8LZ18Vmh7g=^gRKGrD5zIwFrJAr^R5U|p_3a2cPs}%l zGj!ySeBcH(D8;$fnQs@nwBo={1H~KqK{c5xWbUIZND`i3XR)pM{va|9lvlwDPYaY%*6U{eh1{v47OYR-d}AM zz{h?p@Cec!`!<=PHI{5`tQ#1+Jekf%R`%ULGxGXf9;^e}=7oiXQYIcU6`H%lxf{D7 z{1ZBQ84jJp=f7unz|?@^oHAc;`TKAcP+IWvx6t0|jMk**deeI+nnWk1AI-OkIvyBI z64co5CZA=MP7YV*=%S6m*VjIE&<|)h#$B~Wo}LSPU4}}3k|N6W#<48v;`YM%)|02) zt{tBh_#9U2zj{qm;ltZU?Xp8^B}P@^V)1&gZ&;T$w}hZ7TkZDF(vOxq#)pmVGa5VD zwO_6>cjV0D3hr|D5I5>w4ipBjr?2@+NLn?|wUU?ZYh5__ELn6#)#Z)rH^gmUadrJr zym~yl-1ofVo-^VSZeDmfm*2DSrLb5v)PM%TOE<0ri+7#g718+$r+6|B#k^_JIAStl zpmdalyx5{<>2bpNrCo2c{84jL>Ny`dp%&Lef3+omR{ExAx8*Cw*^qxva(d}WtT%}* z`?%6G$ZLY5+jGH;ymtN2f^1^d$=9D{f->_?4(uiG%q(;d~HP5x)hIqT6;eq!O!}iuNDU$ zS={4sH3m^4dEX~*m%@p|ADBFD-<9y>l>Q-yXT)f&JM(K$S+3fczWfT))b%rXFf!mT zdHEwNom%GkZXMZCant4R0R1?#1y=_DX*3H9w6xx)LValC+AhHeIEJzwwa|*V2eG-6r>3@5SF&@BDmp(TC%my!H$7jx&W!2X?2sQ{P`1 zqWX7vSuag$M&9x-t~6TVuO}l*t-+a4_sQJP*h$YHTF7i7!T;|Y=`CHJy%UzpB`?sH z>CKi?>DTt zT)6h3%%j;(vMj32__RVxMp_;<%7382ERp5NyHp??(yg~n*E8vCpUk7mmwD{4?Xllx zqvenWaak>=!eUOetN-*=@ zUy{6PzMDJJZCT0db3gCnW0%DP1fL=h3M4Jv^3gM@OrIY)j`WH}DJ(vW|oX3PTM;R|55{V|ED7?;-Ey zcie0DLAilr)505mC176OoJD7!M<_wD+Bjdl_ykN9X}I5#4IHSWy7Vw9QwJYa_>N5+ zpKUj(ks5F*&6RmH>FpMG3^gc;D zd9bYrtwktE(Ka1$+Y2-cTCW%20-*s7Wl*Lc1ay)b0e37ziH|fR2|h3r*w%Jx=fPDt z)3eArV0Jh1`R-~mb^JryBL}v}>w=j#7P3?Ozh2$b^=Ua7%O*G%AW((*M*_CI|d z8@B{p8!p^DS-Cv<*npP2*aOs5#5b9s-VEgUqI9uUlkirT?_3mOTnL9U5Ngq^St=(O zMF2Qli-IyiAkHJPrWjK}qgVHl`KP=68F#4ym~TSh1LR_ewg|SjQ#tI^?CQhxTr`{{ z5S$iS|I2mrHroKhIxZf$0atHV0lOaUzAcH_n#kcyjogXAckr9 z^1ic^!wc1T$=rE#d?Af2z~627;=JHCE1FE21WcVogaK>lP5UnHz*O&r$6Om4T3`kZ zujTOL{<^j_J>pubySm)zW9atB%YJsogea|iKIWy16G&%JLYE@iN~0%@f1!0y~82je&N{~~RS2$$LB%S)GF+LP$%Mhbnz;w>!f zbY{!OeHXuJ&u+o7TCYYzgcBm`+s5b|idH*SdDn-MRX#CbDMF+0DV;UIV_}chdVwe< zdJ5{TM zn~Z<^tRQYosVJyji#KJ9?HB#N5K>sGgd{H zWzV_)^9xH$c+Tif&Y`xIu011N^Ij?g3QzP-$bDnqwR_W(QUC2~%{QpdC!a0CafL^@ zv~<-7aE-6pILG(UgLU$ArU)1Bo2&Ku-{)7~cVP2*|9WKKno#gJ zd)#n8R_d|nGi+;W#?vgbxm=Z>U6ss7)88-C@Z?&?6usR=|CB>=p8EKhJk31WUvBr^ z=;%`XpDasH+`L28XTmi^m4_^mp`}8>SIcpF|C(!EEN4V$)^X_IgH~v%R*wWvMpKm) zdzVuy2KuHP;+TNi<2=_2`WKplUrLU#f;vS;&8-JP)pPJ2UFNiCp#> zg`BsuSklGEr6u-GbT=^KfX7lNBz<~&pt$Tl z5uiHtS}o^LxhDb`eg2pW%(KGBEB%YoO8>-|D%(z{#?0p@<@MO6_`IwtHP1e%6kL`g z!|552@dr;s|CpXN4vCDyP%IX`k1OZ!EQ8jWL&0&#&xJzut&C4_x*S+Hj5FSJQGV}? zm_j9$ifj7Dg`DCnwxkM^R$gpGhg{7U-KwP4jik?9%&>35=oibg3t!&ccaVaj~`b6 zY@(q32)Kpv@Tt^Ew#P5v_uwUXBsS4;fx%c83-lb>arAKx?)3+BOG*!`Ycoo|qIw4Z zC;bdBuE~I(TOKY*KD@#KpZwM9BL8^Kwg^t9VK!gORFB%sKJ{(lLQxwOP9SbUbgs}9 z$I2N2l|@AZR`002V?+4iy*&KriT8gj<^-)k4=Cr4fZ|ogepX zagkXaHF`CzwLzFN*Z5%dk3%&6Da&)btioTg;M)Rv#2pG$52UtOi~-od1Qk5kBn@J* z5^7H=KQIpAZcO<8Kzvc1e*_t)wBTmbytVT01Kj1^_u6219a$ByHX5HX}2LOVHcmoKs7i#jLqUe|=_B{-L zQa7-L7F{ofraNF+&cP9LBYFZZ_b_mNQ3zhcE#X>hh`(WvlGQ|$ zfvvzOHuaqn0`o!Zl6tY}EPb1M?;bHcromo%Zx`GdYaZku(IJFw?YN;5LTPlEPs&P3 z-MRv^1-?F71Q9$R-G95fx}=I%)6?5AYO=_m^3=+XkkiHG6LL=RDu*q#f%who4X+A# zqn;fG3!HEhQKdM)qY*H}J5{kHdi5LEHMeFq>xub&`XmV24j}r+j~L;*J&lBw4Z-#{@L(q z-hKJ2RvOY-0q*k{7m`;7(aDhqS-CRl(mQ7^zl&J)>`asI2tnzzET~{9uZ>kzS0S7w z=G{vc&KFXS?Y6qU46+YWPhevMLFRt!NoF=SeXFa>x%|fehEqqwl$vE2L?vb0RtDaG z?C``~#f7?=M_gG&C1nDQDNhUqJ4LA;1%nh-tDrP=2xhfeD<7DThS~R`qEzsaSa3n3 zRz>kopVklVhLyq*~aMv|YVnr|o z6B;~O&V}DtRmZ}oZTHOH z;y^oe7^pq$zioy61H$K&e@U~+%5>^DeclSX6uNVIUxwv{?Dxu=nsOD-jWYzS=HNzJ z11kI7kPrp@r%BAm0`Oe%7FUt$NI8!jM}Zht92u&)%wO}tYx_3cez|+}11jUEB_i#e zoVd4bd;N32C@4P%+-Iu6*4;3%UjxYF)mH*bU!3prqP4NSdMk^+EhUE%w^n>}Wg$H& zYa$%zk3z-*6bHP0| zAY6&D-Kwn-*>;%nn3)8a3O6)dsIxm6RV`=N_xg;bm`F9zbqTbQ7;x?mWwGn`UAk}9|b6MB{u`vo1g^XEcT3yc&KC|2;?P&cKVua z517)2)NaSn`yLFazNW;ZQJ*D9jS}H)bRR|Mr2S6ANKZGhva%8?Ef`}PLCYm_FOZ}f zw%}Y7R)f_>%GV!IAJ|>G6zjRTKt71H+i>_^o!p@*i%;QNI;uBRnETH&bbnf2J!)KS z?_GOs-KDG>l;VXM0krHj0h=BSAbbuh6vYG`!VWMS>ng3h_$m>hqkoi)YvT!KkXL!& z#eqwE7o^2NM?O3~b}v=QRQLaWN?0Y`(eT%46_19tR}Wp)$@A-K;H3uB-X9I*Zj%1D z*cEHhK_0!WL8GGvA@RF<@LH`?;rL-8`eL;o0_%@6?WSf`zhk}$* zk;B0CQlCBQ-?M9MJMtYTm1URmY9H$hqBnMvv1cWwXQ27T_C=@yH|{=7gC;?whd7u( zF@VIBsATIA2bMw{^NHw21``vuwBERW9i7p7(AM$!R5QqJ(Qf0%ux@dZ6bv)ox{?ys zckw{v%z}_Y-OI_U-TeI52?m9^0d2e@T;#pA1kjBw;I-(1a0l+bmQ*}*xXMzPE)y8R z6zl2b6VtWWQZPErpY+nZr#R9`ap%Gq z#Om=#Qed;XliUe8mJ`+M@8qvkqzpXXaeL(ouELHTRkKGsU>#6+d-I2hdAGiMZFzex zMeo~V@p(`G!#@iWA8utjC^Utl`v#OChhd#h#yC4W+YK5S@VYbH{#*oG^k!(o@A=|S z*rG%Z1of)V->|IB{yjTdDuxl+A-X{ke$d=HG<;(zc zXwtzGN_>tz9}e)0tEk;!^4JzWWgrz{uBoB14bmY( zQ3Z4?`i*J_=XaoNOFWF)Ip$+$YbmG#})o~~Gg5$bj^XAR_?7F-Ve&4q-6JzVWr*_~DI#z1J{Xu(R z_BsZK<~FMLP5P4!Mwh#3sdh+6WUID9#Ha`ng)B3!OqjpO z$_iaCprZ(`^wYSwj|3}%sahzkBqY!4G1c518Q5%yF9#~FBx&|SzHiC0)i}eI3WG0o zzovx?0fvcRJ9d53lo?Z8h(_NR2X9l?(mh)|a@jwpWjQDa>7c$%bPv$G?m#pIGSJVF zf>F#pt8zf&Q*!RexQIqZe^3L0cH+S-ot$0!*X7_5bS%y@A|7iZo$3(tui4{F6JGuzwa6SnjS z+Ffi8V#Z-%!gk8YUF@w)&Bos;n=RV1o_!=@Mm)iTeV4fZ*5yejMv#&BKTk*jQC++k#ul2<7Q#A`)atdZr5yC9Y=Y&Uy^-ea9d1ocs48hvNy z&&lgqSua6c@e}mzaj=Fn0Ud5m{b@WhkPyQSrzP~P?&<5(>6O489uLIUe255gz{-JK z-7<9c)p)r8h`MRDGb`3|*Pq|;1A3LF=icF=p@)HEB2;T`ZXQG9H1Uu2Rui+Gi_zF< zP-<)TPGJXZ2a-yN@dcv?UKJK1JTQmjgn7GHn(A=?gAmEHfvWx*LOQF-c5IY4z_9I6 z#!!nn5X$yTJXG9$#z7~|h>0ltK(VN=ueYrDg1ZDaS!qkl0|aTiFZCU-+eMn*K`C?t z-MkSrNl&$1B4yIi(JH9Z1R4$>8oiePMk72Qa?IV1W+F}Cjn(Cke^YZjv<(#NqgW_d zJ!n81B~mo~NlY*BX7W>yMne_$5-6ztq5P1 zZrvg(#tjC135UX}9{u(@$CSnVHZW}3Qf0mK-Vz^LhBqHS9s`5*(yi^8&v9qmxOM9m_O&8n z?x-mSCZp)u*n!kK0$Cj-u>ddx@#77ySVGixH7XrT;+9#7U?YiaBPAfeyQ2JN( zp;|D)@*u2>4K`o}EBr1x1S%QE;s)u3=6x;89msM&qK)QGjN!$ZU+2$v78QcySpCw* z!=p&AX`mrl_eMcM0cFjmP3ON{fPV37R~P3ER*^7p-t=-VMD2wQnd6nTl;_an(VMWX zQa98CtGy7Q$Ol}qLMT~`gK&N=Gcyy!ceR^GV$n+NBvv@>ZFKNefOeD@rIa-+EL=$S zF$F5`Er(@J7zjEhM&bj=NqF6}C?01FbWt?7ktXq{T@Czz!;%+V%!_@WHi2*-inVP4X_UDc@vLQ~K*E1mjQ#;|F|_IiHN*3hu9^4Q=5{LmaYZqn>MVjS z^C8^MmP*l(M(cLC3<=da<3HEh+S=CjC$U9ikV4t|z>N|;{f0jCqWP!$reQSCQl2N@ zqiBa}>+ADFvT+Y==*Up*j`UM6PG7~kz@!RfX^mZ)Is^07~;zM)ZI;?$K>$*%d?Gq&XzSdgIy+6!_ZQ_56rwOS*q z7x;O_qYw>A>0;AebF93d{YPg?dke#YK0LwG96}8Q6PDq?+jI&C5G5!mi0O+bWa*?R zY1sfGcn?)G8sIrOIsF>#EdKcQRF>s>oboXPmvC|tF{>U5CSb&==%_j(o4xY=almCz z=07zeh&8jdT`h~u2`AHOyqYu-M*#Y~F^3tKN~HS&>P>&}2O_uoEi+*KWmc)2K$Guv z=+%YXyxw{q&F!g(%g$Km?x|I)R>j*uc0)-L%;cI>9M`yAhc}bc%OYNPx@#UEQ3>RKk@0J;7#K}BaRkD-P-gu`oiEwTLq-2@oxe&ghIKgLNt=H z(jC29i~WqMN;(dfENoKOpPj9@6~jU$$1+sv528alpSk?{E(ZxR6tE^35GJX2P@DqG z{6=J&B&YB1C&E`ry_>lF&rOeYhq5tZuVFHOP8BZ}>UC&tMQ(!5gq09Xd1cUPzz~9h zN*dJCT|g$VK#)zSD;bCN&R@7%hj63hMi`KZi^@RNfY zl1$nMxcZR6vpGK0HM;V4IJ2N&zvpagCsDxi2@9L!c~qR{lQcRfEP`C~U+nI%fbior z%6AB3lj07YNIDWhqpp;w^Oho6NRJ}V1V?GGvz%#CoUf%5X&sLshgc$j@TeScNkvF6 zgT@O64aAqCR|04BbA4^cQRe;o_mjrqK+GP9o!7WGNzIE-hC&O0j?RoQ@G>Mu7stOH zD?-r4Es)8rCjFC!!~GWv^d2|}A{vRh9jt<_9@D0oBVX3vTie_I4CKgULrIeo3gTtb zvlO6QXt^2yA5Fd9%*-Y&4}v;j(CgF=ibrP2K(_~{4J3>7Bx_P{+#Y-CiuL-cxF<6m zYpG0zS^mQXaJ&{L?6?fc27`&yL#T5zZBkQj5JqlW+hv^Sdao|;MtF@5V;LyiN4pFr zvYDlQN2!ts@wB5kyb==56^?`^4ZeyWs=hs8F}QRrCE-}IfprB@=o4oP=ps%^ZHcpN zl)khYm$s#S>XtPv%_qJkbKdzC8x|CQVsO@p!h%@n1FsY6%}WN9z5 zv%{b^)6239MF6XK;>4XDJUkU3O6Pt6+ru{ct?y; zhWo4&)l=jdcf-PT659Yt!=fdbQd{6`o7qyIb}DZhaFK9>3wd$ndX36TO5YGpt(67o z^ep)F@p|8^q%N5K#z|O9V-9#{gKRv4R9v(f7uu!Bsf+OK!_S`gXVJxb9QVx%&YX6q zNJzy413$px!c0FrJe+6SHazGWS;)Tx0b&zcG&un&Uq?oS?{TXnWjzO@K$k)u>(%1I z?A_b9)z9kn{+2|p4-rcUKsNaF+yuaI3SfHNqers-t2uxcWHo7Sz?!c5p9p)OGK;XvV zWOWSL^{um^At8$T`VnnTtv2L!xS3M21zGL@pg9FF<84QW5#nIZiN4A`;=BQjn@(qU zqSg5EG}q({=Re7u&?F~2(5*l1qaHlC9cz)lpsQ{HadZ-etHdAJHGG3uGR;A#91aYw zYu2sXf$N>*jen553_99EoTmi#pyTn#;Jo zp6-tMMvDYo9liWQKF{8FecE4rN!YK5nr`UJl$9Ko@ILe_$FEWhY3`Ee4l7gp@^TIk;_0F-A+nK#*QB(sv0b=U0pWfTH&%>!EKez z@{>|eq|RHbc_kYbxji6uIRwdp-9T-s;eH@FRpe5$^_Ym{j{IT37pGMb0H3V}5 zwEXtVmk7WR6PP$rmtPi{E7osTa;4^FsEMX1@x}3v(fhI#dl`r{OVNBTvK^!eV!5nBa?|re+BWigR zcbU+rPgZQ4Z<3DY6wNc$KldIJ{{*1q_Pyonaa|CpGm(~)Kakdzy?fUe@fJgt^b=;J zB&HQ)$+_BSO1XSTBMG_^2X|Wg#UyxJ(K8w?|I9AP zej+qNV1=FI14MY|uq6os4RzS1pI;ASHUI_+8>V5}O1ZfB}JBy}f6Z=tCCq7y@*@rKex;$JO6LKgeLn;EACCFt0Z_ zWl3y>qZvsZYB=SOv4Xb45uSnNRA z0HQQzc6J+=S`K!06(B#v<7J@k{Yzp71qt@cXFuou>*Iej7qEFeppAAntxo9rjuqw= z7D@9=3Go6>SMi;+9`nC-vCs}f;7CDM8Sh7oW{wv-57g2cw1(Zgd_pO)k5sK7=t55O z4Wk94VN!hoN`qVnXFRmc2#@J;3dV2MHOzN7|FbYfY{er%g?nU$5AqG|7%p19Qn=KH z!@JW?`KW{8PO2m_v#Qb3R|30KOJ< zU#Y~`z{x6N1kkO~8UX<@kU*fY45dj~6v8lG#H0$vz`ApAiC~D4E5p?51(GONN!)Aq z=E*8Ah8X#(Jm#5|8wH!*jvv7S;E|LJN77YyFCFMk#DZdx!@%A1`;jkdUhEo-!xBae zt2ZVXqLHF!Zf+iT#N#c@r8y|TzHpG6C|v}*t-W3#37FeSz4nu~l1(@vnN_Gs2;{d% zfOBxg*frjv^<7<7cXnO)wnJ8hlvtr#<>rpBz4*6}txBs4%Jb0N6c-l{oCA!=pQ5Rh zI0Ho&N&?pqg<`0W7weu1kB+|ZrK7CO7sH~JhbqKl?ZVUA_pqxl+}MM6QWZ+0uc<%O zoSdXEFs`;pIp+1{6wWN1aKfi@NznrlIfiR3tiLrh)?oZl4!NIgi!wCeSJ>EejgG1z zE(bRebqKQTfJh-+#mQ6Qa}GF6BOG>+b-?HUDzdJ-5fSA`dK8Zz7n{%74h1a!kAM=h zSD>1~J3;b4HZc(kyo}h5Gc%hEKKO>Vn5BEH^!{skM0o8kuzp=K!Lhj5x-85~d&2Qx z(+=4(9JMVW8x>Vmxw*JX1@&%6L?~HW@*~uXcel2&`780+j6NTko$hXKW0RBd*uI4D z0I^PNY%Fb+Iv?#>!*QU`$8XIlhYQ=|+|yiE{B=|}_0;axrqWU>%r6{KNcVCy2YG4R zxs|*bUGaiJ8VBZ%p=Rln;$DZn^M@gquI!OoNt{9Ey5wVCRw8H)TmM#4MyBvfCz7~I ze=b?QWhg$!cHCH{rk<36_!{_9vLXM1tDv#4agp`po2^LGGTip6s}#@v`I9yMU^4CK ze{E0|!CA4nb8F7Tczf8&^)FAmawmeuLJuM~;PynWh$~C00KhR?BfrBxK9rXyIczz4 z^eCwG_Kv6$VAJO2MU(U$Ar8|L>1R=1tL|D>k8=G6uw?RNefUjte zFRiVBo&6#sHzO=T{^$=26>MFifdgU$=#CIpe0`T8q5-P~NJB7O5P(udnB-Djqenz8 ztLIw?&pHe-z6BpIFDLdc?mO@TK79Vnjenp40HV(iRaFUi8NMv}38Z`|Rn5)KNp;4q zUwabK9vBx7-21z`N!?!M*39^h2O3HZ0e?>k83BXbfx{N993CF@3+@bUllCp=;*w0v z%zR;5g)4>Wz`F)D4S@spDb0_Pn-y;a2a}INey((@0KkHN#mkJ0*Oiq_6i{BkRzVhx zxcmOyRlO^GBeJh%p8cq<(=jsQw9aB_W)KxeUA>v(Re za1QtSdxznk(TwpP8M%<(0hzvpvgkf3DNEb+aauS2UQA6vixwMy3(QHc&tB!zQFSQo zT13Wz|E5)hx`upe26J?Ou zEeBhA$1M#d!?a&%yKqxBg~f8r^||hyJ+Q@X%bH^E*2WN~&FV?CnHd?D<8S26wA@Y` zMZ59pwrl=*@?;xIL_-e5jnJ~-xo+I6&8~(al1a%LnyZ(yJ3S83P*GdDej>c7@>Q3| z&`+OVX}!WXotAk{vBg;_QQt7?rp2e~75LN?-FCV_KKwz^u+LyjGcZ+HM|0E1u*bAB zrsU+*&ky)1j^%}=)4BYjwV`R(L9VY1ifuHJu7}2ph1f&M@7FUaFTK5>$e8o4zID^V zem}OGRE<9VemyRh{5&MT`)~YGVbV{P^NQh6k$?SS$nTYk&1e2S!3ACdXYe&-(A@N{ zdC%E(p;=tjl@=EeEgDETlXt4muk>47He8t8HaFf|fmXnHvIaYRY?ui% z%L@l)Jf~L5U5W7DD|eY6YL@>#!&74N@99!`Y=<6_NFa6fLagbpW8b9;1vibAvEOzq zuRTEqNXbxlX@mx6OnbB%8BE@Ys6S-roV*$Ve!afDzDZai9w`6RbCnM_v}cV`E8eU+Hzra`U}cSQMUJRXGa z>R)zNaNG!KrNPY+5^+BRJuq#BP@@T*^ zQU@t*$(N0JyK9p1Wg)Fokgtui{EVscQKv(MOO>8pU2Do4Hz>E*&fg%_a#D&6SCZad z+Se(`k7up-PSd!tu8QJ5)V$5^SEhr5Bn^?>y15Cm`)ecxL62`Uz#O8n;gJjpm9m6w zY`r^2gq7)^4*R7Ql+_f=*$4e+Ci?yc8|y_wep7F}w9-X}A;HL3MUHu%F2u6wBpJ!} z+`ljRo#EtXG+}az(cudHs)G!Xc>XC_B|-M6rJ=f4NA6g@v;8Yf8M;U6x(=?vRcl?e z;%nownKkT7@3VL5eUw5kS+2&yj}7*AwQb(RQdG=zw>Zb)3|SW%D)LL4r@rBouj!c7 z#-9w$`DK&cWAmK3xec{<61hX5=N@cG2DhjSK82Dg#Yh5Cwm65HL&L~sI1hpE@^fm6 zxN0*6Jr+J|Xv?M{*yB3sP>str zdI8GnIBJ*;1<(D#xmkwb?)AHO{@_DEh}6KA;|bqB3ZQx}aq+AZ$GrUORUDh1a5Jz9 zlU^%GN+{`w5?l(Wijsy*`Iz>3B0A<>IyW^O&nnT)(PRss{pgkA%XNN_l()%5`v13P zoSq@Nc<6IosYy`d zKyg$BoPp3*Qpb*WLC}0CcJS#b_aQnqCm{p{An{S)R`C3tm3vm-tF4YT>wc#qX?wi1 zkCTdCUAX$VGj!*&VQG{1?PE3^xnqe%`sokm7N&}Mfboi3HER8t2Ze)lse%;?e129V zv_#TM5>^b7sExCuBtFIs&sPSsZGM@`1yq$u9*vL(X=o!nNq0~32N)ZHHSoTrgqCU?rWJlatfZ zZ|pfAO8&r9`$5WT28KPeZR^eg%CSd{9Lu1x5%dan-bjbl3;X*zfGWJag?L>y^sFil zNt7uF1ph-znQ>>2UnU^ zm3oEVc3in2^Jw@M^)=&I+jSPNht`pYCsDv9GPwZdzq0xEWcjm5IV$Bon8A|JitoN zNVA;-A?dom5rd%>P~t26H)pbjQ>YtN&!(}qUEK4~o#Xn1uSao1!gFA>lR#qeKm+tFF=#P<`4*t!O@(MQ697He-`5^ zbylBMOF*J>f3N*ELQ$ZEgv?FZtm}QDEggOxYveNAUSa=o232_RN$O`-;B0Ir7!oD3 z2c^?Un@f&{epjz{_w~I)ZK?t;lc3>mL&AIcuW18Kt;;EOHcK@7VBifQ|2D_lmJztTK=)8PZTtpaI9&9NP{R2>VV5m9-hd-m%_c^?u&mn z(o#yada^HpOAD7@z4pqw3M0PU7rr0#1@725U)y25=8lH)Q5})6%ll;yqv{h1OM7ko zgU%zTfYOA*^RfaXbq4l(_8@n)ztpFhn8p z4c{sRTp>jW1c(d$UC{o`^l+V`(8*1zka%4MLc(MrWd%|e3I}%lA}1#t0QCp-OgU~V z4M;k$#X~tvaChN_wEVLWrpB9z=)Y8yux>V)*#h$2`B_MVAFIBo&$@tc>YH=%Y!u;8 zfdzPm)H^{KtU%=0i!%RhBKWP%;zikM^q9K(ZD2Y|iwpC;*fzLrKnzf_UrtNgkm%6? zDx*?UZ1y<+*0R=C0}y{dN*M>ERGQf_b^20u&NAKx{*+yT-*4_9VZ_^GyWe=OsHxy| zT%9}RKa%;l?o9f5vw`oHjyQ}_a#*Sp=@+4b+tb}`ufpx5rIdBjc4#SAOWL`sSvFv{ zE2qHpo1BF!gMtj5Fr}s@%oYhHwAW8WfWeVLo$^o~Bxsh$iwfOc|aI?&%ay)cb z<5@$dQ_J^noNt+E-Tr9EVWayxkIeNC_m_INjA_5mxJHv%r7tB+)`ILLZHcoq z^KxNB?Mvq8ovT~@J%Hfn3GaNjCq<8dKp{}xvUUA|VYayjz4`I6mx$;Hn7 zCac^AR?jY|OC)ki^{0`yN{U~~x)O)(l(Nko4Hr7Ri8&|Ly2vYqrK^@*O2tQbQ8R4E z(p%1WepyTMk^GL9yl|!!8|^7aIDAW7yMC=~UPp6qVZ&+Np))?@v#I}{gY75VT;!VN zT^$tnQz%>4A5)Oi%H^TD&`IyKHGOJz`fkc()%0RFHTez86oT zn$bboy(qX@w2Nh>;a2|0@7P6#&2uJ0 zT^Vn@c30G%`1{hOygS5FMY@b@j%g#u>Ku2PNt^DH?dhegPHJA$B9ESy{C(*lTTM5? z3AC)v^w6-6iWpoM<+NY>CM7^-$~Vif#bCMAL3)qvCFPB^HB0Y&?cY297;bw!QJ)dF zE9JSQ?676?zEtberCv2>JO3=uF@Cv5mO*~>-}%*8JlmN)?C5KlaL7pdjV@Xi-1BKyL z;cxB7N?F@%LFB^2X)uLf+48kfbK?Z{1|je#^=LA?2k2)*bp5gX}cKw zjf0Z9+gwUj3Ii|QznNf2XT#vZA9={6e{Z_IVC3=iGWY6*t?7<09A1(yk({78w=`16 zLiRcdMjq_SaW$Ev{XVPT!aBP^zuC>Czuj(9hF9^tn`zwDTL=9y`wc7q&a9HSOhULH!e;WybJ#=`u*qAqU`hyAjJ^b5eTm!G7s>` z0s_{)#aLNU0rA|R0E zKL|no!NF>ko7whoombY=;QZ669&%zbo@%j%c^BI&EP?DkvvvKYF3!x`FEjbIHp)kS zR&f>;l7&rLxQMZY5aQu8XU}Tump4INh>PwR+U$aBM56qvus1C&o50;cOzfMIvV@-J z=j-T$=4OBC(w^Dj-rlRwRYES5_3M1wE(cXgoc_+JrA?<%`Js_XN|oQ>DNXI_LtmS2 zPcuE7S>C+YcT}A|x8Qk#SFC5R+0$WOWeVlgHJ?f@=4^T&4l2gVD-ypo)YVD(1tc5T ziIUnEE*r&T5P^*u=Q~^j*+*$M2X?U zt8t=u1=XmW7uBi*s}gi&&!4y&#Z*0_n)};Wn`c$(3y^F{<23ZxMQIWVKVV@+pjapY zpwx8f&-mH8NeKxF;%f($YFb)aqTCS5tCM-JUJP}2dxvTdZJ8u`MHd$-%pD3IS>;cU zSz0CyOu_uHt_YbJamPh+ge00c1p~ZEKnOzQRw#p^U~r){GgA0~VoZn982WpVI@!=rtL5h3P5P*!{wt|*aM;ek zaQw{R)jRj^TSTxv#tK3$71!jz6mkIE(dW7|^Rkyxnx{+Hf|9t=JszsmFppdu8B;r- z9@Q?6DqZ<>9rfr{s!{K#bA>nfg@w6+Dg0Br)m5SHi;-Fls&_!*i_5=j@o+X>Id)Jb zPfuUgT$AvXP<-p`7!luqMN10EaDEk?A8yN=VA}mj7D!Q+(%(!&tH*F+hiu+`?etN# zvlA=o-e<>vb9PV9$H`hJGgpE{Q8T2P~C}5EO<$zXBH`t^YN9|)!hRLn+381 z5I&9r*1*HmG=1UQgVoaqUc*D_D|ZpjvEVmAyV%Wk3uL=m;6R!hCLq?MXj)p!)ui}8 z#zI_qjjU2Pg9vYui_=WRj{dz9U9CFS`yZ0pm1Miay#c-pu>Am%_lhguIk^u&IT;a% z7UO#n8X=G+CO~*t0{H+}hzCbOXz&1mH&gB|1?YSYmn-kmC?2HgoTT-wTnwHU5mshA z75A(@=#%s^);-r1KQdpu9%VOf5$swplIwp^c`EXP%?YO6jy>?9Gy}_)@FD&Y6cD6Y zG^Mf=0tShs;WNA;=Cb<7xG_OD8} zuMk#!cWN7FNkHeqWDe;G6}W;0d+BZMon)PNuzUxt0s1!eN6&Lg(Cg_n@FCJt#1s4> zUVi>_Yrs( z^zG(t*oc}IX30@RbOT6+mTG|AMhwI)8i_?OCNtYZz!%EQHz(TUS3WCoL`f!P3pDz1MR=8a!WKke$8(b~-m$pGcgLk#P|aMTPQgvkvC(3OZ>W zQ&jAN{Zc7TctV*3(lL&*u;$5=7LZSAH0}EvrzX7xm!b<{|5M;FL|jJ1B|uEPArK2i z^;|h1K`Rq*t|=y-G!7%8KNgl!=m5XhC$1$*9>_4mR-NE;j9RMV;B5bFAx4lhXz!W} zoJEL&k8~y@4-FFA3x~@}dRo{aeoWGCQK z5Oa1xw}bk)5PJmTrN4zpCB09ODs7T-;DvI7%pt)wU6BC=IJWEm1Iar?fOo>E7j0&) z0*gV~PWm*EjygaRT-dF^@!!bkFGVzS9WNx}V8#uH+{=La;Ky?gcfA`rc3{Hw#ZtdG z{P+@z^*09GGu@^YJr0N71KAT|55oif#oCm__p^}h0sW-!8Y%^(SpYaPdQ#7a^dYiG z_cZ;&saE*-V?4g$%t7P62vpna-rR&{gfz8G(T&}U%NfAa?Ynp7;hF&{HU$m0*jOIt z<`TE7>MSc=Qov-l)zr^4XF^7YE@;#^xJg?t2xg$Qj6K|wlL#PNd8`5@9y4(k(gt)Rj} z8L&f%42<+X2K5Cy3Ii_}74!fOVW4M&PmwyFum3;9U4!dwHTPqApc=p7*5el-hWwdq zwapt!Eg-(@pl#(iC@LjxQ2n>nbcn3b)^m0<+BBGfWf-<9!N_T(?IRFybeJM+4M-X4 z>gN}5Y<`NCiA2JRxZwkA$?#)tp!cX)N3frR7y}CV)3&y1Q|MO-X{1-iRQAy$M+o%} zO1zDG%o%ado<$Z4q}m=7*>0FzfHMG==vM&!l;bf6qM*rH)`du;)MS@J&tX6#DjPvg8j#sOwxjjGNJ9t&Q+Ghc)CVi1 zmvEO6)($kK#UP;lIWe(T7Entss$1a*13XRytIK>h(ed*9JxVRq-kYQ^r}Gv4uTmv}A3)Cdy|4%JYn_>7 zI`iMv;1^J~C0qcbe}Ftsif>gJEcu`l_-g_PxqpW&ht5Y@3qf=XRR}9 zmS$PAzTY?B<-I=7`?6ab8A-u5@zI2k-udyP0z}(xUOxBY#b{77U8Js>rUhC4d0VYm zk(BTPX>ko0YEAP^RC$E>)yR*-$!a||Jx}SOOkf5xM@vTs*w@tnmzY{xAA9`)YDHWF zX_eKxZ<`JFSJZz(EBW*TQZIy%19+Y#X6`Bg~UK ziin7?9W)!D+^$2>uy-P1~-*O&=!m#3B1a z_nfm?oEqi4;twO#sSZaRND|VNXPQO=vdX}SI2LG!WT zi9XH0u|RzJEG;bolq_^|+oGVLpseRk3}8Us*1NW;0Y-|_1zpH}92)GbKML1LaQIKdkvlsw&<%CM#Xfk~9g0=Z5rfZN@`)(hTtT zf(}^oZ7L(TrYz1Z4xyVb_F$=w__MMHxHSv6ffy^Y&mK&$->JAg>r>B;dJv|!TI z(Gi+2DHBK$DudCEuXm2dBiDUCJv|*T>jQ`(%b<%J9oonTJuC0txuXLV`1|};S3GRG;gp?7plPB=*~~ zMw7W`__N#70X)D_TSJo8d`Hf*mwQZE0?o4h)ms_)m5JlOEPE1U^Ke;txMQcY= zNeK&8I-Q-JU%{_RME>H%@IU8u!G8p}xjrvzJ~hlwPuIg&s-8cu1L!^pFuN_=k*?g2 zWI_YFYWDbOQ5Pz?ek&-7Vmtsci1pCh1j5Ob!zuCG5#J(LvII?B`N?gw-Xudcq^G6r zUFkP)24-B36h$$YfDJ~)CO&#(1I$Xpa8GTwSFtB}1P1#0vD+I1B<2RyzkGRXk9;B` zE}L&YTCgXoqrVA8!F|-Vbb2&RN;IU!k;W7V#ZYA`08iGzOdG+TeMJ9xu+Ecn z-nD9d{PgK^jgxQR;Ly{6ToIvjRh5;-hYu&qqx**8PB1pL9?oX!t1N54Q6*F8YgA+* zAq;G}^(Na?n(|EZB8)EonKdrx-R?m=AZIq)!ptlZ?B|s0*RPMOt;#+b!R7Wrx-=r* zprWjt04vL|!+()3AS#vcL?-Lue<# z_3nd)aN-JA7c&`2D3;(1Bb1DU(xeG6@KZ`lZIM$m*3>-HA}7H7g)Et!395&^f=SUm z=skimydNQPP=Vjnz#sy_lT;9}pM9pE8SjNDvDJGZ0oFxgaInzm=qS7a$KL+_{T?13 zTDAqWz}25cFr3)fjxj;+I6NL~ZQfSTy&z7QF(m5X0XJaM$T2b3#kjn&SsuF}hgsd+ zmUZ{;E*6WmMnT~>bnLoC7)eNZ4^K>BH0CR=4u-sx9TZ9_`Hp?QhPET=I3(%!?_0b( z&V-KLy)Y#s!`$6{=xnvX!wVpcvkKjJDJm)!0ZaVt+oT&hF{b9^n4tevYFc{wq1+aU zgA%g14&R4;5Ok4Jx=`Uz#F@;8R6Pl7h3BbLE@;u2hCw|&@8e#Wo0*mW7Ys0b;|}kn3k1gMD76iU7lS}fACS4=EFFI z!(z;0@p}9E?xTO|7M@}5vsD6AqmCe+5_UizPvNfIx#?^fx+x^hwdD% zQlPwU_OW6t9`v^6a5ykbZf@PWm0YJ6FARgq?I9Rb5)-vNJw4O-d}sulH~dvzcU_DgYB#$Vx35uDv_MF`&9wlSgF{30%5`twCKMGH zH?+6&Gc(s=5&ICJdwRAsFRy-%F7^OL)65V(ZE-AJ{MQ<_nVzR|ug#q`-rv!LgNxHw zUsrcKEKCFyW(%#?fw7hX+za9cYZwf3=xR8oSEHURjfpuoIC#RR#0Kx}{!>h8?la~W zBi==K_y@bC$b)=*3ca8*FRlT!v%b9hM4ck!a-gMu-XxwV2DNA`VlYoFy z%oS8jB}e)Mw~jSP}ynSgIQ2MWwQ1KtrphS8Ss;v-u%2QV$H%i)y!tY724X`6R=6c`ySgF zW4&{CG@*Vuv{d(TwJ212C~nV$<|(i-JfS9KmE%wm-cy5#);Ps^9gr7$2@p^C>#g=LPwzEaQz%^TD4qO!lynBG!h0u9MS;JnvtYN>guZhybMK zF}7^6gc(*)xw|KDW^Pstm$~`+t68#ySwQv z<0DU9Dje1amA|v>u>s9CycNU_%+=L8e(pTOWHY2yb{iirw1%LtLJ=Ss@=2UT``$&O zS^lrzH7ul2d*&16XD5=~`un}s-=kYj(J1AeUp9!7DNz!d^v~!zVk@?@AB<^*=mv4v~9!{a^F`YmmVJS~I`s Tsb}Z+->kdKP$yH%?(Dw-N61MJ diff --git a/doc/schema/surya_graph/surya_graph_ValidationModuleInternal.sol.png b/doc/schema/surya_graph/surya_graph_ValidationModuleInternal.sol.png index d8c9a076d4892ea51cefe814ba6239328e5b1934..d86e61ff952a2cde9c93ccede7803919ed51344e 100644 GIT binary patch literal 81060 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%0AaT+5v*UU?I*7MN{n($MthW4F^J)yP z0Vk~*uwREgbnyjvHb9u-2eT^Y=2NW2@iqfo?s*UK%-0Ls0Ma4r^Fk$7#J$QuUAP1O15D(~*x1M}sH4f4K#{l`Zuum=K8!k#(x-s^1i_;7kTElhfNw`3%F zFq`jc%X6GLQ^VJf@4p^cB`Zztdy14>kyQ>477DO$o9bk9_j7L%bK+0EdUIdjo`HGFa!#@h6$qELlY53iOj$Rx zAvHfP=?l9pvu~vay(PsgudLH&@^Y@`QxtI+3y#*H2QKy>x7Qk;EWCFof7<4p2UO-; zb{l*+X9pHeQgUD#x3w+NA95kM$(~oOMrKSF-l)6W+9=oe`Nb6uXZu62O#kmJ4NHHq zkD60hcx$wot34~6Mq10MPXe(Tfs@l09&O^4Eg<;^M@AqBT;69Iq>6evDd;jrMANL- za@FYN61+~iQNNktVV-P9;zlFMtG>W1g1S{Llmw3FDK4MFTZYmPC@LgC<;b)|_(m&h ztBGI6=*I$!Np^#H>L~Prf`7^|)e|qPtcaoRmjSXz5cm9?6eh!J$9R*WrRl>%e@i+# zfy4MFl%4FQsZg_8eUvXk84JlKoUO{_aAobZl0sQOhBoJ3rjp*Yon0x*s(m%Qh(s@( z;w*7sD~8J?E;K6S!O)wYVRbEdtJZG{nGx*8v4<&EQ+4m{_+%9o`+~@H?-Q{Cy!#ro zTOjubsRCj(eKXTk=Q~(|en3KtPEWV})Z4T9;N9U-^X0wt-gd-b2eE&=j{_L<5X8A1 zinLdRup4|yYyf1ad^fX!6rhY7*Ivwj%= z=3IaF^z!l6ZC=}^V>%F>g#MGKcmx}q7o8CFx-U0@``MWJA&0 zr>A@JbJLzZdGe-Kn2G6@swzVD{rOV^BCiHeLi$nm6MA7a5UE`m1t>LWw{SottmW9v zy;SD|?xINjmCS3u4_+)H4S}$)G&D8y^YT6b$`nX;j&Rj~SodgN)_{sSK+X};J7Qmo z#2#cI-hu@EfJuL@tsP!a5c~f9PN?o#X0O;>#eh7g_6cN=XP_4#u1Ems4-RYNz7lYq zFR))Dw0S_YMhL9sQF@_W!bSh{#uTs$q5L@sR(cJvM^MgAXD-|3caYNrnwK?;ahmFl z9^A_*j#x+>1I9bEMddvl>m*=+=ra#ygL9dotR&mW5l#$2GKgz;frErpHt&mve9ftc znh}45qqAOhoRXu{-B_PoA6=OAr~B^7?UcXlzO4Mp%Ee}BF)SW2s%0EtYPs@gdaNap z{@~v8W)V!6NF8|gb~4AGuY1#Bw+8|f(ff-v5bnEy35~VixQyjg5+Rud++wtHki}u6K=Q&elghkZInz+lxr3ppm2!$ugnA8 z1OPgz-^71+ZRwTung-{<^z(P`e)Ume-WZ|yDb(WmBg80tdkEdY9TN7xP>O5?87~k| z@hIzt69TBr{0kayFx*s(L`cPen_^*Mk-+ar2c!Vlk8?+-G1hU99~M20hW;7WWzPk# zWuqmAXDfrvbriM1w~JlbVXWQ8!=LRe7{U5r9MTza|#B?ZwHUW z=Xj#4S074Td(D`i=b(W4mXhHE{k4}WYs3R{?;CSmvt?FS6ZSiVGsRb5)CJ>x&;9%B z*EXY$lT%$RtCQ1SrP@wr#+-7%rha!2rq^U%)I}|`dVojCv+c$E#F56YITpmw4`ZN{ zi)eO1eVY+ATuQ2wR;Px-h z4QiL}2<_@4=5?1p8ogymL5s{QuDGsJfhA0Zh0wrT2M;gJtU>YSO&gY`qaRRRH~&=Q z%+nnp=K8HzhUP2Y#sq~Y^>0B%Y&^ffbfV?U=GeyZ2YWJ- zb^cO&_t!aWx~+TumG0)o9`ri&R$RoCKGnT=>5L#0TaJsDmG3ZTS$GrPJ^Ouiv-#5d zQ}e~id6Rd`>`Gk^NXr>Q%YWv4(>2CA;_*WoxB~o$=1if;j(CLZxB-`htdIQ$H#av% z=<9%O`ll%a&F=mE zK;6TEd?$zY{YQU$(zc!himl(18kxtLOD#Xr=t@305!p zX?`!)-h1Ns=dGVmK!J8(CK^fHR25kCkPHE zF{MQt-<(|n6dh(AYT-`T2l;@%uY^Ifk-AI*qm3D;QC*4nj*|!5hyK-QnBTQt) zNXdsb$S5)k7$F~r^9s2O;IjbsaGxX`SO;&v;D#}P8YVPepdA1=CS2V>LV&J6Jr2=$ z4b~F}q^_5FQ<0h|9qFt>562Ncz;XDc=}s2Kd62S#5cil#I1^-*V6glffCD)YS3=eh z0m{Bc$+S3sI3Y=K8-uq^*;GXw2pV3q5w ztc*-3&ae4*7E;{w&Z)6qZ`g$YFBZUx6V=zt1Oobo{eBswCV;F81i_%?bAAvTi(V>B zMB%lMi@3SxefqQnI*+U%SJiHSD<|6WSMrq~Js@ckAXtE~MDES}jvL5{i$&9@sD6h$ z7Ty%XG`)?78Psjky5Tba|N6o}R*eKS5T#KYdvV;0@%Jtve&69Dxu|1F$x0`D4KL9y|*ey_0@k8l!WoD=nGI! z53NXU7)1aPetUI!*R$t zk%rEaOa#4=D-24Z(dGeimF4w8J`Uu==*O05Q?W(P z-XU^75KYGK?m8gu@Q#o$(@#Lmpbm=$?}K>~alr84p#OIR!0Q9J!>(2fl-8gC0ca!w zz81ZAdJh@OUdTQF+v?TG3fBu8BUIpRZ# z3LvD!2cF9kZG0{M;{8Wi-w~TcSgipAZNmV_Ql5pnuW!r!IXiVO zr*@1o=6O556WKE6taSlkAEKkmUdbx3D3iMrcD1nV#m;_g?#p^-YshlYB{8)}5TAQD z&{cBZYCN)2uvhlB&s8kMx>^;^&DC6E<(4jKMcPjrRYv{vWohpa8aK#`7O3 zs9B*j(*G!+qyP?s_d8|7t1H%fIf|1DXF|?n!ubL^dX~65is_OM=b~tWsUroW|IC+l zl$q`v{b??j*J!^{E}~cI${k4V!2p1jB`CPfqz9<v<1gM@ao0A=&;ofZy#TwwU0~HCF^!jj?k-3cOLyZj= zX(?bc;)LlV5J7hXq1yqo(u1!7{AnYC06xRbxRUJpxo!i{W5Y?C7oQX!(XsJKX7-IX z@6sP-lk~$H(KLJdCd{OJqsC%I-$L$4D84hU?OmT98BhO(pT^o^=lEjvWy+*GhZ>J= zBGjRL&vRr}e;-tgxO;RC0Aw3>DwWb%qmtihrR6V`iO~Lbcb%vgRNlo*j+~b5 zoPXd{vLZR+43QilI;lYm6smq8mLUVT3Zx`UMn>9d`XNZ0NL4pd`krgNG4$w}B zqoBY@3AYak3FK$$sZB{E13FS-z#tYV^|(bMp~iq6=V-7Te2sj7?euscMPw(iP;h_cBFdj=kxIhKBx3*2W;vS5ngak`hxW(7>?MKw9$flPK_YdRt4?peaRJ;E8Osz;1PpM%b zBvv|2^+vA&C)SV88MlCnsCkn6ob@7UM~y(6lJT~d$Kx0-o08_n8GClz2Vd91h9*T0 zyc^2m^9Up)m(XW$q3zvr8+3>u3cHSRG~zt9Uj;xcz}Nj;PQdL3TJ_j9>o6GzKxl=8 zytL>a0FD_Cu$goO0Ytb5&Zxc@inN6FbROQ<=i^CTXArdInw9f48`D0Plqq{2;CA3Q zT~;kyd#9dSl30f?{Uu%5L1nSj=AqG~k>+UaMZNlDm#7if_8&n*06L^}=A+K=%=33$ z2fL{&Bj06y{IKFBw29_2)pO+P1DwlVt#o_)zVBL`^Ca*K&CGH>T={W(*&+5Q54Ths zSSy(Sp{!{{-+SIHx~UMZ*AR2JXTEP-O7S^fKwQTUtpTUo#C;`gk*X7gwV$>HSXt{5 z08ob_q?4#lpshcaX8a>Fm)Rr|+Q+5&O_5b&qFcre( z%4x^&-soMr!FJKobrZUAg1wNGWBI#*J1N`Vvb9)!Kdos3+M$*M!IE55fbMgC*Cu0DPgmDZ@s+z(wC8D=eNzafGo%S6=DJws%_GR!(7_^FRM(=%u}v|h=$mIv<7ja+qG}nK*7W?99ad5 zeG)*T=v5ICbN?VX=aQBeNV_3(BGiMnjAp}F6AXAG1P^Qfm5w^PrF7abaKZ^F1JC{= zHN>F9JcjY=$asc#ndnFYR}DG_33t+}6xzp@M%&(VmMoxLUYV@l(;*+AAWkpHe z{mhf)^V2Jefp)E;vy*$l z!8HC6f9@{X9deBz;SW-Gf3aU~zY4gEEfrojO-@cJ-bEiz@D;oHCJW$mRhBGY+~nx)lT zM+R66#Wlaq)SumpF)-L^`7VB%mHbeNQe1}G(E^?$we+ModNAnDGE6xSBw-TOAXJ8M5-{T2}LW!qX*F`#UJ4piyJD-C{b%f__UuV?-0+| zPI~jpIK-v&o!v=pYrCht`9Vv&C)!Wu=`Jm|ezs^(+_Qjm4ERB6A@0nN=s2^B3-Ru> z$AoPJ;d2+hr-~T@8@qo<9=W>I#>|h;Ge4^NQxWfTN3=rtzmGFK&@8q56NM#K;mBGU znxC4xTYKP`#=*M*j@=`$i~--~?SUN*NPeBSWmfAecvd9-+6OGC3GF)x>Xv#$)h2AI7k%GJx)8Ae@1ePJlPvyEK zyKpv4*fqGh?|n%&P5D(b$hz56lPu^(E`!Ay;%F?V@R63qU3?BYyDxUHKi-IcCQ2>-h+aC}jN_l*)V&juSD*UK zP(bOIzESF<63B{*mfYZ8a^K!lRrP8V4tLiDT_45R0gv=d2B3z;q^Wt?YWMo-o_qV4 zd2U+{Ex&n;(mX@qQGyfxenCc5@j@MUN{#_Tv2bXpsbt;VdWKh0JKQPn5$?7}qca_P z%kmRd-4X@EX*JFM!O-$@YMn>R+S={H#4zySauU$ais>uB=*brr?}}d$iW(#vxfj@p zeuH|vXliL{GTxh_v`Kw>{BoGMH~orTK`O_BEV?3-w1r0Atm@h9NK$0Mgr$tUg=MTq zqYfhzlcjagaDxY%MqELMzVb~v$x7NM+!Pwccl=tOTWfZc7eMcm;dhcD2 z!808Xf2!6@^@k7WLMkMpup}xJU$VcH-Qr4}j+hp7UUAEv8XhdH?;=auP+kM)zR%4yI(4%l*yF5*WKsuG z?kvmPb!wgOI4Q-QqX)UzQ{@A7N=gnZEq*Iis?oZsJ{q-itkqJ1e`HjAJ3?q4WYXR| z{Nvs@E!ilNFgWrG)kh&r(y+0azGa5+KhcWygMa|B5apOPxy8Iqv+PzJ>mcO~BaLNq zt8yDdmuag{Y>iFQoyEUY?2rTZlTgp@wXTkBBQEJ$(V!}c=p^OrKC=Q^mKLe)Q$1`z zE~9hT`3f;PT-T^@4axM!i#{0~$uj3i3+TaW<(Ex(C(jnm^%u`jTP)d4E=^U(j4m=@U-oMpSmr9oSRw z+%0;1tBMCV9X`)39C!c(c8CNdq#RiM`Cb}EQ&ehbZ~PYBt{t+FC>aS1sJnjkN`nrY zP4#KEl&8+<{h{Q}yK!t(Fw57Pczt@kR*!JELYIrrZKKwtt)m?xEh8P)_L79seb9%qj^;EvIa`ZTd}7EZngqn@`phtC+38|H!qNZP#{w7HYQT0> zJX1F|{unlNH}n1O={Z#Cv{*-^OJJ{KqKTPdfe$MUBO|DAQ=Ak{Y+!j!FFI7#-XeyH zhwI|)xF{^PC@iT8j+X0JbmYAgHA8I8%dTHRiCBwt@Qj~eN5y0ou1TQLRr>e%6XQlo z;OxhqC<}Ispid0K;u?nE7ac$j>;Wrl4hWfdbHDJ%IoLZr=S!6b`L)Uol5jewomL}` zw;nDkjD)ZpSY1#r0|tj=21!u2h@*3RW3nYv@N&mH#8N4KJFYMPHP1ffz%qoaE%`sO}4U6vFmiZS4#J$UJJN3X+M0A#yv(owmgW)M>gg?i@({ahOtuC zkOde!ff^tfT!Qx^luw|z1y#xU_DE1iqkV%bno6P-6AX zWT?^l^xR;du(pHVgxi{V`jE2fB7NthH^7|-XB6BE+ zM~um|nd)~9Hbcc9D9XL4!pZb9ql#Q*uPZozDF&PJ0h!asJp&Q$#kV$S&PI@tg0-5{O z7z2y4GFQosh0U<~4kwec?O&o{A*CIiaMx3?@Z^KhAv`x&b%(~8I|eZ>P#`3$ zpJI*q`xb{q((a%_&o-h(4_!M5d~-Napa7TLEeUNczoRvbKqprL&0?rV8om6zX;d*y6{HAKm`%B$*ANTtkS6E%OdXxjxzT!OOdO0Q40T1|qjSVh#eNYe#4yFX}yt_N4Kzs`oVCHrjG+k7fU^T6>9!{2G}JV{LF? zgfNYCCC=|KiT#owFtG-+3@Ga*%cly!L_@1!4lIm5e*XL%kECx6^amqB%h3@qNc~_l z4j`SeJG>>oWn<&x5q(W)D_7o8l(z(OHu8o*860uSfL150+12UBM<5K{Vq{TQd-FET z4$2RME15}=hQdp>+Lw|yY;R0YU%JH5b1~t+;CSTBlNBntx7`;=n}I9J6&!Rh2$eUG zHUH1z*&h~tmxXchB!V^u9^i{DPc%%TFTitDsEJj3X>gqp0 zz!!nZxx*J|v9d#nkQ@+eoca0Ty4+^JzXb!5EMuGp4!-XO88Y##n4~;m>m{~zr{XA} zULDfncf+t!gY>}r{n}vL=!oh?e%!$LgAh@Wkpne77#rAVtqvEH0;2|zAWrWcDLSD4 zi}(323oQBHc^8u4bwkY2=9ge?mQw*QLG5RAS=AAdY>aa$Ww4&=|W4P%I$U#Y~z z!H%C%dBdr0yZ1VA#JDoAM%Yz1f%&8dM;A{9Y42TZtc2Bn`t*z1=i zY)53YfRsntK?9%Wp>(^@e0k1>bf#ca!s(fJm=^-w4zS_M7o?sA0nVgtA0uSk0m0O*5otC?W^rRcKw%!vVL^|5 z#ei5W^ZwmysBUHRF%86*bes`AX1lv@af)@pw(qk#bMEPmTI={SP;wFfG-!zc3l^+b zm@(u?GnMiIQd@Z79~Kd@gaGG2wbxWd%Gj6|DS@%Fei|-3fpP5hJc_iRZ%cKm{%Z$r zkzgCcE&UPSc|b-njHh<+tt+EJ(sfyLFc~@q|N+s zx~Z(B!$BgIn)=%NXWzl*1UAQ9fxsWcI|k~ky?|7efbODg!wwp#8UGGp`lJV%u_#Cb z1)N9hVY4Bo11TzP;1u)|mc;5Z+8b{8bqr!5X_#w&uMVTt@s2c#7RV${kZ#jLtM=iDG$JrC1|X*~f1 zV(^K}fgeDusGzA7*b@r#4Nhx_traN2ntt`i*x#6l2Yqb3d-taFykOX0P0EKfBwbuw z8c(U{=>uU`#(}D{qKe8lz-}vis`-8MQ{5V)FenwHMYaM;O#&bk!1T;1Dhh+%8?^f# zFfin~UJe~_nwpx996KJa^j(A9II$tT8gj9kA_lcvBM{6+(egfC1o#E=I2!ZgFjP?5 zHQit769iD`(AspBH7T`Z*at9+)PmOtQ;7FrcvnV7W}P{=$uYaMJ)c{N;4R4CMUV?U z13MdtnQW`-;AUDNp~*Kdsd`z>4tX7B$eZ`4Y7R|%XLKwxS-TI}t*O$*eZJnRW!ugT z5#csJ7DdM;sLG~eXU7F!9q=Yj-bzgblNV@ac@)t($;VwWSAyaH=GhEDD#cOBSGb+S}XB6erBupkO( zB@P-7feMWPKY?Y?1*i@%+yxPF{)~}okS7O%>=)4Z9cyss1i%e-^`yfs@UcV?k5KgF zA=0$gVpYqdB;5zPr2}BD5t|D{)g16bh;beQK?M9N)QZaiKME#=W1sb}!5Q0b#KG;+ z196WLw2Ld_=Ir>^rtSiajSqH$0GxY>u?1|INF!j}fYBSc{)ytBuaA#_l_Dj8E=g@_ z-hd`C^i@HC5K&G(*le!zHVJH1T<$#vdK75x0e^>vhQ_}teUpD5`XP?st$1x4@dHXt z?FKvT;L6&-XS(zK)yA!y~@ep4dm`_76+JMg=(zt*|lm$y}#(!@a z?6oogK?^ujlVpmxP5I@Z3-pj@o2Nr*sOZ}k{e`kW624F{UHk~S#`JV2hs*q)OJ(Y# zdT0UUZ8XH~k;G51+4jTvlUeYYmV0Ms2UJ6=LkYWe+!qNqYv!>~5Q8j0szwf3ECOy3 zx)-cxg4x}5WNM^B8T$`is^AIngP&i0=}Qq+8_qF zYJ;aJ*zpNIZY*gDE^LOQm4=-i)Lb#4V%-XY^k8p z_a@pdeuiW|hl>?3%}Cpvot=FsdVrHZP~KPsJO<*y`s0OXN&CD$ygZ}{4n|)1aLRtx zZ-tm8e@|E$A%(~@=CUt8HH=W!d=7>AOopKV3Z9Rc3TWi-0}bm8yOo;E+~JXvc@&6i=Z5N*Hz}%mDF$poNX;`cJ)6e2}dh_LAt|_HAg_k zs^l#HcFYP*9`pOHn@!|ei!0zhl#!k7zYa5#&2h9b0cqWR@c2WJATZOM2H(&n!-#M_ z6ue3r;l4mYlvxp2JHRY5M=lQ|f0}UtZ4Wq*DXhed z5%04dDKH_1w=P@RJLxtb-f*_th2SfbZR#MBRG^P z0o6p6bz${c(jwO(nfVG|<#j0BfXrdbFF{w0Ub}SlVScG}v4Y&4!rkEE2WshE=fp?K zMJy(YJyfjDTH_1OWPKEKJ*=*oA3mRbap)IXmD35t5gjCmOCv!Rn4 z8uHbYgb6&dDuP#tVF`-h`ThU|J%}S4fM2^I@B-nJmJy9K^4|Z&0>FAChE$2q&!j21(LgA_0}XFz_yXV(ac(#Rc!-&kRV8FKn8dpi-+sa6b2Y^&s|8XB$owFR ze>}jvrTK5l+Q^zu4xOz@$}dSy67liy{=ylH_)ejK(;z(~<67)G|Ip}qNa2$A&BF*( zL$jiPbHhJ1Q$8#SH@;@{o%KlCHi}lt^9+**x)o%Q7Z6Wd^9e|_Yo1P9#QB>Q!WG=(8<4%VH|!Jd{BU& zyyn%t>cj!=NgyBsG!`r%t5{bSPM{#@S$L==Wcm4AULZH~q+RQ6!IPD&@Q7kofEEga z?aU2uz`=KA6|tNBBE1E+&|u?u9NQ&A7(RA4Tye%euRHNia{&Z`aP^x^*4Tq0FsE^6 ztOZ6#Vw#vK6&)SgYcQTmSLBZpmeRlj5yd_;tKpBS1465098i*baUK0Lm-z!oH^qE3 zeJ-50b+bK^o76TfyGACxhc{BR-FZsxy$W~J-D9z%^vB_TyTM@!gba_yG{^+r7Ip^R z)KM)Kc*#GyT{MnzTNu0P(zW>%h%awp^l9L1sidwRG-YE7?-N-Zz=sDJ4u5cKUHB1& z07-!Zu?t!TBd6o=e}L;S1gl+VohjfP@`9d=F?bLny3Pv1$NnH~9~iL5MWAVz3J6T# zGJ-j|s`XO?7!2TaEI-xej5qPeV9Zp$?@RESbEz-%YFcwl?^WAs!rJv{99nwEZE~5~ z*(<3374@HkB-rh+gLmXF)7}L#-x&|%fvfMCNU^i4&L?9K? zx;IbEPcp)`+M9Z7!t62gh`w~yvf+Oe=RTu^dakIxj0H4aA?AQr6#&OO)JJOyupX6+ zbiomG?F;j85FK&7qe#&s_iw~|m`AEMMxA^7aC;A9sHlpP4+kf}xh zCI}!2NS*$4$EGGG|9nIMG+d@wy12Zotf=^A%4Qj&%|RDiwMLy@u=#Y2qH3C$O-5x2Xn2qPye5o`+V*r3#TpE2JTaHAF~eN*_Og z7RM>X!3#5&7rcPsac(<+NaC7*v;|05gFzWkU=hF(61alr8DRWX&~B5cSRR9S4E_6o z1jldlJ6vulJ+sqaaZO9rk$}slx_+G97K=Cyb2Z=G4~qngBXa`X`{DT)xL9gR7urnn zO(nkGBwsy4=Y2oj6^L%o zhbP+J+H5@10dfl_l0ZQn1Hox$bgUv4TySlG*#w)@TVV*7kvtgyHF39CYhJ^#2gYV_ zp)5^0_8Nn06GZT&fCYc`N)XaZM8p~HRt_*)uxUIP_Ry7)mHoEivImhs;ETb|pFfS@ zQpg*!03X9=va*Z>RM`!16fZZEHAOfa7l9A-y5b&dn*4R@6nOMu){b2ENN#o)8uXp(%h7VZW z5Xr0z2)t38=+CF$h1veHnxHqh^&=i$$daAajQ6O3KU2Yr&L6>`3_~ zI8K6ruP_9yGL5GtpWMK(;s@ZMV9~>NK#b=A-AxQGbKp%5&fMi-*>ku#)dd_93Sgmq zf$&;kolGfT1;VLdB=a@tCPAtJj=e%^mRbn45F!|C6mae|1ZW46*N3v!1%Z7km={N8 zGVHGng&yxMJA$#(wGaydnSp9W7X=8$s=xU7J@l-2&0jm(EWv!~M1l-%6! zfsF{so7UE=+??mxEWaCTj)**8F|TcFuj6&EK(8m^9s3(DTar-6JC1RuMRX<9k6$k< zrOkiGV%z;vdZQ+Hn_T4wjw6%~gTupxidRuCO>-IT(Be6;?+G|*%s2R5R?PqYZO2Cj zTW#2r4GWi?!sm<~))rW_1XQWMc;T?{0~et+0E=$OhR);`t_@_k$ilk{gTtL|YVx zIx_Xb&^oz{A$@q9CLFnVBi`{-q5B%HXpr&{mB}8MJ7C=tAgD7SCMA^thjiBXP*^HZ zHVjShbOgtD4O=ty0mP9QR$D8M;=t-mvj|(`J|1xXjL!bKNO5h3&mZ?8pKS0V1V>{BU_F7*XTK9qu+IeJzY6G;| zOv9w!hWOn3d)GXz!X#e`ol;&(d})wNQbmQJw6qjrH|QMcl-z~lY`4j+;$diBvn0yr zf@BR;cOl#ddtJaW!Zbo$ILn=wwha%gN)R$lKh?0w0DgF7hp>mwx2^|B6S_TFNbnW8`b!PCu z$?7u${l46RV9=PJvja4Ak{5;wrT?#0r~j#~CwFI%4%JQBz(m8D(K=^W5faJ@x5Mti zv6~9{{+j_EC1w8>)8SsX>^*9yL#HKZp_Z)MwvZ0pai4zvpB-(y3&;Z&7L# zy@(oASv>H7N)u!rsC=aYYM-BgORp68cl{TwgMS*R*+Fk-wHs>qAQ0#WRdyo|eU8M3 z$=xeXb-!jv>!;))`jOA&q>4H3RS9@>?fP3mFP-wq0r3?6=FZ-)3vZcaG}@r3Ea<&& zj~SBja!pC)=H8>8<>J59HO;f$HcWNJFOfx>)4v9iM84884?FTb7P%N1L*UT(*DL|L z8niXQk_B|LfIZruMeWZQET4Oe_Mv1JZdM;r9c2O#{1zP`6##W^D^8)-7U`M5{XnRi zym?kZE4wQAb}O^V&}3Q`Ddknw!S;Wb$G|S0b{Ly!(Y(R8>$t=jKx0 z1w$w{>k`$nME8q$98s>1Jn@5r1n8)ujr^*s2PePYt3w_Rx1~oT`TJ+rQ_Oy%l5&wp z(#LLB455YNSigVvQM6l z+1@Xa;JxqMn%Xb~vTXmAF6hlp*_0e6!2zK6P{oq@dVJEbh0jE|aC(VG83>1o z0UVrONJum#bM||{tXSbtT5Jt!OkC34d(iY+@%6)GvR0Q;kaCd##0t^IH2DBI-AB2v z#V+MsrVoVf2_;uHU4FX=OiVT5_`>rV0_8rdP;3BD zJFipUldP|z^S-?&&@(T({Pw4aU^=uC%ZIBW=jnBJi@^O(ZPZ~xDPBk?Er$=e?Xdf! zCyehI2i*qN56mjZpJ#QOaX~Fp+d2p{#jN4@{Nj1${Lv|N_A=14yO;al;j=v1*1}HP z(kSNH_u5V=IcZqp*X3?;@-h5ohZbj*K377Z zm|>K=L_LbmMG~H|WhwKTWDouD>hxHDuXk_qOxvWEUQoDRKwBJdaH0<3xj;G00K%+rD(h}##RQ+^x5aRRMt^6-1=p# zF89inOzq#S`+mmcJstYX8)oC@fV&h9=cq)oWS}Uz4tsK+;m_4H!vD$xkq?b6+BhEc|0v>PD4zm+@upQ z-NjePwTcTY4DYSkEL5xBrnPSo&orUxf4-}(8JUC=o*^mc%l3w%OU=Rg70?;M&h-5_p=82t~+(>1V+%3;qtJ2Kvp>7g3qe8yOVoSRyO?y#5QghzxE(g{Z(`Thck_| z5;d$unvVEyPg+}^2KMEg>7BfR$ShAqt&Goy1O#z(tj0zoQQ7YO>W#L}>Uc?P%(@SuzHV^F-q3hy zjr2w~eD?u6=8qoyBD2)oDhexWh^a4b`)RJ!-~L@%AGVW6^EcZwuv(qJaqn0rOxUyf zF`}_QvgJYh{_BtPO=!ga1G@#`6wW+*n?u#FUtyuE(X=qvgPohtk`N#u^c!FuTMbRlmGtc|@hU5XHF#h^1l#dXKk9T8qjokYk zKC#rtNks~WykzI~Y&1^dfK$z&+MTzT+#~J{;kD#OdC2R{7ewN4M3E8Pd@W~9-9vGA z&P*fHFThV$F1b_xTz`o?u?ucy{rn@-`CbH0%$NVaP$7*k}EO7vK~BchZvnchcl(xFHN|g>%1L*))bQ z=6ld@TtT-#Pn@o3myZ*v@TdoaPnE7c&aa9k z&gcBge8MS75UKaOG2(0@jrd;^pb_u9yyjTTHZRP`MaV2v6MHM=u79x&tcvgjVPt6) z^r2O3c*uuqZkTwtABU}TMBKV}x6EWF=`$VIW#vWu+*AN8)S}5|B}kS0%}`hKaYfM; z!xa|Aq)t<+cl=gwAYeQD4f~~giS3ofBLT&m1$(9!T8E}4WU06s2AVLT=KzU=epF^2 z0e~AkXa)BqHEzPGupV5pC%St}>rYL>h=WcRz=}rK*oI;`Sgc7VvZ^@weK>rWE;L8i z?f|grA1o4w(&jxWir9zqeVm2WJ!DG$uy4$5eyu0g<|1(>k}}<5-_SQ07l$`qcCCwV z#@YM79~NEuH^)19f+!m~xhC3w1Z-BkuMw`@oSwX-t0tVfGwg37cSa)Va!;Dqm3R1$ zCN&03Yzp1KXT`<)laDb{_B~1|kHrYCMXPeF`KtM9d$l=j{l?2sz=lcY62BtY!!-

    AXMK(&;Znzo|rbXvmF!ugS>=78VwGee(bBdNiaC`i+OP zsi_IgOSg_>`S0y!ch|MHZvEJ~vX3bf27t@EWD@7-=lO$~OHZRka(1d8i;nDG&-LFyz3%O9I z48_|nLEuMFDrZaTfeNZ;EG-}D(8uI5QD|=~^U!y;s|F$G=8lGop)-(S{FVVfyvY9T zIE(o6hr}&+(%UCOOo~!-^9$*p17Z-Yj=HWuf9*knQOK@pe4BFPheY>H#NnB)1b^3x z^?sR*-uHf_yc0O+qrp;_8AaxW8poz_v0lu?7PYGg;QhT~H(1`2d5c=NUYCF-oH7oY z!msk=a=XKjkiR8RK5lwvJ-fIVTTe#VndDGAELqhxZF|k2^?(eR%Cu8Hq9eU&Q}KC@ zN1W_yhyxp@9%i^rLN1FJh0JuYG793t#HBWHvV(Nd@Esi`;3+4EZ z2^e_25U2Dzb+`*X??fi+JD@;ko03p%BLKl0y#AP8aj@m@U)jlU!YoRkIn8eH@M*sB zVy1&BDZcWU2*g2UBH(6csMD}s$aJmM3rvTLA$MEF#}2SEIL7+=BRfN$&ZPE7_BZ;! z4n28SFO~{Qw|dH1^Ik9)8>YS52suscfWYN+Rjb*5U97lrEpzbYJt)l$k-^eP+1G)7 z)2Lh#Gsth@i3TlT-u>LZqW1YTSdPXj4K`SDBx)^-8XsOUHZ=(%gh5TRpfq|WTSF#~ z#MatAtW)mU>f?Cwo} zFf@)bjp_eV+fATPJGZybAm(#=_Y19+9!naume#Ym_mZ6jwNC!Pqvx&&TukKh!hMsV z0hy|;>=S4!%%DRCUH6p<0d{N zePBTa>RogdLws zo!hCg+@BB%ZLA&~JP^-yh|ay+S{=i?Ig(c9u70sg>w>qhb_EMRVZj?60S^=lT!n#O zT@40AYDR(~BN*jC-G*Ni6f|~@=>r}`=$tldMo!e1 zQ{os|j?v2VPSiRB2Jg)TwvS@N->K~$p0d)6=OK%GSC*TRRE8$>`4I|)!IpdGUMWXv zT2ddL@HW`yZCKj4o^fb_Noug&-kh=8a!E2L^+on=thE!pNp{5SjQ2W@UY|Km>A$Skawn_4ND6C*!k?d~vj_VUX9kp6dAKkMxgc zabj03;thw4Z|u$xJO_>+v1cj^G{zk+H*mkKA=ZUvmF@4mTJO%u%Ek}aemMb$8!+Er zOh5JC+~pFfYm#z_+5ZK&juU6s!Qd?Ww%{S<>^u>;MW|%lgUX@&dea3QuoWK&;p!|t zRIT6Xlr_Gq=GDFq+S(JzqS0zUG2Kkn_wKMXUvU*VQv6Y3VSLF=_sVd3-enlC9}#s(m`BFUg3B^keC{qp%;6pNAA z8VnUX+xdS9U1<=CzrRmTE582NtOV#3N&eX3AbDzPclYqZ7-QXf*XI3me7io+9Rvl) zxM<+~5RdN0xc6eZ$99_EYMLN{hKJGv3V4Sio5&js1|$-bDYXo^;=jkP6#jSE)lSQ2 zUH4UrG_m6Mk9YB3bKVzOpEq^7R9Rsl-&k4ZGkHf5Nao26wwE~WxBm2*9v9Df{*Cq@ zpcSq|vsA?RW7+9t7+_*1qTgwu2lICX%iOh$>+>-^5YzYG5wmW8F>oq4J@oPz;#{r+ zL!rI3fc9EygDFbgM`OU|p@0W8QTwbyo~GT?KU&4GA6xGzg%TyXdl#WL8oeVp*x(WW zK(cf=7qcHGO&C3kFyhg4D{ugrhSk`K%P8{R^Q*qYOehEx{_D7urpb95(BayWx+1$b8oo=Wo+j}LXK7!JCkS(3Y zqj|#fjOE@h%Oa}-{dumFX`BLZwExWQ0V21aVFBNNMZEgFF#bfmG6?@$#LLRH{H4$> zZ@~3K-6pJ9?GYSQsm>7c703M-K>EYS!p_ zBDUmEaY^agaXWAH49qm1c7HgE;6ke(J&SXlWkn*b7Qk_$Yh<1-yDrF;lVWt&&PxZ> z)WT5XjeQyf$jVWiXruC`C3k2m0R>jJVXyTWKZjw|rQpzQj$()A?r|rGfcNgX=*ral z&>xz9%Vh_0V`D@s-MIK7A4hE7*xXDWZtDY)r}O4J??Hiu9*G}38XBuQdX}7u!u~5l zmbvkkTXhc`r%sPNpS;v4T8i{}`?zm*d{MTQPuK!fmwRlo?2X^NTGb9+ zR4{v4J&3(?ZVQwrVd$p(-yvi!o6Av_{_j@6@265nHj}g*F3rCil?l?feH`(wT`V#z z8Q8KMxec@IP0Xv{C(t zl4rlz{mTA)jhEK@NGjSKL(EV(u*IIH`p%(t39)&DCHi^ak$m|?J5+rJao+SDW^<-P zr?VITpSiPl|KQGmHrGfUx`UPSHIxk+`9sfraL#FzQasPxZZcT9V1N7bVis@B@Ln$B z>L{n`S~5@ohXGQ9J-}Vnzu;Ig_iCdbvVet?!k3%Sa$y8EdvV*3-0zOOy3PDxO63D> zlO-!NQD{UDa{wbwxNL#I^AiP2`uD_^*|d}*<9l>RV`+pSo=7a>S}ciJ(x;?h2?TX4 zjruX|5t@5vRd{dA>&D;uLKNUV41&BD9?^=3u34EHtg%_E+-1dE5=rj0(B6VgHTsl4 zjD*hj)^|q`e6aFK8hN~pwfvatDKUxF=KU!7(aS7*435q`E$A7UsK~QIJw&y*r?;IHyqBdoNs9;VUXD|#KJx>-sCeZg z5l)RZFS(xfT#L?uB(Q)Yv@C_GTtITRPSo6!eD)U@&a4AR>ZpUDW|$_AKiWKL>etV= z!bz#Z(>3pH+#zzv!KuR-S){F-O98YEaJ(h|Dk{(LY2(xoQ{5AcWbaQV7PcNr9M+g+ zrJSKOyE=bI*aB}5w#k1**lcs1o*s?srT$#u$Htn&*&l3~3G{^by>(LCGB@p8ML55k zQk)SiurutDc_P{)ob31>nM|n$u1cBqerr(cEu>z$aX!j25C%1DL=Y(%v)Fj?#io%1 z>59++#e6Qxn7P*Qg0w{p`j?#Nk9ydw9<@!Y@OcZ;^AfgXlT&@?AhNbhd;Sq~Pg3N* zcmm%>@s!UB;5iLF#_Yq8r2L4M!h%23f2G~LYVg+z=<1%}CZG1rM5fLZwcOX9H)_p2 zIP>VOz=p~N$v^y$up9hSw*B`!7;=c|*BxrxK_2pwBHPXfns!Y2(=ToOHq6>rZJ@uN z%;+9jZm&uFgLN|x7FK@{4dzt0ocj?O5?k13zIW8~>iAf(7Mo_*)u4OIhrefLe}BDi zU4?mjrRlapk3NECc`pv!)3QapXxNGy9?J7fc;I}tQQvyaJcTK)TMyXj_l?qgXwq6E z=6p-2+7riAC0vqpi78!37=Gqe)_&SG|4@I_s`lfV-U=#4ygxRT)to(i-Zs`GeXgXW zH2s#6-R_szT33g`s@d#q-TBV(a~D2*k)`TWT`Tb%Xd|6w9I&ugi;|1vGJH{Wf+cox z=aCf8&mh`vM_?@;p!M;PltTbQWyE)P!GCd@`FmTL&nFwpu)vxAcXEFv_(Y(hnm3z0 zNum)o`n}fdX$vRx#14~AUC*Gwqgu*g`v}giA$HG?4`&nzymW{GL*rq2WToycKQm0f zieUM_GIP5zI}dJ{xn67u8M4bo=wUeJ+B$JpD?@364!;Yfw)Ndjj(wJnJn?{5@gF{3 zaaQuukGHbO&hI@pYt6W|jQEu~Fq>154Y*rwICjw|PtXyJhI=GE|1G(R&o);qE8X45cl4!B1k~;Fb{DmT*v+ z#zy~PLbA6He?j&6_}g#1)JYp{+s>Jf6_JJx$l;o%T=|%Brv_D2i+$zJ9ny}5mGW)e zqywc1F>|{N0Qr48yCiF-1o_cDwoW!0b%EWU%|BT$5}&r*`0Gn$Rqs+%OHOu8lrE;Z zFRhxP9ZIbcoK4V0KKH%}aNr@g0Kgvh(h)+X~PegT4>?Vin3N-FJ@M$%sfFM zTP+S;*uD4C#OdbhJF8$9Bv;!AoYikh^z?44Rx{pr^Z0}IS#IoRkS>`nBXp8ze1Q^= z7)`S$fwaE&RP%v=Qx*R4%JIz5yWcy@%SLYzzgHte&3SczNY(Yu7}Ip@jLuZl zHNa<=FXO zP)={b*KGmJef+#HUp{qqOpj9R2w=1rh|L#hU}W(AdO9ClBg`Y;T^vm6^(ZrfVNr}$ z42CfnApKy9Qr;kHRYJ=xQhn!Rh zn(Ncv5}SL>iszse11rD21_n*t_GM}#BR1dJjHtdz+j#V&mwV$CF`?1_b8Jwj@>wxZ z2uy(A*lKVHIa3*2{Qgt`{6_=Ho+RS%Zq6q~V%&09Us+y7rlii5!@&`5M*eX2cD82@s_-SOjop!5v8&EJV$S)S?Q`4;0Y?_WBG@UYX_p=#^?r$N06GTIu zhl@|#so1e{b7U3!0N2e1p!qB}Ix{a13(yD5ebEO!<|glWdt2k9Orqy{n+BJy_%XDs6qc@-h`7dek`OzNu~eY04dO;TXXXa}iNcc?bX9#Og14#DWm;8K z2`j$>Fh~LcXIvrEP*3x7Cv^D(IAb(`Gm>&--ML=HI8~noB)kt8iaram5F1`MT)Z@6y0`|a! zt3k2$({A^l=?x8+hv-4n6@pkpCavrt4;IkS@L$VGy?Fm?CJc*;TH`0=tqXFFk=UN> z0knd%$07!sa)-Te7?IXeEV%1`Zs0PKc}N;{O$J$17w$#2c@CyXx?AE=o^H{I2 zBE?b}OPVnU?Bds?D!;dBSsk=l_?{9mOo+W6b)48aBZUrw3t5{|wJo->qU4oL(^LVC zSWA6!bA%TP9$DZ!e4qk8Yr7x8>yy-suB2mJej!S1ldXw7{46Cee)T%&b?GnodWY6_ zb)}egyGL3qooAp%vMR7Mb*9oWda9deB%>da!NWCLSna*6ltamCWn5Rbl=Y4G0Hl&# z*Fo!S7Q;mkK8k1_y%7T3kI@KLnQ`bvk1$kMR^h$cwiyG6D7G0?vNcwLg0+(e4!r`p zXjEBVlR__S<|2;yO`=z_qPi;zL~W5B`eO8W@-qkr|EzW*{%G-Jw^3)g~E?w)ds zrGc|TwURvYbDUI+d|NGej(EQM2gZlFo;$PiIYusrZs%Zn%y?scU6l<%fNC9HIrR&v%|SoFWSR&WkT@7t4| zxzge3u)mo)y|l7ayKN~1oYXole8KI!7cki0uXvCv;_qJp`oK$f<*-o?#*}!$bA^%V z5vm<8`hwe#bM1W-T&@c5nB$Zje03zS+w5VB@baEK;}85y+fTi?hV*Hv?i&9_0BbBE z#+MO3*+DM`&pp1-k-R?b7qn$9)Ys3oJ@|=m5I_pv>F{_5u!nJ#zBTm8SOD#>Gk9al z+U%Wn2~jLA7*{8fim#mw2T>M4omVAf_LldXzx*k^07w(Ni@C|21eLLqUimK;Uvsl6 zWJ*0m_;PyqG&~;qP(Id{TI354ZSP~Z9F++#K1zB)c7%^N*P!2#(s$tVv8ZK0n#CG^ zUpur2mX-4KgV5aWBBEB80y`(S#)h95bTXzcD&n@y~wnG*LCD z6XNNi7A#&~Hr(027=VjB?q{cXCR(>dstuE%Z+=@6_bM5MjG8C+^X3$2&ggcCn!NS- zwC@oo{B&9P7kkvT6hmruz$qlqldgqM-#6Am#X%HD+hs={_Lkfte}Mo`)%D8y%O}6b zcSJk-b+=C{0lQMm0$uQRoLR-Rq%Qaxk~M!7WsFEM5n1De&YEO3Crxx1uKZB*$DU=x z@;6zuJ3w9Gr-&EZUV;C&0BFiy>u&`0;WdIbdo}+JDvc+!oE|VjXL_zv%7XAQ)3n_Wr z-hQsB>|0ptYy5H*$D-wRi@lm8Kz9z}k{G`Y^PKS5*G%#s>?OWb1j09rB_8naThQ$OuMx9BmDSFDN6QZL=>3>*gsI(0&?+Qd;71|^*h z;%Arys0C)`;syX16~~$PAe-Zxw7H5XX7?V0CEfsVI3nmuk93C@x7w{w-|_p%2Y_N0?*ttFYj$2AiBay(&wj+ACe340ELq%-C`WN+; zmm8Eqd`Sy!~pR%BO|BXUh|sqYpxOj5oj0PL_)Oe<|w_}++~>|lzI4_ zU8`}^hG+0&KZMs<_9lVtaR|?d!;rGw&$g`K&CLf760YnVBMKeA8mQSh%SDGS;LZva z>+vJ*z2gy$5&qWi&3t(KY_B~Et`mgeGVpLG^+g97CnxTkXdXmPuDYJ*i}IE<#4(i7 zoit}xnCi4+MT53Ka?J5MKI|*uC_+6iXLFMnm21_|lv_(c%w_MqXbvZg$EjHivVLSH zCh9;G@E^F+Mu01Q=5kOXt#hVjd-Zl&bP9o(M=|J=lRr*=W&I7V;n`w>apKI;WqD7G zym>l%4u~szun>=c=v|8Lom}C})}6Q_Kv#hj#r;+17Bi}|%P9+*zphRMz9VzEFsN_j z4<#V1ED7koAEgkEI$#s)$UMy$-3X+OgbZlx^>U46X9|9P&He{PPtK5i`eceAHST_Uz0zng>r*D8IppGzX+n$S->SxEHx~tN4TFyw`hd_A1Cvz@lxZ zE1I%Av|?a*J(t=EFK3FRdG)&Qp)v$*g@W<$gz{5BAzqDk2m4iPs2I7_sRQM1z-C;2 zN;+Tya-*@brI$%a+5ST)-SzzTsQUfJC4b3Elu4*wZsRgvlW2^~>{GF|P18NtDhzc3 zw$}dmr@3#U_Tsi6Ixk(4fU!{;Fku931nTX}@r%(K8hC}5!|VUf#rpr9i!C}@rvwl_ z;GkFVpUBhqRXhp3?>qp(x5Q-_JjQ1$@Ge*2x&KI*c~90VFLxJ%|Fd-y3kDB=|Nby% zDrXW(w?pmNtoM;i5xn*@q*m0ro+*l31)=pt5w94Q5ILBdc9$E6uBE@W{a~~8ii$n= z6sUC9MJ-9_6>ug&rF zmTt>=erK_`8(BEw=OS|Rm+P*hO=cFg{lI~|jy&`aG&G;mr&gAoJu(pGD|k3ai$fc%@n!6C0`5khGHK>H zITNJj;4r|A79!&nV9YPi;)X|thK4pm;l0)FpLGz>p=sozmEV)^YwgS-R1pAu z(O7~_jrKkX`9|!_z<$(YjvB~CVqd@w5CHR>tY1n|6!)l2gj!D((RS){2B0=Ce~zLx z{ao_D-$n3lhz%VLO`nczcBb=SMw}+cxYFAzY&w;-7+u|SUovpXKi@Q#bNGD4#4+eK zC-Q!shnV7U2^jbenvXJ$fP5qEVb&G>f+c72OVQp8X(&Y>9g%kNKml=l{N-KXA+!+t z>}l&OMIE5#z~?!O+Pmwz0H3dsCUV%Hgv`|x1NysWs rNXCp^3Ko2=gO65%wuFtQpL&T-(p|3oJ#$In`gysRic&=q`k(#}cAUgF literal 260628 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 z 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 MutvEYrJJhg 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

    T05k+M%osPe1gvG�Hp}W3ZopC((*~=jqiO_Pka&-v~eoj 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 diff --git a/package.json b/package.json index a8dce581..efddbbc5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "CMTAT", - "version": "2.4.1", + "version": "3.0.0", "description": "CMTA smart contracts", "files": [ "contracts", diff --git a/slither-report.md b/slither-report.md new file mode 100644 index 00000000..57f2fdc5 --- /dev/null +++ b/slither-report.md @@ -0,0 +1,326 @@ +**THIS CHECKLIST IS NOT COMPLETE**. Use `--show-ignored-findings` to show all the results. +Summary + - [calls-loop](#calls-loop) (2 results) (Low) + - [assembly](#assembly) (8 results) (Informational) + - [dead-code](#dead-code) (2 results) (Informational) + - [naming-convention](#naming-convention) (38 results) (Informational) +## calls-loop +Impact: Low +Confidence: Medium + - [ ] ID-0 +[ValidationModule._operateOnTransfer(address,address,uint256)](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L193-L204) has external calls inside a loop: [$._ruleEngine.operateOnTransfer(from,to,amount)](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L199) + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L193-L204 + + + - [ ] ID-1 +[CMTAT_BASE._update(address,address,uint256)](contracts/modules/CMTAT_BASE.sol#L231-L246) has external calls inside a loop: [snapshotEngineLocal.operateOnTransfer(from,to,balanceOf(from),balanceOf(to),totalSupply())](contracts/modules/CMTAT_BASE.sol#L243) + +contracts/modules/CMTAT_BASE.sol#L231-L246 + + +## assembly +Impact: Informational +Confidence: High + - [ ] ID-2 +[ValidationModule._getValidationModuleInternalStorage()](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L207-L211) uses assembly + - [INLINE ASM](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L208-L210) + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L207-L211 + + + - [ ] ID-3 +[EnforcementModuleInternal._getEnforcementModuleInternalStorage()](contracts/modules/internal/EnforcementModuleInternal.sol#L112-L116) uses assembly + - [INLINE ASM](contracts/modules/internal/EnforcementModuleInternal.sol#L113-L115) + +contracts/modules/internal/EnforcementModuleInternal.sol#L112-L116 + + + - [ ] ID-4 +[DebtModule._getDebtModuleStorage()](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L101-L105) uses assembly + - [INLINE ASM](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L102-L104) + +contracts/modules/wrapper/extensions/DebtEngineModule.sol#L101-L105 + + + - [ ] ID-5 +[ERC20BaseModule._getERC20BaseModuleStorage()](contracts/modules/wrapper/core/ERC20BaseModule.sol#L203-L207) uses assembly + - [INLINE ASM](contracts/modules/wrapper/core/ERC20BaseModule.sol#L204-L206) + +contracts/modules/wrapper/core/ERC20BaseModule.sol#L203-L207 + + + - [ ] ID-6 +[SnapshotEngineModule._getSnapshotEngineModuleStorage()](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L76-L80) uses assembly + - [INLINE ASM](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L77-L79) + +contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L76-L80 + + + - [ ] ID-7 +[PauseModule._getPauseModuleStorage()](contracts/modules/wrapper/core/PauseModule.sol#L104-L108) uses assembly + - [INLINE ASM](contracts/modules/wrapper/core/PauseModule.sol#L105-L107) + +contracts/modules/wrapper/core/PauseModule.sol#L104-L108 + + + - [ ] ID-8 +[BaseModule._getBaseModuleStorage()](contracts/modules/wrapper/core/BaseModule.sol#L150-L154) uses assembly + - [INLINE ASM](contracts/modules/wrapper/core/BaseModule.sol#L151-L153) + +contracts/modules/wrapper/core/BaseModule.sol#L150-L154 + + + - [ ] ID-9 +[DocumentModule._getDocumentModuleStorage()](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L100-L104) uses assembly + - [INLINE ASM](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L101-L103) + +contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L100-L104 + + +## dead-code +Impact: Informational +Confidence: Medium + - [ ] ID-10 +[CMTAT_BASE._msgData()](contracts/modules/CMTAT_BASE.sol#L274-L281) is never used and should be removed + +contracts/modules/CMTAT_BASE.sol#L274-L281 + + + - [ ] ID-11 +[CMTAT_ERC1363_BASE._msgData()](contracts/modules/CMTAT_ERC1363_BASE.sol#L118-L125) is never used and should be removed + +contracts/modules/CMTAT_ERC1363_BASE.sol#L118-L125 + + +## naming-convention +Impact: Informational +Confidence: High + - [ ] ID-12 +Function [CMTAT_BASE.__CMTAT_modules_init_unchained(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine)](contracts/modules/CMTAT_BASE.sol#L123-L141) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L123-L141 + + + - [ ] ID-13 +Function [ERC20BaseModule.__ERC20BaseModule_init_unchained(uint8,string,string)](contracts/modules/wrapper/core/ERC20BaseModule.sol#L50-L59) is not in mixedCase + +contracts/modules/wrapper/core/ERC20BaseModule.sol#L50-L59 + + + - [ ] ID-14 +Contract [CMTAT_PROXY_UUPS](contracts/deployment/CMTAT_PROXY_UUPS.sol#L11-L54) is not in CapWords + +contracts/deployment/CMTAT_PROXY_UUPS.sol#L11-L54 + + + - [ ] ID-15 +Enum [IERC1404EnumCode.REJECTED_CODE_BASE](contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14) is not in CapWords + +contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14 + + + - [ ] ID-16 +Constant [ValidationModule.ValidationModuleInternalStorageLocation](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L37) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L37 + + + - [ ] ID-17 +Function [CMTAT_BASE.__CMTAT_openzeppelin_init_unchained()](contracts/modules/CMTAT_BASE.sol#L103-L109) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L103-L109 + + + - [ ] ID-18 +Constant [EnforcementModuleInternal.EnforcementModuleInternalStorageLocation](contracts/modules/internal/EnforcementModuleInternal.sol#L41) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/internal/EnforcementModuleInternal.sol#L41 + + + - [ ] ID-19 +Constant [PauseModule.PauseModuleStorageLocation](contracts/modules/wrapper/core/PauseModule.sol#L28) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/core/PauseModule.sol#L28 + + + - [ ] ID-20 +Contract [CMTAT_PROXY](contracts/deployment/CMTAT_PROXY.sol#L11-L23) is not in CapWords + +contracts/deployment/CMTAT_PROXY.sol#L11-L23 + + + - [ ] ID-21 +Constant [SnapshotEngineModule.SnapshotEngineModuleStorageLocation](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L19) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L19 + + + - [ ] ID-22 +Function [CMTAT_ERC1363_BASE.__CMTAT_openzeppelin_init_unchained()](contracts/modules/CMTAT_ERC1363_BASE.sol#L85-L88) is not in mixedCase + +contracts/modules/CMTAT_ERC1363_BASE.sol#L85-L88 + + + - [ ] ID-23 +Function [PauseModule.__PauseModule_init_unchained()](contracts/modules/wrapper/core/PauseModule.sol#L34-L36) is not in mixedCase + +contracts/modules/wrapper/core/PauseModule.sol#L34-L36 + + + - [ ] ID-24 +Function [EnforcementModuleInternal.__Enforcement_init_unchained()](contracts/modules/internal/EnforcementModuleInternal.sol#L53-L55) is not in mixedCase + +contracts/modules/internal/EnforcementModuleInternal.sol#L53-L55 + + + - [ ] ID-25 +Function [ERC20BurnModule.__ERC20BurnModule_init_unchained()](contracts/modules/wrapper/core/ERC20BurnModule.sol#L32-L34) is not in mixedCase + +contracts/modules/wrapper/core/ERC20BurnModule.sol#L32-L34 + + + - [ ] ID-26 +Contract [CMTAT_STANDALONE](contracts/deployment/CMTAT_STANDALONE.sol#L11-L37) is not in CapWords + +contracts/deployment/CMTAT_STANDALONE.sol#L11-L37 + + + - [ ] ID-27 +Function [DebtModule.__DebtModule_init_unchained(IDebtEngine)](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L41-L50) is not in mixedCase + +contracts/modules/wrapper/extensions/DebtEngineModule.sol#L41-L50 + + + - [ ] ID-28 +Function [AuthorizationModule.__AuthorizationModule_init_unchained(address)](contracts/modules/security/AuthorizationModule.sol#L17-L23) is not in mixedCase + +contracts/modules/security/AuthorizationModule.sol#L17-L23 + + + - [ ] ID-29 +Function [DocumentModule.__DocumentModule_init_unchained(IERC1643)](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L41-L47) is not in mixedCase + +contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L41-L47 + + + - [ ] ID-30 +Function [CMTAT_BASE.__CMTAT_init(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine)](contracts/modules/CMTAT_BASE.sol#L75-L98) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L75-L98 + + + - [ ] ID-31 +Constant [ERC20BaseModule.ERC20BaseModuleStorageLocation](contracts/modules/wrapper/core/ERC20BaseModule.sol#L35) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/core/ERC20BaseModule.sol#L35 + + + - [ ] ID-32 +Parameter [CMTAT_PROXY_UUPS.initialize(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/deployment/CMTAT_PROXY_UUPS.sol#L39) is not in mixedCase + +contracts/deployment/CMTAT_PROXY_UUPS.sol#L39 + + + - [ ] ID-33 +Parameter [CMTAT_BASE.initialize(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L59) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L59 + + + - [ ] ID-34 +Function [CMTAT_BASE.__CMTAT_init_unchained()](contracts/modules/CMTAT_BASE.sol#L143-L146) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L143-L146 + + + - [ ] ID-35 +Constant [DocumentModule.DocumentModuleStorageLocation](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L27) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L27 + + + - [ ] ID-36 +Contract [CMTAT_STANDALONE_ERC1363](contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol#L12-L38) is not in CapWords + +contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol#L12-L38 + + + - [ ] ID-37 +Function [ValidationModule.__ValidationModule_init_unchained(IRuleEngine)](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L44-L51) is not in mixedCase + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L44-L51 + + + - [ ] ID-38 +Function [SnapshotEngineModule.__SnapshotModule_init_unchained(ISnapshotEngine)](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L32-L38) is not in mixedCase + +contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L32-L38 + + + - [ ] ID-39 +Contract [CMTAT_PROXY_ERC1363](contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol#L12-L25) is not in CapWords + +contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol#L12-L25 + + + - [ ] ID-40 +Function [ERC20MintModule.__ERC20MintModule_init_unchained()](contracts/modules/wrapper/core/ERC20MintModule.sol#L27-L29) is not in mixedCase + +contracts/modules/wrapper/core/ERC20MintModule.sol#L27-L29 + + + - [ ] ID-41 +Constant [BaseModule.BaseModuleStorageLocation](contracts/modules/wrapper/core/BaseModule.sol#L31) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/core/BaseModule.sol#L31 + + + - [ ] ID-42 +Parameter [CMTAT_BASE.__CMTAT_modules_init_unchained(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L123) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L123 + + + - [ ] ID-43 +Function [CMTAT_BASE.__CMTAT_internal_init_unchained()](contracts/modules/CMTAT_BASE.sol#L116-L118) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L116-L118 + + + - [ ] ID-44 +Parameter [CMTAT_BASE.__CMTAT_init(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L77) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L77 + + + - [ ] ID-45 +Contract [CMTAT_BASE](contracts/modules/CMTAT_BASE.sol#L27-L282) is not in CapWords + +contracts/modules/CMTAT_BASE.sol#L27-L282 + + + - [ ] ID-46 +Function [BaseModule.__Base_init_unchained(string,IERC1643CMTAT.DocumentInfo,string)](contracts/modules/wrapper/core/BaseModule.sol#L46-L58) is not in mixedCase + +contracts/modules/wrapper/core/BaseModule.sol#L46-L58 + + + - [ ] ID-47 +Constant [DebtModule.DebtModuleStorageLocation](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L20) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/extensions/DebtEngineModule.sol#L20 + + + - [ ] ID-48 +Function [EnforcementModule.__EnforcementModule_init_unchained()](contracts/modules/wrapper/core/EnforcementModule.sol#L27-L29) is not in mixedCase + +contracts/modules/wrapper/core/EnforcementModule.sol#L27-L29 + + + - [ ] ID-49 +Contract [CMTAT_ERC1363_BASE](contracts/modules/CMTAT_ERC1363_BASE.sol#L14-L126) is not in CapWords + +contracts/modules/CMTAT_ERC1363_BASE.sol#L14-L126 + + From 9d01630f27daea98719f76f4af2925652670719d Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:26:58 +0100 Subject: [PATCH 19/26] Add burn without reason, change burn/mint interface + improve doc --- CHANGELOG.md | 25 ++ README.md | 6 +- .../{ICCIPToken.sol => IMintToken.sol} | 8 +- .../modules/wrapper/core/ERC20BurnModule.sol | 37 ++- .../modules/wrapper/core/ERC20MintModule.sol | 4 +- doc/mocks/MinimalForwarderMock.md | 47 --- doc/mocks/RuleEngine/architecture.md | 87 ----- .../RuleEngine/schema/sol2uml/RuleEngine.svg | 132 -------- .../surya_graph_RuleEngineMock.sol.png | Bin 50544 -> 0 bytes .../surya_graph/surya_graph_RuleMock.sol.png | Bin 37597 -> 0 bytes .../surya_inheritance_RuleEngineMock.sol.png | Bin 15844 -> 0 bytes .../surya_inheritance_RuleMock.sol.png | Bin 12799 -> 0 bytes .../surya_inheritance_IRule.sol.png | Bin 9265 -> 0 bytes .../surya_inheritance_IRuleEngine.sol.png | Bin 10660 -> 0 bytes doc/mocks/RuleEngine/surya_report.md | 115 ------- doc/mocks/SnapshotEngine/ERC20Snapshot.md | 296 ------------------ .../schema/SnpashotModule-Schema.drawio | 1 - .../SnapshotEngine/schema/getNextSnapshot.pdf | Bin 35229 -> 0 bytes .../schema/rescheduleSnapshot.pdf | Bin 35726 -> 0 bytes .../schema/scheduleSnapshot.pdf | Bin 38992 -> 0 bytes .../schema/unscheduleSnapshot.pdf | Bin 38855 -> 0 bytes .../snapshot-functionalities.odt | Bin 20934 -> 0 bytes .../snapshot-functionalities.pdf | Bin 26203 -> 0 bytes .../test/snapshotModule-test.drawio | 1 - .../test/snapshotModule-test.pdf | Bin 35783 -> 0 bytes .../schema/sol2uml/MinimalForwarderMock.svg | 28 -- .../surya_graph_MinimalForwarderMock.sol.png | Bin 25055 -> 0 bytes ...a_inheritance_MinimalForwarderMock.sol.png | Bin 14770 -> 0 bytes test/common/ERC20BurnModuleCommon.js | 61 +++- 29 files changed, 121 insertions(+), 727 deletions(-) rename contracts/interfaces/{ICCIPToken.sol => IMintToken.sol} (83%) delete mode 100644 doc/mocks/MinimalForwarderMock.md delete mode 100644 doc/mocks/RuleEngine/architecture.md delete mode 100644 doc/mocks/RuleEngine/schema/sol2uml/RuleEngine.svg delete mode 100644 doc/mocks/RuleEngine/schema/surya_graph/surya_graph_RuleEngineMock.sol.png delete mode 100644 doc/mocks/RuleEngine/schema/surya_graph/surya_graph_RuleMock.sol.png delete mode 100644 doc/mocks/RuleEngine/schema/surya_inheritance/implementations/surya_inheritance_RuleEngineMock.sol.png delete mode 100644 doc/mocks/RuleEngine/schema/surya_inheritance/implementations/surya_inheritance_RuleMock.sol.png delete mode 100644 doc/mocks/RuleEngine/schema/surya_inheritance/interfaces/surya_inheritance_IRule.sol.png delete mode 100644 doc/mocks/RuleEngine/schema/surya_inheritance/interfaces/surya_inheritance_IRuleEngine.sol.png delete mode 100644 doc/mocks/RuleEngine/surya_report.md delete mode 100644 doc/mocks/SnapshotEngine/ERC20Snapshot.md delete mode 100644 doc/mocks/SnapshotEngine/schema/SnpashotModule-Schema.drawio delete mode 100644 doc/mocks/SnapshotEngine/schema/getNextSnapshot.pdf delete mode 100644 doc/mocks/SnapshotEngine/schema/rescheduleSnapshot.pdf delete mode 100644 doc/mocks/SnapshotEngine/schema/scheduleSnapshot.pdf delete mode 100644 doc/mocks/SnapshotEngine/schema/unscheduleSnapshot.pdf delete mode 100644 doc/mocks/SnapshotEngine/snapshot-functionalities.odt delete mode 100644 doc/mocks/SnapshotEngine/snapshot-functionalities.pdf delete mode 100644 doc/mocks/SnapshotEngine/test/snapshotModule-test.drawio delete mode 100644 doc/mocks/SnapshotEngine/test/snapshotModule-test.pdf delete mode 100644 doc/mocks/schema/sol2uml/MinimalForwarderMock.svg delete mode 100644 doc/mocks/schema/surya_graph/surya_graph_MinimalForwarderMock.sol.png delete mode 100644 doc/mocks/schema/surya_inheritance/surya_inheritance_MinimalForwarderMock.sol.png diff --git a/CHANGELOG.md b/CHANGELOG.md index c2e312d7..c2074e8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,31 @@ Please follow conventions. - Update changelog +## 3.0.0 + +- Update DocumentModule to use a struct + +- ERC20BaseModule: + - Add function`enforceTransfer` (forceTransfer) + - Add function to update ERC20 Symbol and Name + +- BaseModule: Terms are represented as document (name, hash, uri, last on-chain modification date). + +Deployment + +- Add deployment version for ERC-1363 +- Create a separate directory for factory contract. See [CMTATFactory](https://github.com/CMTA/CMTATFactory) + +Engine: + +- Remove AuthorizationEngine +- Add SnapshotEngine instead of snapshotModule. See also [SnapshotEngine](https://github.com/CMTA/SnapshotEngine) + +Lib: + +- Update solidity to version 0.8.28 +- Update OpenZeppelin to version 5.2.0 + ## 2.5.1 - 20241003 - Beacon Factory: deploy an implementation inside the constructor if no implementation is provided diff --git a/README.md b/README.md index 68bab2d5..5989fce3 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ For simplicity, the module names and function locations are those of version 3.0 - "fn" means function - Changes made in a release are considered maintained in the following release unless explicitly stated otherwise +#### Core modules + | | CMTAT 1.0 | CMTAT 2.30 | CMTAT 3.0.0 | | ------------------- | -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | ValidationModule | ☑ | ☑ | ☑ | @@ -61,6 +63,8 @@ For simplicity, the module names and function locations are those of version 3.0 CMTAT 3.0.0 adds also a function `burnAndMint`to burn and mint atomically in the same function. +### Extensions modules + | | CMTAT 1.0 | CMTAT 2.30 | CMTAT 3.0.0 | | -------------- | --------------- | -------------------------------------------------------- | --------------------------------------------------------- | | CreditsEvents | ☒ | ☑
    | ☑
    (Require an external contract DebtEngine) | @@ -68,8 +72,6 @@ CMTAT 3.0.0 adds also a function `burnAndMint`to burn and mint atomically in the | MetaTx | ☑
    | ☑

    (forwarder immutable) | ☑
    | | SnapshotModule | ☑
    | Partial
    (Not included by default because unaudited) | ☑ 
    (require an external SnapshotEngine) | -[TOC] - ------ diff --git a/contracts/interfaces/ICCIPToken.sol b/contracts/interfaces/IMintToken.sol similarity index 83% rename from contracts/interfaces/ICCIPToken.sol rename to contracts/interfaces/IMintToken.sol index 256b1c96..2f2ff0ab 100644 --- a/contracts/interfaces/ICCIPToken.sol +++ b/contracts/interfaces/IMintToken.sol @@ -3,9 +3,9 @@ pragma solidity ^0.8.20; /** -* @notice CCIP Pool with mint +* @notice Interface to mint tokens */ -interface ICCIPMintERC20 { +interface IMintERC20 { /// @notice Mints new tokens for a given address. /// @param account The address to mint the new tokens to. /// @param value The number of tokens to be minted. @@ -14,9 +14,9 @@ interface ICCIPMintERC20 { } /** -* @notice CCIP Pool with burnFrom +* @notice interface with burnFrom */ -interface ICCIPBurnFromERC20 { +interface IBurnFromERC20 { /// @notice Burns tokens from a given address.. /// @param account The address to burn tokens from. /// @param value The number of tokens to be burned. diff --git a/contracts/modules/wrapper/core/ERC20BurnModule.sol b/contracts/modules/wrapper/core/ERC20BurnModule.sol index 7f067e47..6a2dd4d1 100644 --- a/contracts/modules/wrapper/core/ERC20BurnModule.sol +++ b/contracts/modules/wrapper/core/ERC20BurnModule.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.20; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; -import {ICCIPBurnFromERC20} from "../../../interfaces/ICCIPToken.sol"; +import {IBurnFromERC20} from "../../../interfaces/IMintToken.sol"; import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Burn module. @@ -12,7 +12,7 @@ import {Errors} from "../../../libraries/Errors.sol"; * * Contains all burn functions, inherits from ERC-20 */ -abstract contract ERC20BurnModule is ERC20Upgradeable, ICCIPBurnFromERC20, AuthorizationModule { +abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE"); bytes32 public constant BURNER_FROM_ROLE = keccak256("BURNER_FROM_ROLE"); @@ -51,10 +51,20 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, ICCIPBurnFromERC20, Autho uint256 value, string calldata reason ) public onlyRole(BURNER_ROLE) { - _burn(account, value); - emit Burn(account, value, reason); + _burnCommon(account, value,reason); } + /** + * @notice {burn} withtout reason + * @dev + * More standard burn function for compatibility + */ + function burn( + address account, + uint256 value + ) public onlyRole(BURNER_ROLE) { + _burnCommon(account, value,""); + } /** * @@ -120,10 +130,25 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, ICCIPBurnFromERC20, Autho _approve(account, sender, currentAllowance - value); } // burn - _burn(account, value); // We also emit a burn event since its a burn operation - emit Burn(account, value, "burnFrom"); + _burnCommon(account, value, "burnFrom"); // Specific event for the operation emit BurnFrom(account, sender, value); } + + /*////////////////////////////////////////////////////////////// + INTERNAL/PRIVATE FUNCTIONS + //////////////////////////////////////////////////////////////*/ + + /** + * @notice internal function to burn + */ + function _burnCommon( + address account, + uint256 value, + string memory reason + ) internal { + _burn(account, value); + emit Burn(account, value, reason); + } } diff --git a/contracts/modules/wrapper/core/ERC20MintModule.sol b/contracts/modules/wrapper/core/ERC20MintModule.sol index 4bf86c94..267a4053 100644 --- a/contracts/modules/wrapper/core/ERC20MintModule.sol +++ b/contracts/modules/wrapper/core/ERC20MintModule.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.20; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; -import {ICCIPMintERC20} from "../../../interfaces/ICCIPToken.sol"; +import {IMintERC20} from "../../../interfaces/IMintToken.sol"; import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Mint module. @@ -12,7 +12,7 @@ import {Errors} from "../../../libraries/Errors.sol"; * * Contains all mint functions, inherits from ERC-20 */ -abstract contract ERC20MintModule is ERC20Upgradeable, ICCIPMintERC20, AuthorizationModule { +abstract contract ERC20MintModule is ERC20Upgradeable, IMintERC20, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); /* ============ Events ============ */ diff --git a/doc/mocks/MinimalForwarderMock.md b/doc/mocks/MinimalForwarderMock.md deleted file mode 100644 index f774c255..00000000 --- a/doc/mocks/MinimalForwarderMock.md +++ /dev/null @@ -1,47 +0,0 @@ -# MinimalForwarderMock - -It is a simple minimal forwarder to be used together with an ERC2771 compatible contract. It is used for testing, do not use it in production and inherits from the contract mock of OpenZeppelin *MinimalForwarderUpgradeable*. - - - -## Schema - -### Inheritance - -![surya_inheritance_MinimalForwarderMock.sol](./schema/surya_inheritance/surya_inheritance_MinimalForwarderMock.sol.png) - -### UML - -![MinimalForwarderMock](./schema/sol2uml/MinimalForwarderMock.svg) - -### Graph - -![surya_graph_MinimalForwarderMock.sol](./schema/surya_graph/surya_graph_MinimalForwarderMock.sol.png) - -## Sūrya's Description Report - -### Files Description Table - - -| File Name | SHA-1 Hash | -| -------------------------------- | ---------------------------------------- | -| ./mocks/MinimalForwarderMock.sol | a73611acc4b24d163d3c88f971d619479d60afb1 | - - -### Contracts Description Table - - -| Contract | Type | Bases | | | -| :----------------------: | :---------------: | :-------------------------: | :------------: | :-----------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **MinimalForwarderMock** | Implementation | MinimalForwarderUpgradeable | | | -| └ | initialize | Public ❗️ | 🛑 | initializer | - - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | diff --git a/doc/mocks/RuleEngine/architecture.md b/doc/mocks/RuleEngine/architecture.md deleted file mode 100644 index 0d8d6291..00000000 --- a/doc/mocks/RuleEngine/architecture.md +++ /dev/null @@ -1,87 +0,0 @@ -# Specification - -[TOC] - -## Introduction - -The different mocks are used for testing and to provide a minimal example. - -In the mock directory, you will find an example of such a contract with the contract RuleEngine. - - This contract is the main contract, it manages the different rules to apply to a transfer. - -## Requirement - -**Mint** -If you set a ruleEngine, be aware of the mint functionality. A mint is a transfer **from** the 0 address, it comes from the library OpenZeppelin used by the CMTAT. Therefore, if you implement a whitelist system, you have to add the zero address in the whitelist to mint token. -It is not planned to change this behavior in the CMTAT because it requires to change the structure of the code and it will reduce the possibilities of the RuleEngine. - -**Burn** -The same principle applies as for the function mint. A burn is a transfer **to** the 0 address. - -## Architecture - -### UML - -The following UML describes the different contracts and their functions. - -![RuleEngine](./schema/sol2uml/RuleEngine.svg) - -### Components - -#### Interface - -- The interface `IRuleEngine` defines an example of interface for a RuleEngine - -![surya_inheritance_IRuleEngine.sol](./schema/surya_inheritance/interfaces/surya_inheritance_IRuleEngine.sol.png) - -- The interface `IRule` defines the standard form of a rule. - -![surya_inheritance_IRule.sol](./schema/surya_inheritance/interfaces/surya_inheritance_IRule.sol.png) - -#### Implementation contract - -##### RuleEngineMock - -###### Description - -It is a simple minimal RuleEngine to be used together with a CMTAT contract. It is used for testing. The goal is to keep this RuleEngine very minimal. - -One of the limitation of this mock is pointed by the CVF-68 (see [audit report](https://github.com/CMTA/CMTAT/blob/master/doc/audits/ABDK-CMTAT-audit-20210910.pdf)) for the function setRules. - -> Setting all rules at once effectively limits the maximum number of rules, as size of a transaction is limited by block gas limit - -For a RuleEngine with more functionalities, you can watch the project [CMTA/RuleEngine](https://github.com/CMTA/RuleEngine). Nevertheless, it will cost more gas to deploy this version. - -###### Inheritance - -![surya_inheritance_RuleEngineMock.sol](./schema/surya_inheritance/implementations/surya_inheritance_RuleEngineMock.sol.png) - -###### Graph - -![surya_graph_RuleEngineMock.sol](./schema/surya_graph/surya_graph_RuleEngineMock.sol.png) - - - -##### RuleMock - -###### Description - -It is a simple minimal Rule to be used together with a RuleEngine contract. - -This rule defines a maximum limit of tokens to transfer in one time. - -``` -AMOUNT_TOO_HIGH = 10 -``` - -For a rule with more functionalities, you can watch the project [CMTA/RuleEngine](https://github.com/CMTA/RuleEngine). - -###### Inheritance - -![surya_inheritance_RuleMock.sol](./schema/surya_inheritance/implementations/surya_inheritance_RuleMock.sol.png) - -###### Graph - -![surya_graph_RuleMock.sol](./schema/surya_graph/surya_graph_RuleMock.sol.png) - diff --git a/doc/mocks/RuleEngine/schema/sol2uml/RuleEngine.svg b/doc/mocks/RuleEngine/schema/sol2uml/RuleEngine.svg deleted file mode 100644 index 532c78b6..00000000 --- a/doc/mocks/RuleEngine/schema/sol2uml/RuleEngine.svg +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/mocks/RuleEngine - - -cluster_1 - -contracts/mocks/RuleEngine/interfaces - - - -0 - -<<Abstract>> -CodeList -contracts/mocks/RuleEngine/CodeList.sol - -Public: -   AMOUNT_TOO_HIGH: uint8 -   TEXT_AMOUNT_TOO_HIGH: string -   TEXT_CODE_NOT_FOUND: string - - - -1 - -RuleEngineMock -contracts/mocks/RuleEngine/RuleEngineMock.sol - -Internal: -   _rules: IRule[] - -External: -    setRules(rules_: IRule[]) -    rulesCount(): uint256 -    rule(ruleId: uint256): IRule -    rules(): IRule[] -Public: -    constructor() -    detectTransferRestriction(_from: address, _to: address, _amount: uint256): uint8 -    validateTransfer(_from: address, _to: address, _amount: uint256): bool -    messageForTransferRestriction(_restrictionCode: uint8): string - - - -2 - -RuleMock -contracts/mocks/RuleEngine/RuleMock.sol - -External: -    messageForTransferRestriction(_restrictionCode: uint8): string -Public: -    validateTransfer(_from: address, _to: address, _amount: uint256): (isValid: bool) -    detectTransferRestriction(address, address, _amount: uint256): uint8 -    canReturnTransferRestrictionCode(_restrictionCode: uint8): bool - - - -1->2 - - - - - -3 - -<<Interface>> -IRule -contracts/mocks/RuleEngine/interfaces/IRule.sol - -External: -     canReturnTransferRestrictionCode(_restrictionCode: uint8): bool - - - -1->3 - - - - - -4 - -<<Interface>> -IRuleEngine -contracts/mocks/RuleEngine/interfaces/IRuleEngine.sol - -External: -     setRules(rules_: IRule[]) -     rulesCount(): uint256 -     rule(ruleId: uint256): IRule -     rules(): IRule[] - - - -1->4 - - - - - -2->0 - - - - - -2->3 - - - - - -4->3 - - - - - diff --git a/doc/mocks/RuleEngine/schema/surya_graph/surya_graph_RuleEngineMock.sol.png b/doc/mocks/RuleEngine/schema/surya_graph/surya_graph_RuleEngineMock.sol.png deleted file mode 100644 index 8456a4aff63b46d571d1724530f89b1474e3f7f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50544 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 z 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 OSHFJqS|QpZ^xpu6=T^4> diff --git a/doc/mocks/RuleEngine/schema/surya_graph/surya_graph_RuleMock.sol.png b/doc/mocks/RuleEngine/schema/surya_graph/surya_graph_RuleMock.sol.png deleted file mode 100644 index 0d2b57de457726c94962f0a9be20df7e8593487d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37597 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

    t2G!0sT;9z1xkM9WM>#40y1l13WYU=lgD;9? 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 diff --git a/doc/mocks/RuleEngine/schema/surya_inheritance/implementations/surya_inheritance_RuleEngineMock.sol.png b/doc/mocks/RuleEngine/schema/surya_inheritance/implementations/surya_inheritance_RuleEngineMock.sol.png deleted file mode 100644 index afe728a0afd9277800282c508ce52752e540b27a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15844 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 diff --git a/doc/mocks/RuleEngine/schema/surya_inheritance/implementations/surya_inheritance_RuleMock.sol.png b/doc/mocks/RuleEngine/schema/surya_inheritance/implementations/surya_inheritance_RuleMock.sol.png deleted file mode 100644 index 8224f6969cc0e5dfe189393d6456e6ee9c4b116f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12799 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 YWRA9dKGOp4=s-Pvq99o+q3id*0IaYs^Z)<= diff --git a/doc/mocks/RuleEngine/schema/surya_inheritance/interfaces/surya_inheritance_IRule.sol.png b/doc/mocks/RuleEngine/schema/surya_inheritance/interfaces/surya_inheritance_IRule.sol.png deleted file mode 100644 index 4f117b01b2d6beb45527526160c676bad1987e2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9265 zcmc&)hdY*G+keOo6|%EQ%9dUBNU}n9R(AHv%-$h8Wc8Q{*)uD9kCH8$2-)*HpZ9x@ zLs<<5{EKeADW*=eD-Hw6q}?dGI`9ZUT=yvJ=;g6|3znmlQWSmb9S_TIAL6 z^fZ2oB37;5yVFyT{Bf)4Mo+S+s3-)YObh>U#tmz0>riP1c_yNonwqzrixk>IIhbbo z2C_)Cg+IT_Ssy%*R#m-Kt)Z!zT~$>zwcFR%M;9wUzq}mO+$@fPiAm4OinFk=fP;&R zmN956=|N0my}YSyWn~qUk`lJq8NImF9mmSb`c|hnI4X(&{o1wK{?SolTU%SbVn)&k z`kOe0wzh;+R8$CYef>M3IBW@cctPkqDfk*18u?$o$Ub?3%ki=)vNwryu_KCV$b#=? zm^3-R4Y{$g@l9IV=vYR%R`}E98{7HeTA#|J=I;??W!67As0Hm2<^ySH(VbGx&U|oj zP5<27x6XkQ%_4`(^EYXtZ-~?iNWNWNihR+lMTf^TF)6k%VTRT?kL9UR~%8;_yg*0VU$Hd4avaBrD zb$j{=@m(dREERbU4vq?&Up#D_oB~x9O#?n=`5{aD>!W;TedOrku+SB+dP&s^)H@Q# zU-$I%tZh}#vE03T_iIJPrx!216AB9pBiV~eTJgvAzv$P?@|yM0(L~F&h1|#sz`pTb zDUY}6vs^Ab@bTrb$==QmovyB~$I*=2lLB>0UCoyP6oo}lAUgG~>@ZYSd3hWp5=o(} z7CkgHBz|@J^IO;K?8noCO*sk*ijKswB*Wkhyd)0&?6oxu)BrS!G*z9P%FCD!1QQYx z_*^#BfA6~U`CfWy>bek^V?fq`MIC*gia zqRGY|^O9i^!{wfYWYIS~X8j+6a^#{J1O+E1-g~4!iDOylOX1}b5a=Arl8TLsGqHJ+ z8&$^sy0GEkhpwranQVs7X+aq>8G|h$+^jEILQ_-IdA=FVq?cP`g8ii~>MEw2I2N7n z?sOy?t6A_-eh{#u(bm!$Y6-xOV(%m|3igP3Jymrpy3@qW3cFbIDQx7@{JeM)=S%)7 z>gOh6n;y=zP*yEnv5dQ?nOBvXI;NHTNgqJQ5WxHS4GR{PG(OCMIU1t3h06O?6tXgp|}ZAz|T>@Z0zCiR^xT zeT5-z_wVQ^@80v=3IzdPUPf$e?C_{4B+SO;OmEKTj2*5fLU^pEyWwYlE3&B6q2w{e zd6q6*`C`zzwNw_DAsZ?({=tI>`E_-ZhTQkr*jNPxlMzE@CY|y{<3zVq;UI=dGdQ}q zFlT%A56iuy&Wee-i7sBGS-f#rtDv9|Y0S!y{kQ4t9RS1{)JUU`EpcGu1m@df-D=|> zpSA5B9JsX<-Q3*VJv`76+1c4OQ}T9pc7Qt^8Av3vY!qdX-M0%;M5)y{8yq9IO}!3k zR>4<2BsI0QMrVgxvZICyqPxL`MMYA!wj63|YLSJEqN3DZk7=Jhdp12ygzkqBrBSvc zN}QiJ|5k)2s*FbbQZpIesQs|v4MxEaoHr5l$6}xOBZxN=jP^4@0hB3P4)P6jq%TH zBh~WqG7bU3cQ~A}NlE7RTVY{gF$zcv3kxpyKTRFPcKJmwN?HLj2nh*cG18Sn_VygT z4u6>^Kl0?KzH?`HIq9Y2+1A!pY<&DDx5%6vlcEajVGF+FskzJG{!{^z=C^3}uC5&b zds(CFJ1y9>fM>N zE^(-Qetl(SrTATCMa3U3R|yF;Qy%T2Ndg3iUd;|p;Z&}SlZ(p%@h`t)pO43sg;`lG ztahjR`ubU#MZ17#*AR}5j)vyu<}nkFwbTd|O-(F@ktvVg>9NJd>GQuxPbu^U{eoIeJ zPenuHl{&%Ik?&Q=uX6LnybPb#Y?+A6(e)Z{*r2yQ>m_Ohi1WXannmM??MEVLM<3R| z8*?XezI<0{{S&GO9ausxn&x||U6ZB##rXI*!f@y(p*Lwx6BaL;&)Jp$y10yt3|5rq z<_~r}e0(N^^ZuHutxnnR-^N4{-%Two3yydy3JStxBgrKYYjAjT)6%Hb*b-3iiY`vY zZ$pPvdy?UMDfGRwlNjOX?EGm^>?-YWd*&%(tsw8?@8H6cm*1K+O7Q)}#o;h;uN~P4 zCFSHW9_^jt1|P($6pfpjo6BW*?S-`%yXI}G0%y3T>2cik_4T!VsiJc8AwT~JFk|<~ z$a~-~*1LB@G>dg)%F4?2zmvTjiWa-fCmS3cjf<#$^UrMW=;-eK`}Zk@ompSKdPVU^ zWOlH8@bS~B=}PN{)Eo0^)Aj~Ao40e%7h_&-+* zAs!eskatGYcCL@+MX@6XcXvB!+Xe;*dCdp-sz~DAj;ma~+L>?J+23z(@;-}%D`0B_ z;5ap$@AYccIwH%KlhHp1TP=uPo!sy_Stk30A_s*GqxBKwO}wB-BaRaZ&@H7Rx9b(i~I`PfWV5l{)(@}2fD*GJdY3AeYmHxCcr3b{dR_Ozj* z4f! z!l$L?`PjIGgt9t1ls=ay=6z{GF{H0HLm4PnDMa&03cMCitrZIqwj=rW34_lapyaLljy| zN}>a&{M`J&M@fK(hlkRZ*RToa+rxFP0)j;TFWo4m( z4wF|>>Zoy82&!%=4gXPcmdCXOg&;UG;%o_$Yze<%&saG)uW^Us4jHRuHJjBK7JOvndZnctnJ%fx*Cc zd?;T5sY;B=U zr?T{QbYQ`7?cLl$q#69Gs|Ec1{cnBV6^|wOKn;n5-(<4o!V&Q&sOH15ZJwjdG zDFc=7YYaA+QqN8LlDX~e?bo=X#p%Qq6!3WCa9ik>VEejsW=P z!mhjgvu8mntTvU(#hNCEe}2irqwzi`3`z^RZBt_rP>!+bGsI?o{Yqp8VikUd@uSDQ zP+CTYo{mnO^BF6N@%D6WpCSuBZ#*uP7+<4T<<;8F_JTRFTF>>0RDTaynlFfcNg zUoI^!1^}5c78yGu>X&(6fo8dN`!*&`GRLd22n(Ljb+ z^uN`?>R%7T23MsXkY20#IXKwUgU8R$4>~+Vp2?Viq7lP0cmth)fFQrH&>sMAYpPoH z#S19+tfTU(DoxHUKp{BzY21ovAWM@|QUGOJCMPM4%g7H84~uix)X{b(C-pJUUZSQ>*K6?od31;vJq2*!NnTBtGXl|_0ga815Qac6@`{Rq zB_*7IC$Q$D8};CdlST_*O~%GBVEUCh{o}!vm6b#5&MFvD^8;!b2QWBY$mzSZXrR9>{NOeJR@v_xvqRuzu zywyp;umu7ESe90+Qw8*aPtKKDBDQ(JE~TNaPA4EhM#gE-9(0{7CN(tz%sHxlSV>x^ zrlXB~mLPTzcX4@$XoiiF3dWZJd^I*P;RXtTz=N^KmUxsa zUN*;1o$Y%V@m>49r6+*?@kvQibT{c9JirIjEC<74U}U^SNqNd7w*Oca%5Oj~Pbs|> zB#J83<>QQKFhK)`pm=Zy3Hht^nv;X;V18e}evL^;2!cRhY<%2-Sru-Ros$EmuCvma zn;Ze!H)u3ZnGsg8wzgK#=Ui}OV`F|}BV08{mj2#7-0tq~or8mi!40##@n9)|+akTs z4i`Xd#PlxPJ32~wd5IDc6UWBHylrl7o{edBj|5H-^giYLT3#NTo*p&ldv(X{@2rfy zJ=e!KD-@qTeKOo%8*Us|m@E%|-@80fZhm8AbQG>6U}zmx7K`FG>7b*hM^jZ*{ap6e zNQIJ$%HjOj0R-&g&zHV3;2c2a?@T)l8tpB0%PS~sbd&10Q7ItRjDCL6p8!Yn?v4l+ zpd=6sX&lS5R$yh3^x=>eE~XbH1~MSZz~> zpa?BD9~`+~(jW<7U}|ft1iChh*7rO%UICe<)M6+~1fq9;A%u3M)Tj*yfr)`JboTd~ zGUP+S!rw3Dc;c1vzz^}E)G=CSW+vU~e83HqiB&I71orP)50TF-m!!>Js>}CE02P7T`Mh?B~TnUZJv# zp20!i3HuoVbtR>Dv)$M6@MsQ~@PoUD9IJ2NzAYn46P>G+t^fr-Lon(h1*gtq9hnr` zxi}1~L7@7Ghnyt@2D-oRjB+DoT8b#Y@3!4gXOl6pz zt-^U-jR*%LJ|;#SAVXj1vy;^8iBd?J`Yd1?Oi8`8`j!G(RW=l8LsJ0$>p^4&774RI zG*wlHZ6o93<2BbI{#e@FM1>g6yT4@~u|p_RVL8eY9vz+c!r%?^`4%Wd7MMF|4v%%P zP<-B}&QL*&028NcIni~u&7o>MK7c0-3uR?t$sIqcby&nA>uhcHe;OSYw%(JGAt9Zo zoRM2v%H`Eq$mX*k* zNEL{Nya)%;xIgmrjuki+{*&Y5n}|nJ<3E2s7Z*n$KYdbp_KYB1^v!!fYK#645B1-T zPERX_5Z+;cn^20na~f#FIav4or^>(eI;h%p1Qr;cFF2CW}gTQU^ z$Gko{IFZ;t>%K?;8D?g1aPY@+FM%~B0u2KLB{;;NCMPF3zFQOpPu4gvqGdv^t*O&) z>`?zu-N=ak*+sd-l3LjWR$icEfsj#uJ zF>rEnLIB6izyOgKx;V_H!uUHL8#_A^=m}-3Aa+zSGBQfqyLs#NOkKk7-@j22C>-m1 z%*;W@UXPboR$TK3C&1Celd_~jCMRc36P1g`-`CfR6zkP~T^)CceTN_9O374b!usOH zi}&58V-pkd;Om${WT7e)7(i2Jl6P#T-tC@{P|9Y4VHR$<|~ zrw-ezv{%R2X!A6QgAi0-Cw-84H0PUvuxI}Y_>DxnhPC$a3M^VYVrX}<^S~IKb29(y z$@YuORk5oSCL-LUGjK^=Jw4%|UXonbhUn47BS_gd)MzSoo`Em%m@BBMfhZB8Tahty zJSf8v)D}*TpC*=o6b4lCHsdzEe*OAQXfvp*8y@d0%!C8cbAw_DUyXN?UF z&8z?k|YtVI7ZSAn?S&!=w zfO;POSvaf~nC|H9jkwPz+{>8Mi-rL9ghTzD&{HGkBO}ws{`rjRy;DWF2lAGLp>_6UZL;aL7JlzeSOn%_RVU# zW}NyV2GH?n{T34gDoH}9XlaE$P2y;oo~CwM9as*wskYylm(bGIHkz!k)DQnhH=6q_ z0CHuBDw_KP2oa!5{J{-C-3G#*RS7HQjiMn0D#;LV!0-iZr<r+o0e0&;`PS2qf`+IEHkqH|R90>yc7 zFd&&fJ^FSvQ!IFc2T0rl5-1(yV1`&mLqo$pC3a|NyaF@x-MhqyMmHB&ZAJv2+qND= z={W$lYVPiWxESbl_6z9COH1|_LN6h)DJ&?++Wc8E3Rq_`QED^>{3$(#6oqfujmJO_ zWeo~-Yl9aPl>{XwCaUY{P5;=gdilqSj}j%sAhn>VTt8Q>rvb=xE7}|e5}h31>!7l$ z=bl19J#{K~T>%E-c{_NNd-IlsI|2Mb~iENdEnAb5^u~u2O#_7dO zJOEAOZU@zL6U2n?<(aZ~cI*|NK3(*9*Kjy#{b}3^8n>VQXzy$NM@7{DB_@aViOW>H=b?RZ@seome&p`(-Vf+A>KjJ zQA^7{cSj5E-kgFc2-Q^z?pXRxX~uCb#dQO_aH#v>XKdjZGC?$F+99T@ns7*MA+^N^2k2vYvg!Bvzx zp)q4(%!z&uNyi3-V{an+%)sc2W9SQ_8aUDns%}^mu68(HkYk>loy9@>5gJQFV9{xn z*aM8R&mjcn1E58TT%YsfZB3e)jOP$M`DuR9>#m$VzxeBGH}279xc?AhH;dE#b%^!u ziHfGVZcQF=8PWJqmO)cl2XG23d>kAwcAW}&J8_x-qYY>zqEbVk4C0KzJilw$Bamu$ z5r})^(7ZNy%#bbOwvA#?RwkxE#L#?8z@MHOBrj*f0_cR`_o zBdRbTq>)k#sGiGw&P^-kL#_acnG6x z$M1GrcXxL~5Di+ThG>u>n&*%1_Zg$PxVRjHrziynK>gT@9NI{rsyR0bspWkf1RiKN3P{ASNcp z#LVnqeNuXx><7@#wMo>w0Fx0$IFR(cqZac2{P_Xs!wKrsu*TF*E8O*4!`W?K67D^HcF>hF)9Cgw{6t^u*#fBzN*MObJkj_vJZkSpZcE+NTPS(A`x{hq9}p5B;e zM^1p)t)&?NL5_oiGhYQ)HP6k_&d$!-V174{&Ku1tEW`twRpYuvY5p;>_>}?H)2B}{ zu(25#82s30z=0PDQNp7NVODLAe`w?9zp0anIf zNI<|f)Egm0VgG%NLrX`;F^bLW@wa|#YbvT#&A-nmDJg5zzF`(?7UdN*HPL`lgR?he zRSB^gbjeiM5^6k;I3RKW#V2%arqQ!{y!OQFF+|(7t-AMtiS=u#sj0(|W_EPQZcExe@w^!%+0uVG>K_y&Q`F7l z=UJ{%*`QNeSqb56AS8gOA;Zfj|C<(4{DLN!ahX<0aN`xP=dVkZ|GYc1)NHcL)Mc2A q_kR(1D59CeB*Ku3hIrsYtnTmIg75t@*Weu>#1k1M=`WIo{{I7QP0vCA diff --git a/doc/mocks/RuleEngine/schema/surya_inheritance/interfaces/surya_inheritance_IRuleEngine.sol.png b/doc/mocks/RuleEngine/schema/surya_inheritance/interfaces/surya_inheritance_IRuleEngine.sol.png deleted file mode 100644 index 82574d45ea82a9f2dfe28131d4bcaac38aabf2e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10660 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 PT_Thos>_whJoo<}Z8ow; diff --git a/doc/mocks/RuleEngine/surya_report.md b/doc/mocks/RuleEngine/surya_report.md deleted file mode 100644 index f71320ca..00000000 --- a/doc/mocks/RuleEngine/surya_report.md +++ /dev/null @@ -1,115 +0,0 @@ -# Sūrya's Description Report - -[TOC] - - - -## Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - -## Interface - -### IRuleEngine - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| --------------------------------------------- | ---------------------------------------- | -| ./mocks/RuleEngine/interfaces/IRuleEngine.sol | 80bd43fefabf7d1d9209b285775377a1d5fb26d6 | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-------------: | :---------------: | :-------------: | :------------: | :-----------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **IRuleEngine** | Interface | IERC1404Wrapper | | | -| └ | setRules | External ❗️ | 🛑 | NO❗️ | -| └ | rulesCount | External ❗️ | | NO❗️ | -| └ | rule | External ❗️ | | NO❗️ | -| └ | rules | External ❗️ | | NO❗️ | - - - -### IRule - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| --------------------------------------- | ---------------------------------------- | -| ./mocks/RuleEngine/interfaces/IRule.sol | 5ae93a4b64d88e12435538f315d1ca5724bc8718 | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-------: | :------------------------------: | :-------------: | :------------: | :-----------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **IRule** | Interface | IERC1404Wrapper | | | -| └ | canReturnTransferRestrictionCode | External ❗️ | | NO❗️ | - - - -## Implementation - -### RuleEngineMock - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------------- | ---------------------------------------- | -| ./mocks/RuleEngine/RuleEngineMock.sol | 91baf6105f61c91bfa3c44c47c11d0d08b80d080 | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :----------------: | :---------------------------: | :-------------------: | :------------: | :-----------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **RuleEngineMock** | Implementation | IRuleEngine, CodeList | | | -| └ | | Public ❗️ | 🛑 | NO❗️ | -| └ | setRules | External ❗️ | 🛑 | NO❗️ | -| └ | rulesCount | External ❗️ | | NO❗️ | -| └ | rule | External ❗️ | | NO❗️ | -| └ | rules | External ❗️ | | NO❗️ | -| └ | detectTransferRestriction | Public ❗️ | | NO❗️ | -| └ | validateTransfer | Public ❗️ | | NO❗️ | -| └ | messageForTransferRestriction | Public ❗️ | | NO❗️ | - - - -### RuleMock - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| ------------------------------- | ---------------------------------------- | -| ./mocks/RuleEngine/RuleMock.sol | 38a30907243a0f91241a792d2d36479c46e3f999 | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :----------: | :------------------------------: | :-------------: | :------------: | :-----------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **RuleMock** | Implementation | IRule, CodeList | | | -| └ | validateTransfer | Public ❗️ | | NO❗️ | -| └ | detectTransferRestriction | Public ❗️ | | NO❗️ | -| └ | canReturnTransferRestrictionCode | Public ❗️ | | NO❗️ | -| └ | messageForTransferRestriction | External ❗️ | | NO❗️ | diff --git a/doc/mocks/SnapshotEngine/ERC20Snapshot.md b/doc/mocks/SnapshotEngine/ERC20Snapshot.md deleted file mode 100644 index 2607bb7e..00000000 --- a/doc/mocks/SnapshotEngine/ERC20Snapshot.md +++ /dev/null @@ -1,296 +0,0 @@ -# ERC20Snapshot Module - -This document defines the ERC20Snapshot Module for the CMTA Token specification. - -Warning: - -> This module was not audited during the audit made by ABDK and it is no longer imported by default inside the CMTAT. -> -> If you want to add this module, you have to uncomment the specific lines "SnapshotModule" inside the file `CMTAT_BASE.sol`. -> -> Be warned that this module may possibly contain security flaws. - -[TOC] - -## Rationale - -> In relation to distributions or the exercise of rights attached to tokenized securities, it is necessary to determine the number of tokens held by certain users at a certain point in time to allow issuers to carry out certain corporate actions such as dividend or interest payments. -> -> Such moments are generally referred to in practice as the "record date" or the "record time" (i.e. the time that is relevant to determine the eligibility of security holders for the relevant corporate action). -> -> The snapshot functions to determine the number of tokens recorded on the various ledger addresses at a specific point in time and to use that information to carry out transactions on-chain. - -## Schema - -### Inheritance - -#### SnapshotModule - -![surya_inheritance_ERC20SnapshotModule.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png) - -#### SnapshotModuleInternal - -![surya_inheritance_ERC20SnapshotModuleInternal.sol](../../../schema/surya_inheritance/surya_inheritance_ERC20SnapshotModuleInternal.sol.png) - -### UML - -![SnapshotModule](../../../schema/sol2uml/ERC20SnapshotModule.svg) - -### Graph - -#### SnapshotModule - -![surya_graph_ERC20SnapshotModule.sol](../../../schema/surya_graph/surya_graph_ERC20SnapshotModule.sol.png) - -#### SnapshotModuleInternal - -![surya_graph_ERC20SnapshotModuleInternal.sol](../../../schema/surya_graph/surya_graph_ERC20SnapshotModuleInternal.sol.png) - -## Sūrya's Description Report - -### Legend - -| Symbol | Meaning | -| :----: | ------------------------- | -| 🛑 | Function can modify state | -| 💵 | Function is payable | - -### SnapshotModule - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| ---------------------------------------------------- | ---------------------------------------- | -| ./modules/wrapper/extensions/ERC20SnapshotModule.sol | fbe645e4def4944ea02fa9b07ecd3dfe367ff725 | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :---------------------: | :----------------------------------: | :----------------------------------------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ERC20SnapshotModule** | Implementation | ERC20SnapshotModuleInternal, AuthorizationModule | | | -| └ | __ERC20SnasphotModule_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | scheduleSnapshot | Public ❗️ | 🛑 | onlyRole | -| └ | scheduleSnapshotNotOptimized | Public ❗️ | 🛑 | onlyRole | -| └ | rescheduleSnapshot | Public ❗️ | 🛑 | onlyRole | -| └ | unscheduleLastSnapshot | Public ❗️ | 🛑 | onlyRole | -| └ | unscheduleSnapshotNotOptimized | Public ❗️ | 🛑 | onlyRole | - -### SnapshotModuleInternal - -#### Files Description Table - - -| File Name | SHA-1 Hash | -| -------------------------------------------------- | ---------------------------------------- | -| ./modules/internal/ERC20SnapshotModuleInternal.sol | 12feb821b3a921eadf5f9d1c69eaf6406a44a4d0 | - - -#### Contracts Description Table - - -| Contract | Type | Bases | | | -| :-----------------------------: | :----------------------------------: | :--------------: | :------------: | :--------------: | -| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | -| | | | | | -| **ERC20SnapshotModuleInternal** | Implementation | ERC20Upgradeable | | | -| └ | __ERC20Snapshot_init | Internal 🔒 | 🛑 | onlyInitializing | -| └ | __ERC20Snapshot_init_unchained | Internal 🔒 | 🛑 | onlyInitializing | -| └ | _scheduleSnapshot | Internal 🔒 | 🛑 | | -| └ | _scheduleSnapshotNotOptimized | Internal 🔒 | 🛑 | | -| └ | _rescheduleSnapshot | Internal 🔒 | 🛑 | | -| └ | _unscheduleLastSnapshot | Internal 🔒 | 🛑 | | -| └ | _unscheduleSnapshotNotOptimized | Internal 🔒 | 🛑 | | -| └ | getNextSnapshots | Public ❗️ | | NO❗️ | -| └ | getAllSnapshots | Public ❗️ | | NO❗️ | -| └ | snapshotBalanceOf | Public ❗️ | | NO❗️ | -| └ | snapshotTotalSupply | Public ❗️ | | NO❗️ | -| └ | _update | Internal 🔒 | 🛑 | | -| └ | _valueAt | Private 🔐 | | | -| └ | _updateAccountSnapshot | Private 🔐 | 🛑 | | -| └ | _updateTotalSupplySnapshot | Private 🔐 | 🛑 | | -| └ | _updateSnapshot | Private 🔐 | 🛑 | | -| └ | _setCurrentSnapshot | Internal 🔒 | 🛑 | | -| └ | _lastSnapshot | Private 🔐 | | | -| └ | _findScheduledSnapshotIndex | Private 🔐 | | | -| └ | _findScheduledMostRecentPastSnapshot | Private 🔐 | | | - - - -## API for Ethereum - -This section describes the Ethereum API of the Snapshot Module. - -### Functions - -#### Setter - -##### `scheduleSnapshot(uint256)` - -###### Definition: - -```solidity -function scheduleSnapshot(uint256 time) -public onlyRole(SNAPSHOOTER_ROLE) -``` - -###### Description: - -Schedule a snapshot at the given `time` specified as a number of seconds since epoch. - -Time has to be greater that the current time and the latest scheduled snapshot. There have to be no other already created snapshots at this time. -Only authorized users are allowed to call this function. - -##### `scheduleSnapshotNotOptimized(uint256)` - -###### Definition: - -```solidity -function scheduleSnapshotNotOptimized(uint256 time) -public onlyRole(SNAPSHOOTER_ROLE) -``` - -###### Description: - -Schedule a snapshot at the given `time` specified as a number of seconds since epoch. - -Time has to be greater that the current time. There have to be no other already created snapshots at this time. -Only authorized users are allowed to call this function. - -This function is not optimized because it moves all snapshots situated before it one position to the right. - -##### `rescheduleSnapshot(uint256,uint256)` - -###### Definition: - -```solidity -function rescheduleSnapshot(uint256 oldTime,uint256 newTime) -public onlyRole(SNAPSHOOTER_ROLE) -``` - -###### Description: - -Reschedule the scheduled, but not yet created snapshot with the given `oldTime` to be created at the given `newTime` specified as a number of seconds since epoch. -The `newTime` cannot be before the time of the previous scheduled, but not yet created snapshot, or after the time of the next scheduled snapshot. -The function returns the original `time` the snapshot was scheduled at. -Only authorized users are allowed to call this function. - -##### `unscheduleLastSnapshot(uint)` - -###### Definition: - -```solidity -function unscheduleLastSnapshot(uint256 time) -public onlyRole(SNAPSHOOTER_ROLE) -``` - -###### Description: - -Cancel creation of the scheduled, but not yet created snapshot with the given `time`. -There should not be any other snapshots scheduled after this one. -Only authorized users are allowed to call this function. - -##### `unscheduleSnapshotNotOptimized(uint256)` - -###### Definition: - -```solidity -function unscheduleSnapshotNotOptimized(uint256 time) -public onlyRole(SNAPSHOOTER_ROLE) -``` - -###### Description: - -Cancel creation of the scheduled, but not yet created snapshot with the given `time`. - -This function is not optimized because it moves all snapshots situated after it one position to the left - -Only authorized users are allowed to call this function. - -#### Getter - -##### `getNextSnapshots()` - -###### Definition: - -```solidity -function getNextSnapshots() -public view -returns (uint256[] memory) -``` - -###### Description: - -Return the next scheduled snapshots - -##### `getAllSnapshots()` - -###### Definition: - -```solidity -function getAllSnapshots() -public view -returns (uint256[] memory) -``` - -###### Description: - -Return all snapshots (past and future) - -##### `snapshotTotalSupply(uint256)` - -###### Definition: - -```solidity -function snapshotTotalSupply(uint256 time) -public view -returns (uint256) -``` - -###### Description: - -Return the total number of token in circulation at the time when the snapshot with the given `time` was created. - -##### `snapshotBalanceOf(uint256,address)` - -###### Definition: - -```solidity -function snapshotBalanceOf(uint256 time,address owner) -public view -returns (uint256) -``` - -###### Description: - -Return the number of tokens owned by the given `owner` at the time when the snapshot with the given `time` was created. - -### Events - -#### `SnapshotSchedule(uint256,uint256)` - -##### Definition: - -```solidity - event SnapshotSchedule(uint256 indexed oldTime, uint256 indexed newTime) -``` - -##### Description: - -Emitted when the snapshot with the specified `oldTime` was scheduled or rescheduled at the specified `newTime`. - -#### `SnapshotUnschedule(uint256)` - -##### Definition: - -```solidity -event SnapshotUnschedule(uint256 indexed time) -``` - -##### Description: - -Emitted when the scheduled snapshot with the specified `time` was cancelled. diff --git a/doc/mocks/SnapshotEngine/schema/SnpashotModule-Schema.drawio b/doc/mocks/SnapshotEngine/schema/SnpashotModule-Schema.drawio deleted file mode 100644 index 62ad769a..00000000 --- a/doc/mocks/SnapshotEngine/schema/SnpashotModule-Schema.drawio +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/doc/mocks/SnapshotEngine/schema/getNextSnapshot.pdf b/doc/mocks/SnapshotEngine/schema/getNextSnapshot.pdf deleted file mode 100644 index 21211eb22bbc0511ab683814d8d89f5718e3eaea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35229 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 aGH?-FT#{H+0**LiQzJ7=E>%@me>VW>-R$=O diff --git a/doc/mocks/SnapshotEngine/schema/scheduleSnapshot.pdf b/doc/mocks/SnapshotEngine/schema/scheduleSnapshot.pdf deleted file mode 100644 index fc7f5b4e30991f103adcf46880bcfcc0e1b59149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38992 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 diff --git a/doc/mocks/SnapshotEngine/schema/unscheduleSnapshot.pdf b/doc/mocks/SnapshotEngine/schema/unscheduleSnapshot.pdf deleted file mode 100644 index 3a76984f44ef4f074653d786574e50c933bf4608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38855 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 diff --git a/doc/mocks/SnapshotEngine/snapshot-functionalities.odt b/doc/mocks/SnapshotEngine/snapshot-functionalities.odt deleted file mode 100644 index b52bf9bd13c65820d3e054212da7f4a3fb8fc179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20934 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 Pbl4*uo33ba`2_Gk25SfI diff --git a/doc/mocks/SnapshotEngine/snapshot-functionalities.pdf b/doc/mocks/SnapshotEngine/snapshot-functionalities.pdf deleted file mode 100644 index 2cd5c5128bd01de98e30aa453a93da025f100e34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26203 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 Lq@xp)7svcx7Pg?N diff --git a/doc/mocks/SnapshotEngine/test/snapshotModule-test.drawio b/doc/mocks/SnapshotEngine/test/snapshotModule-test.drawio deleted file mode 100644 index 6560d930..00000000 --- a/doc/mocks/SnapshotEngine/test/snapshotModule-test.drawio +++ /dev/null @@ -1 +0,0 @@ -7V1tc5s4EP41+ZgZJPFif3TSl9zNdaadpNeb+0aNYnPF4AHSJP31BzFgsytimxiJSv7S2gpe4320q93Vo+WCXa+ePqb+evkpCXh0Qa3g6YK9u6CU2o5V/FeOPG9Gpi7ZDCzSMNgM7Qzchr94NVh9bvEQBjxrXZgnSZSH6/bgPIljPs9bY36aJo/ty+6TqP2ta3/B0cDt3I/w6LcwyJfVKLGs7R9ueLhYVl89qX/wyq8vrgaypR8kjztD7P0Fu06TJN+8Wj1d86hUXq2Xzec+dPy1ubGUx/khH1h/+fX8lf03vfm8XPz714/3d97sj0u2kfLTjx6qH1zdbP5ca4DHwaxUZPEuTuJi8GqZr6LiHSlepslDHPDyG6ziHb6l6i6z5CGd81fuw95cx4MWGtUP+ciTFc/T5+KCxy0GtaKXO9qvx1Ie+Xn4s42hX02FRSOu+YbPSVjcMbWqaWtXYqo5SydWW8Lm51Qf2lU5kDMhewTlfrrgORJUvNj51duhF0SPQNfej24xK9fly3kSFSor0X1chjm/XfsveD0WVt1GvBPjnzzN+dOr6NVeAWjFrd7vgGsLwLWtbhxbmjtWTS5Sk4X0VPy0vK2ILE+TH/w6iZJ0axr3YRSBIT8KF3Gp4UJhvBi/KhUVFh5mVv1hFQZB1KX5Aw3scOWDKckIVr4rUD4bSvmeHA80Es9CvA71H+taoKAGNEmuZYJgIwg3fWzGHpnRTJH2XX2170CXxRRrnxCkfp19lgNnP1TsoT4LCqKeXJ9FKMIti/11tkxyk5yXcvPBSUcNA7YjbWBAXsxRDQPODmoYmL4weBaAQZB8yIXBOelikhU+NAcXd6ptb1pez9mRrEQe6wDv2JUICpKdmNd63Q2fNV6CkNHZqo0Op/xvMbpOFW2m0dnA5BuYWWUFCssKtCduUJDssgLBdYUL6kalG/xevFiUL3Ke5dd+fJf6cXbP09l94eI+hGmW31bhS/2J4g6aD+nrXIGlEarat+LixCwIUp5lxe+wXgYsRhpU0xqh6iK6vYh2XsS2F+kYq9bGN3UQlBMBlGQwLCmOU85Y9rLSS7DpYQvSPzKVC65ZZawmlnlrGQsKQhtTA6+RFNdPkFGSQ4zSMd0o2RRMCQsbpWSHi4syDIN0xRdhHIfxokwximhIX4TgVrzy4iWVlDmOxGmifKAvFQIKIo5kp4kTwrxKIDqdYOlOL4sxf1XO7SqNsFpudCagCrQRHp5OwUBludka3g0tqGCOwNzudEYiyuK6jWQe+VkWzmH1cjusjfmgWX+o+dhUsfngpE5nt+fCgmVf3KAg2bFivQ7uuj1B+eSWz5M42NZPdA0nnAmAQxDwSQ0nmKQcbO9OD6OjMkAQ9rl9ww7P2yNoaPuj+/EdAQXTVU3BZDinNYeD6ammk7EDiMIare6QO+mdioTpSt4tYZg7oPEuMiQyqTcbXAvQmIZJQezkqd5oYmbt8cI0v9H/0fVrothr4eqAgTRMT3Ulk+GU3gAaJvJiqqlI9febRcN0wc6Lp5qGaZ82ET8tDdMeV3Lu0Q7wjs7OYRoq+3wkzs51pmEio1Pu+yQdP95Lwzwb2EAGhhPUM3+oX/gIZoRypoKNs68zC6UXtDbgE4mKsZKxfYWFm5pHQmEwZ1B9dKv+fg3JDDZIk5sdO2VkBue4zEBfMgPcy3ZPRWZAggaOShwc9r+G6O9eOLRh7NCX+AoFubACOTRueJtqYtCqo7pg6IhOqh5wNgeSS0w6nFMnQPVqprrM5eCofaqv9iHdR2bBI5x9/TtasuDq9sv3R/uf25vg3f2lAraP8D7GVe4AJ9impzp0igSdbn16Tatj4/qAVXsqMIKhuD5CNZlB9am1PVXscgyj9oBaSqP+o6k9UNBwxF0hbGYxe6DjVm00ZhF74CEFSyIrWqh+w4g9Vpf+j2b2WGqdlpnEHtiAwZLISxTCYCaxB3kxifxEcbJnJLOnOSrV4KA86R4JtUd8cyNLxSdd6B29FgFJspNxQbNPnbk92OyUuz8F5J6ziUk1MVxbOLN7jrPeGjnBLvdglA8xlgcwtc50nkM8sQN2t0X1VsnYinqWmEvnsdFSKWiYIXep1Lc5CbSGiUw+j1jZ5+YklYZBxjztzeeZ7hE0dBxiVnMSGwWQvYGDAaTkeqGgvSTRODLAC49EIqkYAFFp5ABKz90yTA1l9LA2o2eiurol6AY5iPPbzykZ1zP8LmFZnvXdVZnAyjKSNLSbHOlz/C6hP6OC4E4qtYTiLFZHbkmtfxdOTIkUUbH+zeqOSeDObe+ewkjSgM/GEiOHU1CNq+XIoys3HJyUasw4QR1LZT4QRqx/s1JIZp/KcSFJFDLuBnZcgg6XBpBOkANTnUkKGlkaQDrBjkziAQ8xDrQTB40rK7CzBWGqGaSChpZvWVBOSzph40rVYZeKLXpv7XchPVUXdNLUmXWC7U71VpqgJeZb7K5TR3tZJwbZGGyfOrSN4SLDmarQy3xpZ9VBGVdB0NTzz4fVuoRUXxwQJUy9G8X1iL2MhPL6TkbCxjRnJY7qSQloI44IwkW5rARBN87X1i2NWQnIJ/U9DoyemTLgw0zFRy9xaWKQWGQkyMH2INuq3lsbjRAqmVEi6AZqUKcR9dUkQWPOfbyEu0LzcfbpIcrDdcTvwhXPDCEmNIuYYPdVLmq45mFQcxH1QZuNiw8noZEW/46ASQoftjGCoE3Q3lTnBR4+lcnryztEj3eSvGdk4wqC2U9ZhR3iVO9iCJrLGmVYfR9IBAU5w/V7FuN2HLf+t8cNHf3vyzFEPbAkM7FtXH4w2yOinhyqmzoIev6aZFq9m8JBQROI0NCNnE7bfWDsuKEovXcRCElCzx4fGjlchDDaJ8InWKkvEzmSzj6M1rb6hhvYtiTTjYnVK1IM/Gz5Ahdp41iOf/bzwkrilxFqscbOvlXY0N8Ob/dUjbuhIFcyK4ZYOLysdnUx6tr4Sw8ez7BV99UjgpZUOjtMD9GTej9HHEmSbUKCLlY6n5VFxsNU724QQUepU5XXHQSk7Oo6muC07gijrlFDvw5SZscIWwb6W4ME6ZvuRNin5ox3u5yBFqLemzDI4mXnAIK2N7a+KxpFK5rqXRZyZOMUfUlndNLu6tCfdEa8fZIG73uJY3xEj6aH0KNLEo7R9GgbVUkEjAPJrdwEHVsw+d09BF3PcHQnKN4ZsAlj8TZNknzX1IuftfyUBLy84n8= \ No newline at end of file diff --git a/doc/mocks/SnapshotEngine/test/snapshotModule-test.pdf b/doc/mocks/SnapshotEngine/test/snapshotModule-test.pdf deleted file mode 100644 index 9925e6d0947494c97a9159e5ee5955385c7192ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35783 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 diff --git a/doc/mocks/schema/sol2uml/MinimalForwarderMock.svg b/doc/mocks/schema/sol2uml/MinimalForwarderMock.svg deleted file mode 100644 index 47e2819f..00000000 --- a/doc/mocks/schema/sol2uml/MinimalForwarderMock.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - -UmlClassDiagram - - -cluster_0 - -contracts/mocks - - - -0 - -MinimalForwarderMock -contracts/mocks/MinimalForwarderMock.sol - -Public: -    initialize() <<initializer>> - - - diff --git a/doc/mocks/schema/surya_graph/surya_graph_MinimalForwarderMock.sol.png b/doc/mocks/schema/surya_graph/surya_graph_MinimalForwarderMock.sol.png deleted file mode 100644 index 5e6dc947c7e648b31899a04c49a9a4ead4d5b719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25055 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 BP|? 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 @U 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 DEs&Xv diff --git a/test/common/ERC20BurnModuleCommon.js b/test/common/ERC20BurnModuleCommon.js index dbd675cf..a279f8ca 100644 --- a/test/common/ERC20BurnModuleCommon.js +++ b/test/common/ERC20BurnModuleCommon.js @@ -23,7 +23,7 @@ function ERC20BurnModuleCommon () { // Burn 20 this.logs = await this.cmtat .connect(this.admin) - .burn(this.address1, VALUE1, REASON) + .burn(this.address1, VALUE1, ethers.Typed.string(REASON)) // Assert // emits a Transfer event await expect(this.logs) @@ -41,8 +41,8 @@ function ERC20BurnModuleCommon () { // Act this.logs = await this.cmtat .connect(this.admin) - .burn(this.address1, DIFFERENCE, REASON) - + .burn(this.address1, DIFFERENCE, ethers.Typed.string(REASON)) + // Assert // Emits a Transfer event await expect(this.logs) @@ -57,6 +57,45 @@ function ERC20BurnModuleCommon () { expect(await this.cmtat.totalSupply()).to.equal(0n) }) + it('testCanBeBurntByAdminWithoutReason', async function () { + // Act + // Burn 20 + this.logs = await this.cmtat + .connect(this.admin) + .burn(this.address1, VALUE1) + // Assert + // emits a Transfer event + await expect(this.logs) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.address1, ZERO_ADDRESS, VALUE1) + // Emits a Burn event + await expect(this.logs) + .to.emit(this.cmtat, 'Burn') + .withArgs(this.address1, VALUE1, "") + // Check balances and total supply + expect(await this.cmtat.balanceOf(this.address1)).to.equal(DIFFERENCE) + expect(await this.cmtat.totalSupply()).to.equal(DIFFERENCE) + + // Burn 30 + // Act + this.logs = await this.cmtat + .connect(this.admin) + .burn(this.address1, DIFFERENCE) + + // Assert + // Emits a Transfer event + await expect(this.logs) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.address1, ZERO_ADDRESS, DIFFERENCE) + // Emits a Burn event + await expect(this.logs) + .to.emit(this.cmtat, 'Burn') + .withArgs(this.address1, DIFFERENCE, "") + // Check balances and total supply + expect(await this.cmtat.balanceOf(this.address1)).to.equal(0n) + expect(await this.cmtat.totalSupply()).to.equal(0n) + }) + it('testCanBeBurntByBurnerRole', async function () { // Arrange await this.cmtat @@ -65,7 +104,7 @@ function ERC20BurnModuleCommon () { // Act this.logs = await this.cmtat .connect(this.address2) - .burn(this.address1, VALUE1, REASON) + .burn(this.address1, VALUE1, ethers.Typed.string(REASON)) // Assert expect(await this.cmtat.balanceOf(this.address1)).to.equal(DIFFERENCE) expect(await this.cmtat.totalSupply()).to.equal(DIFFERENCE) @@ -86,7 +125,7 @@ function ERC20BurnModuleCommon () { const ADDRESS1_BALANCE = await this.cmtat.balanceOf(this.address1) // Act await expect( - this.cmtat.connect(this.admin).burn(this.address1, AMOUNT_TO_BURN, '') + this.cmtat.connect(this.admin).burn(this.address1, AMOUNT_TO_BURN, ethers.Typed.string("")) ) .to.be.revertedWithCustomError(this.cmtat, 'ERC20InsufficientBalance') .withArgs(this.address1.address, ADDRESS1_BALANCE, AMOUNT_TO_BURN) @@ -94,7 +133,17 @@ function ERC20BurnModuleCommon () { it('testCannotBeBurntWithoutBurnerRole', async function () { await expect( - this.cmtat.connect(this.address2).burn(this.address1, 20n, '') + this.cmtat.connect(this.address2).burn(this.address1, 20n, ethers.Typed.string("")) + ) + .to.be.revertedWithCustomError( + this.cmtat, + 'AccessControlUnauthorizedAccount' + ) + .withArgs(this.address2.address, BURNER_ROLE) + + // Without reason + await expect( + this.cmtat.connect(this.address2).burn(this.address1, 20n, ethers.Typed.string("")) ) .to.be.revertedWithCustomError( this.cmtat, From 0add5ee69af53099c45aca77a343136ade99f2f2 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Thu, 13 Feb 2025 14:07:48 +0100 Subject: [PATCH 20/26] Use require with custom error --- contracts/libraries/Errors.sol | 3 --- .../controllers/ValidationEngineModule.sol | 4 +--- .../modules/wrapper/core/ERC20BaseModule.sol | 8 ++------ .../modules/wrapper/core/ERC20BurnModule.sol | 15 ++++----------- .../modules/wrapper/core/ERC20MintModule.sol | 9 ++------- contracts/modules/wrapper/core/PauseModule.sol | 4 +--- .../wrapper/extensions/DebtEngineModule.sol | 4 +--- .../wrapper/extensions/DocumentEngineModule.sol | 4 +--- .../wrapper/extensions/SnapshotEngineModule.sol | 4 +--- 9 files changed, 13 insertions(+), 42 deletions(-) diff --git a/contracts/libraries/Errors.sol b/contracts/libraries/Errors.sol index f2f85597..5d9fdeec 100644 --- a/contracts/libraries/Errors.sol +++ b/contracts/libraries/Errors.sol @@ -40,9 +40,6 @@ library Errors { // AuthorizationModule error CMTAT_AuthorizationModule_AddressZeroNotAllowed(); error CMTAT_AuthorizationModule_InvalidAuthorization(); - error CMTAT_AuthorizationModule_AuthorizationEngineAlreadySet(); - - error CMTAT_TransferEngineModule_TransferEngineAlreadySet(); // DocumentModule error CMTAT_DocumentModule_SameValue(); diff --git a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol index 7e7def90..0c92d86b 100644 --- a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol @@ -68,9 +68,7 @@ abstract contract ValidationModule is IRuleEngine ruleEngine_ ) external onlyRole(DEFAULT_ADMIN_ROLE) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - if ($._ruleEngine == ruleEngine_){ - revert Errors.CMTAT_ValidationModule_SameValue(); - } + require($._ruleEngine != ruleEngine_, Errors.CMTAT_ValidationModule_SameValue()); _setRuleEngine($,ruleEngine_); } diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 3a51eaf5..27bb4d00 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -131,14 +131,10 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { address[] calldata tos, uint256[] calldata values ) public returns (bool) { - if (tos.length == 0) { - revert Errors.CMTAT_ERC20BaseModule_EmptyTos(); - } + require(tos.length >0, Errors.CMTAT_ERC20BaseModule_EmptyTos()); // We do not check that values is not empty since // this require will throw an error in this case. - if (bool(tos.length != values.length)) { - revert Errors.CMTAT_ERC20BaseModule_TosValueslengthMismatch(); - } + require(bool(tos.length == values.length), Errors.CMTAT_ERC20BaseModule_TosValueslengthMismatch()); // No need of unchecked block since Soliditiy 0.8.22 for (uint256 i = 0; i < tos.length; ++i) { // We call directly the internal function transfer diff --git a/contracts/modules/wrapper/core/ERC20BurnModule.sol b/contracts/modules/wrapper/core/ERC20BurnModule.sol index 6a2dd4d1..555ef8de 100644 --- a/contracts/modules/wrapper/core/ERC20BurnModule.sol +++ b/contracts/modules/wrapper/core/ERC20BurnModule.sol @@ -85,15 +85,10 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, Authoriza uint256[] calldata values, string calldata reason ) public onlyRole(BURNER_ROLE) { - if (accounts.length == 0) { - revert Errors.CMTAT_BurnModule_EmptyAccounts(); - } + require(accounts.length != 0, Errors.CMTAT_BurnModule_EmptyAccounts()); // We do not check that values is not empty since // this require will throw an error in this case. - if (bool(accounts.length != values.length)) { - revert Errors.CMTAT_BurnModule_AccountsValueslengthMismatch(); - } - // No need of unchecked block since Soliditiy 0.8.22 + require(bool(accounts.length == values.length), Errors.CMTAT_BurnModule_AccountsValueslengthMismatch()); for (uint256 i = 0; i < accounts.length; ++i ) { _burn(accounts[i], values[i]); emit Burn(accounts[i], values[i], reason); @@ -121,10 +116,8 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, Authoriza // Allowance check address sender = _msgSender(); uint256 currentAllowance = allowance(account, sender); - if(currentAllowance < value){ - // ERC-6093 - revert ERC20InsufficientAllowance(sender, currentAllowance, value); - } + // Generate ERC-6093 error if insufficient allowance + require(currentAllowance >= value, ERC20InsufficientAllowance(sender, currentAllowance, value) ); // Update allowance unchecked { _approve(account, sender, currentAllowance - value); diff --git a/contracts/modules/wrapper/core/ERC20MintModule.sol b/contracts/modules/wrapper/core/ERC20MintModule.sol index 267a4053..b8dd6000 100644 --- a/contracts/modules/wrapper/core/ERC20MintModule.sol +++ b/contracts/modules/wrapper/core/ERC20MintModule.sol @@ -68,15 +68,10 @@ abstract contract ERC20MintModule is ERC20Upgradeable, IMintERC20, Authorization address[] calldata accounts, uint256[] calldata values ) public onlyRole(MINTER_ROLE) { - if (accounts.length == 0) { - revert Errors.CMTAT_MintModule_EmptyAccounts(); - } + require(accounts.length > 0, Errors.CMTAT_MintModule_EmptyAccounts()); // We do not check that values is not empty since // this require will throw an error in this case. - if (bool(accounts.length != values.length)) { - revert Errors.CMTAT_MintModule_AccountsValueslengthMismatch(); - } - // No need of unchecked block since Soliditiy 0.8.22 + require(bool(accounts.length == values.length), Errors.CMTAT_MintModule_AccountsValueslengthMismatch()); for (uint256 i = 0; i < accounts.length; ++i ) { _mint(accounts[i], values[i]); emit Mint(accounts[i], values[i]); diff --git a/contracts/modules/wrapper/core/PauseModule.sol b/contracts/modules/wrapper/core/PauseModule.sol index 80cab289..6fdee556 100644 --- a/contracts/modules/wrapper/core/PauseModule.sol +++ b/contracts/modules/wrapper/core/PauseModule.sol @@ -61,9 +61,7 @@ abstract contract PauseModule is PausableUpgradeable, AuthorizationModule { */ function unpause() public onlyRole(PAUSER_ROLE) { PauseModuleStorage storage $ = _getPauseModuleStorage(); - if($._isDeactivated){ - revert Errors.CMTAT_PauseModule_ContractIsDeactivated(); - } + require(!$._isDeactivated, Errors.CMTAT_PauseModule_ContractIsDeactivated()); _unpause(); } diff --git a/contracts/modules/wrapper/extensions/DebtEngineModule.sol b/contracts/modules/wrapper/extensions/DebtEngineModule.sol index 4121bc68..9bedd118 100644 --- a/contracts/modules/wrapper/extensions/DebtEngineModule.sol +++ b/contracts/modules/wrapper/extensions/DebtEngineModule.sol @@ -79,9 +79,7 @@ abstract contract DebtModule is AuthorizationModule, IDebtEngine { IDebtEngine debtEngine_ ) external onlyRole(DEBT_ROLE) { DebtModuleStorage storage $ = _getDebtModuleStorage(); - if ($._debtEngine == debtEngine_){ - revert Errors.CMTAT_DebtModule_SameValue(); - } + require($._debtEngine != debtEngine_, Errors.CMTAT_DebtModule_SameValue()); _setDebtEngine($, debtEngine_); } diff --git a/contracts/modules/wrapper/extensions/DocumentEngineModule.sol b/contracts/modules/wrapper/extensions/DocumentEngineModule.sol index 7155e332..bdac9759 100644 --- a/contracts/modules/wrapper/extensions/DocumentEngineModule.sol +++ b/contracts/modules/wrapper/extensions/DocumentEngineModule.sol @@ -79,9 +79,7 @@ abstract contract DocumentModule is AuthorizationModule, IERC1643 { IERC1643 documentEngine_ ) external onlyRole(DOCUMENT_ROLE) { DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - if ($._documentEngine == documentEngine_){ - revert Errors.CMTAT_DocumentModule_SameValue(); - } + require($._documentEngine != documentEngine_, Errors.CMTAT_DocumentModule_SameValue()); _setDocumentEngine($, documentEngine_); } diff --git a/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol index 4f9a51ca..ffa75969 100644 --- a/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol +++ b/contracts/modules/wrapper/extensions/SnapshotEngineModule.sol @@ -56,9 +56,7 @@ abstract contract SnapshotEngineModule is AuthorizationModule { ISnapshotEngine snapshotEngine_ ) external onlyRole(SNAPSHOOTER_ROLE) { SnapshotEngineModuleStorage storage $ = _getSnapshotEngineModuleStorage(); - if ($._snapshotEngine == snapshotEngine_){ - revert Errors.CMTAT_SnapshotModule_SameValue(); - } + require($._snapshotEngine != snapshotEngine_, Errors.CMTAT_SnapshotModule_SameValue()); _setSnapshotEngine($, snapshotEngine_); } From fd7ce103169a914761c1bc1615639ff5a327e254 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Thu, 13 Feb 2025 14:10:43 +0100 Subject: [PATCH 21/26] Update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5989fce3..35664af5 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Here the list of ERC supported between different version: | [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201)
    (Storage namespaces for proxy contract) | Standard Track (final) | ☒ | ☒ | ☑ | | **Other** | | | | | | [ERC-2771](https://eips.ethereum.org/EIPS/eip-2771) (Meta Tx / gasless) | Standard Track (final) | ☑ | ☑ | ☑ | +| [ERC-6093](https://eips.ethereum.org/EIPS/eip-6093) | Standard Track (final) | ☒ | ☒ | ☑
    (through OpenZeppelin) | ### Modules From 5725d6cde184dc2b38c8527b0087e757c3b14db6 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Mon, 17 Feb 2025 17:06:33 +0100 Subject: [PATCH 22/26] Add ERC3643 partial support + correspondance table --- README.md | 79 ++++++++++++++++++- contracts/interfaces/IERC3643Partial.sol | 44 +++++++++++ contracts/modules/CMTAT_BASE.sol | 3 + .../internal/EnforcementModuleInternal.sol | 5 +- .../controllers/ValidationEngineModule.sol | 6 +- contracts/modules/wrapper/core/BaseModule.sol | 12 ++- .../modules/wrapper/core/ERC20BaseModule.sol | 25 +----- .../modules/wrapper/core/ERC20BurnModule.sol | 51 +++++++++++- .../modules/wrapper/core/ERC20MintModule.sol | 9 ++- .../modules/wrapper/core/PauseModule.sol | 10 ++- test/common/BaseModuleCommon.js | 2 +- test/common/ERC20BaseModuleCommon.js | 32 ++++---- test/common/ERC20BurnModuleCommon.js | 26 +++--- test/common/ERC20MintModuleCommon.js | 20 ++--- test/common/EnforcementModuleCommon.js | 42 +++++----- 15 files changed, 267 insertions(+), 99 deletions(-) create mode 100644 contracts/interfaces/IERC3643Partial.sol diff --git a/README.md b/README.md index 35664af5..c45dd30c 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,84 @@ Here the list of ERC supported between different version: | [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201)
    (Storage namespaces for proxy contract) | Standard Track (final) | ☒ | ☒ | ☑ | | **Other** | | | | | | [ERC-2771](https://eips.ethereum.org/EIPS/eip-2771) (Meta Tx / gasless) | Standard Track (final) | ☑ | ☑ | ☑ | -| [ERC-6093](https://eips.ethereum.org/EIPS/eip-6093) | Standard Track (final) | ☒ | ☒ | ☑
    (through OpenZeppelin) | +| [ERC-6093](https://eips.ethereum.org/EIPS/eip-6093) (Custom errors for ERC-20 tokens) | Standard Track (final) | ☒ | ☒ | ☑
    | + +#### ERC-3643 + +The [ERC-3643](https://eips.ethereum.org/EIPS/eip-3643) is an official Ethereum standard, unlike ERC-1400 and ERC-1404. This standard, also built on top of ERC-20, offers a way to manage and perform compliant transfers of security tokens. + +ERC-3643 enforces identity management as a core component of the standards by using a decentralized identity system called [onchainid](https://www.onchainid.com/). + +While CMTAT does not include directly the identify management system, it shares with ERC-3643 several same functions. + +To represent the level of similarity between ERC-3643 interface and CMTAT functionnalities, we have created three level of conformity. + +The interface is available in [IERC3643Partial.sol](./contracts/interfaces/IERC3643Partial.sol) + +If you want to use CMTAT to create a version implementing all functions from ERC-3643, you can create it through a dedicated deployment version (similar to what has been done for UUPS and ERC-1363). + +**Level** + +| **Level** | **Description** | +| :-------- | :----------------------------------------------------------- | +| 0 | Not implemented | +| 1 | Implemented, but the argument names are different
    (function signature will be the same nevertheless) | +| 3 | Exactly same function (same argument name, same parameter) | + +The main reason the argument names change is because CMTAT relies on OpenZeppelin to name the arguments + +##### Pause + +| **ERC-3643** | **CMTAT 3.0** | **Result** | +| :--------------------------------------- | :------------------------------ | :--------- | +| `pause() external` | Same | 3 | +| `unpause() external` | Same | 3 | +| `paused() external view returns (bool);` | Same | 2 | +| ` event Paused(address _userAddress);` | event Paused(address account); | 2 | +| ` event Unpaused(address _userAddress);` | event Unpaused(address account) | 2 | + +##### ERC20Base + +| **ERC-3643** | **CMTAT 3.0** | **Result** | +| :----------------------------------------------------------- | :----------------------------------------------------------- | :--------- | +| `setName(string calldata _name) external;` | setName(string calldata name_) | 2 | +| `setSymbol(string calldata _symbol) external;` | function setSymbol(string calldata symbol_) | 2 | +| `function batchTransfer(address[] calldata _toList, uint256[] calldata _amounts) external;` | function batchTransfer(address[] calldata tos,uint256[] calldata values) external returns (bool); | 2 | + +##### Supply Management (burn/mint) + +| **ERC-3643** | **CMTAT 3.0 Modules** | **CMTAT 3.0 Functions** | **Result** | +| :----------------------------------------------------------- | :-------------------- | :----------------------------------------------------------- | :--------- | +| ` batchMint(address[] calldata _toList, uint256[] calldata _amounts) external;` | MintModule | `mint(address account, uint256 value)` | 2 | +| ` batchMint(address[] calldata _toList, uint256[] calldata _amounts) external;` | MintModule | `function mintBatch(address[] calldata accounts,uint256[] calldata values) ` | 2 | +| `burn(address _userAddress, uint256 _amount) external` | BurnModule | `function burn(address account,uint256 value)` | 2 | +| `batchBurn(address[] calldata _userAddresses, uint256[] calldata _amounts) external` | BurnModule | `function burnBatch(address[] calldata accounts,uint256[] calldata values,string calldata reason)` | 2 | +| `function batchForcedTransfer(address[] calldata _fromList, address[] calldata _toList, uint256[] calldata _amounts) external` | BurnModule | `function forcedTransfer(address account, address destination, uint256 value) external returns (bool)` | 2 | + +##### Enforcement + +| **ERC-3643** | **CMTAT 3.0** | **Result** | +| :-------------------------------- | :-------------------------- | :--------- | +| ` isFrozen(address _userAddress)` | `isFrozen(address account)` | 2 | + +#### ERC-7551 + +This section presents a correspondence table between [ERC-7551](https://ethereum-magicians.org/t/erc-7551-crypto-security-token-smart-contract-interface-ewpg/16416) and their equivalent functions inside CMTAT. + +The ERC-7551 is currently a draft ERC proposed by the Federal Association of Crypto Registrars from Germany to tokenize assets in compliance with [eWPG](https://www.gesetze-im-internet.de/ewpg/). + +The interface is supposed to work on top of additional standards that cover the actual storage of ownership of shares of a security in the form of a token (e.g. ERC-20 or ERC-1155). + +| **N°** | **Functionalities** | **ERC-7551 Functions** | **CMTAT 3.0.0** (next release | +| :----- | :----------------------------------------------------------- | :---------------------------------------- | :----------------------------------------------------------- | +| 1 | Freeze and unfreeze a specific amount of tokens | freezeTokens
    unfreezeTokens | Partial
    All the tokens owned by the address are frozen | +| 2 | Pausing transfers The operator can pause and unpause transfers | pauseTransfers | ✅
    function pause/unpause + deactivateContract | +| 3 | Link to off-chain document
    Add the hash of a document | setPaperContractHash | ✅
    Done with the field terms.
    This field is represented as a Document also (name, uri, hash, last on-chain modification date) | +| 4 | Metadata JSON file | setMetaDataJSON | ✅
    Support through the documentModule and [ERC-1643](https://github.com/ethereum/eips/issues/1643) or Link can be put in the string field “information” | +| 5 | Forced transfersTransfer `amount` tokens to `to` without requiring the consent of `fro`m | forceTransferFrom | ✅
    Function forceTransfer | +| 6 | Token supply managementreduce the balance of `tokenHolder` by `amount` without increasing the amount of tokens of any other holder | destroyTokens | ✅
    Function burn | +| 7 | Token supply managementincrease the balance of `to` by `amount` without decreasing the amount of tokens from any other holder. | issue | ✅
    Function mint and mintBatch | +| 8 | Transfer compliance
    Check if a transfer is valid | `canTransfer() `and a `canTransferFrom()` | ✅
    With [ERC-1404](https://github.com/ethereum/eips/issues/1404) | ### Modules diff --git a/contracts/interfaces/IERC3643Partial.sol b/contracts/interfaces/IERC3643Partial.sol new file mode 100644 index 00000000..7e401ef2 --- /dev/null +++ b/contracts/interfaces/IERC3643Partial.sol @@ -0,0 +1,44 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +/** +* @dev interface with common functions between CMTAT and ERC3643 +* Note that argument name can change compare to ERC3643 +*/ +interface IERC3643Pause { + function paused() external view returns (bool); + function pause() external; + function unpause() external; +} +interface IERC3643ERC20Base { + // setters + function setName(string calldata _name) external; + function setSymbol(string calldata _symbol) external; + // Contrary to ERC-3643 specification, return bool to keep the same behaviour as ERC-20 transfer + function batchTransfer(address[] calldata tos,uint256[] calldata values) external returns (bool); +} + +interface IERC3643Base { + // getters + function version() external view returns (string memory); +} + +interface IERC3643Enforcement { + // getters + function isFrozen(address account) external view returns (bool); + +} +interface IERC3643Mint{ + // transfer actions + function mint(address account, uint256 value) external; + function batchMint( address[] calldata accounts,uint256[] calldata values) external; +} +interface IERC3643Burn{ + // transfer actions + function forcedTransfer(address account, address destination, uint256 value) external returns (bool); + function burn(address account,uint256 value) external; + // batch functions + function batchBurn(address[] calldata accounts,uint256[] calldata values) external; +} + diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 19e84cae..4186a665 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -25,6 +25,7 @@ import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; import {Errors} from "../libraries/Errors.sol"; abstract contract CMTAT_BASE is + // OpenZeppelin Initializable, ContextUpgradeable, // Core @@ -244,6 +245,8 @@ abstract contract CMTAT_BASE is } ERC20Upgradeable._update(from, to, amount); } + + /*////////////////////////////////////////////////////////////// METAXTX MODULE //////////////////////////////////////////////////////////////*/ diff --git a/contracts/modules/internal/EnforcementModuleInternal.sol b/contracts/modules/internal/EnforcementModuleInternal.sol index eead0a1b..06b66306 100644 --- a/contracts/modules/internal/EnforcementModuleInternal.sol +++ b/contracts/modules/internal/EnforcementModuleInternal.sol @@ -5,6 +5,8 @@ pragma solidity ^0.8.20; import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {IERC3643Enforcement} from "../../interfaces/IERC3643Partial.sol"; + /** * @dev Enforcement module. * @@ -13,6 +15,7 @@ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ abstract contract EnforcementModuleInternal is Initializable, ContextUpgradeable, + IERC3643Enforcement, ERC20Upgradeable { /* ============ Events ============ */ @@ -61,7 +64,7 @@ abstract contract EnforcementModuleInternal is /** * @dev Returns true if the account is frozen, and false otherwise. */ - function frozen(address account) public view virtual returns (bool) { + function isFrozen(address account) public view virtual returns (bool) { EnforcementModuleInternalStorage storage $ = _getEnforcementModuleInternalStorage(); return $._frozen[account]; } diff --git a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol index 0c92d86b..a1e62be1 100644 --- a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol @@ -120,9 +120,9 @@ abstract contract ValidationModule is ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); if (paused()) { return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED); - } else if (frozen(from)) { + } else if (isFrozen(from)) { return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN); - } else if (frozen(to)) { + } else if (isFrozen(to)) { return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN); } else if (address($._ruleEngine) != address(0)) { return $._ruleEngine.detectTransferRestriction(from, to, amount); @@ -167,7 +167,7 @@ abstract contract ValidationModule is address to, uint256 /*amount*/ ) internal view returns (bool) { - if (paused() || frozen(from) || frozen(to)) { + if (paused() || isFrozen(from) || isFrozen(to)) { return false; } else{ return true; diff --git a/contracts/modules/wrapper/core/BaseModule.sol b/contracts/modules/wrapper/core/BaseModule.sol index b5cbe751..585849f7 100644 --- a/contracts/modules/wrapper/core/BaseModule.sol +++ b/contracts/modules/wrapper/core/BaseModule.sol @@ -4,14 +4,15 @@ pragma solidity ^0.8.20; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; import {IERC1643CMTAT, IERC1643} from "../../../interfaces/draft-IERC1643CMTAT.sol"; +import {IERC3643Base} from "../../../interfaces/IERC3643Partial.sol"; -abstract contract BaseModule is AuthorizationModule { +abstract contract BaseModule is IERC3643Base, AuthorizationModule { /* ============ State Variables ============ */ /** * @notice * Get the current version of the smart contract */ - string public constant VERSION = "3.0.0"; + string private constant VERSION = "3.0.0"; struct Terms { string name; @@ -60,7 +61,12 @@ abstract contract BaseModule is AuthorizationModule { /*////////////////////////////////////////////////////////////// PUBLIC/EXTERNAL FUNCTIONS //////////////////////////////////////////////////////////////*/ - + /** + * @notice ERC-3643 version function + */ + function version() public view virtual override returns (string memory) { + return VERSION; + } function tokenId() public view virtual returns (string memory) { BaseModuleStorage storage $ = _getBaseModuleStorage(); return $._tokenId; diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 27bb4d00..b742f121 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -5,6 +5,7 @@ pragma solidity ^0.8.20; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; // required OZ imports here import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {IERC3643ERC20Base} from "../../../interfaces/IERC3643Partial.sol"; import {Errors} from "../../../libraries/Errors.sol"; /** @@ -15,15 +16,9 @@ import {Errors} from "../../../libraries/Errors.sol"; * Inherits from ERC-20 * */ -abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { - /* ============ State Variables ============ */ - bytes32 public constant ENFORCER_ROLE_TRANSFER = keccak256("ENFORCER_ROLE_TRANSFER"); +abstract contract ERC20BaseModule is ERC20Upgradeable, IERC3643ERC20Base, AuthorizationModule { /* ============ Events ============ */ /** - * @notice Emitted when a transfer is forced. - */ - event Enforcement (address indexed enforcer, address indexed account, uint256 amount, string reason); - /** * @notice Emitted when the specified `spender` spends the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance. * @dev The allowance can be also "spend" with the function BurnFrom, but in this case, the emitted event is BurnFrom. */ @@ -127,10 +122,10 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { * - `tos`cannot contain a zero address (check made by transfer) * - the caller must have a balance cooresponding to the total values */ - function transferBatch( + function batchTransfer( address[] calldata tos, uint256[] calldata values - ) public returns (bool) { + ) public override returns (bool) { require(tos.length >0, Errors.CMTAT_ERC20BaseModule_EmptyTos()); // We do not check that values is not empty since // this require will throw an error in this case. @@ -178,18 +173,6 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, AuthorizationModule { emit Symbol(symbol_, symbol_); } - /* ============ ERC-20 Enforcement ============ */ - /** - * @notice Triggers a forced transfer. - * - */ - function enforceTransfer(address account, address destination, uint256 value, string calldata reason) public onlyRole(ENFORCER_ROLE_TRANSFER) { - _transfer(account, destination, value); - emit Enforcement(_msgSender(), account, value, reason); - } - - - /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ diff --git a/contracts/modules/wrapper/core/ERC20BurnModule.sol b/contracts/modules/wrapper/core/ERC20BurnModule.sol index 555ef8de..0c25671b 100644 --- a/contracts/modules/wrapper/core/ERC20BurnModule.sol +++ b/contracts/modules/wrapper/core/ERC20BurnModule.sol @@ -5,6 +5,7 @@ pragma solidity ^0.8.20; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; import {IBurnFromERC20} from "../../../interfaces/IMintToken.sol"; +import {IERC3643Burn} from "../../../interfaces/IERC3643Partial.sol"; import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Burn module. @@ -12,10 +13,11 @@ import {Errors} from "../../../libraries/Errors.sol"; * * Contains all burn functions, inherits from ERC-20 */ -abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, AuthorizationModule { +abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, IERC3643Burn, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE"); bytes32 public constant BURNER_FROM_ROLE = keccak256("BURNER_FROM_ROLE"); + bytes32 public constant ENFORCER_ROLE_TRANSFER = keccak256("ENFORCER_ROLE_TRANSFER"); /* ============ Events ============ */ /** @@ -26,7 +28,10 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, Authoriza * @notice Emitted when the specified `spender` burns the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance. */ event BurnFrom(address indexed owner, address indexed spender, uint256 value); - + /** + * @notice Emitted when a transfer is forced. + */ + event Enforcement (address indexed enforcer, address indexed account, uint256 amount, string reason); /* ============ Initializer Function ============ */ function __ERC20BurnModule_init_unchained() internal onlyInitializing { @@ -80,11 +85,26 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, Authoriza * - `accounts` and `values` must have the same length * - the caller must have the `BURNER_ROLE`. */ - function burnBatch( + function batchBurn( address[] calldata accounts, uint256[] calldata values, string calldata reason ) public onlyRole(BURNER_ROLE) { + _batchBurn(accounts, values, reason); + } + + function batchBurn( + address[] calldata accounts, + uint256[] calldata values + ) public onlyRole(BURNER_ROLE) { + _batchBurn(accounts, values, ""); + } + + function _batchBurn( + address[] calldata accounts, + uint256[] calldata values, + string memory reason + ) internal { require(accounts.length != 0, Errors.CMTAT_BurnModule_EmptyAccounts()); // We do not check that values is not empty since // this require will throw an error in this case. @@ -95,6 +115,7 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, Authoriza } } + /** * @notice Destroys `amount` tokens from `account`, deducting from the caller's * allowance. @@ -129,6 +150,25 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, Authoriza emit BurnFrom(account, sender, value); } + + /* ============ ERC-20 Enforcement ============ */ + /** + * @notice Triggers a forced transfer. + * + */ + function forcedTransfer(address account, address destination, uint256 value, string calldata reason) public onlyRole(ENFORCER_ROLE_TRANSFER) { + _forceTransfer(account, destination, value, reason); + } + + /** + * @notice Triggers a forced transfer. + * + */ + function forcedTransfer(address account, address destination, uint256 value) public onlyRole(ENFORCER_ROLE_TRANSFER) returns (bool) { + _forceTransfer(account, destination, value, ""); + return true; + } + /*////////////////////////////////////////////////////////////// INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ @@ -144,4 +184,9 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, Authoriza _burn(account, value); emit Burn(account, value, reason); } + + function _forceTransfer(address account, address destination, uint256 value, string memory reason) internal { + _transfer(account, destination, value); + emit Enforcement(_msgSender(), account, value, reason); + } } diff --git a/contracts/modules/wrapper/core/ERC20MintModule.sol b/contracts/modules/wrapper/core/ERC20MintModule.sol index b8dd6000..e3055f41 100644 --- a/contracts/modules/wrapper/core/ERC20MintModule.sol +++ b/contracts/modules/wrapper/core/ERC20MintModule.sol @@ -5,6 +5,7 @@ pragma solidity ^0.8.20; import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; import {IMintERC20} from "../../../interfaces/IMintToken.sol"; +import {IERC3643Mint} from "../../../interfaces/IERC3643Partial.sol"; import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Mint module. @@ -12,7 +13,7 @@ import {Errors} from "../../../libraries/Errors.sol"; * * Contains all mint functions, inherits from ERC-20 */ -abstract contract ERC20MintModule is ERC20Upgradeable, IMintERC20, AuthorizationModule { +abstract contract ERC20MintModule is ERC20Upgradeable, IMintERC20, IERC3643Mint, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); /* ============ Events ============ */ @@ -44,7 +45,7 @@ abstract contract ERC20MintModule is ERC20Upgradeable, IMintERC20, Authorization * - `account` cannot be the zero address (check made by _mint). * - The caller must have the `MINTER_ROLE`. */ - function mint(address account, uint256 value) public onlyRole(MINTER_ROLE) { + function mint(address account, uint256 value) public override(IERC3643Mint,IMintERC20) onlyRole(MINTER_ROLE) { _mint(account, value); emit Mint(account, value); } @@ -64,10 +65,10 @@ abstract contract ERC20MintModule is ERC20Upgradeable, IMintERC20, Authorization * - `accounts` cannot contain a zero address (check made by _mint). * - the caller must have the `MINTER_ROLE`. */ - function mintBatch( + function batchMint( address[] calldata accounts, uint256[] calldata values - ) public onlyRole(MINTER_ROLE) { + ) public override onlyRole(MINTER_ROLE) { require(accounts.length > 0, Errors.CMTAT_MintModule_EmptyAccounts()); // We do not check that values is not empty since // this require will throw an error in this case. diff --git a/contracts/modules/wrapper/core/PauseModule.sol b/contracts/modules/wrapper/core/PauseModule.sol index 6fdee556..69ab3e88 100644 --- a/contracts/modules/wrapper/core/PauseModule.sol +++ b/contracts/modules/wrapper/core/PauseModule.sol @@ -5,7 +5,9 @@ pragma solidity ^0.8.20; import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; import {Errors} from "../../../libraries/Errors.sol"; -/** +import {IERC3643Pause} from "../../../interfaces/IERC3643Partial.sol"; + +/**IERC3643Pause * @title Pause Module * @dev * Put in pause or deactivate the contract @@ -16,7 +18,7 @@ import {Errors} from "../../../libraries/Errors.sol"; * period, or having an emergency switch for freezing all token transfers in the * event of a large bug. */ -abstract contract PauseModule is PausableUpgradeable, AuthorizationModule { +abstract contract PauseModule is PausableUpgradeable, AuthorizationModule, IERC3643Pause { /* ============ State Variables ============ */ bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); string internal constant TEXT_TRANSFER_REJECTED_PAUSED = @@ -38,6 +40,10 @@ abstract contract PauseModule is PausableUpgradeable, AuthorizationModule { /*////////////////////////////////////////////////////////////// PUBLIC/EXTERNAL FUNCTIONS //////////////////////////////////////////////////////////////*/ + function paused() public virtual view override(IERC3643Pause, PausableUpgradeable) returns (bool){ + return PausableUpgradeable.paused(); + } + /** * @notice Pauses all token transfers. * @dev See {ERC20Pausable} and {Pausable-_pause}. diff --git a/test/common/BaseModuleCommon.js b/test/common/BaseModuleCommon.js index 71099dde..7285f4be 100644 --- a/test/common/BaseModuleCommon.js +++ b/test/common/BaseModuleCommon.js @@ -15,7 +15,7 @@ function BaseModuleCommon () { } it('testHasTheDefinedVersion', async function () { // Act + Assert - expect(await this.cmtat.VERSION()).to.equal('3.0.0') + expect(await this.cmtat.version()).to.equal('3.0.0') }) it('testHasTheDefinedTokenId', async function () { // Act + Assert diff --git a/test/common/ERC20BaseModuleCommon.js b/test/common/ERC20BaseModuleCommon.js index b0548271..0ec9f5a3 100644 --- a/test/common/ERC20BaseModuleCommon.js +++ b/test/common/ERC20BaseModuleCommon.js @@ -12,11 +12,11 @@ function ERC20BaseModuleCommon () { // Act this.logs = await this.cmtat .connect(this.admin) - .enforceTransfer( + .forcedTransfer( this.address1, this.address2, AMOUNT_TO_TRANSFER, - REASON + ethers.Typed.string(REASON) ) // Assert expect(await this.cmtat.balanceOf(this.address1)).to.equal('30') @@ -40,11 +40,11 @@ function ERC20BaseModuleCommon () { // Act this.logs = await this.cmtat .connect(this.admin) - .enforceTransfer( + .forcedTransfer( this.address1, this.address2, AMOUNT_TO_TRANSFER, - REASON + ethers.Typed.string(REASON) ) // Assert expect(await this.cmtat.balanceOf(this.address1)).to.equal( @@ -66,7 +66,7 @@ function ERC20BaseModuleCommon () { await expect( this.cmtat .connect(this.address2) - .enforceTransfer(this.address1, this.address2, 20, 'Bad guy') + .forcedTransfer(this.address1, this.address2, 20, ethers.Typed.string('Bad guy')) ) .to.be.revertedWithCustomError( this.cmtat, @@ -415,7 +415,7 @@ function ERC20BaseModuleCommon () { }) }) - context('transferBatch', function () { + context('batchTransfer', function () { const TOKEN_AMOUNTS = [10n, 100n, 1000n] beforeEach(async function () { @@ -428,12 +428,12 @@ function ERC20BaseModuleCommon () { ) }) - it('testTransferBatch', async function () { + it('testbatchTransfer', async function () { const TOKEN_ADDRESS_TOS = [this.address1, this.address2, this.address3] // Act this.logs = await this.cmtat .connect(this.admin) - .transferBatch(TOKEN_ADDRESS_TOS, TOKEN_AMOUNTS) + .batchTransfer(TOKEN_ADDRESS_TOS, TOKEN_AMOUNTS) // Assert for (let i = 0; i < TOKEN_ADDRESS_TOS.length; ++i) { expect(await this.cmtat.balanceOf(TOKEN_ADDRESS_TOS[i])).to.equal( @@ -449,7 +449,7 @@ function ERC20BaseModuleCommon () { }) // ADDRESS1 -> ADDRESS2 - it('testCannotTransferBatchMoreTokensThanOwn', async function () { + it('testCannotbatchTransferMoreTokensThanOwn', async function () { const TOKEN_ADDRESS_TOS = [this.address1, this.address2, this.address3] const BALANCE_AFTER_FIRST_TRANSFER = (await this.cmtat.balanceOf(this.admin)) - TOKEN_AMOUNTS[0] @@ -464,7 +464,7 @@ function ERC20BaseModuleCommon () { await expect( this.cmtat .connect(this.admin) - .transferBatch(TOKEN_ADDRESS_TOS, TOKEN_AMOUNTS_INVALID) + .batchTransfer(TOKEN_ADDRESS_TOS, TOKEN_AMOUNTS_INVALID) ) .to.be.revertedWithCustomError(this.cmtat, 'ERC20InsufficientBalance') .withArgs( @@ -474,20 +474,20 @@ function ERC20BaseModuleCommon () { ) }) - it('testCannotTransferBatchIfLengthMismatchMissingAddresses', async function () { + it('testCannotbatchTransferIfLengthMismatchMissingAddresses', async function () { // Number of addresses is insufficient const TOKEN_ADDRESS_TOS_INVALID = [this.address1, this.address2] await expect( this.cmtat .connect(this.admin) - .transferBatch(TOKEN_ADDRESS_TOS_INVALID, TOKEN_AMOUNTS) + .batchTransfer(TOKEN_ADDRESS_TOS_INVALID, TOKEN_AMOUNTS) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_ERC20BaseModule_TosValueslengthMismatch' ) }) - it('testCannotTransferBatchIfLengthMismatchTooManyAddresses', async function () { + it('testCannotbatchTransferIfLengthMismatchTooManyAddresses', async function () { // There are too many addresses const TOKEN_ADDRESS_TOS_INVALID = [ this.address1, @@ -498,19 +498,19 @@ function ERC20BaseModuleCommon () { await expect( this.cmtat .connect(this.admin) - .transferBatch(TOKEN_ADDRESS_TOS_INVALID, TOKEN_AMOUNTS) + .batchTransfer(TOKEN_ADDRESS_TOS_INVALID, TOKEN_AMOUNTS) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_ERC20BaseModule_TosValueslengthMismatch' ) }) - it('testCannotTransferBatchIfTOSIsEmpty', async function () { + it('testCannotbatchTransferIfTOSIsEmpty', async function () { const TOKEN_ADDRESS_TOS_INVALID = [] await expect( this.cmtat .connect(this.admin) - .transferBatch(TOKEN_ADDRESS_TOS_INVALID, TOKEN_AMOUNTS) + .batchTransfer(TOKEN_ADDRESS_TOS_INVALID, TOKEN_AMOUNTS) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_ERC20BaseModule_EmptyTos' diff --git a/test/common/ERC20BurnModuleCommon.js b/test/common/ERC20BurnModuleCommon.js index a279f8ca..1fe43b90 100644 --- a/test/common/ERC20BurnModuleCommon.js +++ b/test/common/ERC20BurnModuleCommon.js @@ -315,7 +315,7 @@ function ERC20BurnModuleCommon () { }) }) - context('burnBatch', function () { + context('batchBurn', function () { const REASON = 'BURN_TEST' const TOKEN_SUPPLY_BY_HOLDERS = [10, 100, 1000] const INITIAL_SUPPLY = TOKEN_SUPPLY_BY_HOLDERS.reduce((a, b) => { @@ -337,7 +337,7 @@ function ERC20BurnModuleCommon () { const TOKEN_HOLDER = [this.admin, this.address1, this.address2]; ({ logs: this.logs1 } = await this.cmtat .connect(this.admin) - .mintBatch(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS)) + .batchMint(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS)) expect(await this.cmtat.totalSupply()).to.equal(INITIAL_SUPPLY) }) @@ -347,7 +347,7 @@ function ERC20BurnModuleCommon () { // Burn this.logs = await this.cmtat .connect(this.admin) - .burnBatch(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN, REASON) + .batchBurn(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN, ethers.Typed.string(REASON)) // Assert // emits a Transfer event // Assert event @@ -387,7 +387,7 @@ function ERC20BurnModuleCommon () { // Burn this.logs = await this.cmtat .connect(this.address2) - .burnBatch(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN, REASON) + .batchBurn(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN, ethers.Typed.string(REASON)) // Assert // emits a Transfer event @@ -424,7 +424,7 @@ function ERC20BurnModuleCommon () { await expect( this.cmtat .connect(this.admin) - .burnBatch(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN_FAIL, '') + .batchBurn(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN_FAIL, ethers.Typed.string('')) ) .to.be.revertedWithCustomError(this.cmtat, 'ERC20InsufficientBalance') .withArgs( @@ -439,7 +439,7 @@ function ERC20BurnModuleCommon () { await expect( this.cmtat .connect(this.address2) - .burnBatch(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN, '') + .batchBurn(TOKEN_HOLDER, TOKEN_BY_HOLDERS_TO_BURN, ethers.Typed.string('')) ) .to.be.revertedWithCustomError( this.cmtat, @@ -448,20 +448,20 @@ function ERC20BurnModuleCommon () { .withArgs(this.address2.address, BURNER_ROLE) }) - it('testCannotburnBatchIfLengthMismatchMissingAddresses', async function () { + it('testCannotbatchBurnIfLengthMismatchMissingAddresses', async function () { // Number of addresses is insufficient const TOKEN_HOLDER_INVALID = [this.admin, this.address1] await expect( this.cmtat .connect(this.admin) - .burnBatch(TOKEN_HOLDER_INVALID, TOKEN_BY_HOLDERS_TO_BURN, REASON) + .batchBurn(TOKEN_HOLDER_INVALID, TOKEN_BY_HOLDERS_TO_BURN, ethers.Typed.string(REASON)) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_BurnModule_AccountsValueslengthMismatch' ) }) - it('testCannotburnBatchIfLengthMismatchTooManyAddresses', async function () { + it('testCannotbatchBurnIfLengthMismatchTooManyAddresses', async function () { // There are too many addresses const TOKEN_HOLDER_INVALID = [ this.admin, @@ -472,22 +472,22 @@ function ERC20BurnModuleCommon () { await expect( this.cmtat .connect(this.admin) - .burnBatch(TOKEN_HOLDER_INVALID, TOKEN_BY_HOLDERS_TO_BURN, REASON) + .batchBurn(TOKEN_HOLDER_INVALID, TOKEN_BY_HOLDERS_TO_BURN, ethers.Typed.string(REASON)) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_BurnModule_AccountsValueslengthMismatch' ) }) - it('testCannotburnBatchIfAccountsIsEmpty', async function () { + it('testCannotbatchBurnIfAccountsIsEmpty', async function () { const TOKEN_ADDRESS_TOS_INVALID = [] await expect( this.cmtat .connect(this.admin) - .burnBatch( + .batchBurn( TOKEN_ADDRESS_TOS_INVALID, TOKEN_BY_HOLDERS_TO_BURN, - REASON + ethers.Typed.string(REASON) ) ).to.be.revertedWithCustomError( this.cmtat, diff --git a/test/common/ERC20MintModuleCommon.js b/test/common/ERC20MintModuleCommon.js index e222a9ab..55137efa 100644 --- a/test/common/ERC20MintModuleCommon.js +++ b/test/common/ERC20MintModuleCommon.js @@ -117,7 +117,7 @@ function ERC20MintModuleCommon () { // Issue 20 and check balances and total supply this.logs = await this.cmtat .connect(this.admin) - .mintBatch(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS) + .batchMint(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS) // Assert for (let i = 0; i < TOKEN_HOLDER.length; ++i) { @@ -164,7 +164,7 @@ function ERC20MintModuleCommon () { // Issue 20 and check balances and total supply this.logs = await this.cmtat .connect(this.address1) - .mintBatch(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS) + .batchMint(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS) // Assert for (let i = 0; i < TOKEN_HOLDER.length; ++i) { @@ -193,13 +193,13 @@ function ERC20MintModuleCommon () { } }) - it('testCannotMintBatchByNonMinter', async function () { + it('testCannotbatchMintByNonMinter', async function () { const TOKEN_HOLDER = [this.admin, this.address1, this.address2] const TOKEN_SUPPLY_BY_HOLDERS = [10n, 100n, 1000n] await expect( this.cmtat .connect(this.address1) - .mintBatch(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS) + .batchMint(TOKEN_HOLDER, TOKEN_SUPPLY_BY_HOLDERS) ) .to.be.revertedWithCustomError( this.cmtat, @@ -208,21 +208,21 @@ function ERC20MintModuleCommon () { .withArgs(this.address1.address, MINTER_ROLE) }) - it('testCannotMintBatchIfLengthMismatchMissingAddresses', async function () { + it('testCannotbatchMintIfLengthMismatchMissingAddresses', async function () { // Number of addresses is insufficient const TOKEN_HOLDER_INVALID = [this.admin, this.address1] const TOKEN_SUPPLY_BY_HOLDERS = [10n, 100n, 1000n] await expect( this.cmtat .connect(this.admin) - .mintBatch(TOKEN_HOLDER_INVALID, TOKEN_SUPPLY_BY_HOLDERS) + .batchMint(TOKEN_HOLDER_INVALID, TOKEN_SUPPLY_BY_HOLDERS) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_MintModule_AccountsValueslengthMismatch' ) }) - it('testCannotMintBatchIfLengthMismatchTooManyAddresses', async function () { + it('testCannotbatchMintIfLengthMismatchTooManyAddresses', async function () { // There are too many addresses const TOKEN_HOLDER_INVALID = [ this.admin, @@ -234,20 +234,20 @@ function ERC20MintModuleCommon () { await expect( this.cmtat .connect(this.admin) - .mintBatch(TOKEN_HOLDER_INVALID, TOKEN_SUPPLY_BY_HOLDERS) + .batchMint(TOKEN_HOLDER_INVALID, TOKEN_SUPPLY_BY_HOLDERS) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_MintModule_AccountsValueslengthMismatch' ) }) - it('testCannotMintBatchIfTOSIsEmpty', async function () { + it('testCannotbatchMintIfTOSIsEmpty', async function () { const TOKEN_HOLDER_INVALID = [] const TOKEN_SUPPLY_BY_HOLDERS = [] await expect( this.cmtat .connect(this.admin) - .mintBatch(TOKEN_HOLDER_INVALID, TOKEN_SUPPLY_BY_HOLDERS) + .batchMint(TOKEN_HOLDER_INVALID, TOKEN_SUPPLY_BY_HOLDERS) ).to.be.revertedWithCustomError( this.cmtat, 'CMTAT_MintModule_EmptyAccounts' diff --git a/test/common/EnforcementModuleCommon.js b/test/common/EnforcementModuleCommon.js index 5dd22081..55c5b5f4 100644 --- a/test/common/EnforcementModuleCommon.js +++ b/test/common/EnforcementModuleCommon.js @@ -11,13 +11,13 @@ function EnforcementModuleCommon () { it('testAdminCanFreezeAddress', async function () { // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) // Act this.logs = await this.cmtat .connect(this.admin) .freeze(this.address1, reasonFreeze) // Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) // emits a Freeze event await expect(this.logs) .to.emit(this.cmtat, 'Freeze') @@ -26,13 +26,13 @@ function EnforcementModuleCommon () { it('testReasonParameterCanBeEmptyString', async function () { // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) // Act this.logs = await this.cmtat .connect(this.admin) .freeze(this.address1, '') // Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) // emits a Freeze event await expect(this.logs) .to.emit(this.cmtat, 'Freeze') @@ -45,7 +45,7 @@ function EnforcementModuleCommon () { .connect(this.admin) .grantRole(ENFORCER_ROLE, this.address2) // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) // Act this.logs = await this.cmtat .connect(this.address2) @@ -56,7 +56,7 @@ function EnforcementModuleCommon () { await this.cmtat.validateTransfer(this.address1, this.address2, 10) ).to.equal(false) // Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) // emits a Freeze event await expect(this.logs) @@ -68,13 +68,13 @@ function EnforcementModuleCommon () { // Arrange await this.cmtat.connect(this.admin).freeze(this.address1, reasonFreeze) // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) // Act this.logs = await this.cmtat .connect(this.admin) .unfreeze(this.address1, reasonUnfreeze) // Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) await expect(this.logs) .to.emit(this.cmtat, 'Unfreeze') .withArgs(this.admin, this.address1, reasonUnfreeze, reasonUnfreeze) @@ -87,13 +87,13 @@ function EnforcementModuleCommon () { .connect(this.admin) .grantRole(ENFORCER_ROLE, this.address2) // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) // Act this.logs = await this.cmtat .connect(this.address2) .unfreeze(this.address1, reasonUnfreeze) // Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) // emits an Unfreeze event await expect(this.logs) .to.emit(this.cmtat, 'Unfreeze') @@ -111,7 +111,7 @@ function EnforcementModuleCommon () { ) .withArgs(this.address2.address, ENFORCER_ROLE) // Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) }) it('testCannotNonEnforcerUnfreezeAddress', async function () { @@ -127,11 +127,11 @@ function EnforcementModuleCommon () { ) .withArgs(this.address2.address, ENFORCER_ROLE) // Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) }) // reverts if address1 transfers tokens to address2 when paused - it('testCannotTransferWhenFromIsFrozenWithTransfer', async function () { + it('testCannotTransferWhenFromIsisFrozenWithTransfer', async function () { // Act await this.cmtat.connect(this.admin).freeze(this.address1, reasonFreeze) // Assert @@ -160,7 +160,7 @@ function EnforcementModuleCommon () { }) // reverts if address3 transfers tokens from address1 to this.address2 when paused - it('testCannotTransferTokenWhenToIsFrozenWithTransferFrom', async function () { + it('testCannotTransferTokenWhenToIsisFrozenWithTransferFrom', async function () { // Arrange // Define allowance await this.cmtat.connect(this.address3).approve(this.address1, 20) @@ -193,28 +193,28 @@ function EnforcementModuleCommon () { }) // Improvement: check the return value but it is not possible to get the return value of a state modifying function - it('testFreezeDoesNotEmitEventIfAddressAlreadyFrozen', async function () { + it('testFreezeDoesNotEmitEventIfAddressAlreadyisFrozen', async function () { // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) // Arrange await this.cmtat.connect(this.admin).freeze(this.address1, reasonFreeze) // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) // Act this.logs = await this.cmtat .connect(this.admin) .freeze(this.address1, reasonFreeze) // Assert await expect(this.logs).to.not.emit(this.cmtat, 'Freeze') - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) }) // Improvement: check the return value but it is not possible to get the return value of a state modifying function - it('testUnfreezeDoesNotEmitEventIfAddressAlreadyUnfrozen', async function () { + it('testUnfreezeDoesNotEmitEventIfAddressAlreadyUnisFrozen', async function () { // Arrange await this.cmtat.connect(this.admin).freeze(this.address1, reasonFreeze) // Arrange - Assert - expect(await this.cmtat.frozen(this.address1)).to.equal(true) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) await this.cmtat .connect(this.admin) .unfreeze(this.address1, reasonFreeze) @@ -225,7 +225,7 @@ function EnforcementModuleCommon () { .unfreeze(this.address1, reasonUnfreeze) // Assert await expect(this.logs).to.not.emit(this.cmtat, 'Unfreeze') - expect(await this.cmtat.frozen(this.address1)).to.equal(false) + expect(await this.cmtat.isFrozen(this.address1)).to.equal(false) }) }) } From 15ee4bc19a6718572b7ef130f7aaa5d516a87e5f Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Tue, 18 Feb 2025 13:18:06 +0100 Subject: [PATCH 23/26] Rename validateTransfer in canTransfer, remove IERC1404Wrapper, add IERC3643Compliance --- README.md | 16 ++++++---- contracts/interfaces/IERC3643Partial.sol | 11 +++++++ .../{draft-IERC1404 => }/draft-IERC1404.sol | 9 ++++++ .../draft-IERC1404/draft-IERC1404EnumCode.sol | 15 ---------- .../draft-IERC1404/draft-IERC1404Wrapper.sol | 18 ----------- contracts/interfaces/engine/IRuleEngine.sol | 5 ++-- contracts/mocks/RuleEngine/RuleEngineMock.sol | 4 +-- contracts/mocks/RuleEngine/RuleMock.sol | 2 +- .../mocks/RuleEngine/interfaces/IRule.sol | 6 ++-- .../controllers/ValidationEngineModule.sol | 30 ++++++++++--------- test/common/EnforcementModuleCommon.js | 2 +- test/common/PauseModuleCommon.js | 2 +- .../ValidationModuleCommon.js | 12 ++++---- 13 files changed, 64 insertions(+), 68 deletions(-) rename contracts/interfaces/{draft-IERC1404 => }/draft-IERC1404.sol (66%) delete mode 100644 contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol delete mode 100644 contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol diff --git a/README.md b/README.md index c45dd30c..3d2419b5 100644 --- a/README.md +++ b/README.md @@ -46,12 +46,10 @@ The [ERC-3643](https://eips.ethereum.org/EIPS/eip-3643) is an official Ethereum ERC-3643 enforces identity management as a core component of the standards by using a decentralized identity system called [onchainid](https://www.onchainid.com/). -While CMTAT does not include directly the identify management system, it shares with ERC-3643 several same functions. +While CMTAT does not include directly the identity management system, it shares with ERC-3643 several same functions. The interface is available in [IERC3643Partial.sol](./contracts/interfaces/IERC3643Partial.sol) To represent the level of similarity between ERC-3643 interface and CMTAT functionnalities, we have created three level of conformity. -The interface is available in [IERC3643Partial.sol](./contracts/interfaces/IERC3643Partial.sol) - If you want to use CMTAT to create a version implementing all functions from ERC-3643, you can create it through a dedicated deployment version (similar to what has been done for UUPS and ERC-1363). **Level** @@ -90,7 +88,7 @@ The main reason the argument names change is because CMTAT relies on OpenZeppeli | ` batchMint(address[] calldata _toList, uint256[] calldata _amounts) external;` | MintModule | `function mintBatch(address[] calldata accounts,uint256[] calldata values) ` | 2 | | `burn(address _userAddress, uint256 _amount) external` | BurnModule | `function burn(address account,uint256 value)` | 2 | | `batchBurn(address[] calldata _userAddresses, uint256[] calldata _amounts) external` | BurnModule | `function burnBatch(address[] calldata accounts,uint256[] calldata values,string calldata reason)` | 2 | -| `function batchForcedTransfer(address[] calldata _fromList, address[] calldata _toList, uint256[] calldata _amounts) external` | BurnModule | `function forcedTransfer(address account, address destination, uint256 value) external returns (bool)` | 2 | +| `batchForcedTransfer(address[] calldata _fromList, address[] calldata _toList, uint256[] calldata _amounts) external` | BurnModule | `function forcedTransfer(address account, address destination, uint256 value) external returns (bool)` | 2 | ##### Enforcement @@ -98,6 +96,14 @@ The main reason the argument names change is because CMTAT relies on OpenZeppeli | :-------------------------------- | :-------------------------- | :--------- | | ` isFrozen(address _userAddress)` | `isFrozen(address account)` | 2 | +##### Validation + +Note: `canTransfer`is defined for the compliance contract in ERC-3643. + +| **ERC-3643** | **CMTAT 3.0** | **Result** | +| :----------------------------------------------------------- | :-------------------------- | :--------- | +| `canTransfer(address _from, address _to, uint256 _amount) external view returns (bool)` | ` function canTransfer` | 3 | + #### ERC-7551 This section presents a correspondence table between [ERC-7551](https://ethereum-magicians.org/t/erc-7551-crypto-security-token-smart-contract-interface-ewpg/16416) and their equivalent functions inside CMTAT. @@ -115,7 +121,7 @@ The interface is supposed to work on top of additional standards that cover the | 5 | Forced transfersTransfer `amount` tokens to `to` without requiring the consent of `fro`m | forceTransferFrom | ✅
    Function forceTransfer | | 6 | Token supply managementreduce the balance of `tokenHolder` by `amount` without increasing the amount of tokens of any other holder | destroyTokens | ✅
    Function burn | | 7 | Token supply managementincrease the balance of `to` by `amount` without decreasing the amount of tokens from any other holder. | issue | ✅
    Function mint and mintBatch | -| 8 | Transfer compliance
    Check if a transfer is valid | `canTransfer() `and a `canTransferFrom()` | ✅
    With [ERC-1404](https://github.com/ethereum/eips/issues/1404) | +| 8 | Transfer compliance
    Check if a transfer is valid | `canTransfer() `and a `canTransferFrom()` | ✅
    With [ERC-1404](https://github.com/ethereum/eips/issues/1404) and IERC3643Compliance (canTransfer) | ### Modules diff --git a/contracts/interfaces/IERC3643Partial.sol b/contracts/interfaces/IERC3643Partial.sol index 7e401ef2..5d4c1923 100644 --- a/contracts/interfaces/IERC3643Partial.sol +++ b/contracts/interfaces/IERC3643Partial.sol @@ -42,3 +42,14 @@ interface IERC3643Burn{ function batchBurn(address[] calldata accounts,uint256[] calldata values) external; } +interface IERC3643Compliance { + /** + * @dev Returns true if the transfer is valid, and false otherwise. + */ + function canTransfer( + address _from, + address _to, + uint256 _amount + ) external view returns (bool isValid); +} + diff --git a/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol b/contracts/interfaces/draft-IERC1404.sol similarity index 66% rename from contracts/interfaces/draft-IERC1404/draft-IERC1404.sol rename to contracts/interfaces/draft-IERC1404.sol index 960856dc..d9c04255 100644 --- a/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol +++ b/contracts/interfaces/draft-IERC1404.sol @@ -6,6 +6,15 @@ pragma solidity ^0.8.20; * @dev Contrary to the ERC-1404, this interface does not inherit from the ERC20 interface */ interface IERC1404 { + /* + * @dev leave the code 4-9 free/unused for further additions in your ruleEngine implementation + */ + enum REJECTED_CODE_BASE { + TRANSFER_OK, + TRANSFER_REJECTED_PAUSED, + TRANSFER_REJECTED_FROM_FROZEN, + TRANSFER_REJECTED_TO_FROZEN + } /** * @dev See ERC-1404 * diff --git a/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol b/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol deleted file mode 100644 index 6f1e3a6f..00000000 --- a/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol +++ /dev/null @@ -1,15 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -interface IERC1404EnumCode { - /* - * @dev leave the code 4-9 free/unused for further additions in your ruleEngine implementation - */ - enum REJECTED_CODE_BASE { - TRANSFER_OK, - TRANSFER_REJECTED_PAUSED, - TRANSFER_REJECTED_FROM_FROZEN, - TRANSFER_REJECTED_TO_FROZEN - } -} diff --git a/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol b/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol deleted file mode 100644 index 571b6639..00000000 --- a/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol +++ /dev/null @@ -1,18 +0,0 @@ -//SPDX-License-Identifier: MPL-2.0 - -pragma solidity ^0.8.20; - -import "./draft-IERC1404.sol"; -import "./draft-IERC1404EnumCode.sol"; - -interface IERC1404Wrapper is IERC1404, IERC1404EnumCode { - - /** - * @dev Returns true if the transfer is valid, and false otherwise. - */ - function validateTransfer( - address _from, - address _to, - uint256 _amount - ) external view returns (bool isValid); -} diff --git a/contracts/interfaces/engine/IRuleEngine.sol b/contracts/interfaces/engine/IRuleEngine.sol index b98ba4ab..2a2ea23e 100644 --- a/contracts/interfaces/engine/IRuleEngine.sol +++ b/contracts/interfaces/engine/IRuleEngine.sol @@ -2,12 +2,13 @@ pragma solidity ^0.8.20; -import {IERC1404Wrapper} from "../draft-IERC1404/draft-IERC1404Wrapper.sol"; +import {IERC1404} from "../draft-IERC1404.sol"; +import {IERC3643Compliance} from "../IERC3643Partial.sol"; /* * @dev minimum interface to define a RuleEngine */ -interface IRuleEngine is IERC1404Wrapper { +interface IRuleEngine is IERC1404, IERC3643Compliance { /** * @dev Returns true if the operation is a success, and false otherwise. */ diff --git a/contracts/mocks/RuleEngine/RuleEngineMock.sol b/contracts/mocks/RuleEngine/RuleEngineMock.sol index 2c5c5943..1a82a517 100644 --- a/contracts/mocks/RuleEngine/RuleEngineMock.sol +++ b/contracts/mocks/RuleEngine/RuleEngineMock.sol @@ -58,7 +58,7 @@ contract RuleEngineMock is IRuleEngineMock { return uint8(REJECTED_CODE_BASE.TRANSFER_OK); } - function validateTransfer( + function canTransfer( address _from, address _to, uint256 _amount @@ -73,7 +73,7 @@ contract RuleEngineMock is IRuleEngineMock { function operateOnTransfer( address _from, address _to, uint256 _amount) view public override returns (bool){ - return validateTransfer(_from, _to, _amount); + return canTransfer(_from, _to, _amount); } /** diff --git a/contracts/mocks/RuleEngine/RuleMock.sol b/contracts/mocks/RuleEngine/RuleMock.sol index 440326fc..a8fce0c3 100644 --- a/contracts/mocks/RuleEngine/RuleMock.sol +++ b/contracts/mocks/RuleEngine/RuleMock.sol @@ -10,7 +10,7 @@ import {CodeList} from "./CodeList.sol"; * @title a mock for testing, not suitable for production */ contract RuleMock is IRule, CodeList { - function validateTransfer( + function canTransfer( address _from, address _to, uint256 _amount diff --git a/contracts/mocks/RuleEngine/interfaces/IRule.sol b/contracts/mocks/RuleEngine/interfaces/IRule.sol index b0668542..4987bed1 100644 --- a/contracts/mocks/RuleEngine/interfaces/IRule.sol +++ b/contracts/mocks/RuleEngine/interfaces/IRule.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; -import {IERC1404Wrapper} from "../../../interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol"; - -interface IRule is IERC1404Wrapper { +import {IERC1404} from "../../../interfaces/draft-IERC1404.sol"; +import {IERC3643Compliance} from "../../../interfaces/IERC3643Partial.sol"; +interface IRule is IERC1404, IERC3643Compliance { /** * @dev Returns true if the restriction code exists, and false otherwise. */ diff --git a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol index a1e62be1..4e966474 100644 --- a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol @@ -8,7 +8,8 @@ import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; import {PauseModule} from "../core/PauseModule.sol"; import {EnforcementModule} from "../core/EnforcementModule.sol"; import {Errors} from "../../../libraries/Errors.sol"; -import {IERC1404Wrapper} from "../../../interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol"; +import {IERC1404} from "../../../interfaces/draft-IERC1404.sol"; +import {IERC3643Compliance} from "../../../interfaces/IERC3643Partial.sol"; import {IRuleEngine} from "../../../interfaces/engine/IRuleEngine.sol"; /** * @dev Validation module. @@ -20,7 +21,8 @@ abstract contract ValidationModule is ContextUpgradeable, PauseModule, EnforcementModule, - IERC1404Wrapper + IERC1404, + IERC3643Compliance { /* ============ State Variables ============ */ string constant TEXT_TRANSFER_OK = "No restriction"; @@ -81,21 +83,21 @@ abstract contract ValidationModule is uint8 restrictionCode ) external view override returns (string memory message) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); - if (restrictionCode == uint8(REJECTED_CODE_BASE.TRANSFER_OK)) { + if (restrictionCode == uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_OK)) { return TEXT_TRANSFER_OK; } else if ( restrictionCode == - uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED) + uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED) ) { return TEXT_TRANSFER_REJECTED_PAUSED; } else if ( restrictionCode == - uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN) + uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN) ) { return TEXT_TRANSFER_REJECTED_FROM_FROZEN; } else if ( restrictionCode == - uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN) + uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN) ) { return TEXT_TRANSFER_REJECTED_TO_FROZEN; } else if (address($._ruleEngine) != address(0)) { @@ -119,20 +121,20 @@ abstract contract ValidationModule is ) public view override returns (uint8 code) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); if (paused()) { - return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED); + return uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_REJECTED_PAUSED); } else if (isFrozen(from)) { - return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN); + return uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_REJECTED_FROM_FROZEN); } else if (isFrozen(to)) { - return uint8(REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN); + return uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN); } else if (address($._ruleEngine) != address(0)) { return $._ruleEngine.detectTransferRestriction(from, to, amount); } else { - return uint8(REJECTED_CODE_BASE.TRANSFER_OK); + return uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_OK); } } - function validateTransfer( + function canTransfer( address from, address to, uint256 amount @@ -140,7 +142,7 @@ abstract contract ValidationModule is if (!_validateTransferByModule(from, to, amount)) { return false; } else { - return _validateTransfer(from, to, amount); + return _canTransfer(from, to, amount); } } @@ -149,14 +151,14 @@ abstract contract ValidationModule is INTERNAL/PRIVATE FUNCTIONS //////////////////////////////////////////////////////////////*/ /* ============ View functions ============ */ - function _validateTransfer( + function _canTransfer( address from, address to, uint256 amount ) internal view returns (bool) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); if (address($._ruleEngine) != address(0)) { - return $._ruleEngine.validateTransfer(from, to, amount); + return $._ruleEngine.canTransfer(from, to, amount); } else{ return true; } diff --git a/test/common/EnforcementModuleCommon.js b/test/common/EnforcementModuleCommon.js index 55c5b5f4..6e2b3e28 100644 --- a/test/common/EnforcementModuleCommon.js +++ b/test/common/EnforcementModuleCommon.js @@ -53,7 +53,7 @@ function EnforcementModuleCommon () { // Act + Assert // Act + Assert expect( - await this.cmtat.validateTransfer(this.address1, this.address2, 10) + await this.cmtat.canTransfer(this.address1, this.address2, 10) ).to.equal(false) // Assert expect(await this.cmtat.isFrozen(this.address1)).to.equal(true) diff --git a/test/common/PauseModuleCommon.js b/test/common/PauseModuleCommon.js index 337e5901..93691cb7 100644 --- a/test/common/PauseModuleCommon.js +++ b/test/common/PauseModuleCommon.js @@ -125,7 +125,7 @@ function PauseModuleCommon () { await this.cmtat.connect(this.admin).pause() // Act + Assert expect( - await this.cmtat.validateTransfer( + await this.cmtat.canTransfer( this.address1, this.address2, AMOUNT_TO_TRANSFER diff --git a/test/common/ValidationModule/ValidationModuleCommon.js b/test/common/ValidationModule/ValidationModuleCommon.js index 8ec9f09e..2088bc02 100644 --- a/test/common/ValidationModule/ValidationModuleCommon.js +++ b/test/common/ValidationModule/ValidationModuleCommon.js @@ -19,12 +19,12 @@ function ValidationModuleCommon () { ) } }) - it('testCanValidateTransferWithoutRuleEngine', async function () { + it('testCancanTransferWithoutRuleEngine', async function () { // Arrange await this.cmtat.connect(this.admin).setRuleEngine(ZERO_ADDRESS) // Act + Assert expect( - await this.cmtat.validateTransfer(this.address1, this.address2, 10) + await this.cmtat.canTransfer(this.address1, this.address2, 10) ).to.equal(true) }) @@ -38,7 +38,7 @@ function ValidationModuleCommon () { ) ).to.equal(0) expect( - await this.cmtat.validateTransfer(this.address1, this.address2, 11) + await this.cmtat.canTransfer(this.address1, this.address2, 11) ).to.equal(true) }) @@ -60,7 +60,7 @@ function ValidationModuleCommon () { ).to.equal(10n) expect( - await this.cmtat.validateTransfer( + await this.cmtat.canTransfer( this.address1, this.address2, RULE_MOCK_AMOUNT_MAX + 1 @@ -87,7 +87,7 @@ function ValidationModuleCommon () { const AMOUNT_TO_TRANSFER = 11n // Act expect( - await this.cmtat.validateTransfer( + await this.cmtat.canTransfer( this.address1, this.address2, AMOUNT_TO_TRANSFER @@ -114,7 +114,7 @@ function ValidationModuleCommon () { const AMOUNT_TO_TRANSFER = RULE_MOCK_AMOUNT_MAX + 1 // Act expect( - await this.cmtat.validateTransfer( + await this.cmtat.canTransfer( this.address1, this.address2, AMOUNT_TO_TRANSFER From b3fb52530d7389a4cc353fd805732dbbb17f347f Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Tue, 18 Feb 2025 14:02:17 +0100 Subject: [PATCH 24/26] Create interface to share spend event between ERC20Base and ERC20Burn --- contracts/interfaces/IERC20Allowance.sol | 16 ++++++++++++++++ .../controllers/ValidationEngineModule.sol | 6 +++--- .../modules/wrapper/core/ERC20BaseModule.sol | 9 ++------- .../modules/wrapper/core/ERC20BurnModule.sol | 12 ++++-------- 4 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 contracts/interfaces/IERC20Allowance.sol diff --git a/contracts/interfaces/IERC20Allowance.sol b/contracts/interfaces/IERC20Allowance.sol new file mode 100644 index 00000000..0d3fe724 --- /dev/null +++ b/contracts/interfaces/IERC20Allowance.sol @@ -0,0 +1,16 @@ + //SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +/** +* @notice Interface to emit spend events +*/ +interface IERC20Allowance { + /* ============ Events ============ */ + /** + * @notice Emitted when the specified `spender` spends the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance. + * @dev The allowance can be also "spend" with the function BurnFrom, but in this case, the emitted event is BurnFrom. + */ + event Spend(address indexed owner, address indexed spender, uint256 value); +} + diff --git a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol index 4e966474..09a40040 100644 --- a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol @@ -139,7 +139,7 @@ abstract contract ValidationModule is address to, uint256 amount ) public view override returns (bool) { - if (!_validateTransferByModule(from, to, amount)) { + if (!_canTransferByModule(from, to, amount)) { return false; } else { return _canTransfer(from, to, amount); @@ -164,7 +164,7 @@ abstract contract ValidationModule is } } - function _validateTransferByModule( + function _canTransferByModule( address from, address to, uint256 /*amount*/ @@ -191,7 +191,7 @@ abstract contract ValidationModule is } function _operateOnTransfer(address from, address to, uint256 amount) internal returns (bool){ - if (!_validateTransferByModule(from, to, amount)){ + if (!_canTransferByModule(from, to, amount)){ return false; } else{ ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index b742f121..74d8859a 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -6,6 +6,7 @@ import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; // required OZ imports here import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import {IERC3643ERC20Base} from "../../../interfaces/IERC3643Partial.sol"; +import {IERC20Allowance} from "../../../interfaces/IERC20Allowance.sol"; import {Errors} from "../../../libraries/Errors.sol"; /** @@ -16,13 +17,7 @@ import {Errors} from "../../../libraries/Errors.sol"; * Inherits from ERC-20 * */ -abstract contract ERC20BaseModule is ERC20Upgradeable, IERC3643ERC20Base, AuthorizationModule { - /* ============ Events ============ */ - /** - * @notice Emitted when the specified `spender` spends the specified `value` tokens owned by the specified `owner` reducing the corresponding allowance. - * @dev The allowance can be also "spend" with the function BurnFrom, but in this case, the emitted event is BurnFrom. - */ - event Spend(address indexed owner, address indexed spender, uint256 value); +abstract contract ERC20BaseModule is ERC20Upgradeable, IERC20Allowance, IERC3643ERC20Base, AuthorizationModule { event Name(string indexed newNameIndexed, string newName); event Symbol(string indexed newSymbolIndexed, string newSymbol); /* ============ ERC-7201 ============ */ diff --git a/contracts/modules/wrapper/core/ERC20BurnModule.sol b/contracts/modules/wrapper/core/ERC20BurnModule.sol index 0c25671b..683c78c7 100644 --- a/contracts/modules/wrapper/core/ERC20BurnModule.sol +++ b/contracts/modules/wrapper/core/ERC20BurnModule.sol @@ -6,6 +6,7 @@ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ import {AuthorizationModule} from "../../security/AuthorizationModule.sol"; import {IBurnFromERC20} from "../../../interfaces/IMintToken.sol"; import {IERC3643Burn} from "../../../interfaces/IERC3643Partial.sol"; +import {IERC20Allowance} from "../../../interfaces/IERC20Allowance.sol"; import {Errors} from "../../../libraries/Errors.sol"; /** * @title ERC20Burn module. @@ -13,7 +14,7 @@ import {Errors} from "../../../libraries/Errors.sol"; * * Contains all burn functions, inherits from ERC-20 */ -abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, IERC3643Burn, AuthorizationModule { +abstract contract ERC20BurnModule is ERC20Upgradeable, IERC20Allowance, IBurnFromERC20, IERC3643Burn, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE"); bytes32 public constant BURNER_FROM_ROLE = keccak256("BURNER_FROM_ROLE"); @@ -136,18 +137,13 @@ abstract contract ERC20BurnModule is ERC20Upgradeable, IBurnFromERC20, IERC3643B { // Allowance check address sender = _msgSender(); - uint256 currentAllowance = allowance(account, sender); - // Generate ERC-6093 error if insufficient allowance - require(currentAllowance >= value, ERC20InsufficientAllowance(sender, currentAllowance, value) ); - // Update allowance - unchecked { - _approve(account, sender, currentAllowance - value); - } + ERC20Upgradeable._spendAllowance(account, sender, value ); // burn // We also emit a burn event since its a burn operation _burnCommon(account, value, "burnFrom"); // Specific event for the operation emit BurnFrom(account, sender, value); + emit Spend(account, sender, value); } From b9e726127c25e0936a06ab70aaedc8febe24de23 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Tue, 18 Feb 2025 16:08:27 +0100 Subject: [PATCH 25/26] Add RuleEngine check with approve + rename function for IERC3643 --- contracts/interfaces/IERC3643Partial.sol | 17 ++++-- contracts/interfaces/engine/IRuleEngine.sol | 14 ++--- contracts/libraries/Errors.sol | 4 +- contracts/mocks/RuleEngine/RuleEngineMock.sol | 40 ++++++++----- .../mocks/RuleEngine/interfaces/IRule.sol | 4 +- contracts/modules/CMTAT_BASE.sol | 58 ++++++++++++------- contracts/modules/CMTAT_ERC1363_BASE.sol | 4 ++ .../controllers/ValidationEngineModule.sol | 50 +++++++++++----- .../modules/wrapper/core/ERC20BaseModule.sol | 2 +- 9 files changed, 127 insertions(+), 66 deletions(-) diff --git a/contracts/interfaces/IERC3643Partial.sol b/contracts/interfaces/IERC3643Partial.sol index 5d4c1923..aa755d79 100644 --- a/contracts/interfaces/IERC3643Partial.sol +++ b/contracts/interfaces/IERC3643Partial.sol @@ -36,20 +36,27 @@ interface IERC3643Mint{ } interface IERC3643Burn{ // transfer actions - function forcedTransfer(address account, address destination, uint256 value) external returns (bool); + function forcedTransfer(address account, address to, uint256 value) external returns (bool); function burn(address account,uint256 value) external; // batch functions function batchBurn(address[] calldata accounts,uint256[] calldata values) external; } -interface IERC3643Compliance { +interface IERC3643ComplianceRead { /** * @dev Returns true if the transfer is valid, and false otherwise. */ function canTransfer( - address _from, - address _to, - uint256 _amount + address from, + address to, + uint256 value ) external view returns (bool isValid); } +interface IERC3643ComplianceWrite { + /** + * @dev Returns true if the transfer is valid, and false otherwise. + */ + function transferred(address from, address to, uint256 value) external returns (bool isValid); +} + diff --git a/contracts/interfaces/engine/IRuleEngine.sol b/contracts/interfaces/engine/IRuleEngine.sol index 2a2ea23e..6eadc832 100644 --- a/contracts/interfaces/engine/IRuleEngine.sol +++ b/contracts/interfaces/engine/IRuleEngine.sol @@ -3,19 +3,19 @@ pragma solidity ^0.8.20; import {IERC1404} from "../draft-IERC1404.sol"; -import {IERC3643Compliance} from "../IERC3643Partial.sol"; +import {IERC3643ComplianceRead, IERC3643ComplianceWrite} from "../IERC3643Partial.sol"; /* * @dev minimum interface to define a RuleEngine */ -interface IRuleEngine is IERC1404, IERC3643Compliance { +interface IRuleEngine is IERC1404, IERC3643ComplianceRead, IERC3643ComplianceWrite { /** * @dev Returns true if the operation is a success, and false otherwise. */ - function operateOnTransfer( - address _from, - address _to, - uint256 _amount - ) external returns (bool isValid); + function canApprove( + address owner, + address spender, + uint256 value + ) external view returns (bool isValid); } diff --git a/contracts/libraries/Errors.sol b/contracts/libraries/Errors.sol index 5d9fdeec..9406f4e8 100644 --- a/contracts/libraries/Errors.sol +++ b/contracts/libraries/Errors.sol @@ -6,9 +6,9 @@ pragma solidity ^0.8.20; * @dev CMTAT custom errors */ library Errors { - // CMTAT + // CMTAT Base error CMTAT_InvalidTransfer(address from, address to, uint256 amount); - + error CMTAT_InvalidApproval(address owner, address spender, uint256 value); // SnapshotModule error CMTAT_SnapshotModule_SameValue(); diff --git a/contracts/mocks/RuleEngine/RuleEngineMock.sol b/contracts/mocks/RuleEngine/RuleEngineMock.sol index 1a82a517..085e505e 100644 --- a/contracts/mocks/RuleEngine/RuleEngineMock.sol +++ b/contracts/mocks/RuleEngine/RuleEngineMock.sol @@ -37,16 +37,16 @@ contract RuleEngineMock is IRuleEngineMock { } function detectTransferRestriction( - address _from, - address _to, - uint256 _amount + address from, + address to, + uint256 value ) public view override returns (uint8) { uint256 ruleArrayLength = _rules.length; for (uint256 i; i < ruleArrayLength; ) { uint8 restriction = _rules[i].detectTransferRestriction( - _from, - _to, - _amount + from, + to, + value ); if (restriction != uint8(REJECTED_CODE_BASE.TRANSFER_OK)) { return restriction; @@ -59,21 +59,33 @@ contract RuleEngineMock is IRuleEngineMock { } function canTransfer( - address _from, - address _to, - uint256 _amount + address from, + address to, + uint256 value ) public view override returns (bool) { - return detectTransferRestriction(_from, _to, _amount) == 0; + return detectTransferRestriction(from, to, value) == 0; } + + function canApprove( + address /* from */, + address /* to */, + uint256 /* value */ + ) public pure override returns (bool) { + return true; + } + + + + /* * @dev * Warning: if you want to use this mock, you have to restrict the access to this function through an an access control */ - function operateOnTransfer( address _from, - address _to, - uint256 _amount) view public override returns (bool){ - return canTransfer(_from, _to, _amount); + function transferred( address from, + address to, + uint256 value) view public override returns (bool){ + return canTransfer(from, to, value); } /** diff --git a/contracts/mocks/RuleEngine/interfaces/IRule.sol b/contracts/mocks/RuleEngine/interfaces/IRule.sol index 4987bed1..1c9155ac 100644 --- a/contracts/mocks/RuleEngine/interfaces/IRule.sol +++ b/contracts/mocks/RuleEngine/interfaces/IRule.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {IERC1404} from "../../../interfaces/draft-IERC1404.sol"; -import {IERC3643Compliance} from "../../../interfaces/IERC3643Partial.sol"; -interface IRule is IERC1404, IERC3643Compliance { +import {IERC3643ComplianceRead} from "../../../interfaces/IERC3643Partial.sol"; +interface IRule is IERC1404, IERC3643ComplianceRead { /** * @dev Returns true if the restriction code exists, and false otherwise. */ diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index 4186a665..4963c99e 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -2,15 +2,17 @@ pragma solidity ^0.8.20; -// required OZ imports here +/* ==== OpenZeppelin === */ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; -// Wrapper -import {BaseModule} from "./wrapper/core/BaseModule.sol"; +/* ==== Wrapper === */ +// ERC20 import {ERC20BurnModule} from "./wrapper/core/ERC20BurnModule.sol"; import {ERC20MintModule} from "./wrapper/core/ERC20MintModule.sol"; -import {EnforcementModule} from "./wrapper/core/EnforcementModule.sol"; import {ERC20BaseModule, ERC20Upgradeable} from "./wrapper/core/ERC20BaseModule.sol"; +// Other +import {BaseModule} from "./wrapper/core/BaseModule.sol"; +import {EnforcementModule} from "./wrapper/core/EnforcementModule.sol"; import {PauseModule} from "./wrapper/core/PauseModule.sol"; import {ValidationModule} from "./wrapper/controllers/ValidationEngineModule.sol"; import {MetaTxModule, ERC2771ContextUpgradeable} from "./wrapper/extensions/MetaTxModule.sol"; @@ -19,7 +21,7 @@ import {DocumentModule} from "./wrapper/extensions/DocumentEngineModule.sol"; import {SnapshotEngineModule} from "./wrapper/extensions/SnapshotEngineModule.sol"; // Security import {AuthorizationModule} from "./security/AuthorizationModule.sol"; -// Interface and other library + /* ==== Interface and other library === */ import {ICMTATConstructor} from "../interfaces/ICMTATConstructor.sol"; import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; import {Errors} from "../libraries/Errors.sol"; @@ -156,6 +158,8 @@ abstract contract CMTAT_BASE is Override ERC20Upgradeable, ERC20BaseModule //////////////////////////////////////////////////////////////*/ + /* ============ View Functions ============ */ + /** * @notice Returns the number of decimals used to get its user representation. */ @@ -169,22 +173,6 @@ abstract contract CMTAT_BASE is return ERC20BaseModule.decimals(); } - /* - * @inheritdoc ERC20BaseModule - */ - function transferFrom( - address sender, - address recipient, - uint256 amount - ) - public - virtual - override(ERC20Upgradeable, ERC20BaseModule) - returns (bool) - { - return ERC20BaseModule.transferFrom(sender, recipient, amount); - } - /** * @notice Returns the name of the token. @@ -201,6 +189,33 @@ abstract contract CMTAT_BASE is return ERC20BaseModule.symbol(); } + /* ============ State Functions ============ */ + /* + * @inheritdoc ERC20BaseModule + */ + function transferFrom( + address from, + address to, + uint256 value + ) + public + virtual + override(ERC20Upgradeable, ERC20BaseModule) + returns (bool) + { + return ERC20BaseModule.transferFrom(from, to, value); + } + + function approve(address spender, uint256 value) public override virtual returns (bool) { + address owner = _msgSender(); + if (!ValidationModule._canApprove(owner, spender, value)) { + revert Errors.CMTAT_InvalidApproval(owner, spender, value); + } + // We call directly the internal OpenZeppelin function _approve + // The reason is that the public function adds only the owner address recovery + ERC20Upgradeable._approve(owner, spender, value); + return true; + } /*////////////////////////////////////////////////////////////// Functions requiring several modules @@ -247,6 +262,7 @@ abstract contract CMTAT_BASE is } + /*////////////////////////////////////////////////////////////// METAXTX MODULE //////////////////////////////////////////////////////////////*/ diff --git a/contracts/modules/CMTAT_ERC1363_BASE.sol b/contracts/modules/CMTAT_ERC1363_BASE.sol index c3b6f127..ccfd5ca7 100644 --- a/contracts/modules/CMTAT_ERC1363_BASE.sol +++ b/contracts/modules/CMTAT_ERC1363_BASE.sol @@ -36,6 +36,10 @@ abstract contract CMTAT_ERC1363_BASE is ERC1363Upgradeable,CMTAT_BASE { return CMTAT_BASE.transferFrom(sender, recipient, amount); } + function approve(address spender, uint256 value) public override(ERC20Upgradeable, CMTAT_BASE, IERC20) virtual returns (bool) { + return CMTAT_BASE.approve(spender, value); + } + function decimals() public view diff --git a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol index 09a40040..f21f302a 100644 --- a/contracts/modules/wrapper/controllers/ValidationEngineModule.sol +++ b/contracts/modules/wrapper/controllers/ValidationEngineModule.sol @@ -9,7 +9,7 @@ import {PauseModule} from "../core/PauseModule.sol"; import {EnforcementModule} from "../core/EnforcementModule.sol"; import {Errors} from "../../../libraries/Errors.sol"; import {IERC1404} from "../../../interfaces/draft-IERC1404.sol"; -import {IERC3643Compliance} from "../../../interfaces/IERC3643Partial.sol"; +import {IERC3643ComplianceRead} from "../../../interfaces/IERC3643Partial.sol"; import {IRuleEngine} from "../../../interfaces/engine/IRuleEngine.sol"; /** * @dev Validation module. @@ -22,7 +22,7 @@ abstract contract ValidationModule is PauseModule, EnforcementModule, IERC1404, - IERC3643Compliance + IERC3643ComplianceRead { /* ============ State Variables ============ */ string constant TEXT_TRANSFER_OK = "No restriction"; @@ -111,13 +111,13 @@ abstract contract ValidationModule is * @dev ERC1404 check if _value token can be transferred from _from to _to * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to - * @param amount uint256 the amount of tokens to be transferred + * @param value uint256 the amount of tokens to be transferred * @return code of the rejection reason */ function detectTransferRestriction( address from, address to, - uint256 amount + uint256 value ) public view override returns (uint8 code) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); if (paused()) { @@ -127,7 +127,7 @@ abstract contract ValidationModule is } else if (isFrozen(to)) { return uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_REJECTED_TO_FROZEN); } else if (address($._ruleEngine) != address(0)) { - return $._ruleEngine.detectTransferRestriction(from, to, amount); + return $._ruleEngine.detectTransferRestriction(from, to, value); } else { return uint8(IERC1404.REJECTED_CODE_BASE.TRANSFER_OK); @@ -137,12 +137,23 @@ abstract contract ValidationModule is function canTransfer( address from, address to, - uint256 amount + uint256 value ) public view override returns (bool) { - if (!_canTransferByModule(from, to, amount)) { + if (!_canTransferByModule(from, to, value)) { return false; } else { - return _canTransfer(from, to, amount); + return _canTransfer(from, to, value); + } + } + + function canApprove( + address owner, address spender, uint256 value + ) public view returns (bool) { + ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); + if (address($._ruleEngine) != address(0)) { + return $._ruleEngine.canApprove(owner, spender, value); + } else{ + return true; } } @@ -154,11 +165,11 @@ abstract contract ValidationModule is function _canTransfer( address from, address to, - uint256 amount + uint256 value ) internal view returns (bool) { ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); if (address($._ruleEngine) != address(0)) { - return $._ruleEngine.canTransfer(from, to, amount); + return $._ruleEngine.canTransfer(from, to, value); } else{ return true; } @@ -167,7 +178,7 @@ abstract contract ValidationModule is function _canTransferByModule( address from, address to, - uint256 /*amount*/ + uint256 /*value*/ ) internal view returns (bool) { if (paused() || isFrozen(from) || isFrozen(to)) { return false; @@ -190,19 +201,30 @@ abstract contract ValidationModule is emit RuleEngine(ruleEngine_); } - function _operateOnTransfer(address from, address to, uint256 amount) internal returns (bool){ - if (!_canTransferByModule(from, to, amount)){ + function _operateOnTransfer(address from, address to, uint256 value) internal returns (bool){ + if (!_canTransferByModule(from, to, value)){ return false; } else{ ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); if (address($._ruleEngine) != address(0)){ - return $._ruleEngine.operateOnTransfer(from, to, amount); + return $._ruleEngine.transferred(from, to, value); }else{ return true; } } } + + function _canApprove(address owner, address spender, uint256 value) internal view returns (bool){ + ValidationModuleInternalStorage storage $ = _getValidationModuleInternalStorage(); + if (address($._ruleEngine) != address(0)){ + return $._ruleEngine.canApprove(owner, spender, value); + }else{ + return true; + } + } + + /* ============ ERC-7201 ============ */ function _getValidationModuleInternalStorage() internal pure returns (ValidationModuleInternalStorage storage $) { assembly { diff --git a/contracts/modules/wrapper/core/ERC20BaseModule.sol b/contracts/modules/wrapper/core/ERC20BaseModule.sol index 74d8859a..3c3dd67e 100644 --- a/contracts/modules/wrapper/core/ERC20BaseModule.sol +++ b/contracts/modules/wrapper/core/ERC20BaseModule.sol @@ -127,7 +127,7 @@ abstract contract ERC20BaseModule is ERC20Upgradeable, IERC20Allowance, IERC3643 require(bool(tos.length == values.length), Errors.CMTAT_ERC20BaseModule_TosValueslengthMismatch()); // No need of unchecked block since Soliditiy 0.8.22 for (uint256 i = 0; i < tos.length; ++i) { - // We call directly the internal function transfer + // We call directly the internal OpenZeppelin function _transfer // The reason is that the public function adds only the owner address recovery ERC20Upgradeable._transfer(_msgSender(), tos[i], values[i]); } From 2d545782b9a6402ce9819149cd06809332c1f6b9 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Wed, 19 Feb 2025 10:17:14 +0100 Subject: [PATCH 26/26] Add test for ERC20 approve --- contracts/mocks/RuleEngine/RuleEngineMock.sol | 16 ++-- package.json | 6 +- .../ValidationModuleCommon.js | 87 ++++++++++++++++++- .../proxy/ValidationModuleProxyCommon.js | 85 ++++++++++++++++++ .../deployment/deploymentERC1363Proxy.test.js | 2 +- .../deploymentERC1363ProxyValidation.test.js | 17 ++++ .../deploymentERC1363Standalone.test.js | 2 +- .../modules/DebtModule/DebtModule.test.js | 20 +++++ .../DebtModule/DebtModuleConstructor.test.js | 32 +++++++ .../DocumentModule/DocumentModule.test.js | 2 +- .../DocumentModuleConstructor.test.js | 2 +- .../ValidationModule/ValidationModule.test.js | 29 ++----- .../ValidationModuleConstructor.test.js | 42 --------- .../ValidationModuleSetRuleEngine.test.js | 19 ---- .../ValidationModule/ValidationModule.test.js | 2 +- .../ValidationModuleConstructor.test.js | 2 +- .../ValidationModuleSetRuleEngine.test.js | 2 +- 17 files changed, 267 insertions(+), 100 deletions(-) create mode 100644 test/common/ValidationModule/proxy/ValidationModuleProxyCommon.js create mode 100644 test/deployment/deploymentERC1363ProxyValidation.test.js create mode 100644 test/proxy/modules/DebtModule/DebtModule.test.js create mode 100644 test/proxy/modules/DebtModule/DebtModuleConstructor.test.js delete mode 100644 test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js delete mode 100644 test/proxy/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js diff --git a/contracts/mocks/RuleEngine/RuleEngineMock.sol b/contracts/mocks/RuleEngine/RuleEngineMock.sol index 085e505e..3168db1d 100644 --- a/contracts/mocks/RuleEngine/RuleEngineMock.sol +++ b/contracts/mocks/RuleEngine/RuleEngineMock.sol @@ -11,9 +11,11 @@ import {RuleMock} from "./RuleMock.sol"; */ contract RuleEngineMock is IRuleEngineMock { IRule[] internal _rules; + address immutable authorizedSpender; - constructor() { + constructor(address spender) { _rules.push(new RuleMock()); + authorizedSpender = spender; } /* @@ -68,11 +70,15 @@ contract RuleEngineMock is IRuleEngineMock { function canApprove( - address /* from */, - address /* to */, + address /* owner */, + address spender, uint256 /* value */ - ) public pure override returns (bool) { - return true; + ) public view override returns (bool) { + if(spender == authorizedSpender) { + return true; + } else { + return false; + } } diff --git a/package.json b/package.json index efddbbc5..ca6a3875 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,9 @@ "test:enforcement": "npx hardhat test test/standard/modules/EnforcementModule.test.js test/proxy/modules/EnforcementModule.test.js", "test:metaTx": "npx hardhat test test/standard/modules/MetaTxModule.test.js test/proxy/modules/MetaTxModule.test.js", "test:proxy": "npx hardhat test test/proxy/general/factory/Beacon.test.js test/proxy/general/factory/Transparent.test.js test/proxy/general/factory/TransparentSalt.test.js test/proxy/general/Proxy.test.js test/proxy/general/UpgradeProxy.test.js test/proxy/general/UpgradeProxyUUPS.test.js", - "test:deployment": "npx hardhat test test/deployment/deployment.test.js test/deployment/deploymentERC1363Proxy.test.js test/deployment/deploymentERC1363Standalone.test.js", - "test:document": "npx hardhat test test/standard/modules/DocumentModule.test.js", - "test:debt": "npx hardhat test test/standard/modules/DebtModule.test.js test/proxy/modules/DebtModule.test.js" + "test:deployment": "npx hardhat test test/deployment/deployment.test.js test/deployment/deploymentERC1363Proxy.test.js test/deployment/deploymentERC1363ProxyValidation.test.js test/deployment/deploymentERC1363Standalone.test.js", + "test:document": "npx hardhat test test/standard/modules/DocumentModule/DocumentModule.test.js test/standard/modules/DocumentModule/DocumentModuleConstructor.test.js test/proxy/modules/DocumentModule/DocumentModule.test.js test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js", + "test:debt": "npx hardhat test test/standard/modules/DebtModule/DebtModule.test.js test/standard/modules/DebtModule/DebtModuleConstructor.test.js test/proxy/modules/DebtModule/DebtModule.test.js test/proxy/modules/DebtModule/DebtModuleConstructor.test.js" }, "repository": { "type": "git", diff --git a/test/common/ValidationModule/ValidationModuleCommon.js b/test/common/ValidationModule/ValidationModuleCommon.js index 2088bc02..b733b2a5 100644 --- a/test/common/ValidationModule/ValidationModuleCommon.js +++ b/test/common/ValidationModule/ValidationModuleCommon.js @@ -6,7 +6,7 @@ function ValidationModuleCommon () { context('RuleEngineTransferTest', function () { beforeEach(async function () { if ((await this.cmtat.ruleEngine()) === ZERO_ADDRESS) { - this.ruleEngineMock = await ethers.deployContract('RuleEngineMock') + this.ruleEngineMock = await ethers.deployContract('RuleEngineMock', [this.admin]) await this.cmtat .connect(this.admin) .setRuleEngine(this.ruleEngineMock.target) @@ -19,7 +19,7 @@ function ValidationModuleCommon () { ) } }) - it('testCancanTransferWithoutRuleEngine', async function () { + it('testCanCanTransferWithoutRuleEngine', async function () { // Arrange await this.cmtat.connect(this.admin).setRuleEngine(ZERO_ADDRESS) // Act + Assert @@ -134,5 +134,88 @@ function ValidationModuleCommon () { ) }) }) + context('RuleEngineApprovalTest', function () { + beforeEach(async function () { + if ((await this.cmtat.ruleEngine()) === ZERO_ADDRESS) { + this.ruleEngineMock = await ethers.deployContract('RuleEngineMock', [this.admin]) + await this.cmtat + .connect(this.admin) + .setRuleEngine(this.ruleEngineMock.target) + } + }) + it('testCanApprove', async function () { + // Admin is an authorized spender + expect( + await this.cmtat.connect(this.address1).canApprove( this.address1,this.admin,10) + ).to.equal(true) + expect( + await this.cmtat.connect(this.address1).canApprove( this.address1,this.address2,10) + ).to.equal(false) + }) + + it('testCanCanApproveWithoutRuleEngine', async function () { + // Arrange + await this.cmtat.connect(this.admin).setRuleEngine(ZERO_ADDRESS) + // Act + Assert + expect( + await this.cmtat.connect(this.admin).canApprove( this.address1,this.admin,10) + ).to.equal(true) + expect( + await this.cmtat.connect(this.address1).canApprove( this.address1,this.address2,10) + ).to.equal(true) + }) + + it('testCannotApproveIfNotAllowedByRuleEngine', async function () { + const AMOUNT_TO_APPROVE = RULE_MOCK_AMOUNT_MAX + 1 + // Act + expect( + await this.cmtat.canTransfer( + this.address1, + this.address2, + AMOUNT_TO_APPROVE + ) + ).to.equal(false) + // Act + await expect( + this.cmtat + .connect(this.address1) + .approve(this.address2, AMOUNT_TO_APPROVE) + ) + .to.be.revertedWithCustomError(this.cmtat, 'CMTAT_InvalidApproval') + .withArgs( + this.address1.address, + this.address2.address, + AMOUNT_TO_APPROVE + ) + }) + it('testCanApproveAllowedByRuleEngine', async function () { + const AMOUNT_TO_APPROVE = 11n + // Act + expect( + await this.cmtat.connect(this.admin).canApprove( + this.address1, + this.admin, + AMOUNT_TO_APPROVE + ) + ).to.equal(true) + // Act + await this.cmtat + .connect(this.address1) + .approve(this.admin, AMOUNT_TO_APPROVE) + // Assert + expect(await this.cmtat.allowance(this.address1, this.admin)).to.equal( + AMOUNT_TO_APPROVE + ) + await this.cmtat + .connect(this.admin) + .transferFrom(this.address1, this.address2, AMOUNT_TO_APPROVE) + expect(await this.cmtat.balanceOf(this.address1)).to.equal( + this.ADDRESS1_INITIAL_BALANCE - AMOUNT_TO_APPROVE + ) + expect(await this.cmtat.balanceOf(this.address2)).to.equal( + this.ADDRESS2_INITIAL_BALANCE + AMOUNT_TO_APPROVE) + }) + + }) } module.exports = ValidationModuleCommon diff --git a/test/common/ValidationModule/proxy/ValidationModuleProxyCommon.js b/test/common/ValidationModule/proxy/ValidationModuleProxyCommon.js new file mode 100644 index 00000000..c1902e3d --- /dev/null +++ b/test/common/ValidationModule/proxy/ValidationModuleProxyCommon.js @@ -0,0 +1,85 @@ +const ValidationModuleCommon = require('../ValidationModuleCommon') +const ValidationModuleSetRuleEngineCommon = require('../ValidationModuleSetRuleEngineCommon') +const { + deployCMTATProxy, + deployCMTATProxyWithParameter, + DEPLOYMENT_DECIMAL, + TERMS, + fixture, + loadFixture +} = require('../../../deploymentUtils') +const { ZERO_ADDRESS } = require('../../../utils') +function ValidationModuleProxyCommon () { + context('Proxy - ValidationModule', function () { + beforeEach(async function () { + this.ADDRESS1_INITIAL_BALANCE = 17n + this.ADDRESS2_INITIAL_BALANCE = 18n + this.ADDRESS3_INITIAL_BALANCE = 19n + Object.assign(this, await loadFixture(fixture)) + this.ruleEngineMock = await ethers.deployContract('RuleEngineMock', [this.admin]) + this.cmtat = await deployCMTATProxy( + this._.address, + this.admin.address, + this.deployerAddress.address + ) + await this.cmtat + .connect(this.admin) + .mint(this.address1, this.ADDRESS1_INITIAL_BALANCE) + await this.cmtat + .connect(this.admin) + .mint(this.address2, this.ADDRESS2_INITIAL_BALANCE) + await this.cmtat + .connect(this.admin) + .mint(this.address3, this.ADDRESS3_INITIAL_BALANCE) + + + }) + ValidationModuleCommon() + }) + context('Proxy - ValidationModule - Constructor', function () { + beforeEach(async function () { + this.ADDRESS1_INITIAL_BALANCE = 17n + this.ADDRESS2_INITIAL_BALANCE = 18n + this.ADDRESS3_INITIAL_BALANCE = 19n + Object.assign(this, await loadFixture(fixture)) + this.ruleEngineMock = await ethers.deployContract('RuleEngineMock', [this.admin]) + this.definedAtDeployment = true + this.cmtat = await deployCMTATProxyWithParameter( + this.deployerAddress.address, + this._.address, + this.admin.address, + 'CMTA Token', + 'CMTAT', + DEPLOYMENT_DECIMAL, + 'CMTAT_ISIN', + TERMS, + 'CMTAT_info', + [this.ruleEngineMock.target, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] + ) + await this.cmtat + .connect(this.admin) + .mint(this.address1, this.ADDRESS1_INITIAL_BALANCE) + await this.cmtat + .connect(this.admin) + .mint(this.address2, this.ADDRESS2_INITIAL_BALANCE) + await this.cmtat + .connect(this.admin) + .mint(this.address3, this.ADDRESS3_INITIAL_BALANCE) + }) + ValidationModuleCommon() + }) + context('Proxy - ValidationModule - setRuleEngine', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.cmtat = await deployCMTATProxy( + this._.address, + this.admin.address, + this.deployerAddress.address + ) + this.ruleEngine = await ethers.deployContract('RuleEngineMock', [this.admin]) + }) + ValidationModuleSetRuleEngineCommon() + }) + +} +module.exports = ValidationModuleProxyCommon diff --git a/test/deployment/deploymentERC1363Proxy.test.js b/test/deployment/deploymentERC1363Proxy.test.js index a003ec7e..4e421b03 100644 --- a/test/deployment/deploymentERC1363Proxy.test.js +++ b/test/deployment/deploymentERC1363Proxy.test.js @@ -6,7 +6,7 @@ const { } = require('../deploymentUtils') const ERC20BaseModuleCommon = require('../common/ERC20BaseModuleCommon') const VALUE = 20n -describe('CMTAT - Deployment', function () { +describe('CMTAT - ERC1363 Proxy Deployment', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) this.cmtat = await deployCMTATERC1363Proxy( diff --git a/test/deployment/deploymentERC1363ProxyValidation.test.js b/test/deployment/deploymentERC1363ProxyValidation.test.js new file mode 100644 index 00000000..3bec3264 --- /dev/null +++ b/test/deployment/deploymentERC1363ProxyValidation.test.js @@ -0,0 +1,17 @@ +const { expect } = require('chai') +const { + deployCMTATERC1363Proxy, + fixture, + loadFixture +} = require('../deploymentUtils') +const ValidationModuleProxyCommon = require('../common/ValidationModule/proxy/ValidationModuleProxyCommon') +const VALUE = 20n +describe('CMTAT ERC1363 - Proxy - ValidationModule', function () { + beforeEach(async function () { + + }) + + ValidationModuleProxyCommon() +}) + + diff --git a/test/deployment/deploymentERC1363Standalone.test.js b/test/deployment/deploymentERC1363Standalone.test.js index 4628ce82..8fcfd9c2 100644 --- a/test/deployment/deploymentERC1363Standalone.test.js +++ b/test/deployment/deploymentERC1363Standalone.test.js @@ -6,7 +6,7 @@ const { } = require('../deploymentUtils') const ERC20BaseModuleCommon = require('../common/ERC20BaseModuleCommon') const VALUE = 20n -describe('CMTAT - Deployment', function () { +describe('CMTAT ERC1363 - Standalone', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) this.cmtat = await deployCMTATERC1363Standalone( diff --git a/test/proxy/modules/DebtModule/DebtModule.test.js b/test/proxy/modules/DebtModule/DebtModule.test.js new file mode 100644 index 00000000..3cd425c6 --- /dev/null +++ b/test/proxy/modules/DebtModule/DebtModule.test.js @@ -0,0 +1,20 @@ +const DebtModuleSetDebtEngineCommon = require('../../../common/DebtModule/DebtModuleSetDebtEngineCommon') +const DebtModuleCommon = require('../../../common/DebtModule/DebtModuleCommon') +const { + deployCMTATProxy, + fixture, + loadFixture +} = require('../../../deploymentUtils') +describe('Proxy - DebtModule', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.cmtat = await deployCMTATProxy( + this._.address, + this.admin.address, + this.deployerAddress.address + ) + this.debtEngineMock = await ethers.deployContract('DebtEngineMock') + }) + DebtModuleCommon() + DebtModuleSetDebtEngineCommon() +}) diff --git a/test/proxy/modules/DebtModule/DebtModuleConstructor.test.js b/test/proxy/modules/DebtModule/DebtModuleConstructor.test.js new file mode 100644 index 00000000..4a14271d --- /dev/null +++ b/test/proxy/modules/DebtModule/DebtModuleConstructor.test.js @@ -0,0 +1,32 @@ +const DebtModuleCommon = require('../../../common/DebtModule/DebtModuleCommon') +const { + deployCMTATProxyWithParameter, + fixture, + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL +} = require('../../../deploymentUtils') + +const { ZERO_ADDRESS } = require('../../../utils') + +describe('Proxy - DebtModule - Constructor', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + const DECIMAL = 0 + this.debtEngineMock = await ethers.deployContract('DebtEngineMock') + this.definedAtDeployment = true + this.cmtat = await deployCMTATProxyWithParameter( + this.deployerAddress.address, + this._.address, + this.admin.address, + 'CMTA Token', + 'CMTAT', + DEPLOYMENT_DECIMAL, + 'CMTAT_ISIN', + TERMS, + 'CMTAT_info', + [ZERO_ADDRESS, this.debtEngineMock.target, ZERO_ADDRESS, ZERO_ADDRESS] + ) + }) + DebtModuleCommon() +}) diff --git a/test/proxy/modules/DocumentModule/DocumentModule.test.js b/test/proxy/modules/DocumentModule/DocumentModule.test.js index 57e3184e..9ac45216 100644 --- a/test/proxy/modules/DocumentModule/DocumentModule.test.js +++ b/test/proxy/modules/DocumentModule/DocumentModule.test.js @@ -5,7 +5,7 @@ const { fixture, loadFixture } = require('../../../deploymentUtils') -describe('Standard - DocumentModule', function () { +describe('Proxy - DocumentModule', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) this.cmtat = await deployCMTATProxy( diff --git a/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js b/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js index baf8578c..cdcc0179 100644 --- a/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js +++ b/test/proxy/modules/DocumentModule/DocumentModuleConstructor.test.js @@ -9,7 +9,7 @@ const { const { ZERO_ADDRESS } = require('../../../utils') -describe('Standard - DocumentModule - Constructor', function () { +describe('Proxy - DocumentModule - Constructor', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)) this.documentEngineMock = await ethers.deployContract('DocumentEngineMock') diff --git a/test/proxy/modules/ValidationModule/ValidationModule.test.js b/test/proxy/modules/ValidationModule/ValidationModule.test.js index 6e7a7be2..246d335c 100644 --- a/test/proxy/modules/ValidationModule/ValidationModule.test.js +++ b/test/proxy/modules/ValidationModule/ValidationModule.test.js @@ -1,31 +1,16 @@ -const ValidationModuleCommon = require('../../../common/ValidationModule/ValidationModuleCommon') +const ValidationModuleProxyCommon = require('../../../common/ValidationModule/proxy/ValidationModuleProxyCommon') const { deployCMTATProxy, fixture, loadFixture } = require('../../../deploymentUtils') -describe('Proxy - ValidationModule', function () { +describe('Proxy - BaseModule', function () { beforeEach(async function () { - this.ADDRESS1_INITIAL_BALANCE = 17n - this.ADDRESS2_INITIAL_BALANCE = 18n - this.ADDRESS3_INITIAL_BALANCE = 19n - Object.assign(this, await loadFixture(fixture)) - this.ruleEngineMock = await ethers.deployContract('RuleEngineMock') - this.cmtat = await deployCMTATProxy( - this._.address, - this.admin.address, - this.deployerAddress.address - ) - await this.cmtat - .connect(this.admin) - .mint(this.address1, this.ADDRESS1_INITIAL_BALANCE) - await this.cmtat - .connect(this.admin) - .mint(this.address2, this.ADDRESS2_INITIAL_BALANCE) - await this.cmtat - .connect(this.admin) - .mint(this.address3, this.ADDRESS3_INITIAL_BALANCE) + }) - ValidationModuleCommon() + + ValidationModuleProxyCommon() }) + + diff --git a/test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js b/test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js deleted file mode 100644 index 24381799..00000000 --- a/test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js +++ /dev/null @@ -1,42 +0,0 @@ -const ValidationModuleCommon = require('../../../common/ValidationModule/ValidationModuleCommon') -const { - deployCMTATProxyWithParameter, - fixture, - loadFixture, - TERMS, - DEPLOYMENT_DECIMAL -} = require('../../../deploymentUtils') -const { ZERO_ADDRESS } = require('../../../utils') - -describe('Proxy - ValidationModule - Constructor', function () { - beforeEach(async function () { - this.ADDRESS1_INITIAL_BALANCE = 17n - this.ADDRESS2_INITIAL_BALANCE = 18n - this.ADDRESS3_INITIAL_BALANCE = 19n - Object.assign(this, await loadFixture(fixture)) - this.ruleEngineMock = await ethers.deployContract('RuleEngineMock') - this.definedAtDeployment = true - this.cmtat = await deployCMTATProxyWithParameter( - this.deployerAddress.address, - this._.address, - this.admin.address, - 'CMTA Token', - 'CMTAT', - DEPLOYMENT_DECIMAL, - 'CMTAT_ISIN', - TERMS, - 'CMTAT_info', - [this.ruleEngineMock.target, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] - ) - await this.cmtat - .connect(this.admin) - .mint(this.address1, this.ADDRESS1_INITIAL_BALANCE) - await this.cmtat - .connect(this.admin) - .mint(this.address2, this.ADDRESS2_INITIAL_BALANCE) - await this.cmtat - .connect(this.admin) - .mint(this.address3, this.ADDRESS3_INITIAL_BALANCE) - }) - ValidationModuleCommon() -}) diff --git a/test/proxy/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js b/test/proxy/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js deleted file mode 100644 index 2405f82d..00000000 --- a/test/proxy/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js +++ /dev/null @@ -1,19 +0,0 @@ -const ValidationModuleSetRuleEngineCommon = require('../../../common/ValidationModule/ValidationModuleSetRuleEngineCommon') -const { - deployCMTATProxy, - fixture, - loadFixture -} = require('../../../deploymentUtils') - -describe('Proxy - ValidationModule - setRuleEngine', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.cmtat = await deployCMTATProxy( - this._.address, - this.admin.address, - this.deployerAddress.address - ) - this.ruleEngine = await ethers.deployContract('RuleEngineMock') - }) - ValidationModuleSetRuleEngineCommon() -}) diff --git a/test/standard/modules/ValidationModule/ValidationModule.test.js b/test/standard/modules/ValidationModule/ValidationModule.test.js index 1b99b881..9d4c416d 100644 --- a/test/standard/modules/ValidationModule/ValidationModule.test.js +++ b/test/standard/modules/ValidationModule/ValidationModule.test.js @@ -10,7 +10,7 @@ describe('Standard - ValidationModule', function () { this.ADDRESS2_INITIAL_BALANCE = 32n this.ADDRESS3_INITIAL_BALANCE = 33n Object.assign(this, await loadFixture(fixture)) - this.ruleEngineMock = await ethers.deployContract('RuleEngineMock') + this.ruleEngineMock = await ethers.deployContract('RuleEngineMock', [this.admin]) this.cmtat = await deployCMTATStandalone( this._.address, this.admin.address, diff --git a/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js b/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js index cf929e47..c509ceb5 100644 --- a/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js +++ b/test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js @@ -15,7 +15,7 @@ describe('Standard - ValidationModule - Constructor', function () { this.ADDRESS2_INITIAL_BALANCE = 18n this.ADDRESS3_INITIAL_BALANCE = 19n Object.assign(this, await loadFixture(fixture)) - this.ruleEngineMock = await ethers.deployContract('RuleEngineMock') + this.ruleEngineMock = await ethers.deployContract('RuleEngineMock', [this.admin]) this.definedAtDeployment = true this.cmtat = await deployCMTATStandaloneWithParameter( this.deployerAddress.address, diff --git a/test/standard/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js b/test/standard/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js index d47972aa..2de18ea4 100644 --- a/test/standard/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js +++ b/test/standard/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js @@ -12,7 +12,7 @@ describe('Standard - ValidationModule - setRuleEngine', function () { this.admin.address, this.deployerAddress.address ) - this.ruleEngine = await ethers.deployContract('RuleEngineMock') + this.ruleEngine = await ethers.deployContract('RuleEngineMock', [this.admin]) }) ValidationModuleSetRuleEngineCommon() })

    %Zu0nkc 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 literal 74373 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 diff --git a/doc/schema/surya_graph/surya_graph_FactoryErrors.sol.png b/doc/schema/surya_graph/surya_graph_draft-IERC1643CMTAT.sol.png similarity index 100% rename from doc/schema/surya_graph/surya_graph_FactoryErrors.sol.png rename to doc/schema/surya_graph/surya_graph_draft-IERC1643CMTAT.sol.png diff --git a/doc/schema/surya_inheritance/surya_inheritance_AuthorizationEngineMock.sol.png b/doc/schema/surya_inheritance/surya_inheritance_AuthorizationEngineMock.sol.png deleted file mode 100644 index 2fae8c261ed0d5653e4e144f7debac8c171ac7f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13610 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTATFactoryBase.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTATFactoryBase.sol.png deleted file mode 100644 index 44f26bde26e498b1d7138d460d3e60f04ed158f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12705 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 N8`pJFMXC=%{|f;h!4?1j diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTATFactoryRoot.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTATFactoryRoot.sol.png deleted file mode 100644 index 235a7df0ba95e348ea3fbd64aae3bc25b418e42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18032 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 ZC1;1t{OvI#_!Tmw^XF7#v(6aY{a;a#F*5)F diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTAT_BASE.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTAT_BASE.sol.png index e2870733d36a90bca90adaa978103cd8d91cf6b9..fa5e4216d5d136d55e796aca67cc3e9cd650ec3a 100644 GIT binary patch literal 79074 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 N^t6q%@-%J3{|C2(KVSd= literal 79113 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTAT_BEACON_FACTORY.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTAT_BEACON_FACTORY.sol.png deleted file mode 100644 index 055bfb569b3e771f4283aa31f1071cac29a7d811..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19560 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTAT_ERC1363_BASE.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTAT_ERC1363_BASE.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7479017453163061ae549177d48e8e81462a2c GIT binary patch literal 20356 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 literal 0 HcmV?d00001 diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_ERC1363.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_ERC1363.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..53fa93b23422f26fccae0acfe8c772ff8c5e718f GIT binary patch literal 14348 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 ImNoYOU)FuITmS$7 literal 0 HcmV?d00001 diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE_ERC1363.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE_ERC1363.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..90885c7d17e01665b101c32c4adeff6cc0a08fd6 GIT binary patch literal 15030 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 bz{{72T4m`|M_0o_RMd^@TFM1V=7IkURk&OL literal 0 HcmV?d00001 diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTAT_TP_FACTORY.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTAT_TP_FACTORY.sol.png deleted file mode 100644 index 730f133092a501fbabe0aed4a4a8056e43c62852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13137 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_CMTAT_UUPS_FACTORY.sol.png b/doc/schema/surya_inheritance/surya_inheritance_CMTAT_UUPS_FACTORY.sol.png deleted file mode 100644 index 3eb92eebf22fbd4e480b35819c830f85e00101f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13881 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 literal 13082 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png b/doc/schema/surya_inheritance/surya_inheritance_ERC20SnapshotModule.sol.png deleted file mode 100644 index bec4ef98919a5d20ececfad5f324ea89d06a0637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23020 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_ERC20SnapshotModuleInternal.sol.png b/doc/schema/surya_inheritance/surya_inheritance_ERC20SnapshotModuleInternal.sol.png deleted file mode 100644 index 4d5e70645c0cffd6c48bd340e52b470adc39af5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26812 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_EnforcementModuleInternal.sol.png b/doc/schema/surya_inheritance/surya_inheritance_EnforcementModuleInternal.sol.png index a527692a48b2951585afa3a7747551d93dd64b76..d0635746fc3c717bb65fdec0e238701165fd7758 100644 GIT binary patch literal 22749 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 CMWQJH literal 18052 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 LtDbYz{O11$=GY-r diff --git a/doc/schema/surya_inheritance/surya_inheritance_FactoryErrors.sol.png b/doc/schema/surya_inheritance/surya_inheritance_FactoryErrors.sol.png deleted file mode 100644 index a254a8c858bc5357bbbfb282d911c46716942c1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4658 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 diff --git a/doc/schema/surya_inheritance/surya_inheritance_ISnapshotEngine.sol.png b/doc/schema/surya_inheritance/surya_inheritance_ISnapshotEngine.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..5da1db199e879e2ef88005c0af79df066f64626a GIT binary patch literal 5767 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 L8pyBmmSO(`Wbfb0 literal 0 HcmV?d00001 diff --git a/doc/schema/surya_inheritance/surya_inheritance_SnapshotEngineMock.sol.png b/doc/schema/surya_inheritance/surya_inheritance_SnapshotEngineMock.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3f9ba95946c1493dcb52bba7b2a0228692b08e GIT binary patch literal 25881 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%0A#-0{~5)W*H&>~LNU&VlVr{wr?1 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 literal 0 HcmV?d00001 diff --git a/doc/schema/surya_inheritance/surya_inheritance_SnapshotEngineModule.sol.png b/doc/schema/surya_inheritance/surya_inheritance_SnapshotEngineModule.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..0359360259b8b751b26ae2e4d0741c74b22c99e9 GIT binary patch literal 13790 zcmd6OcRbbq`}aZFl99bSgbERb%sBQ;qL5wo9+^clj+ta+W`$&xEjuLH$;g(Kk-f)# zy}#ejec!+Fc>L~vZ=W80&O_(C$LsyNp4W3+2dk;BKt{|!j6$KvloT;qC=?D6yiOv- zhrgXl>=WRB_@*if7}P29-`m=p7!-;PrG&Yy?UB5a;;F5zP}f%9*~gkW1WN2cUmTd zJCsE1x%4LzSJ`VluDgGar66GXahKBveHB0VXs_{x|)4pXll7z3pG@85tptkjD#XLnYYrXO z40>3r5F(#>`|e#T21dr-p`nntIGSATD_>`wxnq@c2dv?5cn!aS*FwU=nN?NvS7M17 zBJl0(>@@QS9=P z=4SW!?(*_-``yKDFSulvUvRYr1qD5eu9j9-I4EvvVmeZMJ{Ggi7P?k$KkKqYDur0( zv)NiifigI;%7H(B{^YaLhlOfs38W&Mc{Wp&l*GtEN%Z;i=gFxl9CC7UMUGc2o9zqq zoRleW#M_>pqTf0??%cWK|L2eOkAZ>o_wR|fx3`n|T?;eB#KfB6C+n>{Uqi}i7zQmO zB0{RE9(=A8ygZV1{cmiwZ68o@w}+$+R@R`@da&u2w zqkJS;?d|Q?c6Q{YrBS%JxRbN9Eq08jf~lkStdbHY&1j<52UHzQ>Sao1u zpO$5r9?I`NPwUrcc2Qb7x)Au36S~1zoY1FnYXos>jUphIF~ zV{_)r8An>Pt%crXw#u3s^3ug{t{3IyH($raWmHzu$;rum?dX{K_P)evaBz?oj%x5A zA|yoG(sJSLDMow&lL1vCY(FZkqeC+f$HhSz8X6Lkk7}gWsg-3`S1Qsb03My4BcKzG#qLSeQ2cno(=)Rb9vZjYkIcPnlO%Rvg{k zTVD`Sou{G-uD@9B_t#$9NZ|FkdrCUnQ3Ev z_CWLZvv`Z=FzZ>;w;@6R(h%&+E*@| zW0efA_1;BGNH7CHBuM(+diClRzxR%;^4VojKX5E%lUW#>xAuH zU9BZ%ZEFL%M(H0ukgl(1Z%TgZ+7Tb1YAe_P@+;whs@#(J9cA%g)Xwzc7J^#dv#**-g}?1d%by z!%dWWteaMQtWV2c`fkjBkOtL#u#g#LxwkfDZeydO63>?{_GDFDlc|;l3s2>aqa*+N zzR$t&-)E-{L=t(_)YLsAWj5{2%>nTI2}YR0dU|@KB_$=d8VOiQOE1$*?X3JNeR}M* zv9a-IyI-e3r(f5|R}SuIYqjR@PLV&2bpAje@~cew2(-7iw_b%kbDs8lLuPNIXiaYF ztzQ!-aj2fnZYd2Y8sD2kTFDaLaqrYql)JjRey^;kIn?cQ#>U3>wni`#j0i=-{)~=@ zAj2sRQS>?4pa1dW2L^*F`n*AmQ(2V%{{0`9YGx}-OEw1whmlgNn3ic(W##GRvXYW? zsEJQgQLIw-uiD5MZ;HE)e0to8mQ2$?dGS&boMU3s)z!t7Zf|cVPuaKKYzy6?M;(taZ~?*r8zyC zmr}YCt7U3BEuCc1lz7922TiG*{R%)&B$};SH)U&UivvJErr4`C6?P9dCua~b3CZE> z)l6x4tYtQXBDa0_XX87AqC!K_C^(;Oba^py$uAYpQ^dx{lZ!_4Yu&pi=Q8*GA|oT? z!Sbi>??Edi0UmemP;hFblESggA3vUsuRoe?u87>hOM7~7nUa#S*tCT>1cQe5YP#5$ zy*CxiYHVjG(KGkPIFCMBr_cZk8=cST$*$+{w{OHJCnrOdPMO1^JOm^eKyp5VO4PGwr%wfUOspIn+5m-KrlmPdv$C*6!b;+yh>3}d-B+ETwCk3w`Q`M0C@d9O^THgdj{7Z1>K?2eT4xv`DY;C<9K^;>hIsEZ{L)~cSl`- zUBDH$L3LM(gocLlKl(-u#NvZ~#X0ZYRXH^^GL&P0o9iv+S1~bDb94BttgK98?%%)c zxXgE%{P~dwA79(r`VxBKDqDO94yq%Lx4F*u5H*_A;ny}ZwmUab;lP@ak#U}aqIU_9 zyDgGg*4&%}SPcBqak1}`eVTk`)L#h#G>S%9xQTwX=`il?WKSp&S@JnGdz|k zi@wX3xw%6&1ygrZZ}Dz(Mg;^8Ai(R!b5V-oDwy1W8!PCpDZ>;9YVfK47 zqH|0l(x|VEjs7QFIZ}7b%*^8Xp*qd&?9@;T5yInd^L2|}8Sv%6`p4Yoc?bLujZWk@ z!BtC>Oo58eD=vQNl5Fj{&sNvz^-n5e~uJ^gQZ%0QBh>3_U!j=PmGczsX zv&U~G#GtIA0)0k!b=wq}Ycknj;ls>>1Fujl_TrN#Pp;FEVlb~06P0DsU)CM(=v!M^ zrOO7Ni(8I%DtP;E1T8FAN2?GFK~;a&+nEzTIoj+tcW}_qFSkv9_l{FpN$Dc+ z)>XI6ygcmlfPlQ2m0l?E7)~`b>PKIn3l@p z+FPHo`c-Z>dXlXY{|bYiD!1rLRyud?Tvq?0Nd4*Y#OWneDO9pn{=gYOX!YM$PNDv* zLoiB8L=~sa^sf`bXT-eWM29z8naN5f}e`HB{uaeTN-h0?3@ zslxL1zf;Tn{{6eXTt>yb01r=is^=Vi41Y)bHDRlm`(@U#SOBU^TwF;Pu;X)1{24m= z?VX(kzpm*#G!(urD45=B$q#@UoL4KZW#~D3ftr?f2KqQYg$Yy|ov3q`(uKjj!eOT$ z$tAmQoOnY&eBk+DP(>Nf_pqtx*|81NE!VH+Da1xbMj%z*l)7ged` z7avaxShvr9_icx+neC-Pr{e>+?+F6U z9I753mF+jvy8lw19?Kg_TCxyO!4po9@Gft^S{luVhCPOoOp`L7vwx|`G4$~f$(1Wt z){IWKjX+L$EM~_$Zq7mN4*X_@zL+5D!WnnXC=&LvY2)*=qXt29(`(z?v-a;^zeZ5c zcKkCvyL`B`v-5S~lsBRwgz!*Ns}Tt+Ar%$EaFciL-E*7pxHU678+hTWPQu>yoB@Ja z=dqakpB|HelzjQ-4Hn@$Z!A&;7`ufP+!fjQwgx6N1;ckcmNwluvM>sCP~-< zAN6^6+*?syeN`Z0Jh|=jXK_@Vjq2*xfH|k)si`Udpr9bWlZS=NAr$Oy2dwXCYi}u% zdfz`e7_3jU4TH-at)zgG@l(%f?#)#2z7VCA_XSFMYI!*v_5qJxY3?sBd^f=_*(D{> z-dcc=nYp=yX+9f7qobp1z(^+hHKbNz$$+1r8ZJym4h;>7Z)r}pgwaYB4-uR_Ytor` zqta;xUtB^$;Ms}K=Yv1_L*;hAWQUEvRA%TZD=Qa8J*alQ4Ai;Ud)J;x!iyS|;oWzt zivm6lU7008nudlaY;(Jz!R<4~({r6kV{v7CXaT2b%--SQ4D0D$8@s@=NtN>~G2nL& z-w8lB3I)UhHA&;%yR>aUH$!EZ(?8V|NW#s_+XAp{yK$@c0d=^_0)2Z&hpe3)FEn8g z?xDLA&scYMcJ`WCPyC)g$2~(pz|PK&*HE9oAu$Yn2S-Xuib>p~=XY43DyOWAiy#fp zebnSc!QvQEoG5g)be;Ua-h8OZzHAi{&kc^QWKlejtsg&L_c>Z`N#eX^7IW_beng1keem(cZ)ef$tgM~{0kf~ItwGMt&I`-KpGtl9ou}75 zN^OU)TU%Pbef5emG%PF=4__XTTF7Ni6<7Lj z_b*qip@v>ToT10mSzPHF_Z4(Nqjc~&W;9C3qKoN0w4(R#uXwFi&2tL~L?7aQG;2GD zD=l@h$G$RJ6=Qy#{+_n>OMswt5Am4PSm1Y8u3oj;{xh(ZG;#D!cfQG(zlYJ`bFUp< zZhgH}_PckK6unO-d=*gKH*d!Muy!k&Ir$xDG`tzWk*a+UZ+0dK1fX6*KkrNu?(a$w zBSQJYj?B`&Vg=p!^~;yQ2nGgX-B(8BxYUy;y8^WGIMCG&EClQf5kVQ5nU}9$e|3oa zBbvqAfbV{>9|leF$lQD@-=Dk#Hhmt5^qUUjs+kH=oB*8+0;Xq5bKv@8FxaIb~ zy=A1@?dmRl$AaYPk&9l9J1-W4W)OT#$}Hjadgt$i2Cl!~xX-3q-_kbnz$gjNl-m8e z>FnlqDOwQ|Mtg0JI7dD+{n^nB>lU!sKyh*LuWfC?j(PYh!aYem*D&KQtoZ5*8x^%znYGVp-6lYwN(^2)g_4-@kv@ zi33%2T^Lk^-}e<--((6m^BA!6Gg=14vjzVS(D93JebJhYh937ayZn@NPcsS?co2%4H#; z*C1t8Kzd5bDJb->j@2xJH^I4hxVPuHzWchZ5!|)(;ZGJZVPPb*b93&D?-ZgfZEP|{ zUFKfa)=B{DE}95uBBqm@R+{Wdmo0UfSErJSRhAQW7|;6pRS^~u&z!!w?{$29KWNhS zmX;RVM-9tEWN?W#KR;Y#iBdo+u{^USrXjzmP8nbY&rZHRCM`{)u&{89*uT;EEo>5U zzk8%Ape-%CQzbZP!Y+%5Bmf!z9`tuWa~*hbFI+OvRqRdMA!+Nf5p?UhvrvF?7|eMT zs3Y-R!$XmcPT>hh=7d7ST4mzE=dYD7J+iRqulZYNv)-E(uFws9#uD1C`J+d2(C24H zw7&N)?IV)gZv68bAkUs29zCE~Vexj`CmSP6bd3}StFD|>I&J(`Lf{}zTN$bsS}a1J z#@xLvNSUF>Dt1fkGC{d{!R}_wP1?iLFwzBWgzOz9w(~DxNo&_z8C{PLwh1DF8jZIE z;nLifhZ@Q9)5JZmAFnl&lQVV8YP)d4gGS9Dp+H{B zXlYSC?o2#OOB-K@={DwH4QMoOfOT-3{z3$bgA@oZSUn9_i#|V>3!~Zg3<;E@osaIA z74cYOi)0oHDlHWPA5t~t)&=lA6qS`3UT5)fR_JBjj(Pe64pVQ-Ak*7x@Pxqz>K!$IT}D>+@Y0IHN8@6h{Mk586%`d(clVnigl27#E#TO^ zeEHH3M1#u=FI_knGaSZdu<%WY40I#tu2tT1!xm|?_+{H%Q9k#aCdc2tNqcrepQDl1 zy4auNv@&u7?##o}6LGPkqoYHjq7-axZ6|bCO!>8nli=8+FHiT>lVU;tH5n(YHh^_s|{QvT##b?_M;*%f`UF4 zafM$DGb~a7hHO9n84Gg9dA2q$j|i+0u=+@mN1dC?jZsiw=ivAq9VTOeAE@Z6U}bd~ zxT+K4k%5(i@W0|QFg!1EaGZhrm$S6wZVjgon4C0@d6PyL?mq_@`?bBju|U7#WlT&! zax&BJxw(w8vJ0S|J^tk7oWF3PMdA!Q8oerZI3Ue$DVHILc>!+as` z_4OG)6ch+R8x-IEahL9fHMM*sQ+pMh)@c)upDykfW+dU_&$wW9<6 zr=A{7hvlOS@|F04G@9TXfs zFzLPheYZDZuNo1qen&?K{~zP{^=rr3d~h>~192N_iJZZ~sJu=?P5nZ^td&hj$n~r0 z*nrQOff+= zf515~1AH?OPow=!_l*-16D!xmS;)Z|U}0f-shkb^{RNy3^eS7da#d`p!NZ4B)6-3z zPriD%mX?*Jmy}Sbsi|37T1o@w0?whSs~e11^Wb(v!T|dZDE`d5QM}cGGvVZ+k!7kt zxKk)Kk4WFNus8*vH|)kRb&?ubfBXN;cxIN zAo2Jo?tsK2CZ-=Xd(_)MK7I}og(?F`H^_jU&CNY7EiIMK)=JOLJ_{F@Oz67%%QMcF zC5qr*fdVC%_Dvu~D6uc7+z}7o+uP-k;NWVLaUk|ZpryUN{KJQ1z9i0VM%h~Jwf#FU zfY@=dwT@u#^WaCd1whWSyu55|W79ztx^BgFo>28?B)AbvCEeKCTHgwzppe{-4G(!z zd|BFG7l_XS?fPMT1DIbWBWvaE9|eqNo;G-rmUec5dIdoSe8F0ILJ#J%1l`@;&l3m2 z%`NKK)*M1i5QssW6ot_EVZX37?3HTgX^*P)JN??L&(3c7-D+oLuh|J4UrD0-zC8|mnDKHT>QU)_}l7dkuWLGbG5 zj%@AhoYp39BQSwy!fEDLLJw&mo`RwxA<*0LmimkgT%6SnI@7)M;n9v^*B%_f4~$(N>tC4R^tHd7pku5 zmN1jT2UkQy=m1`$deHy;8cbVq#-!DxcW^l+u8VyNwiN$9k^%^Ffd3U8ZgAN^oA9G_ z1n{X~dGD86QfztEVp*fwWPxV^4oULM3*eK%KY8p7TTCr1SWa6!dK7p`C64r^TzKOd z$TfjO2{??44~>i@?sbF0^y4ul<%Fk-LS3ufqJ;PeXEa|9aRIKxo-4i=-iU(FpeChG zW~3(n{P|{g&G54as=(x*k3e*XG|9?S=yA-(VRQj!Z@SM2_=o(<>2t1P!n}YwT+I*E z%KL4|b<2#@!KW5Fj<|Ztt+Ocb1t&N6$5`fW>S~53tD}u6Vo#7Z06>h~S#@=y3#bvXpze9uE3xkSxnpBvRi~}KrX_UfXiJof zCwYpxFt>dnq)$L?Mr*wXG57zD*LLi?jq2*_chuVB?A{6hj|gnLf+@V3H@mn<1TSK6FGnllizsNY zfZZ47_=I{BRNz0}^m&Wo3ocfPm9wpW57q4k`yV4MdFM z{CPhlqGS}d*Zgt7av`cfQRv2vDM)6%c6G@EEh{vtj|8WnP#$7A?Ay0&;VcpiAkgMc z1SyP#goNILO#*a*n}-K;`!>$T=BCr(j$L8F7YHX2I&=R%9U6^34>o)>yMkogji@#m z4rq&OP~k4mU#6r)fOmlM)4n3-;UUu0+)Tm1@C_@|Cdxz~J`SS>ntFPnM@K%t=jUe* zwwEfO9^Zl!r1vjQ{{H>KX{Ple4-Y9=KM5jE=+;PP?}_1hd@)&djx8?4dKOeQgrmM(HCRdk?;`Gv8k=aeoI^1 z7l5m&PYyK zDFv)ecg^wx}5hm%+GfczyY9WlY=L19NeEM<2a%MU(=YO1)WW-=T8%$?}8 zw5T6Hw3(!yGJ!Y=1`2?Lp2%SoRaIZ4q>T9uZGV-M$<{KNsPi4F^A)ont;B&n{2k;V z2@Q`ltd;(Re+ zm*X+~Ob51^i5&@P5Iy)Jpqh%oD}iu$3f89e{k?q1RF@T8{%T6a#Kg!#RCTQ#e0-pa zmS8Ts?yioVsK+&WEJN$wI^Lb=hvh*29T?~WxMmzF>Vrj#J4uSbza z{f$}hz6Rz!5T69<4UNwD-}&Z(ZZu3wKz@GnfzWv5{zA8F_*r_?@X(N^lT*p?T3ZzB zd=uW=|7Vgp4Nj2|2q8)=#&xm*C#=;@AiC0RiDv)cKuc5e{KNXEV_Lm>5XUfltfZT1kkYlzUE5SiK8 zb>4G`0N702w1G%!;&}B5=YVnMDbyzs3VgjDfVOtv_K-#{F7#${T7hK#*E8+yjn2}# zT)Q)3Ga55GRDLm5Iq$=V@KoQO2jFOBgN7f0yio1U^}v%&sneK{)v{yP^5z95CZ+|D zbJ{vO@?g)fLonv->Y6n)bidkb`wGRKihWQZORv-&mb<#Ub3o-Mfpp3R;|<(hNK+zU z2XbG!)WVTkT+DyV`8OfXTZq`pe%V}LW!0eNGhjo#PDmJfR4=L@o|Thx*T8@Yakc=w zYqx*u8>nRn555Ue%lK8J+<5ESnWyWx6?1&ah zhJArmXonkxw5;F4>>vj4>n=1M3X0>Mih788xU6k$g^2ngNQ03S&cGb7B{|g+&9yv` zWDccD{O%6NxW^1xH3YT;gM)WfRY|LAYGN9V+0YpPP?W@hTaW;00XJg4Rx1eAQf)4GkE`d8mgn|-|3|YPLq2PYWb08lU&5*Yep;pFglR`o` zA<_c$&H)~Ag@=a&^lfNl=~_c$%7yL=*l!+3`XkoNO1Vqul_h*eHe+t0_|=kBUOpXDeeGgD3Z&7d9KYvaI1(=13!Me1j`OMM({&)K;ZMQE5rXK?i((U=zoTWF-*j_`BI?Tu>dKG;$ez4d490G&A3)st>UfDuvyS>6aG z4UK%a_-43L!fZ!;QmN9`+^r`xSV)XF*4Exa(zBWXGyzu{OtY-URv>fGvqS5k&?H;> zb8aGIWutYzjGrvJS5<_LyT)t1kqE}#`)F?+8grvXnr~~T_M@yCt6!|!TXLbiz40l<PqOi92?ycIgUwd5>>jw0j6Au&rhrrHmDT22ZYy9|of(a$3xcI2~ zp-JH;6ba%Ifa9~~Ar5~?8E=xJ!0R#F8S*ybuUO471uB}mQtg^8YhWGC=J9qnwpwD zaM3Z%!Q|`$0wo=CvF+v{dJuvA*L&tZF0f(LB(W1>*0Ffu7eLZJ38r!rxL<14tjgJx z02o2gT0egLSZvvw5u7MlSHFz!2cBmWObQ|cQDCAY0q~=5uO){~KU@UYTB`J+gh}!S zKfu|v(=Gw#1wv!XH;bW0K*Jy|BMfBiw1=F?Ky;QFCD{ZafA#X_`g-H5ODd4I1OtI} zI%#dO1Wk3&FmMJzO|MA^YQy(fKsuyv%8UWx(e&zakx@Zh4XCA znxeMs5zxBgj~|=-@d&CPYJc@0^L9xQOAA|Da}*I1n@M>x-Uv{kdGFp?FuWj0HG>H9 zu^lVn)1!3-NQ#XiobwIK)!=2oxE^d-;r7hlosjMy8d3z490{)6_d{>H7P)l8j07PH z)C|-&x~!t&f6jCuL1ja2%|uD{!Gl?Z$mV~_w;HmA|9iFt=yW+&`Cl>IXpS=bgzqjh z&RghCFn53qK7g`#2c{{^I?Obcm6rCv49;aSu_ROvJQ8s5?X^K$N!#Luf+4vT>zB)q;2(&0q2X zlYP~IPU`QojdrewlFYw`hI(Kk=)lmDH$*Eh3+gyg!rMJ<=A&X%2f$g3CU+K)kNfCb zVLj_L!new*sg4hAFbeU>$*M2_ocip<6X6Qrv)=OF;i)}6IizN0R)ZbQnXRP+BA=R( zQ3b3yWY`9D!VRni@K|bkdaLOQmBB_{47*AM$Zn#>K_5z|rim^j2G$qy&1_xZX7VeDHKa&DT_uA|fRw^2N(ys7i zkxszk$^4PSSoHwMwXrHBuv#UTI_mj-v44LA=iS)H&S4qXBJy@Pr4l+C0E>#(@N)vv zmqC*ux!bFb+1=W%);cEn`I(vKmecW%+C)K%bCA+#f*MPk`SjI?5++9> zl|UT$x|0JN5KXm3cdpZg2fu~kR(PlifOJ5+DVUkZ=0$k>cz^x;NdvsK&81r+*do;v z|JliAnzs-6BYwJL*~gDLfx$;X9in-8JJGl}_Z2z(ydyMEfindF${52W5#rX@9j=P0 z$U&Ck^)@{n2fTcF5Gl}BBjMQ@LnomLo0xVnqOYe@O%|bm3Ax5=PuIh4ACkRkr27W9 za0FwG3gCMq*Xy(1LJJxz5C&czQT=hr52A-5QA;?6ImEAU`K+$I4WzA_Suh7Z{_NCu zV`qocUs@Uj`0`+t{(*0#3Pi;OS>Z|}YiTpcx4Ov?(73=16SnWb!UEyUTvc7& z_sgMP4MsJNQ&-tjv`#l>JN6)m1pSBWFWsP)E#>y-$L$JhiU0vR1n#GrgAr>FNgV*# zT7U)slA>ey_Kw^Ac)ITD>xTgxPD4)v;UAQflhZ!JXdCL=8l&pwb_1DSg;}bLFe?Bq z30Pb$P>(QKTdH8+?RRZcS5wmuBqL1F5Q>V5BE#6GrfBGL{t(HKR}K5qg%ilZh_Ij_ zRgQX!3}{cjht+3*+(F+VfQHi$PA^!^Ty~I4=NP>J6CUS~j0)(Rxw&}*C}|MmFgcC9 z3Fe5Kx2r7pgRUd4PL$M12qK-~C@(u^VN_fJIcsNPAnbv;bo}4j1Odt%w=%Ty5Lp1c zZ3Y?WH8ez8ngA#lWYk$wk_F0%@s*3p^;DjJe1p`~NQjCNb^z%KC}?RQx$iX6BH>=l z;2{P$zv;Mrl``e>l`BpAoAc4|_V930dk-(b5K~jr^NfsPAS&QuA4}&yCJlly3gEMF zzc0Xy0NoCv_%;s>J0~YT3ph%;EP`NwLjQGy(I0aQ3ztIJv<Z+mk23FgFTEA>h}I;)2xzfJVX|C=qB`VCPg$ zz)9g_$afoH+(WEuU|;~V1tK((f?eM6G*D&=HD|pBrZ`UTqASR*X<{Ron~HCGps#PU zVUD}n$+-gTuD}IO1kuEQbz7nD%W_jomTT}=8AQUjWk67aTY#VS{4fmDUu)~@{y8~Zpf0CoX9s4HZw-LU>E|paWPZ?oTQYLm#^-$_F9)g zjPvjaO9%rnzkV)lgDrh?U3e}VuFR{J1+EMbJ(&(J7rqp;>u~}?41yV20a(w!I+od5 zi)Q_rB16V#fv<2FNFD_|-!oK12*<7C3l-+P)#QeVrKhhCH$|NQzAXb^lZcRS?ldLy zt1%Jl9~t@9Nj*l9dEPDfP68xl_Au*(d`$z1rW84z!*~#IJxHfW;44V#r7vXCv6J)_ zVn0)ZrgNIwF8mYE6w?2fJf{T5(c^6doHii-6i+xlg literal 0 HcmV?d00001 diff --git a/doc/schema/surya_inheritance/surya_inheritance_SnapshotErrors.sol.png b/doc/schema/surya_inheritance/surya_inheritance_SnapshotErrors.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..7077774ac96515cff80dffa521af8ef2e4645ff0 GIT binary patch literal 5088 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 literal 0 HcmV?d00001 diff --git a/doc/schema/surya_inheritance/surya_inheritance_draft-IERC1643CMTAT.sol.png b/doc/schema/surya_inheritance/surya_inheritance_draft-IERC1643CMTAT.sol.png new file mode 100644 index 0000000000000000000000000000000000000000..3736f0796c846b7ec77c074d6479c96dc61fc03c GIT binary patch literal 5738 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.1.90" } }, - "node_modules/@ensdomains/address-encoder": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", - "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", - "dev": true, - "dependencies": { - "bech32": "^1.1.3", - "blakejs": "^1.1.0", - "bn.js": "^4.11.8", - "bs58": "^4.0.1", - "crypto-addr-codec": "^0.1.7", - "nano-base32": "^1.0.1", - "ripemd160": "^2.0.2" - } - }, - "node_modules/@ensdomains/ens": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", - "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", - "deprecated": "Please use @ensdomains/ens-contracts", - "dev": true, - "dependencies": { - "bluebird": "^3.5.2", - "eth-ens-namehash": "^2.0.8", - "solc": "^0.4.20", - "testrpc": "0.0.1", - "web3-utils": "^1.0.0-beta.31" - } - }, - "node_modules/@ensdomains/ens/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/@ensdomains/ens/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/@ensdomains/ens/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@ensdomains/ens/node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/@ensdomains/ens/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/@ensdomains/ens/node_modules/solc": { - "version": "0.4.26", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", - "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", - "dev": true, - "dependencies": { - "fs-extra": "^0.30.0", - "memorystream": "^0.3.1", - "require-from-string": "^1.1.0", - "semver": "^5.3.0", - "yargs": "^4.7.1" - }, - "bin": { - "solcjs": "solcjs" - } - }, - "node_modules/@ensdomains/ens/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ensdomains/ens/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/@ensdomains/ens/node_modules/yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", - "dev": true, - "dependencies": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "lodash.assign": "^4.0.3", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.1", - "which-module": "^1.0.0", - "window-size": "^0.2.0", - "y18n": "^3.2.1", - "yargs-parser": "^2.4.1" - } - }, - "node_modules/@ensdomains/ens/node_modules/yargs-parser": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", - "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "lodash.assign": "^4.0.6" - } - }, - "node_modules/@ensdomains/ensjs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", - "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.4.4", - "@ensdomains/address-encoder": "^0.1.7", - "@ensdomains/ens": "0.4.5", - "@ensdomains/resolver": "0.2.4", - "content-hash": "^2.5.2", - "eth-ens-namehash": "^2.0.8", - "ethers": "^5.0.13", - "js-sha3": "^0.8.0" - } - }, - "node_modules/@ensdomains/ensjs/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@ensdomains/resolver": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", - "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", - "deprecated": "Please use @ensdomains/ens-contracts", - "dev": true - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -2516,16 +2219,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, "node_modules/@ethereumjs/rlp": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", @@ -2538,16 +2231,6 @@ "node": ">=14" } }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, "node_modules/@ethereumjs/util": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", @@ -4060,16 +3743,6 @@ "node": ">= 12" } }, - "node_modules/@openzeppelin/contract-loader": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", - "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - } - }, "node_modules/@openzeppelin/contracts": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.2.0.tgz", @@ -4146,24 +3819,6 @@ } } }, - "node_modules/@openzeppelin/test-helpers": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", - "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", - "dev": true, - "dependencies": { - "@openzeppelin/contract-loader": "^0.6.2", - "@truffle/contract": "^4.0.35", - "ansi-colors": "^3.2.3", - "chai": "^4.2.0", - "chai-bn": "^0.2.1", - "ethjs-abi": "^0.2.1", - "lodash.flatten": "^4.4.0", - "semver": "^5.6.0", - "web3": "^1.2.5", - "web3-utils": "^1.2.5" - } - }, "node_modules/@openzeppelin/upgrades-core": { "version": "1.37.1", "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.37.1.tgz", @@ -4335,18 +3990,6 @@ "node": ">=6" } }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, "node_modules/@smithy/types": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.4.0.tgz", @@ -4374,2677 +4017,2220 @@ "antlr4ts": "^0.5.0-alpha.4" } }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@truffle/abi-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz", - "integrity": "sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", "dev": true, "dependencies": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "@types/node": "*" } }, - "node_modules/@truffle/abi-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "node_modules/@types/chai": { + "version": "4.3.19", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz", + "integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==", "dev": true }, - "node_modules/@truffle/abi-utils/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "@types/chai": "*" } }, - "node_modules/@truffle/blockchain-utils": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz", - "integrity": "sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "dependencies": { + "@types/node": "*" } }, - "node_modules/@truffle/codec": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz", - "integrity": "sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, "dependencies": { - "@truffle/abi-utils": "^1.0.3", - "@truffle/compile-common": "^0.9.8", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "^7.5.4", - "utf8": "^3.0.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "@types/ms": "*" } }, - "node_modules/@truffle/codec/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, - "engines": { - "node": "*" + "dependencies": { + "@types/node": "*" } }, - "node_modules/@truffle/codec/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/codec/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" + "@types/minimatch": "*", + "@types/node": "*" } }, - "node_modules/@truffle/codec/node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true }, - "node_modules/@truffle/codec/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true }, - "node_modules/@truffle/codec/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true }, - "node_modules/@truffle/compile-common": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz", - "integrity": "sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "dependencies": { - "@truffle/error": "^0.2.2", - "colors": "1.4.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true }, - "node_modules/@truffle/contract": { - "version": "4.6.31", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz", - "integrity": "sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/@types/node": { + "version": "22.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", "dev": true, "dependencies": { - "@ensdomains/ensjs": "^2.1.0", - "@truffle/blockchain-utils": "^0.1.9", - "@truffle/contract-schema": "^3.4.16", - "@truffle/debug-utils": "^6.0.57", - "@truffle/error": "^0.2.2", - "@truffle/interface-adapter": "^0.5.37", - "bignumber.js": "^7.2.1", - "debug": "^4.3.1", - "ethers": "^4.0.32", - "web3": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "undici-types": "~6.19.2" } }, - "node_modules/@truffle/contract-schema": { - "version": "3.4.16", - "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz", - "integrity": "sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", "dev": true, "dependencies": { - "ajv": "^6.10.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "@types/node": "*" } }, - "node_modules/@truffle/contract/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", "dev": true, "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "@types/node": "*" } }, - "node_modules/@truffle/contract/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, + "optional": true, "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "@types/node": "*" } }, - "node_modules/@truffle/contract/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@truffle/contract/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "dev": true }, - "node_modules/@truffle/contract/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/@truffle/contract/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@truffle/contract/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "engines": { + "node": ">=0.3.0" } }, - "node_modules/@truffle/contract/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "dev": true, + "peer": true }, - "node_modules/@truffle/contract/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "hasInstallScript": true, "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" + "debug": "4" }, "engines": { - "node": ">=8.0.0" + "node": ">= 6.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "hasInstallScript": true, "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/contract/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@truffle/contract/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "node_modules/amazon-cognito-identity-js": { + "version": "6.3.12", + "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz", + "integrity": "sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg==", "dev": true, "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "@aws-crypto/sha256-js": "1.2.2", + "buffer": "4.9.2", + "fast-base64-decode": "^1.0.0", + "isomorphic-unfetch": "^3.0.0", + "js-cookie": "^2.2.1" } }, - "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, + "optional": true, "engines": { - "node": ">=8.0.0" + "node": ">=0.4.2" } }, - "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "string-width": "^4.1.0" } }, - "node_modules/@truffle/contract/node_modules/web3-core/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/@truffle/contract/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node": ">=8" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@truffle/contract/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true + }, + "node_modules/anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/@truffle/contract/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", "dev": true, - "hasInstallScript": true, "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" + "arr-flatten": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/contract/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/contract/node_modules/web3-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/debug-utils": { - "version": "6.0.57", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz", - "integrity": "sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, - "dependencies": { - "@truffle/codec": "^0.17.3", - "@trufflesuite/chromafi": "^3.0.0", - "bn.js": "^5.1.3", - "chalk": "^2.4.2", - "debug": "^4.3.1", - "highlightjs-solidity": "^2.0.6" - }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">=0.10.0" } }, - "node_modules/@truffle/debug-utils/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/debug-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/debug-utils/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/debug-utils/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=8" } }, - "node_modules/@truffle/debug-utils/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@truffle/debug-utils/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/debug-utils/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/@truffle/debug-utils/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/error": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz", - "integrity": "sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/interface-adapter": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz", - "integrity": "sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.10.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "safer-buffer": "~2.1.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "dev": true + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "node_modules/@truffle/interface-adapter/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, "engines": { "node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true }, - "node_modules/@truffle/interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] }, - "node_modules/@truffle/interface-adapter/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "retry": "0.13.1" } }, - "node_modules/@truffle/interface-adapter/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/@truffle/interface-adapter/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" + "bin": { + "atob": "bin/atob.js" }, "engines": { - "node": ">=8.0.0" + "node": ">= 4.5.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "hasInstallScript": true, "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "dev": true }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "node_modules/axios-debug-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/axios-debug-log/-/axios-debug-log-1.0.0.tgz", + "integrity": "sha512-ZjMaEBEij9w+Vbk2Uc3XflchTT7j9rZdYD/snN+XQ5FRDq1QjZNhh0Izb3KSyarU5vTkiCvJyg1xDiQBHZZB9w==", "dev": true, "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" + "@types/debug": "^4.0.0", + "debug": "^4.0.0" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "axios": ">=1.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], "bin": { - "uuid": "dist/bin/uuid" + "semver": "bin/semver.js" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", "dev": true, "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "safe-buffer": "^5.0.1" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" + "is-descriptor": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "node_modules/base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" + "tweetnacl": "^0.14.3" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, + "optional": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "file-uri-to-path": "1.0.0" } }, - "node_modules/@trufflesuite/chromafi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", - "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { - "camelcase": "^4.1.0", - "chalk": "^2.3.2", - "cheerio": "^1.0.0-rc.2", - "detect-indent": "^5.0.0", - "highlight.js": "^10.4.1", - "lodash.merge": "^4.6.2", - "strip-ansi": "^4.0.0", - "strip-indent": "^2.0.0" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/@trufflesuite/chromafi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/@trufflesuite/chromafi/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@trufflesuite/chromafi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/boxen/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=8" } }, - "node_modules/@trufflesuite/chromafi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@trufflesuite/chromafi/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@trufflesuite/chromafi/node_modules/has-flag": { + "node_modules/boxen/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/@trufflesuite/chromafi/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "node_modules/boxen/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "@types/node": "*" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "balanced-match": "^1.0.0" } }, - "node_modules/@types/chai": { - "version": "4.3.19", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz", - "integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==", - "dev": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.8", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", - "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", "dev": true, "dependencies": { - "@types/chai": "*" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "dependencies": { - "@types/ms": "*" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "@types/node": "*" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "dev": true, "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "base-x": "^3.0.2" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "dev": true, "dependencies": { - "@types/node": "*" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true - }, - "node_modules/@types/node": { - "version": "22.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", - "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "dependencies": { - "undici-types": "~6.19.2" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, - "node_modules/@types/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, - "dependencies": { - "@types/node": "*" + "engines": { + "node": "*" } }, - "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/@types/responselike": { + "node_modules/buffer-xor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", "dev": true, + "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { - "@types/node": "*" + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" } }, - "node_modules/@types/secp256k1": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", - "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "node_modules/builtins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", "dev": true, "dependencies": { - "@types/node": "*" + "semver": "^7.0.0" } }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "node_modules/builtins/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", - "dev": true + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "node_modules/c3-linearization": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/c3-linearization/-/c3-linearization-0.3.0.tgz", + "integrity": "sha512-eQNsZQhFSJAhrNrITy2FpKh7EHS98q/pniDtQhndWqqsvayiPeqZ9T6I9V9PsHcm0nc+ZYJHKUvI/hh37I33HQ==", "dev": true }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "node_modules/cache-base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", - "dev": true, - "peer": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/amazon-cognito-identity-js": { - "version": "6.3.12", - "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz", - "integrity": "sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg==", - "dev": true, - "dependencies": { - "@aws-crypto/sha256-js": "1.2.2", - "buffer": "4.9.2", - "fast-base64-decode": "^1.0.0", - "isomorphic-unfetch": "^3.0.0", - "js-cookie": "^2.2.1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "optional": true, "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" + "node": ">=6" } }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/caniuse-lite": { + "version": "1.0.30001660", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", + "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", "dev": true, - "engines": { - "node": ">=8" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "nofilter": "^3.1.0" }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "node_modules/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 6" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=18.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "node_modules/antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "node_modules/anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, "dependencies": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + }, + "optionalDependencies": { + "fsevents": "^1.0.0" } }, - "node_modules/arr-diff": { + "node_modules/chokidar/node_modules/glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "dev": true, "dependencies": { - "arr-flatten": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "is-glob": "^2.0.0" } }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "node_modules/chokidar/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "node_modules/chokidar/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "is-descriptor": "^0.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "node_modules/class-utils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/cli-color": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", + "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "d": "^1.0.1", + "es5-ext": "^0.10.64", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.15", + "timers-ext": "^0.1.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "colors": "1.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.2.0" } }, - "node_modules/arraybuffer.prototype.slice": { + "node_modules/cli-table/node_modules/colors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "object-assign": "^4.1.0", + "string-width": "^2.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "colors": "^1.1.2" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "safer-buffer": "~2.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true - }, - "node_modules/async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 4.5.0" + "node": ">=8" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "node_modules/clone-deep/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", - "dev": true + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } }, - "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/axios-debug-log": { + "node_modules/collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/axios-debug-log/-/axios-debug-log-1.0.0.tgz", - "integrity": "sha512-ZjMaEBEij9w+Vbk2Uc3XflchTT7j9rZdYD/snN+XQ5FRDq1QjZNhh0Izb3KSyarU5vTkiCvJyg1xDiQBHZZB9w==", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" }, - "peerDependencies": { - "axios": ">=1.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", - "semver": "^6.3.1" + "color-name": "~1.1.4" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=0.1.90" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "delayed-stream": "~1.0.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">= 0.8" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, + "engines": [ + "node >= 0.8" + ], "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "node_modules/base-x": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", - "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/base/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "node_modules/convert-svg-core": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/convert-svg-core/-/convert-svg-core-0.6.4.tgz", + "integrity": "sha512-8mS0n7otc1lljTte4z7nDhihEakKCRq4w5ivMnIGeOZuD/OV/eDZNNEgGLV1ET3p+rMbnrZnX4lAcsf14WzD5w==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "individual", + "url": "https://github.com/sponsors/neocotic" }, { "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "url": "https://www.patreon.com/neocotic" } - ] - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, + ], "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true - }, - "node_modules/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true, - "engines": { - "node": "*" + "chalk": "^4.1.2", + "cheerio": "^1.0.0-rc.11", + "commander": "^9.2.0", + "file-url": "^3.0.0", + "get-stdin": "^8.0.0", + "glob": "^8.0.1", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "pollock": "^0.2.0", + "puppeteer": "^13.7.0", + "tmp": "^0.2.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } - }, - "node_modules/bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true, "engines": { - "node": "*" + "node": "^12.20.0 || >=14" } }, - "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "node_modules/convert-svg-core/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || >=14" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "node_modules/convert-svg-core/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "optional": true, "dependencies": { - "file-uri-to-path": "1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/convert-svg-core/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/convert-svg-to-png": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/convert-svg-to-png/-/convert-svg-to-png-0.6.4.tgz", + "integrity": "sha512-zHNTuVedkyuhMl+f+HMm2L7+TKDYCKFAqAmDqUr0dN7/xtgYe76PPAydjlFzeLbzEpGtEfhaA15q+ejpLaVo3g==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "individual", + "url": "https://github.com/sponsors/neocotic" }, { "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "url": "https://www.patreon.com/neocotic" } ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "convert-svg-core": "^0.6.4" + }, + "bin": { + "convert-svg-to-png": "bin/convert-svg-to-png" + }, + "engines": { + "node": "^12.20.0 || >=14" } }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "dev": true - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.6" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "node_modules/core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", "dev": true, "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" + "browserslist": "^4.23.3" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "node_modules/coveralls": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", + "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", "dev": true, "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" + "js-yaml": "^3.13.1", + "lcov-parse": "^1.0.0", + "log-driver": "^1.2.7", + "minimist": "^1.2.5", + "request": "^2.88.2" }, - "engines": { - "node": ">=10" + "bin": { + "coveralls": "bin/coveralls.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "node-fetch": "2.6.7" } }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "engines": { + "node": "*" } }, - "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, - "dependencies": { - "base-x": "^3.0.2" + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "dev": true, "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" } }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, + "assert-plus": "^1.0.0" + }, "engines": { - "node": "*" + "node": ">=0.10" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, - "hasInstallScript": true, "dependencies": { - "node-gyp-build": "^4.3.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=6.14.2" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/builtins/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/c3-linearization": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/c3-linearization/-/c3-linearization-0.3.0.tgz", - "integrity": "sha512-eQNsZQhFSJAhrNrITy2FpKh7EHS98q/pniDtQhndWqqsvayiPeqZ9T6I9V9PsHcm0nc+ZYJHKUvI/hh37I33HQ==", + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", "dev": true }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/cache-base/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, "engines": { - "node": ">=10.6.0" + "node": ">=0.10" } }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "type-detect": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -7053,1175 +6239,1131 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "node_modules/define-property/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001660", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", - "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "engines": { + "node": ">=0.4.0" + } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", "dev": true }, - "node_modules/cbor": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", - "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, - "dependencies": { - "nofilter": "^3.1.0" - }, "engines": { - "node": ">=16" + "node": ">=0.3.1" } }, - "node_modules/chai": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", - "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "node_modules/diff-match-patch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", + "dev": true + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", "dev": true, "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.1.0" + "heap": ">= 0.2.0" }, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/chai-as-promised": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", - "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "check-error": "^1.0.2" + "path-type": "^4.0.0" }, - "peerDependencies": { - "chai": ">= 2.1.2 < 6" + "engines": { + "node": ">=8" } }, - "node_modules/chai-bn": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", - "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "peerDependencies": { - "bn.js": "^4.11.0", - "chai": "^4.0.0" + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, - "engines": { - "node": "*" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "dependencies": { - "get-func-name": "^2.0.2" + "domelementtype": "^2.3.0" }, "engines": { - "node": "*" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/cheerio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", - "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, "dependencies": { - "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "encoding-sniffer": "^0.2.0", - "htmlparser2": "^9.1.0", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^7.0.0", - "parse5-parser-stream": "^7.1.2", - "undici": "^6.19.5", - "whatwg-mimetype": "^4.0.0" - }, - "engines": { - "node": ">=18.17" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "node_modules/electron-to-chromium": { + "version": "1.5.18", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.18.tgz", + "integrity": "sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "dependencies": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - }, - "optionalDependencies": { - "fsevents": "^1.0.0" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", "dev": true, "dependencies": { - "is-glob": "^2.0.0" + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" } }, - "node_modules/chokidar/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "once": "^1.4.0" } }, - "node_modules/chokidar/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, "dependencies": { - "is-extglob": "^1.0.0" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "node_modules/enquirer/node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/enquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" + "node": ">=8" } }, - "node_modules/cids/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/enquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "engines": { + "node": ">=6" } }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", + "node_modules/eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", "dev": true }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "es-errors": "^1.3.0" }, "engines": { "node": ">= 0.4" } }, - "node_modules/class-utils/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "hasown": "^2.0.0" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cli-color": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", - "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "dev": true, + "hasInstallScript": true, "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.64", "es6-iterator": "^2.0.3", - "memoizee": "^0.4.15", - "timers-ext": "^0.1.7" + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" }, "engines": { "node": ">=0.10" } }, - "node_modules/cli-table": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", - "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, "dependencies": { - "colors": "1.0.3" - }, - "engines": { - "node": ">= 0.2.0" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, - "node_modules/cli-table/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dev": true, "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" + "d": "^1.0.2", + "ext": "^1.7.0" }, "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" + "node": ">=0.12" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" } }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "node": ">=10" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=8" + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/escodegen/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/clone-deep/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, "dependencies": { - "mimic-response": "^1.0.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">= 0.8.0" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "prelude-ls": "~1.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=7.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" + "node": ">=12.0.0" }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compare-versions": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", - "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "engines": [ - "node >= 0.8" - ], "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ms": "^2.1.1" } }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/eslint-module-utils": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz", + "integrity": "sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" + "ms": "^2.1.1" } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, "dependencies": { - "safe-buffer": "5.2.1" + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/convert-svg-core": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/convert-svg-core/-/convert-svg-core-0.6.4.tgz", - "integrity": "sha512-8mS0n7otc1lljTte4z7nDhihEakKCRq4w5ivMnIGeOZuD/OV/eDZNNEgGLV1ET3p+rMbnrZnX4lAcsf14WzD5w==", + "node_modules/eslint-plugin-import": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", + "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/neocotic" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/neocotic" - } - ], "dependencies": { - "chalk": "^4.1.2", - "cheerio": "^1.0.0-rc.11", - "commander": "^9.2.0", - "file-url": "^3.0.0", - "get-stdin": "^8.0.0", - "glob": "^8.0.1", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "pollock": "^0.2.0", - "puppeteer": "^13.7.0", - "tmp": "^0.2.1" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.9.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" }, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/convert-svg-core/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": "^12.20.0 || >=14" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/convert-svg-core/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "ms": "^2.1.1" } }, - "node_modules/convert-svg-core/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "esutils": "^2.0.2" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/convert-svg-to-png": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/convert-svg-to-png/-/convert-svg-to-png-0.6.4.tgz", - "integrity": "sha512-zHNTuVedkyuhMl+f+HMm2L7+TKDYCKFAqAmDqUr0dN7/xtgYe76PPAydjlFzeLbzEpGtEfhaA15q+ejpLaVo3g==", + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/neocotic" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/neocotic" - } - ], "dependencies": { - "convert-svg-core": "^0.6.4" - }, - "bin": { - "convert-svg-to-png": "bin/convert-svg-to-png" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^12.20.0 || >=14" + "node": "*" } }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "engines": { - "node": ">= 0.6" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "node_modules/eslint-plugin-mocha-no-only": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha-no-only/-/eslint-plugin-mocha-no-only-1.2.0.tgz", + "integrity": "sha512-sgOilWiikVmYysUvt9q7oUMBYuv/Tka8lQH3766DNxOVqJAKwmP7QqmGYVBiVmqGnn5CDYAo3WWT0F8qw5BDMQ==", "dev": true, + "dependencies": { + "requireindex": "~1.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", "dev": true, "dependencies": { - "browserslist": "^4.23.3" + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/coveralls": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", - "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" - }, - "bin": { - "coveralls": "bin/coveralls.js" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { - "crc32": "bin/crc32.njs" + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "node": ">=10" } }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "node_modules/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" } }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "node_modules/eslint-plugin-node/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "node-fetch": "2.6.7" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=8.10.0" }, - "peerDependencies": { - "encoding": "^0.1.0" + "funding": { + "url": "https://github.com/sponsors/mysticatea" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/eslint-plugin-node/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">= 8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/crypto-addr-codec": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz", - "integrity": "sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g==", + "node_modules/eslint-plugin-node/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "node_modules/eslint-plugin-promise": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", + "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", "dev": true, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=0.10" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/death": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", - "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=10" }, @@ -8229,22 +7371,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "engines": { - "node": ">=0.10" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/decompress-response": { + "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "mimic-response": "^3.1.0" + "p-locate": "^5.0.0" }, "engines": { "node": ">=10" @@ -8253,11 +7398,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decompress-response/node_modules/mimic-response": { + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { "node": ">=10" }, @@ -8265,4691 +7425,1135 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "type-detect": "^4.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", "dev": true, "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/define-property/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.981744", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", - "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", - "dev": true - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", - "dev": true - }, - "node_modules/difflib": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", - "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", - "dev": true, - "dependencies": { - "heap": ">= 0.2.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.5.18", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.18.tgz", - "integrity": "sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding-sniffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", - "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "whatwg-encoding": "^3.1.1" - }, - "funding": { - "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/enquirer/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/enquirer/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eol": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", - "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "dev": true, - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", - "dev": true, - "dependencies": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=0.12.0" - }, - "optionalDependencies": { - "source-map": "~0.2.0" - } - }, - "node_modules/escodegen/node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", - "eslint-plugin-promise": "^6.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz", - "integrity": "sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", - "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", - "dev": true, - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.9.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-mocha-no-only": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha-no-only/-/eslint-plugin-mocha-no-only-1.2.0.tgz", - "integrity": "sha512-sgOilWiikVmYysUvt9q7oUMBYuv/Tka8lQH3766DNxOVqJAKwmP7QqmGYVBiVmqGnn5CDYAo3WWT0F8qw5BDMQ==", - "dev": true, - "dependencies": { - "requireindex": "~1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-n": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", - "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-node/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-node/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", - "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", - "dev": true, - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - }, - "node_modules/eth-gas-reporter": { - "version": "0.2.27", - "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", - "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", - "dev": true, - "dependencies": { - "@solidity-parser/parser": "^0.14.0", - "axios": "^1.5.1", - "cli-table3": "^0.5.0", - "colors": "1.4.0", - "ethereum-cryptography": "^1.0.3", - "ethers": "^5.7.2", - "fs-readdir-recursive": "^1.1.0", - "lodash": "^4.17.14", - "markdown-table": "^1.1.3", - "mocha": "^10.2.0", - "req-cwd": "^2.0.0", - "sha1": "^1.1.1", - "sync-request": "^6.0.0" - }, - "peerDependencies": { - "@codechecks/client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@codechecks/client": { - "optional": true - } - } - }, - "node_modules/eth-gas-reporter/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-lib/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/eth-lib/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", - "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", - "dev": true, - "dependencies": { - "@noble/hashes": "^1.4.0" - } - }, - "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", - "dev": true, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethereum-cryptography": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", - "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", - "dev": true, - "dependencies": { - "@noble/hashes": "1.2.0", - "@noble/secp256k1": "1.7.1", - "@scure/bip32": "1.1.5", - "@scure/bip39": "1.1.1" - } - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-abi/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethers": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", - "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.17.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", - "dev": true, - "peer": true - }, - "node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true, - "peer": true - }, - "node_modules/ethjs-abi": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", - "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", - "dev": true, - "dependencies": { - "bn.js": "4.11.6", - "js-sha3": "0.5.5", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-abi/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true - }, - "node_modules/ethjs-abi/node_modules/js-sha3": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", - "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", - "dev": true - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "dev": true, - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethlint": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/ethlint/-/ethlint-1.2.5.tgz", - "integrity": "sha512-x2nKK98zmd72SFWL3Ul1S6scWYf5QqG221N6/mFNMO661g7ASvTRINGIWVvHzsvflW6y4tvgMSjnTN5RCTuZug==", - "dev": true, - "dependencies": { - "ajv": "^5.2.2", - "chokidar": "^1.6.0", - "colors": "^1.1.2", - "commander": "^2.9.0", - "diff": "^3.5.0", - "eol": "^0.9.1", - "js-string-escape": "^1.0.1", - "lodash": "^4.14.2", - "sol-digger": "0.0.2", - "sol-explore": "1.6.1", - "solium-plugin-security": "0.1.1", - "solparse": "2.2.8", - "text-table": "^0.2.0" - }, - "bin": { - "solium": "bin/solium.js" - } - }, - "node_modules/ethlint/node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", - "dev": true, - "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/ethlint/node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", - "dev": true - }, - "node_modules/ethlint/node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", - "dev": true - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", - "dev": true, - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/execa/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", - "dev": true, - "dependencies": { - "is-posix-bracket": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", - "dev": true, - "dependencies": { - "fill-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-base64-decode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", - "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", - "dev": true - }, - "node_modules/fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "dependencies": { - "pure-rand": "^5.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/file-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", - "integrity": "sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "dependencies": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", - "dev": true - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stdin-promise": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/get-stdin-promise/-/get-stdin-promise-0.1.1.tgz", - "integrity": "sha512-0RgDBFza6edY8WeH/LCXbTJ7g+XuA1S1Ua9Qkd46h6wkzL79W4RVYPTuc4hdzM5EcVl+7U8Xyw3Kr1PI+yJxjg==", - "dev": true, - "dependencies": { - "get-stdin": "^3.0.2", - "rsvp": "^3.0.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stdin-promise/node_modules/get-stdin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz", - "integrity": "sha512-jpAk+A3NUGL/O4N3pwG1Ld3PDqOxTkuAA/HoVHwutXsqW/qYcc4YSgccFpPlg/qbNhZ33ybFhJjbJqRZhryolQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/ghost-testrpc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", - "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "node-emoji": "^1.10.0" - }, - "bin": { - "testrpc-sc": "index.js" - } - }, - "node_modules/ghost-testrpc/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ghost-testrpc/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ghost-testrpc/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ghost-testrpc/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/ghost-testrpc/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ghost-testrpc/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ghost-testrpc/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", - "dev": true, - "dependencies": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-base/node_modules/glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - } - }, - "node_modules/glob-base/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-base/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/graphlib-dot": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/graphlib-dot/-/graphlib-dot-0.6.4.tgz", - "integrity": "sha512-rdhDTu0mBlloTpFMfkQq+e3y4yL22OqP5MhQbkw6QUURqa+4YLgv3XZy2fA64wdEcJNZ+waI76URemVgdFtzng==", - "dev": true, - "dependencies": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "node_modules/graphviz": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", - "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", - "dev": true, - "dependencies": { - "temp": "~0.4.0" - }, - "engines": { - "node": ">=0.6.8" - } - }, - "node_modules/growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hardhat": { - "version": "2.22.10", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.10.tgz", - "integrity": "sha512-JRUDdiystjniAvBGFmJRsiIZSOP2/6s++8xRDe3TzLeQXlWWHsXBrd9wd3JWFyKXvgMqMeLL5Sz/oNxXKYw9vg==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/edr": "^0.5.2", - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "@nomicfoundation/solidity-analyzer": "^0.1.0", - "@sentry/node": "^5.18.1", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "adm-zip": "^0.4.16", - "aggregate-error": "^3.0.0", - "ansi-escapes": "^4.3.0", - "boxen": "^5.1.2", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^1.0.3", - "ethereumjs-abi": "^0.6.8", - "find-up": "^2.1.0", - "fp-ts": "1.19.3", - "fs-extra": "^7.0.1", - "glob": "7.2.0", - "immutable": "^4.0.0-rc.12", - "io-ts": "1.10.4", - "keccak": "^3.0.2", - "lodash": "^4.17.11", - "mnemonist": "^0.38.0", - "mocha": "^10.0.0", - "p-map": "^4.0.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "solc": "0.8.26", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "tsort": "0.0.1", - "undici": "^5.14.0", - "uuid": "^8.3.2", - "ws": "^7.4.6" - }, - "bin": { - "hardhat": "internal/cli/bootstrap.js" - }, - "peerDependencies": { - "ts-node": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/hardhat-contract-sizer": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz", - "integrity": "sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "cli-table3": "^0.6.0", - "strip-ansi": "^6.0.0" + "estraverse": "^5.1.0" }, - "peerDependencies": { - "hardhat": "^2.0.0" - } - }, - "node_modules/hardhat-contract-sizer/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/hardhat-contract-sizer/node_modules/cli-table3": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" + "estraverse": "^5.2.0" }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/hardhat-contract-sizer/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/hardhat-contract-sizer/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/hardhat-contract-sizer/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/hardhat-gas-reporter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", - "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", "dev": true, "dependencies": { - "array-uniq": "1.0.3", - "eth-gas-reporter": "^0.2.25", - "sha1": "^1.1.1" + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" }, "peerDependencies": { - "hardhat": "^2.0.2" - } - }, - "node_modules/hardhat/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/hardhat/node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hardhat/node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/hardhat/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/hardhat/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/hardhat/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/hardhat/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/hardhat/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/hardhat/node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/hardhat/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@codechecks/client": "^0.1.0" }, - "engines": { - "node": ">=6 <7 || >=8" + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } } }, - "node_modules/hardhat/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/hardhat/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hardhat/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/hardhat/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hardhat/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/hardhat/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hardhat/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/hardhat/node_modules/solc": { - "version": "0.8.26", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", - "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", - "dev": true, "dependencies": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solc.js" - }, - "engines": { - "node": ">=10.0.0" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/hardhat/node_modules/solc/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/ethereum-bloom-filters": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", + "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", "dev": true, - "bin": { - "semver": "bin/semver" + "dependencies": { + "@noble/hashes": "^1.4.0" } }, - "node_modules/hardhat/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/hardhat/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", "dev": true, "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" } }, - "node_modules/hardhat/node_modules/undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", "dev": true, "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/hardhat/node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "dependencies": { + "@types/node": "*" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "node_modules/ethereumjs-abi/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dev": true, "dependencies": { - "es-define-property": "^1.0.0" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", "dev": true, - "engines": { - "node": ">= 0.4" + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">= 16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", + "dev": true, + "peer": true + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true, + "peer": true + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", "dev": true, "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/has-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", "dev": true, + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "node_modules/ethlint": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/ethlint/-/ethlint-1.2.5.tgz", + "integrity": "sha512-x2nKK98zmd72SFWL3Ul1S6scWYf5QqG221N6/mFNMO661g7ASvTRINGIWVvHzsvflW6y4tvgMSjnTN5RCTuZug==", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "ajv": "^5.2.2", + "chokidar": "^1.6.0", + "colors": "^1.1.2", + "commander": "^2.9.0", + "diff": "^3.5.0", + "eol": "^0.9.1", + "js-string-escape": "^1.0.1", + "lodash": "^4.14.2", + "sol-digger": "0.0.2", + "sol-explore": "1.6.1", + "solium-plugin-security": "0.1.1", + "solparse": "2.2.8", + "text-table": "^0.2.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "solium": "bin/solium.js" } }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "node_modules/ethlint/node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/ethlint/node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "dev": true + }, + "node_modules/ethlint/node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "dev": true + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "d": "1", + "es5-ext": "~0.10.14" } }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", "dev": true, "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "engines": { "node": ">=4" } }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "node_modules/execa/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/execa/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/execa/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "node_modules/he": { + "node_modules/execa/node_modules/shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/heap": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", - "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", - "dev": true - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/highlightjs-solidity": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", - "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==", - "dev": true - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "node_modules/execa/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", "dev": true }, - "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" - } - }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", "dev": true, "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" + "is-posix-bracket": "^0.1.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", "dev": true, "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "fill-range": "^2.1.0" }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", - "dev": true - }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, "dependencies": { - "@types/node": "^10.0.3" + "type": "^2.7.2" } }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">=0.10.0" } }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">=10.19.0" + "node": ">=0.10.0" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "is-extglob": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/extglob/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, "dependencies": { - "punycode": "2.1.0" + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "engines": [ + "node >=0.6.0" ] }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } + "node_modules/fast-base64-decode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", + "dev": true }, - "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.6.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/fast-glob/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, "engines": { - "node": ">=0.8.19" + "node": ">=8" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/fast-glob/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" + "reusify": "^1.0.4" } }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, - "engines": { - "node": ">= 0.10" + "dependencies": { + "pend": "~1.2.0" } }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, "engines": { - "node": ">=0.10.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, - "dependencies": { - "fp-ts": "^1.0.0" - } + "optional": true }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/file-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", + "integrity": "sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "node_modules/filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "node_modules/fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "locate-path": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6" } }, - "node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { - "binary-extensions": "^1.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "p-limit": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "dependencies": { - "hasown": "^2.0.2" + "find-up": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "flat": "cli.js" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true }, - "node_modules/is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=0.10.0" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "dependencies": { - "is-primitive": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "is-callable": "^1.1.3" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "map-cache": "^0.2.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-hex-prefixed": { + "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=6 <7 || >=8" } }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "dependencies": { - "lower-case": "^1.1.0" + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -12958,77 +8562,53 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-plain-object/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -13037,1364 +8617,1383 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/get-stdin-promise": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/get-stdin-promise/-/get-stdin-promise-0.1.1.tgz", + "integrity": "sha512-0RgDBFza6edY8WeH/LCXbTJ7g+XuA1S1Ua9Qkd46h6wkzL79W4RVYPTuc4hdzM5EcVl+7U8Xyw3Kr1PI+yJxjg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "get-stdin": "^3.0.2", + "rsvp": "^3.0.14" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/get-stdin-promise/node_modules/get-stdin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz", + "integrity": "sha512-jpAk+A3NUGL/O4N3pwG1Ld3PDqOxTkuAA/HoVHwutXsqW/qYcc4YSgccFpPlg/qbNhZ33ybFhJjbJqRZhryolQ==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" + "pump": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.0" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/is-weakref": { + "node_modules/get-symbol-description": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "assert-plus": "^1.0.0" } }, - "node_modules/isomorphic-unfetch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", - "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", "dev": true, "dependencies": { - "node-fetch": "^2.6.1", - "unfetch": "^4.2.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/js-cookie": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", - "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", - "dev": true - }, - "node_modules/js-graph-algorithms": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/js-graph-algorithms/-/js-graph-algorithms-1.0.18.tgz", - "integrity": "sha512-Gu1wtWzXBzGeye/j9BuyplGHscwqKRZodp/0M1vyBc19RJpblSwKGu099KwwaTx9cRIV+Qupk8xUMfEiGfFqSA==", - "dev": true, + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, "bin": { - "js-graphs": "src/jsgraphs.js" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", - "dev": true, - "engines": { - "node": ">= 0.8" + "testrpc-sc": "index.js" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/ghost-testrpc/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "color-convert": "^1.9.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=4" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/ghost-testrpc/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { "node": ">=4" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "node_modules/ghost-testrpc/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "node_modules/ghost-testrpc/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/ghost-testrpc/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "bin": { - "json5": "lib/cli.js" - }, "engines": { - "node": ">=6" + "node": ">=0.8.0" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/ghost-testrpc/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=4" } }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "node_modules/ghost-testrpc/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=0.6.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/keccak": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", - "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", "dev": true, - "hasInstallScript": true, "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/keccak256": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", - "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "node_modules/glob-base/node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "dev": true, "dependencies": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" + "is-glob": "^2.0.0" } }, - "node_modules/keccak256/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/keccak256/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/glob-base/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/glob-base/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, "dependencies": { - "json-buffer": "3.0.1" + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, - "node_modules/klaw": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.1.0.tgz", - "integrity": "sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw==", + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">=14.14.0" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "invert-kv": "^1.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==", + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, - "bin": { - "lcov-parse": "bin/cli.js" + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "node_modules/global-prefix/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "is-utf8": "^0.2.0" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", - "dev": true + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", "dev": true, - "peer": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dependencies": { + "lodash": "^4.17.15" + } }, - "node_modules/lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", - "dev": true + "node_modules/graphlib-dot": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/graphlib-dot/-/graphlib-dot-0.6.4.tgz", + "integrity": "sha512-rdhDTu0mBlloTpFMfkQq+e3y4yL22OqP5MhQbkw6QUURqa+4YLgv3XZy2fA64wdEcJNZ+waI76URemVgdFtzng==", + "dev": true, + "dependencies": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", - "dev": true + "node_modules/graphviz": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", + "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", + "dev": true, + "dependencies": { + "temp": "~0.4.0" + }, + "engines": { + "node": ">=0.6.8" + } }, - "node_modules/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "node_modules/growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", "dev": true, "engines": { - "node": ">=0.8.6" + "node": ">=4.x" } }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">=10" + "node": ">=0.4.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dev": true, "dependencies": { - "lower-case": "^1.1.2" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "node_modules/hardhat": { + "version": "2.22.10", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.10.tgz", + "integrity": "sha512-JRUDdiystjniAvBGFmJRsiIZSOP2/6s++8xRDe3TzLeQXlWWHsXBrd9wd3JWFyKXvgMqMeLL5Sz/oNxXKYw9vg==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/edr": "^0.5.2", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.8.26", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/hardhat-contract-sizer": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz", + "integrity": "sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==", "dev": true, "dependencies": { - "yallist": "^3.0.2" + "chalk": "^4.0.0", + "cli-table3": "^0.6.0", + "strip-ansi": "^6.0.0" + }, + "peerDependencies": { + "hardhat": "^2.0.0" } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + }, + "node_modules/hardhat-contract-sizer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "es5-ext": "~0.10.2" + "engines": { + "node": ">=8" } }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "node_modules/hardhat-contract-sizer/node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "string-width": "^4.2.0" }, "engines": { - "node": ">=6" + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "node_modules/hardhat-contract-sizer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "node_modules/hardhat-contract-sizer/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "object-visit": "^1.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/markdown-table": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", - "dev": true - }, - "node_modules/math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "node_modules/hardhat-contract-sizer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", "dev": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" } }, - "node_modules/mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", + "node_modules/hardhat/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "mimic-fn": "^1.0.0" + "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, - "node_modules/memoizee": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", - "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", + "node_modules/hardhat/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "d": "^1.0.2", - "es5-ext": "^0.10.64", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=0.12" + "node": ">= 8" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "node_modules/hardhat/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, + "node": ">=8" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/hardhat/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/micro-ftch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", - "dev": true - }, - "node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "node_modules/hardhat/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/micromatch/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "node_modules/hardhat/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/micromatch/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "node_modules/hardhat/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "color-name": "1.1.3" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/hardhat/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/hardhat/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, - "bin": { - "mime": "cli.js" - }, "engines": { - "node": ">=4" + "node": ">= 12" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/hardhat/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=0.8.0" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/hardhat/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "node_modules/hardhat/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, "engines": { "node": ">=4" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "node_modules/hardhat/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, "engines": { - "node": ">=4" + "node": ">=6 <7 || >=8" } }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "node_modules/hardhat/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/hardhat/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 6" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/hardhat/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "node_modules/hardhat/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "node_modules/hardhat/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, "dependencies": { - "minipass": "^2.9.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "node_modules/hardhat/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/hardhat/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.4" + "p-try": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/hardhat/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, "dependencies": { - "minimist": "^1.2.6" + "p-limit": "^1.1.0" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=4" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true + "node_modules/hardhat/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", + "node_modules/hardhat/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "dependencies": { - "mkdirp": "*" - }, "engines": { "node": ">=4" } }, - "node_modules/mnemonist": { - "version": "0.38.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", - "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "node_modules/hardhat/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "obliterator": "^2.0.0" + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "node_modules/mocha": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", - "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", + "node_modules/hardhat/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "dependencies": { - "ansi-colors": "^4.1.3", - "browser-stdout": "^1.3.1", - "chokidar": "^3.5.3", - "debug": "^4.3.5", - "diff": "^5.2.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^8.1.0", - "he": "^1.2.0", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^5.1.6", - "ms": "^2.1.3", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^6.5.1", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" + "path-parse": "^1.0.6" }, - "engines": { - "node": ">= 14.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "node_modules/hardhat/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "engines": { - "node": ">=6" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/mocha/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/hardhat/node_modules/solc": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" }, "engines": { - "node": ">= 8" + "node": ">=10.0.0" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/mocha/node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "node_modules/hardhat/node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/hardhat/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "has-flag": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4" } }, - "node_modules/mocha/node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/hardhat/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "dependencies": { - "fill-range": "^7.1.1" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=8" + "node": ">=0.6.0" } }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/hardhat/node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dev": true, "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "@fastify/busboy": "^2.0.0" }, "engines": { - "node": ">= 8.10.0" + "node": ">=14.0" + } + }, + "node_modules/hardhat/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "engines": { + "node": ">=8.3.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/mocha/node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "engines": { - "node": ">=0.3.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mocha/node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { "node": ">=8" } }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "es-define-property": "^1.0.0" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mocha/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "has-symbols": "^1.0.3" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mocha/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/has-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/p-limit": { + "node_modules/hash-base": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, "engines": { - "node": ">=8.10.0" + "node": ">=8" } }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">= 0.4" } }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", - "dev": true + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", "dev": true }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/multibase/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "url": "https://github.com/sponsors/fb55" } ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, "dependencies": { - "varint": "^5.0.0" + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/multihashes/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -14409,2149 +10008,2148 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } + ] }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "engines": { + "node": ">= 4" } }, - "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", - "dev": true, - "optional": true - }, - "node_modules/nano-base32": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", - "integrity": "sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw==", - "dev": true - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", "dev": true }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.19" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { - "lower-case": "^1.1.1" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/node-gyp-build": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", - "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "engines": { + "node": ">= 0.10" } }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true - }, - "node_modules/nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", "dev": true, "engines": { - "node": ">=12.19" + "node": ">=0.10.0" } }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", "dev": true, "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" + "fp-ts": "^1.0.0" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" } }, - "node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { - "remove-trailing-separator": "^1.0.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "has-bigints": "^1.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm": { - "version": "10.8.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", - "integrity": "sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==", - "bundleDependencies": [ - "@isaacs/string-locale-compare", - "@npmcli/arborist", - "@npmcli/config", - "@npmcli/fs", - "@npmcli/map-workspaces", - "@npmcli/package-json", - "@npmcli/promise-spawn", - "@npmcli/redact", - "@npmcli/run-script", - "@sigstore/tuf", - "abbrev", - "archy", - "cacache", - "chalk", - "ci-info", - "cli-columns", - "fastest-levenshtein", - "fs-minipass", - "glob", - "graceful-fs", - "hosted-git-info", - "ini", - "init-package-json", - "is-cidr", - "json-parse-even-better-errors", - "libnpmaccess", - "libnpmdiff", - "libnpmexec", - "libnpmfund", - "libnpmhook", - "libnpmorg", - "libnpmpack", - "libnpmpublish", - "libnpmsearch", - "libnpmteam", - "libnpmversion", - "make-fetch-happen", - "minimatch", - "minipass", - "minipass-pipeline", - "ms", - "node-gyp", - "nopt", - "normalize-package-data", - "npm-audit-report", - "npm-install-checks", - "npm-package-arg", - "npm-pick-manifest", - "npm-profile", - "npm-registry-fetch", - "npm-user-validate", - "p-map", - "pacote", - "parse-conflict-json", - "proc-log", - "qrcode-terminal", - "read", - "semver", - "spdx-expression-parse", - "ssri", - "supports-color", - "tar", - "text-table", - "tiny-relative-date", - "treeverse", - "validate-npm-package-name", - "which", - "write-file-atomic" - ], + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.5.4", - "@npmcli/config": "^8.3.4", - "@npmcli/fs": "^3.1.1", - "@npmcli/map-workspaces": "^3.0.6", - "@npmcli/package-json": "^5.2.0", - "@npmcli/promise-spawn": "^7.0.2", - "@npmcli/redact": "^2.0.1", - "@npmcli/run-script": "^8.1.0", - "@sigstore/tuf": "^2.3.4", - "abbrev": "^2.0.0", - "archy": "~1.0.0", - "cacache": "^18.0.4", - "chalk": "^5.3.0", - "ci-info": "^4.0.0", - "cli-columns": "^4.0.0", - "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.3", - "glob": "^10.4.5", - "graceful-fs": "^4.2.11", - "hosted-git-info": "^7.0.2", - "ini": "^4.1.3", - "init-package-json": "^6.0.3", - "is-cidr": "^5.1.0", - "json-parse-even-better-errors": "^3.0.2", - "libnpmaccess": "^8.0.6", - "libnpmdiff": "^6.1.4", - "libnpmexec": "^8.1.4", - "libnpmfund": "^5.0.12", - "libnpmhook": "^10.0.5", - "libnpmorg": "^6.0.6", - "libnpmpack": "^7.0.4", - "libnpmpublish": "^9.0.9", - "libnpmsearch": "^7.0.6", - "libnpmteam": "^6.0.5", - "libnpmversion": "^6.0.3", - "make-fetch-happen": "^13.0.1", - "minimatch": "^9.0.5", - "minipass": "^7.1.1", - "minipass-pipeline": "^1.2.4", - "ms": "^2.1.2", - "node-gyp": "^10.2.0", - "nopt": "^7.2.1", - "normalize-package-data": "^6.0.2", - "npm-audit-report": "^5.0.0", - "npm-install-checks": "^6.3.0", - "npm-package-arg": "^11.0.3", - "npm-pick-manifest": "^9.1.0", - "npm-profile": "^10.0.0", - "npm-registry-fetch": "^17.1.0", - "npm-user-validate": "^2.0.1", - "p-map": "^4.0.0", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.1", - "proc-log": "^4.2.0", - "qrcode-terminal": "^0.12.0", - "read": "^3.0.1", - "semver": "^7.6.3", - "spdx-expression-parse": "^4.0.0", - "ssri": "^10.0.6", - "supports-color": "^9.4.0", - "tar": "^6.2.1", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.1", - "which": "^4.0.0", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "npm": "bin/npm-cli.js", - "npx": "bin/npx-cli.js" + "binary-extensions": "^1.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { - "path-key": "^2.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@isaacs/cliui": { - "version": "8.0.2", + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "hasown": "^2.0.2" }, "engines": { - "node": ">=12" - } - }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "hasown": "^2.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/@npmcli/agent": { - "version": "2.2.2", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.5.4", + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.1", - "@npmcli/installed-package-contents": "^2.1.0", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.1.1", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.1.0", - "@npmcli/query": "^3.1.0", - "@npmcli/redact": "^2.0.0", - "@npmcli/run-script": "^8.1.0", - "bin-links": "^4.0.4", - "cacache": "^18.0.3", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.2", - "json-parse-even-better-errors": "^3.0.2", - "json-stringify-nice": "^1.1.4", - "lru-cache": "^10.2.2", - "minimatch": "^9.0.4", - "nopt": "^7.2.1", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.2", - "npm-pick-manifest": "^9.0.1", - "npm-registry-fetch": "^17.0.1", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.0", - "proc-log": "^4.2.0", - "proggy": "^2.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^3.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^10.0.6", - "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" - }, - "bin": { - "arborist": "bin/index.js" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.3.4", + "node_modules/is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/package-json": "^5.1.1", - "ci-info": "^4.0.0", - "ini": "^4.1.2", - "nopt": "^7.2.1", - "proc-log": "^4.2.0", - "semver": "^7.3.5", - "walk-up-path": "^3.0.1" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.1", + "node_modules/is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "semver": "^7.3.5" + "is-primitive": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.8", + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.6", + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "7.1.1", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "cacache": "^18.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^18.0.0", - "proc-log": "^4.1.0", - "semver": "^7.3.5" + "is-extglob": "^2.1.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "3.0.0", + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.2.0", + "node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", - "semver": "^7.5.3" + "kind-of": "^3.0.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "which": "^4.0.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@npmcli/query": { - "version": "3.1.0", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/@npmcli/redact": { - "version": "2.0.1", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "8.1.0", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@pkgjs/parseargs": { - "version": "0.11.0", + "node_modules/is-plain-object/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, "engines": { - "node": ">=14" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.3.2", + "node_modules/is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@sigstore/core": { - "version": "1.1.0", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", + "dependencies": { + "call-bind": "^1.0.7" + }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.3.2", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.3.4", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" + "has-symbols": "^1.0.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@sigstore/verify": { - "version": "1.2.1", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" + "which-typed-array": "^1.1.14" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/@tufjs/canonical-json": { - "version": "2.0.0", + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@tufjs/models": { - "version": "2.0.1", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" + "call-bind": "^1.0.2" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/abbrev": { - "version": "2.0.0", + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/agent-base": { - "version": "7.1.1", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "debug": "^4.3.4" + "isarray": "1.0.0" }, "engines": { - "node": ">= 14" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/aggregate-error": { + "node_modules/isomorphic-unfetch": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", + "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node-fetch": "^2.6.1", + "unfetch": "^4.2.0" } }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", + "dev": true + }, + "node_modules/js-graph-algorithms": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/js-graph-algorithms/-/js-graph-algorithms-1.0.18.tgz", + "integrity": "sha512-Gu1wtWzXBzGeye/j9BuyplGHscwqKRZodp/0M1vyBc19RJpblSwKGu099KwwaTx9cRIV+Qupk8xUMfEiGfFqSA==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" + "bin": { + "js-graphs": "src/jsgraphs.js" } }, - "node_modules/npm/node_modules/ansi-styles": { - "version": "6.2.1", + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.8" } }, - "node_modules/npm/node_modules/aproba": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, - "node_modules/npm/node_modules/archy": { - "version": "1.0.0", + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "inBundle": true, - "license": "MIT" + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "inBundle": true, - "license": "MIT" + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/npm/node_modules/bin-links": { - "version": "4.0.4", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/npm/node_modules/binary-extensions": { - "version": "2.3.0", + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", + "node_modules/jsonschema": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.5.0.tgz", + "integrity": "sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": "*" } }, - "node_modules/npm/node_modules/cacache": { - "version": "18.0.4", + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.6.0" } }, - "node_modules/npm/node_modules/chalk": { - "version": "5.3.0", + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/npm/node_modules/chownr": { - "version": "2.0.0", + "node_modules/keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=10" + "dependencies": { + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" } }, - "node_modules/npm/node_modules/ci-info": { - "version": "4.0.0", + "node_modules/keccak256/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/keccak256/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cidr-regex": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", "dependencies": { - "ip-regex": "^5.0.0" - }, - "engines": { - "node": ">=14" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">= 10" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.3", + "node_modules/klaw": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.1.0.tgz", + "integrity": "sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=14.14.0" } }, - "node_modules/npm/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "invert-kv": "^1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", + "node_modules/lcov-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", + "integrity": "sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==", "dev": true, - "inBundle": true, - "license": "ISC" + "bin": { + "lcov-parse": "bin/cli.js" + } }, - "node_modules/npm/node_modules/cross-spawn": { - "version": "7.0.3", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">= 8" + "node": ">= 0.8.0" } }, - "node_modules/npm/node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/npm/node_modules/cssesc": { - "version": "3.0.0", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true, + "peer": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "dev": true + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "node_modules/log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, "engines": { - "node": ">=4" + "node": ">=0.8.6" } }, - "node_modules/npm/node_modules/debug": { - "version": "4.3.6", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ms": "2.1.2" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=6.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/diff": { - "version": "5.2.0", + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" + "dependencies": { + "get-func-name": "^2.0.1" } }, - "node_modules/npm/node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true }, - "node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "inBundle": true, - "license": "MIT" + "dependencies": { + "yallist": "^3.0.2" + } }, - "node_modules/npm/node_modules/encoding": { - "version": "0.1.13", + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, "dependencies": { - "iconv-lite": "^0.6.2" + "es5-ext": "~0.10.2" } }, - "node_modules/npm/node_modules/env-paths": { - "version": "2.2.1", + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, "engines": { "node": ">=6" } }, - "node_modules/npm/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/exponential-backoff": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/npm/node_modules/fastest-levenshtein": { - "version": "1.0.16", + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">= 4.9.1" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/foreground-child": { - "version": "3.3.0", + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "object-visit": "^1.0.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/fs-minipass": { - "version": "3.0.3", + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "node_modules/math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/npm/node_modules/glob": { - "version": "10.4.5", + "node_modules/mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "mimic-fn": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=4" } }, - "node_modules/npm/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/hosted-git-info": { - "version": "7.0.2", + "node_modules/memoizee": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "lru-cache": "^10.0.1" + "d": "^1.0.2", + "es5-ext": "^0.10.64", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.12" } }, - "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" + "engines": { + "node": ">= 0.10.0" + } }, - "node_modules/npm/node_modules/http-proxy-agent": { - "version": "7.0.2", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, "engines": { - "node": ">= 14" + "node": ">= 8" } }, - "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.5", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "dev": true + }, + "node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" }, "engines": { - "node": ">= 14" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/iconv-lite": { - "version": "0.6.3", + "node_modules/micromatch/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.5", + "node_modules/micromatch/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minimatch": "^9.0.0" + "is-extglob": "^1.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=0.8.19" + "node": ">= 0.6" } }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/npm/node_modules/ini": { - "version": "4.1.3", + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/npm/node_modules/init-package-json": { - "version": "6.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/package-json": "^5.0.0", - "npm-package-arg": "^11.0.0", - "promzard": "^1.0.0", - "read": "^3.0.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true }, - "node_modules/npm/node_modules/ip-address": { + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 12" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/ip-regex": { - "version": "5.0.0", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/is-cidr": { - "version": "5.1.0", + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "^4.1.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=14" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/is-lambda": { - "version": "1.0.1", + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "inBundle": true, - "license": "MIT" + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } }, - "node_modules/npm/node_modules/isexe": { - "version": "2.0.0", + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", "dev": true, - "inBundle": true, - "license": "ISC" + "dependencies": { + "obliterator": "^2.0.0" + } }, - "node_modules/npm/node_modules/jackspeak": { - "version": "3.4.3", + "node_modules/mocha": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", + "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/npm/node_modules/jsbn": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/npm/node_modules/json-stringify-nice": { - "version": "1.1.4", + "node_modules/mocha/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/npm/node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff-apply": { - "version": "5.5.0", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, - "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.6", + "node_modules/mocha/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^11.0.2", - "npm-registry-fetch": "^17.0.1" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.1.4", + "node_modules/mocha/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.4", - "@npmcli/installed-package-contents": "^2.1.0", - "binary-extensions": "^2.3.0", - "diff": "^5.1.0", - "minimatch": "^9.0.4", - "npm-package-arg": "^11.0.2", - "pacote": "^18.0.6", - "tar": "^6.2.1" + "fill-range": "^7.1.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/libnpmexec": { - "version": "8.1.4", + "node_modules/mocha/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.4", - "@npmcli/run-script": "^8.1.0", - "ci-info": "^4.0.0", - "npm-package-arg": "^11.0.2", - "pacote": "^18.0.6", - "proc-log": "^4.2.0", - "read": "^3.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "walk-up-path": "^3.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.12", + "node_modules/mocha/node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^7.5.4" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.3.1" } }, - "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.5", + "node_modules/mocha/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^17.0.1" + "to-regex-range": "^5.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.6", + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^17.0.1" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/libnpmpack": { - "version": "7.0.4", + "node_modules/mocha/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^7.5.4", - "@npmcli/run-script": "^8.1.0", - "npm-package-arg": "^11.0.2", - "pacote": "^18.0.6" - }, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.9", + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "ci-info": "^4.0.0", - "normalize-package-data": "^6.0.1", - "npm-package-arg": "^11.0.2", - "npm-registry-fetch": "^17.0.1", - "proc-log": "^4.2.0", - "semver": "^7.3.7", - "sigstore": "^2.2.0", - "ssri": "^10.0.6" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.6", + "node_modules/mocha/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "npm-registry-fetch": "^17.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.5", + "node_modules/mocha/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^17.0.1" + "binary-extensions": "^2.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/libnpmversion": { - "version": "6.0.3", + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.7", - "@npmcli/run-script": "^8.1.0", - "json-parse-even-better-errors": "^3.0.2", - "proc-log": "^4.2.0", - "semver": "^7.3.7" + "argparse": "^2.0.1" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/npm/node_modules/lru-cache": { - "version": "10.4.3", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/make-fetch-happen": { - "version": "13.0.1", + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/minimatch": { - "version": "9.0.5", + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, - "node_modules/npm/node_modules/minipass": { - "version": "7.1.2", + "node_modules/mocha/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/minipass-collect": { - "version": "2.0.1", + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.5", + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/minipass-flush": { - "version": "1.0.5", + "node_modules/mocha/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 8" + "node": ">=8.10.0" } }, - "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/npm/node_modules/minipass-pipeline": { - "version": "1.2.4", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", + "node_modules/nanomatch/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", + "node_modules/nanomatch/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" + "lodash": "^4.17.21" } }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", "dev": true, - "inBundle": true, - "license": "MIT", "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "node_modules/npm/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true }, - "node_modules/npm/node_modules/mute-stream": { - "version": "1.0.0", + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12.19" } }, - "node_modules/npm/node_modules/negotiator": { - "version": "0.6.3", + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" } }, - "node_modules/npm/node_modules/node-gyp": { - "version": "10.2.0", + "node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", - "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "remove-trailing-separator": "^1.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/nopt": { - "version": "7.2.1", + "node_modules/npm": { + "version": "10.8.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", + "integrity": "sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "abbrev": "^2.0.0" + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^7.5.4", + "@npmcli/config": "^8.3.4", + "@npmcli/fs": "^3.1.1", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.2.0", + "@npmcli/promise-spawn": "^7.0.2", + "@npmcli/redact": "^2.0.1", + "@npmcli/run-script": "^8.1.0", + "@sigstore/tuf": "^2.3.4", + "abbrev": "^2.0.0", + "archy": "~1.0.0", + "cacache": "^18.0.4", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^7.0.2", + "ini": "^4.1.3", + "init-package-json": "^6.0.3", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^3.0.2", + "libnpmaccess": "^8.0.6", + "libnpmdiff": "^6.1.4", + "libnpmexec": "^8.1.4", + "libnpmfund": "^5.0.12", + "libnpmhook": "^10.0.5", + "libnpmorg": "^6.0.6", + "libnpmpack": "^7.0.4", + "libnpmpublish": "^9.0.9", + "libnpmsearch": "^7.0.6", + "libnpmteam": "^6.0.5", + "libnpmversion": "^6.0.3", + "make-fetch-happen": "^13.0.1", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.2.0", + "nopt": "^7.2.1", + "normalize-package-data": "^6.0.2", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.3", + "npm-pick-manifest": "^9.1.0", + "npm-profile": "^10.0.0", + "npm-registry-fetch": "^17.1.0", + "npm-user-validate": "^2.0.1", + "p-map": "^4.0.0", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.1", + "proc-log": "^4.2.0", + "qrcode-terminal": "^0.12.0", + "read": "^3.0.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^10.0.6", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.1", + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" }, "bin": { - "nopt": "bin/nopt.js" + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "6.0.2", + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "path-key": "^2.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "5.0.0", + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.1", + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.3.0", + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "11.0.3", + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", "dev": true, "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "8.0.2", + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "ignore-walk": "^6.0.4" + "ansi-regex": "^6.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "9.1.0", + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npm-profile": { - "version": "10.0.0", + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.5.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.1.1", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", "npm-registry-fetch": "^17.0.1", - "proc-log": "^4.0.0" + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.6", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" }, "engines": { - "node": ">=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "17.1.0", + "node_modules/npm/node_modules/@npmcli/config": { + "version": "8.3.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/redact": "^2.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/package-json": "^5.1.1", + "ci-info": "^4.0.0", + "ini": "^4.1.2", + "nopt": "^7.2.1", + "proc-log": "^4.2.0", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "3.1.1", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "aggregate-error": "^3.0.0" + "semver": "^7.3.5" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/package-json-from-dist": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/npm/node_modules/pacote": { - "version": "18.0.6", + "node_modules/npm/node_modules/@npmcli/git": { + "version": "5.0.8", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" + "semver": "^7.3.5", + "which": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/parse-conflict-json": { - "version": "3.0.1", + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/path-scurry": { - "version": "1.11.1", + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", "dev": true, "inBundle": true, - "license": "BlueOak-1.0.0", + "license": "ISC", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" }, "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.1.2", + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "7.1.1", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/proc-log": { - "version": "4.2.0", + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -16559,8 +12157,8 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/proggy": { - "version": "2.0.0", + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -16568,160 +12166,116 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/promise-all-reject-late": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-call-limit": { - "version": "3.0.1", + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "5.2.0", "dev": true, "inBundle": true, "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/promzard": { - "version": "1.0.2", + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "read": "^3.0.1" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/qrcode-terminal": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/read": { - "version": "3.0.1", + "node_modules/npm/node_modules/@npmcli/query": { + "version": "3.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "^1.0.0" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/read-cmd-shim": { - "version": "4.0.0", + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/read-package-json-fast": { - "version": "3.0.2", + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", "dev": true, "inBundle": true, "license": "MIT", - "optional": true - }, - "node_modules/npm/node_modules/semver": { - "version": "7.6.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "optional": true, "engines": { - "node": ">=10" + "node": ">=14" } }, - "node_modules/npm/node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.3.2", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "shebang-regex": "^3.0.0" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/signal-exit": { - "version": "4.1.0", + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", "dev": true, "inBundle": true, - "license": "ISC", + "license": "Apache-2.0", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/sigstore": { - "version": "2.3.1", + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -16729,2962 +12283,2857 @@ "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/smart-buffer": { - "version": "4.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks": { - "version": "2.8.3", + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.3.4", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.4", + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.1", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.8.3" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": ">= 14" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/spdx-correct": { - "version": "3.2.0", + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { - "version": "3.0.1", + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.5.0", + "node_modules/npm/node_modules/abbrev": { + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "CC-BY-3.0" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "4.0.0", + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.18", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npm/node_modules/sprintf-js": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/npm/node_modules/ssri": { - "version": "10.0.6", + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/string-width": { - "version": "4.2.3", + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "6.0.1", + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "4.0.4", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1" + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.3.0", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/supports-color": { - "version": "9.4.0", + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", "dev": true, "inBundle": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/npm/node_modules/tar": { - "version": "6.2.1", + "node_modules/npm/node_modules/cacache": { + "version": "18.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", "dev": true, "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 8" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/npm/node_modules/tar/node_modules/minipass": { - "version": "5.0.0", + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "inBundle": true, - "license": "ISC", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/tiny-relative-date": { - "version": "1.3.0", + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", "dev": true, "inBundle": true, - "license": "MIT" + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } }, - "node_modules/npm/node_modules/treeverse": { - "version": "3.0.0", + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/npm/node_modules/tuf-js": { - "version": "2.2.1", + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/npm/node_modules/unique-filename": { - "version": "3.0.0", + "node_modules/npm/node_modules/cmd-shim": { + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/unique-slug": { - "version": "4.0.0", + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", "dev": true, "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/npm/node_modules/util-deprecate": { - "version": "1.0.2", + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.4", + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", "dev": true, "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "license": "ISC" }, - "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { - "version": "3.0.1", + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/npm/node_modules/walk-up-path": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/which": { - "version": "4.0.0", + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/which.js" + "node-which": "bin/node-which" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/npm/node_modules/which/node_modules/isexe": { - "version": "3.1.1", + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, "engines": { - "node": ">=16" + "node": ">=4" } }, - "node_modules/npm/node_modules/wrap-ansi": { - "version": "8.1.0", + "node_modules/npm/node_modules/debug": { + "version": "4.3.6", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ms": "2.1.2" }, "engines": { - "node": ">=12" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/npm/node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", "dev": true, "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "license": "MIT" + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=0.3.1" } }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "iconv-lite": "^0.6.2" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", "dev": true, "inBundle": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=6" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4.9.1" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-regex": "^6.0.1" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/write-file-atomic": { - "version": "5.0.1", + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/yallist": { - "version": "4.0.0", + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", "dev": true, "inBundle": true, - "license": "ISC" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, + "license": "ISC", "dependencies": { - "boolbase": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "inBundle": true, + "license": "ISC" }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "node_modules/npm/node_modules/hosted-git-info": { + "version": "7.0.2", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", "dev": true, - "engines": { - "node": "*" - } + "inBundle": true, + "license": "BSD-2-Clause" }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.5", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, "dependencies": { - "is-descriptor": "^0.1.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/npm/node_modules/ignore-walk": { + "version": "6.0.5", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "minimatch": "^9.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.8.19" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "node_modules/npm/node_modules/ini": { + "version": "4.1.3", "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/object-visit/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/npm/node_modules/init-package-json": { + "version": "6.0.3", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 12" } }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" + "cidr-regex": "^4.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=14" } }, - "node_modules/object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, - "dependencies": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", "dependencies": { - "isobject": "^3.0.1" + "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/object.pick/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, + "inBundle": true, + "license": "ISC", "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/obliterator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", - "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", - "dev": true + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", "dev": true, - "dependencies": { - "http-https": "^1.0.0" - } + "inBundle": true, + "license": "MIT" }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "8.0.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "ee-first": "1.1.1" + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": ">= 0.8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/npm/node_modules/libnpmdiff": { + "version": "6.1.4", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "wrappy": "1" + "@npmcli/arborist": "^7.5.4", + "@npmcli/installed-package-contents": "^2.1.0", + "binary-extensions": "^2.3.0", + "diff": "^5.1.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "tar": "^6.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "node_modules/npm/node_modules/libnpmexec": { + "version": "8.1.4", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "proc-log": "^4.2.0", + "read": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/ordinal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", - "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", - "dev": true - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "node_modules/npm/node_modules/libnpmfund": { + "version": "5.0.12", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "lcid": "^1.0.0" + "@npmcli/arborist": "^7.5.4" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/npm/node_modules/libnpmhook": { + "version": "10.0.5", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "node_modules/npm/node_modules/libnpmorg": { + "version": "6.0.6", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, "engines": { - "node": ">=12.20" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "node_modules/npm/node_modules/libnpmpack": { + "version": "7.0.4", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6" + }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/npm/node_modules/libnpmpublish": { + "version": "9.0.9", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "p-try": "^2.0.0" + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.6" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/npm/node_modules/libnpmsearch": { + "version": "7.0.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "p-limit": "^2.2.0" + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/npm/node_modules/libnpmteam": { + "version": "6.0.5", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "aggregate-error": "^3.0.0" + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/npm/node_modules/libnpmversion": { + "version": "6.0.3", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.7", + "@npmcli/run-script": "^8.1.0", + "json-parse-even-better-errors": "^3.0.2", + "proc-log": "^4.2.0", + "semver": "^7.3.7" + }, "engines": { - "node": ">=6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } + "inBundle": true, + "license": "ISC" }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "13.0.1", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "callsites": "^3.0.0" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, "engines": { - "node": ">=6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/parse-cache-control": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", - "dev": true - }, - "node_modules/parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/parse-glob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/parse-glob/node_modules/is-glob": { + "node_modules/npm/node_modules/minipass-collect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "is-extglob": "^1.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "dev": true - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "node_modules/npm/node_modules/minipass-fetch": { + "version": "3.0.5", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "error-ex": "^1.2.0" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "entities": "^4.4.0" + "minipass": "^3.0.0" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">= 8" } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" + "yallist": "^4.0.0" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/parse5-parser-stream": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", - "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "parse5": "^7.0.0" + "minipass": "^3.0.0" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "no-case": "^2.2.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "node_modules/npm/node_modules/node-gyp": { + "version": "10.2.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">=0.12" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pegjs": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", - "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", + "node_modules/npm/node_modules/nopt": { + "version": "7.2.1", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, "bin": { - "pegjs": "bin/pegjs" + "nopt": "bin/nopt.js" }, "engines": { - "node": ">=0.10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.2", "dev": true, - "engines": { - "node": ">=8.6" + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.1", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", "dependencies": { - "pinkie": "^2.0.0" + "semver": "^7.1.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">= 6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.3", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "find-up": "^4.0.0" + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pollock": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/pollock/-/pollock-0.2.1.tgz", - "integrity": "sha512-2Xy6LImSXm0ANKv9BKSVuCa6Z4ACbK7oUrl9gtUgqLkekL7n9C0mlWsOGYYuGbCG8xT0x3Q4F31C3ZMyVQjwsg==", - "dev": true - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.2", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "9.1.0", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, "engines": { - "node": ">= 0.4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/npm/node_modules/npm-profile": { + "version": "10.0.0", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.0.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=18.0.0" } }, - "node_modules/preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "17.1.0", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "node_modules/npm/node_modules/npm-user-validate": { + "version": "2.0.1", "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, + "inBundle": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/prettier-plugin-solidity": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.4.1.tgz", - "integrity": "sha512-Mq8EtfacVZ/0+uDKTtHZGW3Aa7vEbX/BNx63hmVg6YTiTXSiuKP0amj0G6pGwjmLaOfymWh3QgXEZkjQbU8QRg==", + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "@solidity-parser/parser": "^0.18.0", - "semver": "^7.5.4" + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">=16" + "node": ">=10" }, - "peerDependencies": { - "prettier": ">=2.3.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", - "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", - "dev": true + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0" }, - "node_modules/prettier-plugin-solidity/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/npm/node_modules/pacote": { + "version": "18.0.6", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, "bin": { - "semver": "bin/semver.js" + "pacote": "bin/index.js" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "3.0.1", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, "engines": { - "node": ">= 0.6.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", "dependencies": { - "asap": "~2.0.6" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "node_modules/proper-lockfile/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/npm/node_modules/proc-log": { + "version": "4.2.0", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">= 4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/npm/node_modules/proggy": { + "version": "2.0.0", "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">= 0.10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.1", "dev": true, - "engines": { - "node": ">=6" + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/puppeteer": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", - "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", - "deprecated": "< 22.8.2 is no longer supported", + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", "dev": true, - "hasInstallScript": true, - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" - }, - "engines": { - "node": ">=10.18.1" - } + "inBundle": true, + "license": "ISC" }, - "node_modules/puppeteer/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "err-code": "^2.0.2", + "retry": "^0.12.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=10" } }, - "node_modules/puppeteer/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/puppeteer/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "node_modules/npm/node_modules/promzard": { + "version": "1.0.2", "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^3.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "node_modules/npm/node_modules/read": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" } }, - "node_modules/randomatic/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/randomatic/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/npm/node_modules/sigstore": { + "version": "2.3.1", "dev": true, + "inBundle": true, + "license": "Apache-2.0", "dependencies": { - "safe-buffer": "^5.1.0" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.4", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", "dev": true, + "inBundle": true, + "license": "Apache-2.0", "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.18", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "10.0.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "pinkie-promise": "^2.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "node_modules/readdirp/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/readdirp/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/readdirp/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "is-extendable": "^0.1.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/readdirp/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", "dev": true, - "dependencies": { - "ms": "2.0.0" + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" } }, - "node_modules/readdirp/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/npm/node_modules/tuf-js": { + "version": "2.2.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "is-descriptor": "^0.1.0" + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/npm/node_modules/unique-filename": { + "version": "3.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "is-extendable": "^0.1.0" + "unique-slug": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/npm/node_modules/unique-slug": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "imurmurhash": "^0.1.4" }, "engines": { - "node": ">= 0.4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/readdirp/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", "dev": true, + "inBundle": true, + "license": "Apache-2.0", "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/readdirp/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "5.0.1", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/readdirp/node_modules/fill-range": { + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/which": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=0.10.0" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=16" } }, - "node_modules/readdirp/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "kind-of": "^3.0.2" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/readdirp/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/readdirp/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "node": ">=12" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/readdirp/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/readdirp/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + "inBundle": true, + "license": "MIT" }, - "node_modules/readdirp/node_modules/safe-buffer": { + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readdirp/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/readdirp/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "resolve": "^1.1.6" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 0.10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "dependencies": { - "minimatch": "^3.0.5" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">=6.0.0" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/recursive-readdir/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": "*" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", "dev": true }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, "dependencies": { - "is-equal-shallow": "^0.1.3" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, "dependencies": { - "jsesc": "~0.5.0" + "isobject": "^3.0.0" }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/req-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", - "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "req-from": "^2.0.0" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/req-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", - "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "resolve-from": "^3.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/req-from/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" } }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true - }, - "node_modules/requireindex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz", - "integrity": "sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==", + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { - "node": ">=0.10.5" + "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", "dev": true }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "wrappy": "1" } }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "lowercase-keys": "^2.0.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "dev": true }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "p-try": "^2.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", - "dev": true, + "p-limit": "^2.2.0" + }, "engines": { "node": ">=8" } }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "dependencies": { - "bn.js": "^5.2.0" + "aggregate-error": "^3.0.0" }, - "bin": { - "rlp": "bin/rlp" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rlp/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { - "node": "0.12.* || 4.* || 6.* || >= 7.*" + "node": ">=6" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "queue-microtask": "^1.2.2" + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" }, "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/parse-glob/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "node_modules/parse-glob/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, "dependencies": { - "ret": "~0.1.10" + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" + "entities": "^4.4.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sc-istanbul": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", - "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dev": true, "dependencies": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" + "domhandler": "^5.0.2", + "parse5": "^7.0.0" }, - "bin": { - "istanbul": "lib/cli.js" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/sc-istanbul/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true - }, - "node_modules/sc-istanbul/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/sc-istanbul/node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/sc-istanbul/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/sc-istanbul/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/sc-istanbul/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/sc-istanbul/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/sc-istanbul/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/sc-istanbul/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "engines": { + "node": "*" } }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/secp256k1": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz", - "integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==", + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, - "hasInstallScript": true, "dependencies": { - "elliptic": "^6.5.7", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" }, "engines": { - "node": ">=18.0.0" + "node": ">=0.12" } }, - "node_modules/secp256k1/node_modules/elliptic": { - "version": "6.5.7", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", - "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "node_modules/pegjs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "bin": { + "pegjs": "bin/pegjs" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/secp256k1/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, "engines": { - "node": ">= 0.8.0" + "node": ">= 6" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/pollock": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/pollock/-/pollock-0.2.1.tgz", + "integrity": "sha512-2Xy6LImSXm0ANKv9BKSVuCa6Z4ACbK7oUrl9gtUgqLkekL7n9C0mlWsOGYYuGbCG8xT0x3Q4F31C3ZMyVQjwsg==", "dev": true }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" + "engines": { + "node": ">= 0.4" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", "dev": true, - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "node_modules/prettier-plugin-solidity": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.4.1.tgz", + "integrity": "sha512-Mq8EtfacVZ/0+uDKTtHZGW3Aa7vEbX/BNx63hmVg6YTiTXSiuKP0amj0G6pGwjmLaOfymWh3QgXEZkjQbU8QRg==", "dev": true, "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" + "@solidity-parser/parser": "^0.18.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=6" + "node": ">=16" + }, + "peerDependencies": { + "prettier": ">=2.3.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", "dev": true }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/prettier-plugin-solidity/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=0.4.0" } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "asap": "~2.0.6" } }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" - }, + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/proper-lockfile/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/sha1": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", - "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "node_modules/punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", + "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", + "deprecated": "< 22.8.2 is no longer supported", "dev": true, + "hasInstallScript": true, "dependencies": { - "charenc": ">= 0.0.1", - "crypt": ">= 0.0.1" + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" }, "engines": { - "node": "*" + "node": ">=10.18.1" } }, - "node_modules/sha1-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sha1-file/-/sha1-file-2.0.1.tgz", - "integrity": "sha512-L4Kum9Lp8cWqcGKycZcXxR6spUoG4idDIUzAKjPiELnIZWxiFlZ5HFVzFxVxuWuGPsrraeL0JoGk0nFZ7AGFEQ==", + "node_modules/puppeteer/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "hasha": "^5.2.0" + "ms": "2.1.2" }, "engines": { - "node": ">=10" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "node_modules/puppeteer/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/puppeteer/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", "dev": true, - "dependencies": { - "buffer": "6.0.3" + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -19699,25 +15148,32 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + ] }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "dependencies": { - "kind-of": "^6.0.2" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.10.0" } }, - "node_modules/shallow-clone/node_modules/kind-of": { + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randomatic/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", @@ -19726,199 +15182,205 @@ "node": ">=0.10.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "node_modules/readdirp/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "node_modules/readdirp/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/simple-get/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "node_modules/readdirp/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { - "mimic-response": "^1.0.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/sloc": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/sloc/-/sloc-0.3.2.tgz", - "integrity": "sha512-tnB+gi6TiFpt3qmCGfaV+78dfKwLiH5HRohkW+PnJYHNAcEdk408uxWG+F/3pu4w1eyCO2NC5CpZKuiyMac5GQ==", + "node_modules/readdirp/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "async": "^3.2.4", - "cli-table": "^0.3.11", - "commander": "^11.0.0", - "readdirp": "^3.3.0" - }, - "bin": { - "sloc": "bin/sloc" + "ms": "2.0.0" } }, - "node_modules/sloc/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "node_modules/readdirp/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, "engines": { - "node": ">=16" + "node": ">=0.10.0" } }, - "node_modules/sloc/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "is-descriptor": "^0.1.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=0.10.0" } }, - "node_modules/snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { - "no-case": "^2.2.0" + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "node_modules/readdirp/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "dependencies": { + "array-unique": "^0.3.2", "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/define-property": { + "node_modules/readdirp/node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", @@ -19930,1421 +15392,1611 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/readdirp/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "dependencies": { - "kind-of": "^3.2.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { - "ms": "2.0.0" + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/readdirp/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/readdirp/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/ms": { + "node_modules/readdirp/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "node_modules/readdirp/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/sol-digger": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sol-digger/-/sol-digger-0.0.2.tgz", - "integrity": "sha512-oqrw1E/X2WWYUYCzKDM5INDDH2nWOWos4p2Cw2OF52qoZcTDzlKMJQ5pJFXKOCADCg6KggBO5WYE/vNb+kJ0Hg==", - "dev": true - }, - "node_modules/sol-explore": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sol-explore/-/sol-explore-1.6.1.tgz", - "integrity": "sha512-cmwg7l+QLj2LE3Qvwrdo4aPYcNYY425+bN5VPkgCjkO0CiSz33G5vM5BmMZNrfd/6yNGwcm0KtwDJmh5lUElEQ==", + "node_modules/readdirp/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/sol2uml": { - "version": "2.5.20", - "resolved": "https://registry.npmjs.org/sol2uml/-/sol2uml-2.5.20.tgz", - "integrity": "sha512-La+UQ4Y6n8yG3Vfy5FudhZGJvymJ13PxuC00W4pKF3iIZFcRGPVH7RLBQ8lc+JqOt+YW92oSaSGSwHnlTmd7tg==", + "node_modules/readdirp/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "@aduh95/viz.js": "^3.7.0", - "@solidity-parser/parser": "^0.16.1", - "axios": "^1.6.0", - "axios-debug-log": "^1.0.0", - "cli-color": "^2.0.3", - "commander": "^11.1.0", - "convert-svg-to-png": "^0.6.4", - "debug": "^4.3.4", - "diff-match-patch": "^1.0.5", - "ethers": "^5.7.2", - "js-graph-algorithms": "^1.0.18", - "klaw": "^4.1.0" - }, - "bin": { - "sol2uml": "lib/sol2uml.js" + "safe-buffer": "~5.1.0" } }, - "node_modules/sol2uml/node_modules/@solidity-parser/parser": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", - "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", + "node_modules/readdirp/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "node_modules/sol2uml/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, "engines": { - "node": ">=16" + "node": ">=0.10.0" } }, - "node_modules/sol2uml/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" } }, - "node_modules/solc": { - "version": "0.8.27", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.27.tgz", - "integrity": "sha512-BNxMol2tUAbkH7HKlXBcBqrGi2aqgv+uMHz26mJyTtlVgWmBA4ktiw0qVKHfkjf2oaHbwtbtaSeE2dhn/gTAKw==", + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dev": true, "dependencies": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solc.js" + "minimatch": "^3.0.5" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.0.0" } }, - "node_modules/solc/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "node_modules/recursive-readdir/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">= 12" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/solc/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "os-tmpdir": "~1.0.2" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=0.6.0" + "node": "*" } }, - "node_modules/solgraph": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/solgraph/-/solgraph-1.0.2.tgz", - "integrity": "sha512-jSml2xRdGcD4NGVX2okXPVtqFOlduCg1Zs+JCZYEiVXeYWvCfn65PjCvt+BG3dfW7gWaRzqDa5mqf3lhaFflxw==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "hasInstallScript": true, "dependencies": { - "@babel/cli": "^7.19.3", - "@babel/core": "^7.20.5", - "@babel/preset-env": "^7.20.2", - "@babel/register": "^7.18.9", - "@solidity-parser/parser": "^0.14.5", - "commander": "*", - "get-stdin-promise": "*", - "graphlib": "^2.1.8", - "graphlib-dot": "^0.6.4" - }, - "bin": { - "solgraph": "solgraph.js" + "regenerate": "^1.4.2" }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/solidity-ast": { - "version": "0.4.59", - "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.59.tgz", - "integrity": "sha512-I+CX0wrYUN9jDfYtcgWSe+OAowaXy8/1YQy7NS4ni5IBDmIYBq7ZzaP/7QqouLjzZapmQtvGLqCaYgoUWqBo5g==", + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, - "node_modules/solidity-code-metrics": { - "version": "0.0.25", - "resolved": "https://registry.npmjs.org/solidity-code-metrics/-/solidity-code-metrics-0.0.25.tgz", - "integrity": "sha512-of1wT4B5GL0/IahPttkEQUU3Bgq2PpLfQ1GcGdE8aMOhryWrEa4V5LYYd7cqKwyzWaRYIZ/pLUnaoJtCV2HfHA==", + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { - "@solidity-parser/parser": "^0.16.1", - "glob": "^8.0.3", - "sloc": "^0.3.0", - "solidity-doppelganger": "^0.0.11", - "surya": "^0.4.6" + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "dependencies": { + "is-equal-shallow": "^0.1.3" }, - "bin": { - "solidity-code-metrics": "src/cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/solidity-code-metrics/node_modules/@solidity-parser/parser": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", - "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/solidity-code-metrics/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solidity-code-metrics/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/solidity-coverage": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", - "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { - "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.18.0", - "chalk": "^2.4.2", - "death": "^1.1.0", - "difflib": "^0.2.4", - "fs-extra": "^8.1.0", - "ghost-testrpc": "^0.0.2", - "global-modules": "^2.0.0", - "globby": "^10.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.21", - "mocha": "^10.2.0", - "node-emoji": "^1.10.0", - "pify": "^4.0.1", - "recursive-readdir": "^2.2.2", - "sc-istanbul": "^0.4.5", - "semver": "^7.3.4", - "shelljs": "^0.8.3", - "web3-utils": "^1.3.6" + "jsesc": "~0.5.0" }, "bin": { - "solidity-coverage": "plugins/bin.js" - }, - "peerDependencies": { - "hardhat": "^2.11.0" + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", - "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", - "dev": true + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "node_modules/solidity-coverage/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "req-from": "^2.0.0" }, "engines": { "node": ">=4" } }, - "node_modules/solidity-coverage/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "resolve-from": "^3.0.0" }, "engines": { "node": ">=4" } }, - "node_modules/solidity-coverage/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/req-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true, - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=4" } }, - "node_modules/solidity-coverage/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/solidity-coverage/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 6" } }, - "node_modules/solidity-coverage/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, "engines": { - "node": ">=4" + "node": ">= 0.12" } }, - "node_modules/solidity-coverage/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, "bin": { - "semver": "bin/semver.js" - }, + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/solidity-coverage/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/requireindex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz", + "integrity": "sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==", "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.5" } }, - "node_modules/solidity-docgen": { - "version": "0.6.0-beta.36", - "resolved": "https://registry.npmjs.org/solidity-docgen/-/solidity-docgen-0.6.0-beta.36.tgz", - "integrity": "sha512-f/I5G2iJgU1h0XrrjRD0hHMr7C10u276vYvm//rw1TzFcYQ4xTOyAoi9oNAHRU0JU4mY9eTuxdVc2zahdMuhaQ==", + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "handlebars": "^4.7.7", - "solidity-ast": "^0.4.38" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "peerDependencies": { - "hardhat": "^2.8.0" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solidity-doppelganger": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/solidity-doppelganger/-/solidity-doppelganger-0.0.11.tgz", - "integrity": "sha512-mLIuW1Gfcr49zAZuE3XiQoqvkIAOKJBsgg//3DUvX8G6PvQErfnEKSajXwrYmW27oawwB/qbdRYuFR0inpsJQQ==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "dependencies": { - "@solidity-parser/parser": "^0.16.1", - "glob": "^8.0.3", - "yargs": "^17.0.1" + "engines": { + "node": ">=4" } }, - "node_modules/solidity-doppelganger/node_modules/@solidity-parser/parser": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", - "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" + "engines": { + "node": ">=0.12" } }, - "node_modules/solidity-doppelganger/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/solidity-doppelganger/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, "engines": { - "node": ">=12" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/solidity-doppelganger/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=12" + "bin": { + "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/solidity-doppelganger/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "node_modules/solidity-doppelganger/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "bn.js": "^5.2.0" }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rlp/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true, "engines": { - "node": ">=10" + "node": "0.12.* || 4.* || 6.* || >= 7.*" } }, - "node_modules/solidity-doppelganger/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "queue-microtask": "^1.2.2" } }, - "node_modules/solidity-doppelganger/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" }, "engines": { - "node": ">=8" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solidity-doppelganger/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" + "ret": "~0.1.10" } }, - "node_modules/solidity-doppelganger/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solium": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/solium/-/solium-1.2.5.tgz", - "integrity": "sha512-NuNrm7fp8JcDN/P+SAdM5TVa4wYDtwVtLY/rG4eBOZrC5qItsUhmQKR/YhjszaEW4c8tNUYhkhQcwOsS25znpw==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", "dev": true, - "peer": true, "dependencies": { - "ajv": "^5.2.2", - "chokidar": "^1.6.0", - "colors": "^1.1.2", - "commander": "^2.9.0", - "diff": "^3.5.0", - "eol": "^0.9.1", - "js-string-escape": "^1.0.1", - "lodash": "^4.14.2", - "sol-digger": "0.0.2", - "sol-explore": "1.6.1", - "solium-plugin-security": "0.1.1", - "solparse": "2.2.8", - "text-table": "^0.2.0" + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" }, "bin": { - "solium": "bin/solium.js" + "istanbul": "lib/cli.js" } }, - "node_modules/solium-plugin-security": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/solium-plugin-security/-/solium-plugin-security-0.1.1.tgz", - "integrity": "sha512-kpLirBwIq4mhxk0Y/nn5cQ6qdJTI+U1LO3gpoNIcqNaW+sI058moXBe2UiHs+9wvF9IzYD49jcKhFTxcR9u9SQ==", - "dev": true, - "peerDependencies": { - "solium": "^1.0.0" - } + "node_modules/sc-istanbul/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true }, - "node_modules/solium/node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "node_modules/sc-istanbul/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "peer": true, "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/solium/node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", - "dev": true, - "peer": true - }, - "node_modules/solium/node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "node_modules/sc-istanbul/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", "dev": true, - "peer": true + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/solparse": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/solparse/-/solparse-2.2.8.tgz", - "integrity": "sha512-Tm6hdfG72DOxD40SD+T5ddbekWglNWjzDRSNq7ZDIOHVsyaJSeeunUuWNj4DE7uDrJK3tGQuX0ZTDZWNYsGPMA==", + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { - "mocha": "^4.0.1", - "pegjs": "^0.10.0", - "yargs": "^10.0.3" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, - "bin": { - "solidity-parser": "cli.js" + "engines": { + "node": "*" } }, - "node_modules/solparse/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/solparse/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/sc-istanbul/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/solparse/node_modules/browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==", + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", "dev": true }, - "node_modules/solparse/node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "dev": true, "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/solparse/node_modules/commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true - }, - "node_modules/solparse/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "node_modules/sc-istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "node_modules/solparse/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, + "node_modules/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==", "dev": true, + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.7", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=18.0.0" } }, - "node_modules/solparse/node_modules/diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "node_modules/secp256k1/node_modules/elliptic": { + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", + "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", "dev": true, - "engines": { - "node": ">=0.3.1" + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/solparse/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/secp256k1/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=0.8.0" + "bin": { + "semver": "bin/semver" } }, - "node_modules/solparse/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" + "randombytes": "^2.1.0" } }, - "node_modules/solparse/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "node_modules/solparse/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": "*" - } - }, - "node_modules/solparse/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solparse/node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", - "dev": true, - "bin": { - "he": "bin/he" + "node": ">= 0.4" } }, - "node_modules/solparse/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "number-is-nan": "^1.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/solparse/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/solparse/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "is-extendable": "^0.1.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/solparse/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, - "node_modules/solparse/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "dependencies": { - "minimist": "0.0.8" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, "bin": { - "mkdirp": "bin/cmd.js" + "sha.js": "bin.js" } }, - "node_modules/solparse/node_modules/mocha": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", "dev": true, "dependencies": { - "browser-stdout": "1.3.0", - "commander": "2.11.0", - "debug": "3.1.0", - "diff": "3.3.1", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.3", - "he": "1.1.1", - "mkdirp": "0.5.1", - "supports-color": "4.4.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" }, "engines": { - "node": ">= 4.0.0" + "node": "*" } }, - "node_modules/solparse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/solparse/node_modules/os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "node_modules/sha1-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/sha1-file/-/sha1-file-2.0.1.tgz", + "integrity": "sha512-L4Kum9Lp8cWqcGKycZcXxR6spUoG4idDIUzAKjPiELnIZWxiFlZ5HFVzFxVxuWuGPsrraeL0JoGk0nFZ7AGFEQ==", "dev": true, "dependencies": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "hasha": "^5.2.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/solparse/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { - "p-try": "^1.0.0" + "kind-of": "^6.0.2" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/solparse/node_modules/p-locate": { + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/solparse/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/solparse/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, "engines": { "node": ">=4" } }, - "node_modules/solparse/node_modules/supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "has-flag": "^2.0.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solparse/node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/solparse/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sloc": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/sloc/-/sloc-0.3.2.tgz", + "integrity": "sha512-tnB+gi6TiFpt3qmCGfaV+78dfKwLiH5HRohkW+PnJYHNAcEdk408uxWG+F/3pu4w1eyCO2NC5CpZKuiyMac5GQ==", "dev": true, "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "async": "^3.2.4", + "cli-table": "^0.3.11", + "commander": "^11.0.0", + "readdirp": "^3.3.0" }, + "bin": { + "sloc": "bin/sloc" + } + }, + "node_modules/sloc/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=16" } }, - "node_modules/solparse/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "node_modules/sloc/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.10.0" } }, - "node_modules/solparse/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/solparse/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/solparse/node_modules/yargs": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", - "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.1.0" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/solparse/node_modules/yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { - "camelcase": "^4.1.0" + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "optional": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "ms": "2.0.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "node_modules/sol-digger": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sol-digger/-/sol-digger-0.0.2.tgz", + "integrity": "sha512-oqrw1E/X2WWYUYCzKDM5INDDH2nWOWos4p2Cw2OF52qoZcTDzlKMJQ5pJFXKOCADCg6KggBO5WYE/vNb+kJ0Hg==", "dev": true }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "node_modules/sol-explore": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sol-explore/-/sol-explore-1.6.1.tgz", + "integrity": "sha512-cmwg7l+QLj2LE3Qvwrdo4aPYcNYY425+bN5VPkgCjkO0CiSz33G5vM5BmMZNrfd/6yNGwcm0KtwDJmh5lUElEQ==", + "dev": true + }, + "node_modules/sol2uml": { + "version": "2.5.20", + "resolved": "https://registry.npmjs.org/sol2uml/-/sol2uml-2.5.20.tgz", + "integrity": "sha512-La+UQ4Y6n8yG3Vfy5FudhZGJvymJ13PxuC00W4pKF3iIZFcRGPVH7RLBQ8lc+JqOt+YW92oSaSGSwHnlTmd7tg==", "dev": true, "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "@aduh95/viz.js": "^3.7.0", + "@solidity-parser/parser": "^0.16.1", + "axios": "^1.6.0", + "axios-debug-log": "^1.0.0", + "cli-color": "^2.0.3", + "commander": "^11.1.0", + "convert-svg-to-png": "^0.6.4", + "debug": "^4.3.4", + "diff-match-patch": "^1.0.5", + "ethers": "^5.7.2", + "js-graph-algorithms": "^1.0.18", + "klaw": "^4.1.0" }, "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" + "sol2uml": "lib/sol2uml.js" } }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "node_modules/sol2uml/node_modules/@solidity-parser/parser": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", + "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", "dev": true, "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" + "antlr4ts": "^0.5.0-alpha.4" } }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "node_modules/sol2uml/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "node_modules/sol2uml/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/solc": { + "version": "0.8.27", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.27.tgz", + "integrity": "sha512-BNxMol2tUAbkH7HKlXBcBqrGi2aqgv+uMHz26mJyTtlVgWmBA4ktiw0qVKHfkjf2oaHbwtbtaSeE2dhn/gTAKw==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" } }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/solc/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, "engines": { - "node": ">= 0.4" + "node": ">= 12" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/solc/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, "engines": { - "node": ">= 0.8" + "node": ">=0.6.0" } }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "node_modules/solgraph": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/solgraph/-/solgraph-1.0.2.tgz", + "integrity": "sha512-jSml2xRdGcD4NGVX2okXPVtqFOlduCg1Zs+JCZYEiVXeYWvCfn65PjCvt+BG3dfW7gWaRzqDa5mqf3lhaFflxw==", "dev": true, + "hasInstallScript": true, + "dependencies": { + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.5", + "@babel/preset-env": "^7.20.2", + "@babel/register": "^7.18.9", + "@solidity-parser/parser": "^0.14.5", + "commander": "*", + "get-stdin-promise": "*", + "graphlib": "^2.1.8", + "graphlib-dot": "^0.6.4" + }, + "bin": { + "solgraph": "solgraph.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/solidity-ast": { + "version": "0.4.59", + "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.59.tgz", + "integrity": "sha512-I+CX0wrYUN9jDfYtcgWSe+OAowaXy8/1YQy7NS4ni5IBDmIYBq7ZzaP/7QqouLjzZapmQtvGLqCaYgoUWqBo5g==", + "dev": true + }, + "node_modules/solidity-code-metrics": { + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/solidity-code-metrics/-/solidity-code-metrics-0.0.25.tgz", + "integrity": "sha512-of1wT4B5GL0/IahPttkEQUU3Bgq2PpLfQ1GcGdE8aMOhryWrEa4V5LYYd7cqKwyzWaRYIZ/pLUnaoJtCV2HfHA==", "dev": true, "dependencies": { - "safe-buffer": "~5.2.0" + "@solidity-parser/parser": "^0.16.1", + "glob": "^8.0.3", + "sloc": "^0.3.0", + "solidity-doppelganger": "^0.0.11", + "surya": "^0.4.6" + }, + "bin": { + "solidity-code-metrics": "src/cli.js" } }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/solidity-code-metrics/node_modules/@solidity-parser/parser": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", + "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", "dev": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" + "antlr4ts": "^0.5.0-alpha.4" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "node_modules/solidity-code-metrics/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "node_modules/solidity-code-metrics/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "brace-expansion": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/solidity-coverage": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.14.tgz", + "integrity": "sha512-ItAAObe5GaEOp20kXC2BZRnph+9P7Rtoqg2mQc2SXGEHgSDF2wWd1Wxz3ntzQWXkbCtIIGdJT918HG00cObwbA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.19.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" }, - "engines": { - "node": ">= 0.4" + "bin": { + "solidity-coverage": "plugins/bin.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "hardhat": "^2.11.0" } }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", + "dev": true + }, + "node_modules/solidity-coverage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/solidity-coverage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { "node": ">=4" } }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "node_modules/solidity-coverage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "node_modules/solidity-coverage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/solidity-coverage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=0.8.0" } }, - "node_modules/strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "node_modules/solidity-coverage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/solidity-coverage/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "engines": { - "node": ">=8" + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/solidity-coverage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/solidity-docgen": { + "version": "0.6.0-beta.36", + "resolved": "https://registry.npmjs.org/solidity-docgen/-/solidity-docgen-0.6.0-beta.36.tgz", + "integrity": "sha512-f/I5G2iJgU1h0XrrjRD0hHMr7C10u276vYvm//rw1TzFcYQ4xTOyAoi9oNAHRU0JU4mY9eTuxdVc2zahdMuhaQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "handlebars": "^4.7.7", + "solidity-ast": "^0.4.38" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "hardhat": "^2.8.0" } - }, - "node_modules/surya": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/surya/-/surya-0.4.11.tgz", - "integrity": "sha512-SsDGqYQ1XCkGfCutLQ5s0Es2Tt41lY4FcrxlMiiOzPVJbD3AclI+Cot2SbtXuw/CeqRqaugLE5B95tfMDsRp9g==", + }, + "node_modules/solidity-doppelganger": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/solidity-doppelganger/-/solidity-doppelganger-0.0.11.tgz", + "integrity": "sha512-mLIuW1Gfcr49zAZuE3XiQoqvkIAOKJBsgg//3DUvX8G6PvQErfnEKSajXwrYmW27oawwB/qbdRYuFR0inpsJQQ==", "dev": true, "dependencies": { "@solidity-parser/parser": "^0.16.1", - "c3-linearization": "^0.3.0", - "colors": "^1.4.0", - "graphviz": "0.0.9", - "sha1-file": "^2.0.0", - "treeify": "^1.1.0", - "yargs": "^17.0.0" - }, - "bin": { - "surya": "bin/surya" + "glob": "^8.0.3", + "yargs": "^17.0.1" } }, - "node_modules/surya/node_modules/@solidity-parser/parser": { + "node_modules/solidity-doppelganger/node_modules/@solidity-parser/parser": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", @@ -21353,7 +17005,7 @@ "antlr4ts": "^0.5.0-alpha.4" } }, - "node_modules/surya/node_modules/ansi-regex": { + "node_modules/solidity-doppelganger/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", @@ -21362,7 +17014,7 @@ "node": ">=8" } }, - "node_modules/surya/node_modules/cliui": { + "node_modules/solidity-doppelganger/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", @@ -21376,7 +17028,27 @@ "node": ">=12" } }, - "node_modules/surya/node_modules/is-fullwidth-code-point": { + "node_modules/solidity-doppelganger/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/solidity-doppelganger/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", @@ -21385,7 +17057,19 @@ "node": ">=8" } }, - "node_modules/surya/node_modules/string-width": { + "node_modules/solidity-doppelganger/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/solidity-doppelganger/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -21399,7 +17083,7 @@ "node": ">=8" } }, - "node_modules/surya/node_modules/strip-ansi": { + "node_modules/solidity-doppelganger/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -21411,7 +17095,7 @@ "node": ">=8" } }, - "node_modules/surya/node_modules/yargs": { + "node_modules/solidity-doppelganger/node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", @@ -21429,7 +17113,7 @@ "node": ">=12" } }, - "node_modules/surya/node_modules/yargs-parser": { + "node_modules/solidity-doppelganger/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", @@ -21438,1928 +17122,1613 @@ "node": ">=12" } }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "node_modules/solium": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/solium/-/solium-1.2.5.tgz", + "integrity": "sha512-NuNrm7fp8JcDN/P+SAdM5TVa4wYDtwVtLY/rG4eBOZrC5qItsUhmQKR/YhjszaEW4c8tNUYhkhQcwOsS25znpw==", "dev": true, + "peer": true, "dependencies": { - "defer-to-connect": "^2.0.0" + "ajv": "^5.2.2", + "chokidar": "^1.6.0", + "colors": "^1.1.2", + "commander": "^2.9.0", + "diff": "^3.5.0", + "eol": "^0.9.1", + "js-string-escape": "^1.0.1", + "lodash": "^4.14.2", + "sol-digger": "0.0.2", + "sol-explore": "1.6.1", + "solium-plugin-security": "0.1.1", + "solparse": "2.2.8", + "text-table": "^0.2.0" }, - "engines": { - "node": ">=10" + "bin": { + "solium": "bin/solium.js" } }, - "node_modules/swarm-js/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/solium-plugin-security": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/solium-plugin-security/-/solium-plugin-security-0.1.1.tgz", + "integrity": "sha512-kpLirBwIq4mhxk0Y/nn5cQ6qdJTI+U1LO3gpoNIcqNaW+sI058moXBe2UiHs+9wvF9IzYD49jcKhFTxcR9u9SQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "peerDependencies": { + "solium": "^1.0.0" } }, - "node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "node_modules/solium/node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", "dev": true, - "engines": { - "node": ">=10.6.0" + "peer": true, + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, - "node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "node_modules/solium/node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } + "peer": true }, - "node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "node_modules/solium/node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } + "peer": true }, - "node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "node_modules/solparse": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/solparse/-/solparse-2.2.8.tgz", + "integrity": "sha512-Tm6hdfG72DOxD40SD+T5ddbekWglNWjzDRSNq7ZDIOHVsyaJSeeunUuWNj4DE7uDrJK3tGQuX0ZTDZWNYsGPMA==", "dev": true, "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "mocha": "^4.0.1", + "pegjs": "^0.10.0", + "yargs": "^10.0.3" }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/swarm-js/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" + "bin": { + "solidity-parser": "cli.js" } }, - "node_modules/swarm-js/node_modules/p-cancelable": { + "node_modules/solparse/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "node_modules/solparse/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dev": true, - "dependencies": { - "get-port": "^3.1.0" - } + "node_modules/solparse/node_modules/browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==", + "dev": true }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "node_modules/solparse/node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } + "node_modules/solparse/node_modules/commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/solparse/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" + "ms": "2.0.0" } }, - "node_modules/temp": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", - "integrity": "sha512-IsFisGgDKk7qzK9erMIkQe/XwiSUdac7z3wYOsjcLkhPBy3k1SlvLoIh2dAHIlEpgA971CgguMrx9z8fFg7tSA==", - "dev": true, - "engines": [ - "node >=0.4.0" - ] - }, - "node_modules/testrpc": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", - "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==", - "deprecated": "testrpc has been renamed to ganache-cli, please use this package from now on.", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "node_modules/solparse/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "dev": true - }, - "node_modules/then-request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "node_modules/solparse/node_modules/diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, "engines": { - "node": ">= 0.12" + "node": ">=0.3.1" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "node_modules/solparse/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/timers-ext": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", - "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", + "node_modules/solparse/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, "dependencies": { - "es5-ext": "^0.10.64", - "next-tick": "^1.1.0" + "locate-path": "^2.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=4" } }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } + "node_modules/solparse/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/solparse/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=14.14" + "node": "*" } }, - "node_modules/to-fast-properties": { + "node_modules/solparse/node_modules/has-flag": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "node_modules/solparse/node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "bin": { + "he": "bin/he" } }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "node_modules/solparse/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "number-is-nan": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/solparse/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" + "node": ">=4" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/solparse/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=0.8" - } - }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "node_modules/solparse/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", "dev": true }, - "node_modules/treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "node_modules/solparse/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/solparse/node_modules/mocha": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", "dev": true, "dependencies": { - "minimist": "^1.2.0" + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" }, "bin": { - "json5": "lib/cli.js" + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "node_modules/solparse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "node_modules/solparse/node_modules/os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "node_modules/type": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", - "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/solparse/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1" + "p-try": "^1.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "node_modules/solparse/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, "engines": { "node": ">=4" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/solparse/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/solparse/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "node_modules/solparse/node_modules/supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "has-flag": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "node_modules/solparse/node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/solparse/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/typed-array-byte-offset": { + "node_modules/solparse/node_modules/wrap-ansi/node_modules/string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "node_modules/solparse/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "node_modules/solparse/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", "dev": true }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/solparse/node_modules/yargs": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", "dev": true, "dependencies": { - "is-typedarray": "^1.0.0" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.1.0" } }, - "node_modules/uglify-js": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", - "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "node_modules/solparse/node_modules/yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" + "dependencies": { + "camelcase": "^4.1.0" } }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", "dev": true, + "optional": true, "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "amdefine": ">=0.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "node_modules/unbzip2-stream/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/undici": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", - "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">=18.17" + "node": ">=0.10.0" } }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, - "node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", "dev": true, "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" + "type-fest": "^0.7.1" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, "engines": { - "node": ">= 4.0.0" + "node": ">= 0.4" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "engines": { "node": ">= 0.8" } }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "~5.2.0" } }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "isarray": "1.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "upper-case": "^1.1.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "dependencies": { - "punycode": "^2.1.0" + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/url-set-query": { + "node_modules/strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", "dev": true, - "hasInstallScript": true, "dependencies": { - "node-gyp-build": "^4.3.0" + "is-hex-prefixed": "1.0.0" }, "engines": { - "node": ">=6.14.2" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { - "node": ">= 0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/surya": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/surya/-/surya-0.4.11.tgz", + "integrity": "sha512-SsDGqYQ1XCkGfCutLQ5s0Es2Tt41lY4FcrxlMiiOzPVJbD3AclI+Cot2SbtXuw/CeqRqaugLE5B95tfMDsRp9g==", "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.16.1", + "c3-linearization": "^0.3.0", + "colors": "^1.4.0", + "graphviz": "0.0.9", + "sha1-file": "^2.0.0", + "treeify": "^1.1.0", + "yargs": "^17.0.0" + }, "bin": { - "uuid": "dist/bin/uuid" + "surya": "bin/surya" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/surya/node_modules/@solidity-parser/parser": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", + "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", "dev": true, "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "antlr4ts": "^0.5.0-alpha.4" } }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/surya/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "node": ">=8" } }, - "node_modules/web3": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz", - "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==", + "node_modules/surya/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "hasInstallScript": true, "dependencies": { - "web3-bzz": "1.10.4", - "web3-core": "1.10.4", - "web3-eth": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-shh": "1.10.4", - "web3-utils": "1.10.4" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=12" } }, - "node_modules/web3-bzz": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz", - "integrity": "sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==", + "node_modules/surya/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/web3-core": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz", - "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==", + "node_modules/surya/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-requestmanager": "1.10.4", - "web3-utils": "1.10.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/web3-core-helpers": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", - "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", + "node_modules/surya/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.0", - "web3-utils": "1.10.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/web3-core-helpers/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-core-helpers/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/surya/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=12" } }, - "node_modules/web3-core-method": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.4.tgz", - "integrity": "sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==", + "node_modules/surya/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=12" } }, - "node_modules/web3-core-method/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-core-method/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/web3-core-method/node_modules/web3-core-promievent": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz", - "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==", + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" + "get-port": "^3.1.0" } }, - "node_modules/web3-core-method/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" } }, - "node_modules/web3-core-promievent": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", - "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "node_modules/web3-core-requestmanager": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.4.tgz", - "integrity": "sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==", + "node_modules/temp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", + "integrity": "sha512-IsFisGgDKk7qzK9erMIkQe/XwiSUdac7z3wYOsjcLkhPBy3k1SlvLoIh2dAHIlEpgA971CgguMrx9z8fFg7tSA==", "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.4", - "web3-providers-http": "1.10.4", - "web3-providers-ipc": "1.10.4", - "web3-providers-ws": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } + "engines": [ + "node >=0.4.0" + ] }, - "node_modules/web3-core-requestmanager/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/web3-core-requestmanager/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.0.0" } }, - "node_modules/web3-core-requestmanager/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true }, - "node_modules/web3-core-subscriptions": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.4.tgz", - "integrity": "sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==", + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.4" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.12" } }, - "node_modules/web3-core-subscriptions/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/web3-core-subscriptions/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/timers-ext": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.12" } }, - "node_modules/web3-core-subscriptions/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=14.14" } }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/web3-core/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/web3-core/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-core/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-core/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-eth": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz", - "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-accounts": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-eth-ens": "1.10.4", - "web3-eth-iban": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" + "is-number": "^7.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8.0" } }, - "node_modules/web3-eth-abi": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", - "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", + "node_modules/to-regex-range/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.12.0" } }, - "node_modules/web3-eth-abi/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } }, - "node_modules/web3-eth-abi/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.8" } }, - "node_modules/web3-eth-accounts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz", - "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==", + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "dependencies": { - "@ethereumjs/common": "2.6.5", - "@ethereumjs/tx": "3.5.2", - "@ethereumjs/util": "^8.1.0", - "eth-lib": "0.2.8", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "engines": { + "node": ">=0.6" } }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/web3-eth-accounts/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/web3-eth-accounts/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "safe-buffer": "^5.0.1" }, "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "node_modules/web3-eth-accounts/node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", "dev": true }, - "node_modules/web3-eth-contract": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz", - "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true }, - "node_modules/web3-eth-contract/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", "dev": true }, - "node_modules/web3-eth-contract/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8.0" } }, - "node_modules/web3-eth-contract/node_modules/web3-core-promievent": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz", - "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==", + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/web3-eth-contract/node_modules/web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web3-eth-contract/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" } }, - "node_modules/web3-eth-ens": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz", - "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==", + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-utils": "1.10.4" + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-eth-ens/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-eth-ens/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-eth-ens/node_modules/web3-core-promievent": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz", - "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==", + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4" + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-eth-ens/node_modules/web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.8.0" } }, - "node_modules/web3-eth-ens/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-eth-iban": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", - "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "buffer": "^5.2.1", + "through": "^2.3.8" } }, - "node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-eth-iban/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/web3-eth-personal": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz", - "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==", + "node_modules/undici": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", + "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=18.17" } }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, - "node_modules/web3-eth-personal/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "node_modules/unfetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", "dev": true }, - "node_modules/web3-eth-personal/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/web3-eth-personal/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/web3-eth/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-eth/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/web3-eth/node_modules/web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/web3-eth/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-net": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz", - "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==", + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "dependencies": { - "web3-core": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">= 4.0.0" } }, - "node_modules/web3-providers-http": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.4.tgz", - "integrity": "sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.5", - "cross-fetch": "^4.0.0", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8" } }, - "node_modules/web3-providers-http/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-providers-http/node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, "dependencies": { - "node-fetch": "^2.6.12" + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/web3-providers-http/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-providers-http/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "isarray": "1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-providers-ipc": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.4.tgz", - "integrity": "sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==", + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-providers-ipc/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/web3-providers-ipc/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/unset-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-providers-ipc/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/web3-providers-ws": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.4.tgz", - "integrity": "sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.4", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" + "punycode": "^2.1.0" } }, - "node_modules/web3-providers-ws/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, - "node_modules/web3-providers-ws/node_modules/web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/web3-providers-ws/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "dev": true, + "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" + "node-gyp-build": "^4.3.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.14.2" } }, - "node_modules/web3-shh": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.4.tgz", - "integrity": "sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==", + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "hasInstallScript": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], "dependencies": { - "web3-core": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-net": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, "node_modules/web3-utils": { @@ -23456,38 +18825,6 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, - "node_modules/websocket": { - "version": "1.0.35", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz", - "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==", - "dev": true, - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.63", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", @@ -23550,12 +18887,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true - }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -23631,18 +18962,6 @@ "node": ">=8" } }, - "node_modules/window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", - "dev": true, - "bin": { - "window-size": "cli.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -23753,60 +19072,6 @@ } } }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dev": true, - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -23816,15 +19081,6 @@ "node": ">=10" } }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "dev": true, - "engines": { - "node": ">=0.10.32" - } - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -25426,263 +20682,6 @@ "dev": true, "optional": true }, - "@ensdomains/address-encoder": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", - "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", - "dev": true, - "requires": { - "bech32": "^1.1.3", - "blakejs": "^1.1.0", - "bn.js": "^4.11.8", - "bs58": "^4.0.1", - "crypto-addr-codec": "^0.1.7", - "nano-base32": "^1.0.1", - "ripemd160": "^2.0.2" - } - }, - "@ensdomains/ens": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", - "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", - "dev": true, - "requires": { - "bluebird": "^3.5.2", - "eth-ens-namehash": "^2.0.8", - "solc": "^0.4.20", - "testrpc": "0.0.1", - "web3-utils": "^1.0.0-beta.31" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "solc": { - "version": "0.4.26", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", - "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", - "dev": true, - "requires": { - "fs-extra": "^0.30.0", - "memorystream": "^0.3.1", - "require-from-string": "^1.1.0", - "semver": "^5.3.0", - "yargs": "^4.7.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", - "dev": true, - "requires": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "lodash.assign": "^4.0.3", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.1", - "which-module": "^1.0.0", - "window-size": "^0.2.0", - "y18n": "^3.2.1", - "yargs-parser": "^2.4.1" - } - }, - "yargs-parser": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", - "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "lodash.assign": "^4.0.6" - } - } - } - }, - "@ensdomains/ensjs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", - "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "@ensdomains/address-encoder": "^0.1.7", - "@ensdomains/ens": "0.4.5", - "@ensdomains/resolver": "0.2.4", - "content-hash": "^2.5.2", - "eth-ens-namehash": "^2.0.8", - "ethers": "^5.0.13", - "js-sha3": "^0.8.0" - }, - "dependencies": { - "ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "requires": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - } - } - }, - "@ensdomains/resolver": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", - "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", - "dev": true - }, "@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -25757,32 +20756,12 @@ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true }, - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, "@ethereumjs/rlp": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", "dev": true }, - "@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, "@ethereumjs/util": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", @@ -26804,16 +21783,6 @@ "dev": true, "optional": true }, - "@openzeppelin/contract-loader": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", - "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - } - }, "@openzeppelin/contracts": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.2.0.tgz", @@ -26874,24 +21843,6 @@ "undici": "^6.11.1" } }, - "@openzeppelin/test-helpers": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", - "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", - "dev": true, - "requires": { - "@openzeppelin/contract-loader": "^0.6.2", - "@truffle/contract": "^4.0.35", - "ansi-colors": "^3.2.3", - "chai": "^4.2.0", - "chai-bn": "^0.2.1", - "ethjs-abi": "^0.2.1", - "lodash.flatten": "^4.4.0", - "semver": "^5.6.0", - "web3": "^1.2.5", - "web3-utils": "^1.2.5" - } - }, "@openzeppelin/upgrades-core": { "version": "1.37.1", "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.37.1.tgz", @@ -26946,1173 +21897,110 @@ "@sentry/core": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", - "dev": true, - "requires": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - } - }, - "@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", - "dev": true, - "requires": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - } - }, - "@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dev": true, - "requires": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - } - }, - "@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", - "dev": true, - "requires": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - } - }, - "@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", - "dev": true, - "requires": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - } - }, - "@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "dev": true - }, - "@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", - "dev": true, - "requires": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - } - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true - }, - "@smithy/types": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.4.0.tgz", - "integrity": "sha512-0shOWSg/pnFXPcsSU8ZbaJ4JBHZJPPzLCJxafJvbMVFo9l1w81CqpgUqjlKGNHVrVB7fhIs+WS82JDTyzaLyLA==", - "dev": true, - "requires": { - "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "dev": true - } - } - }, - "@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, - "requires": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@truffle/abi-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz", - "integrity": "sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw==", - "dev": true, - "requires": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.10.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/blockchain-utils": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz", - "integrity": "sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg==", - "dev": true - }, - "@truffle/codec": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz", - "integrity": "sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg==", - "dev": true, - "requires": { - "@truffle/abi-utils": "^1.0.3", - "@truffle/compile-common": "^0.9.8", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "^7.5.4", - "utf8": "^3.0.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true - }, - "semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true - }, - "web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" } }, - "@truffle/compile-common": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz", - "integrity": "sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ==", + "@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", "dev": true, "requires": { - "@truffle/error": "^0.2.2", - "colors": "1.4.0" + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" } }, - "@truffle/contract": { - "version": "4.6.31", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz", - "integrity": "sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ==", + "@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", "dev": true, "requires": { - "@ensdomains/ensjs": "^2.1.0", - "@truffle/blockchain-utils": "^0.1.9", - "@truffle/contract-schema": "^3.4.16", - "@truffle/debug-utils": "^6.0.57", - "@truffle/error": "^0.2.2", - "@truffle/interface-adapter": "^0.5.37", - "bignumber.js": "^7.2.1", - "debug": "^4.3.1", - "ethers": "^4.0.32", - "web3": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "dev": true - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "dev": true - }, - "web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "dev": true, - "requires": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - } - }, - "web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true - } - } - }, - "web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dev": true, - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dev": true, - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - } - }, - "web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - } - }, - "web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dev": true, - "requires": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dev": true, - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dev": true, - "requires": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dev": true, - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - } - }, - "web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dev": true, - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - } - }, - "web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "dev": true, - "requires": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - } - }, - "web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - } - } - } + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" } }, - "@truffle/contract-schema": { - "version": "3.4.16", - "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz", - "integrity": "sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg==", + "@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", "dev": true, "requires": { - "ajv": "^6.10.0", - "debug": "^4.3.1" + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" } }, - "@truffle/debug-utils": { - "version": "6.0.57", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz", - "integrity": "sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA==", + "@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", "dev": true, "requires": { - "@truffle/codec": "^0.17.3", - "@trufflesuite/chromafi": "^3.0.0", - "bn.js": "^5.1.3", - "chalk": "^2.4.2", - "debug": "^4.3.1", - "highlightjs-solidity": "^2.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" } }, - "@truffle/error": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz", - "integrity": "sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg==", + "@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", "dev": true }, - "@truffle/interface-adapter": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz", - "integrity": "sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==", + "@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", "dev": true, "requires": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.10.0" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "dev": true - }, - "web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "dev": true, - "requires": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - } - }, - "web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dev": true, - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dev": true, - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - } - }, - "web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - } - }, - "web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dev": true, - "requires": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dev": true, - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dev": true, - "requires": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dev": true, - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - } - }, - "web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dev": true, - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - } - }, - "web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "dev": true, - "requires": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - } - }, - "web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" } }, - "@trufflesuite/chromafi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", - "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", + "@smithy/types": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.4.0.tgz", + "integrity": "sha512-0shOWSg/pnFXPcsSU8ZbaJ4JBHZJPPzLCJxafJvbMVFo9l1w81CqpgUqjlKGNHVrVB7fhIs+WS82JDTyzaLyLA==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "chalk": "^2.3.2", - "cheerio": "^1.0.0-rc.2", - "detect-indent": "^5.0.0", - "highlight.js": "^10.4.1", - "lodash.merge": "^4.6.2", - "strip-ansi": "^4.0.0", - "strip-indent": "^2.0.0" + "tslib": "^2.6.2" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, + "@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "dev": true, + "requires": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, "@types/bn.js": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", @@ -28122,18 +22010,6 @@ "@types/node": "*" } }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "@types/chai": { "version": "4.3.19", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz", @@ -28186,27 +22062,12 @@ "@types/node": "*" } }, - "@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true - }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", @@ -28249,15 +22110,6 @@ "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, - "@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/secp256k1": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", @@ -28289,22 +22141,6 @@ "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "dev": true }, - "abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, "acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -28425,12 +22261,6 @@ } } }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -28519,12 +22349,6 @@ "is-array-buffer": "^3.0.4" } }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, "array-includes": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", @@ -28656,12 +22480,6 @@ "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", "dev": true }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, "async-retry": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", @@ -28839,24 +22657,6 @@ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", "dev": true }, - "big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", - "dev": true - }, - "big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true - }, - "bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true - }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -28902,73 +22702,12 @@ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", "dev": true }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "requires": { - "side-channel": "^1.0.6" - } - } - } - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -29132,12 +22871,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", - "dev": true - }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -29149,6 +22882,8 @@ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", "dev": true, + "optional": true, + "peer": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -29207,35 +22942,6 @@ } } }, - "cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "dev": true - }, - "cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, "call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -29255,16 +22961,6 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -29316,13 +23012,6 @@ "check-error": "^1.0.2" } }, - "chai-bn": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", - "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", - "dev": true, - "requires": {} - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -29333,32 +23022,6 @@ "supports-color": "^7.1.0" } }, - "change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", @@ -29462,41 +23125,6 @@ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -29507,12 +23135,6 @@ "safe-buffer": "^5.0.1" } }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "dev": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -29669,15 +23291,6 @@ } } }, - "clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -29810,42 +23423,6 @@ } } }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dev": true, - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, "convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -29916,12 +23493,6 @@ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -29943,16 +23514,6 @@ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, "coveralls": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", @@ -29966,12 +23527,6 @@ "request": "^2.88.2" } }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true - }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -30036,21 +23591,6 @@ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true }, - "crypto-addr-codec": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz", - "integrity": "sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" - } - }, "css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -30149,23 +23689,6 @@ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, "deep-eql": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", @@ -30181,12 +23704,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, "define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -30239,18 +23756,6 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true - }, "devtools-protocol": { "version": "0.0.981744", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", @@ -30307,12 +23812,6 @@ "entities": "^4.2.0" } }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -30339,15 +23838,6 @@ "domhandler": "^5.0.3" } }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -30358,12 +23848,6 @@ "safer-buffer": "^2.1.0" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, "electron-to-chromium": { "version": "1.5.18", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.18.tgz", @@ -30391,12 +23875,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true - }, "encoding-sniffer": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", @@ -30467,15 +23945,6 @@ "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, "es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -30608,12 +24077,6 @@ "es6-symbol": "^3.1.1" } }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, "es6-symbol": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", @@ -30642,12 +24105,6 @@ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -31218,30 +24675,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", - "dev": true, - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - } - } - }, "eth-gas-reporter": { "version": "0.2.27", "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", @@ -31303,39 +24736,6 @@ } } }, - "eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, "ethereum-bloom-filters": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", @@ -31346,9 +24746,9 @@ }, "dependencies": { "@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "dev": true } } @@ -31507,31 +24907,6 @@ } } }, - "ethjs-abi": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", - "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", - "dev": true, - "requires": { - "bn.js": "4.11.6", - "js-sha3": "0.5.5", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true - }, - "js-sha3": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", - "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", - "dev": true - } - } - }, "ethjs-unit": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", @@ -31617,12 +24992,6 @@ "es5-ext": "~0.10.14" } }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -31731,77 +25100,6 @@ "fill-range": "^2.1.0" } }, - "express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "requires": { - "side-channel": "^1.0.6" - } - } - } - }, "ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -31879,15 +25177,6 @@ "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", "dev": true }, - "fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "requires": { - "pure-rand": "^5.0.1" - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -31895,16 +25184,16 @@ "dev": true }, "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "dependencies": { "braces": { @@ -32017,38 +25306,6 @@ "repeat-string": "^1.5.2" } }, - "finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, "find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", @@ -32185,18 +25442,6 @@ "mime-types": "^2.1.12" } }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, "fp-ts": { "version": "1.19.3", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", @@ -32212,12 +25457,6 @@ "map-cache": "^0.2.2" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -32235,15 +25474,6 @@ "universalify": "^0.1.0" } }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -32535,16 +25765,6 @@ "is-glob": "^4.0.3" } }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -32634,35 +25854,6 @@ "get-intrinsic": "^1.1.3" } }, - "got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - } - } - }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -33296,34 +26487,12 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, "heap": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", "dev": true }, - "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "dev": true - }, - "highlightjs-solidity": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", - "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==", - "dev": true - }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -33335,12 +26504,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, "htmlparser2": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", @@ -33365,12 +26528,6 @@ "parse-cache-control": "^1.0.1" } }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -33384,12 +26541,6 @@ "toidentifier": "1.0.1" } }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", - "dev": true - }, "http-response-object": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", @@ -33418,16 +26569,6 @@ "sshpk": "^1.7.0" } }, - "http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -33447,15 +26588,6 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "requires": { - "punycode": "2.1.0" - } - }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -33550,12 +26682,6 @@ "fp-ts": "^1.0.0" } }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, "is-accessor-descriptor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", @@ -33565,16 +26691,6 @@ "hasown": "^2.0.0" } }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -33585,12 +26701,6 @@ "get-intrinsic": "^1.2.1" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -33710,21 +26820,6 @@ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -33740,15 +26835,6 @@ "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", "dev": true }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", - "dev": true, - "requires": { - "lower-case": "^1.1.0" - } - }, "is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -33884,21 +26970,6 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "requires": { - "upper-case": "^1.1.0" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -34049,9 +27120,9 @@ } }, "jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.5.0.tgz", + "integrity": "sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==", "dev": true }, "jsprim": { @@ -34155,36 +27226,6 @@ "type-check": "~0.4.0" } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -34200,24 +27241,12 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", - "dev": true - }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -34268,27 +27297,6 @@ "get-func-name": "^2.0.1" } }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", - "dev": true, - "requires": { - "lower-case": "^1.1.2" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, "lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", @@ -34361,12 +27369,6 @@ "safe-buffer": "^5.1.2" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", @@ -34398,24 +27400,12 @@ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true }, - "merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true - }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true - }, "micro-ftch": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", @@ -34460,12 +27450,6 @@ } } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -34487,21 +27471,6 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dev": true, - "requires": { - "dom-walk": "^0.1.0" - } - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -34529,25 +27498,6 @@ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -34584,15 +27534,6 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, "mnemonist": { "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", @@ -34817,82 +27758,12 @@ } } }, - "mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", - "dev": true - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, "nan": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", @@ -34900,18 +27771,6 @@ "dev": true, "optional": true }, - "nano-base32": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", - "integrity": "sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw==", - "dev": true - }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", - "dev": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -34957,12 +27816,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -34975,15 +27828,6 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, "node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", @@ -35035,18 +27879,6 @@ "abbrev": "1" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -35056,12 +27888,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, "npm": { "version": "10.8.3", "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", @@ -36962,24 +29788,6 @@ "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", "dev": true }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -37009,27 +29817,12 @@ "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", "dev": true }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -37069,15 +29862,6 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -37122,21 +29906,6 @@ } } }, - "parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, "parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -37165,37 +29934,12 @@ "parse5": "^7.0.0" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -37220,12 +29964,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true - }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -37287,21 +30025,6 @@ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -37377,12 +30100,6 @@ } } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -37423,16 +30140,6 @@ } } }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -37511,41 +30218,18 @@ } } }, - "pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", - "dev": true - }, "qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", @@ -37580,12 +30264,6 @@ "safe-buffer": "^5.1.0" } }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, "raw-body": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", @@ -37609,67 +30287,6 @@ } } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, "readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -38181,12 +30798,6 @@ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", - "dev": true - }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", @@ -38210,12 +30821,6 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -38228,23 +30833,6 @@ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "dev": true }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -38282,12 +30870,6 @@ "inherits": "^2.0.1" } }, - "ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", - "dev": true - }, "rlp": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", @@ -38516,62 +31098,6 @@ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true }, - "send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - } - } - }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, "serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -38581,31 +31107,6 @@ "randombytes": "^2.1.0" } }, - "serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "requires": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -38702,27 +31203,6 @@ "hasha": "^5.2.0" } }, - "sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dev": true, - "requires": { - "buffer": "6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -38784,34 +31264,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "dev": true, - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - }, - "dependencies": { - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - } - } - }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -38847,15 +31299,6 @@ } } }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -39149,13 +31592,13 @@ } }, "solidity-coverage": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", - "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.14.tgz", + "integrity": "sha512-ItAAObe5GaEOp20kXC2BZRnph+9P7Rtoqg2mQc2SXGEHgSDF2wWd1Wxz3ntzQWXkbCtIIGdJT918HG00cObwbA==", "dev": true, "requires": { "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.18.0", + "@solidity-parser/parser": "^0.19.0", "chalk": "^2.4.2", "death": "^1.1.0", "difflib": "^0.2.4", @@ -39176,9 +31619,9 @@ }, "dependencies": { "@solidity-parser/parser": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", - "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", "dev": true }, "ansi-styles": { @@ -39229,9 +31672,9 @@ "dev": true }, "semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true }, "supports-color": { @@ -39778,38 +32221,6 @@ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", - "dev": true - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -39904,12 +32315,6 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "dev": true - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -39993,12 +32398,6 @@ "is-hex-prefixed": "1.0.0" } }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", - "dev": true - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -40084,136 +32483,28 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" - } - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "ansi-regex": "^5.0.1" } }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" } }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true } } @@ -40238,21 +32529,6 @@ "get-port": "^3.1.0" } }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, "tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -40284,12 +32560,6 @@ "integrity": "sha512-IsFisGgDKk7qzK9erMIkQe/XwiSUdac7z3wYOsjcLkhPBy3k1SlvLoIh2dAHIlEpgA971CgguMrx9z8fFg7tSA==", "dev": true }, - "testrpc": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", - "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==", - "dev": true - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -40340,12 +32610,6 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", - "dev": true - }, "timers-ext": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", @@ -40356,16 +32620,6 @@ "next-tick": "^1.1.0" } }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, "tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -40535,16 +32789,6 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, "typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", @@ -40603,15 +32847,6 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "uglify-js": { "version": "3.19.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", @@ -40619,12 +32854,6 @@ "dev": true, "optional": true }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -40785,21 +33014,6 @@ "picocolors": "^1.0.1" } }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "requires": { - "upper-case": "^1.1.1" - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -40815,12 +33029,6 @@ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "dev": true }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", - "dev": true - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -40832,6 +33040,8 @@ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -40842,59 +33052,18 @@ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", "dev": true }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true - }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -40906,778 +33075,6 @@ "extsprintf": "^1.2.0" } }, - "web3": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz", - "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==", - "dev": true, - "requires": { - "web3-bzz": "1.10.4", - "web3-core": "1.10.4", - "web3-eth": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-shh": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-bzz": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz", - "integrity": "sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - } - } - }, - "web3-core": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz", - "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-requestmanager": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-core-helpers": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", - "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "web3-core-method": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.4.tgz", - "integrity": "sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==", - "dev": true, - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-core-promievent": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz", - "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-core-promievent": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", - "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.4.tgz", - "integrity": "sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==", - "dev": true, - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.4", - "web3-providers-http": "1.10.4", - "web3-providers-ipc": "1.10.4", - "web3-providers-ws": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-core-subscriptions": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.4.tgz", - "integrity": "sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-eth": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz", - "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==", - "dev": true, - "requires": { - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-accounts": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-eth-ens": "1.10.4", - "web3-eth-iban": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-eth-abi": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", - "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "web3-eth-accounts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz", - "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==", - "dev": true, - "requires": { - "@ethereumjs/common": "2.6.5", - "@ethereumjs/tx": "3.5.2", - "@ethereumjs/util": "^8.1.0", - "eth-lib": "0.2.8", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - } - } - } - } - }, - "web3-eth-contract": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz", - "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-core-promievent": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz", - "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-eth-ens": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz", - "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-core-promievent": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz", - "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-eth-iban": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", - "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "web3-eth-personal": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz", - "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-net": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz", - "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==", - "dev": true, - "requires": { - "web3-core": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-providers-http": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.4.tgz", - "integrity": "sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==", - "dev": true, - "requires": { - "abortcontroller-polyfill": "^1.7.5", - "cross-fetch": "^4.0.0", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", - "dev": true, - "requires": { - "node-fetch": "^2.6.12" - } - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-providers-ipc": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.4.tgz", - "integrity": "sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==", - "dev": true, - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-providers-ws": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.4.tgz", - "integrity": "sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.4", - "websocket": "^1.0.32" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz", - "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==", - "dev": true, - "requires": { - "web3-eth-iban": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - } - } - }, - "web3-shh": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.4.tgz", - "integrity": "sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==", - "dev": true, - "requires": { - "web3-core": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-net": "1.10.4" - } - }, "web3-utils": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", @@ -41756,37 +33153,6 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, - "websocket": { - "version": "1.0.35", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz", - "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==", - "dev": true, - "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.63", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, "whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", @@ -41834,12 +33200,6 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true - }, "which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -41896,12 +33256,6 @@ } } }, - "window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", - "dev": true - }, "word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -41979,66 +33333,12 @@ "peer": true, "requires": {} }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dev": true, - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "dev": true - }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", diff --git a/package.json b/package.json index 14c25e7a..5c9a817a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,6 @@ "@nomicfoundation/hardhat-chai-matchers": "^2.0.7", "@nomicfoundation/hardhat-network-helpers": "^1.0.11", "@openzeppelin/hardhat-upgrades": "^3.2.0", - "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", "coveralls": "^3.1.1", "eslint": "^8.38.0", @@ -75,9 +74,6 @@ "eslint-plugin-n": "^15.7.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.1", - "eth-gas-reporter": "^0.2.27", - "ethereumjs-util": "^7.1.5", - "ethjs-abi": "^0.2.1", "ethlint": "^1.2.5", "hardhat": "^2.22.7", "hardhat-contract-sizer": "^2.10.0", @@ -90,7 +86,7 @@ "solc": "^0.8.19", "solgraph": "^1.0.2", "solidity-code-metrics": "^0.0.25", - "solidity-coverage": "^0.8.5", + "solidity-coverage": "^0.8.14", "solidity-docgen": "^0.6.0-beta.35", "surya": "^0.4.11" }, From 76a2b887bc206df67b39426a0dafbffe5945b276 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Thu, 13 Feb 2025 09:53:15 +0100 Subject: [PATCH 17/26] improve test and doc --- .../ERC1363/CMTAT_PROXY_ERC1363.sol | 2 + .../ERC1363/CMTAT_STANDALONE_ERC1363.sol | 2 + contracts/interfaces/draft-IERC1643CMTAT.sol | 3 +- contracts/mocks/ERC1363ReceiverMock.sol | 16 +++++ contracts/mocks/SnapshotEngineMock.sol | 5 ++ doc/USAGE.md | 8 ++- doc/{ => general}/ARCHITECTURE.md | 18 ++--- FAQ.md => doc/general/FAQ.md | 0 doc/{ => general}/Solidity-API-Docgen.md.md | 0 doc/{ => general}/contract-size.png | Bin package.json | 6 +- test/common/BaseModuleCommon.js | 3 +- .../SnapshotModuleCommonGetNextSnapshot.js} | 28 ++++++-- .../SnapshotModuleCommonRescheduling.js} | 17 +++-- .../SnapshotModuleCommonScheduling.js} | 26 +++++-- .../SnapshotModuleCommonUnschedule.js} | 26 +++++-- .../SnapshotModuleSetSnapshotEngineCommon.js | 45 ++++++++++++ .../SnapshotModuleUtils.js} | 0 .../SnapshotModuleMultiplePlannedTest.js} | 19 +++-- .../SnapshotModuleOnePlannedSnapshotTest.js} | 18 +++-- .../SnapshotModuleZeroPlannedSnapshot.js} | 19 +++-- .../deployment/deploymentERC1363Proxy.test.js | 63 ++++++++++++++++ .../deploymentERC1363Standalone.test.js | 67 ++++++++++++++++++ test/deploymentUtils.js | 35 +++++++++ .../proxy/modules/ERC20SnapshotModule.test.js | 35 --------- .../SnapshotModule/SnapshotModule.test.js | 37 ++++++++++ .../SnapshotModuleConstructor.test.js | 48 +++++++++++++ .../modules/ERC20SnapshotModule.test.js | 35 --------- .../SnapshotModule/SnapshotModule.test.js | 37 ++++++++++ .../SnapshotModuleConstructor.test.js | 48 +++++++++++++ 30 files changed, 546 insertions(+), 120 deletions(-) create mode 100644 contracts/mocks/ERC1363ReceiverMock.sol rename doc/{ => general}/ARCHITECTURE.md (59%) rename FAQ.md => doc/general/FAQ.md (100%) rename doc/{ => general}/Solidity-API-Docgen.md.md (100%) rename doc/{ => general}/contract-size.png (100%) rename test/common/{ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js => SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot.js} (82%) rename test/common/{ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js => SnapshotModuleCommon/SnapshotModuleCommonRescheduling.js} (94%) rename test/common/{ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js => SnapshotModuleCommon/SnapshotModuleCommonScheduling.js} (91%) rename test/common/{ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js => SnapshotModuleCommon/SnapshotModuleCommonUnschedule.js} (92%) create mode 100644 test/common/SnapshotModuleCommon/SnapshotModuleSetSnapshotEngineCommon.js rename test/common/{ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js => SnapshotModuleCommon/SnapshotModuleUtils/SnapshotModuleUtils.js} (100%) rename test/common/{ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js => SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest.js} (96%) rename test/common/{ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js => SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest.js} (91%) rename test/common/{ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleZeroPlannedSnapshot.js => SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot.js} (67%) create mode 100644 test/deployment/deploymentERC1363Proxy.test.js create mode 100644 test/deployment/deploymentERC1363Standalone.test.js delete mode 100644 test/proxy/modules/ERC20SnapshotModule.test.js create mode 100644 test/proxy/modules/SnapshotModule/SnapshotModule.test.js create mode 100644 test/proxy/modules/SnapshotModule/SnapshotModuleConstructor.test.js delete mode 100644 test/standard/modules/ERC20SnapshotModule.test.js create mode 100644 test/standard/modules/SnapshotModule/SnapshotModule.test.js create mode 100644 test/standard/modules/SnapshotModule/SnapshotModuleConstructor.test.js diff --git a/contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol b/contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol index 7e648c85..c6e31e24 100644 --- a/contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol +++ b/contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol @@ -4,6 +4,8 @@ pragma solidity ^0.8.20; import {CMTAT_ERC1363_BASE} from "../../modules/CMTAT_ERC1363_BASE.sol"; import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../../modules/CMTAT_BASE.sol"; + + /** * @title CMTAT Proxy version for ERC1363 */ diff --git a/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol b/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol index e825d17e..502427b3 100644 --- a/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol +++ b/contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol @@ -4,6 +4,8 @@ pragma solidity ^0.8.20; import {CMTAT_ERC1363_BASE} from "../../modules/CMTAT_ERC1363_BASE.sol"; import {CMTAT_BASE, MetaTxModule, ICMTATConstructor} from "../../modules/CMTAT_BASE.sol"; + + /** * @title CMTAT standalone version for ERC1363 */ diff --git a/contracts/interfaces/draft-IERC1643CMTAT.sol b/contracts/interfaces/draft-IERC1643CMTAT.sol index 6e1b07eb..6534e07f 100644 --- a/contracts/interfaces/draft-IERC1643CMTAT.sol +++ b/contracts/interfaces/draft-IERC1643CMTAT.sol @@ -1,7 +1,8 @@ //SPDX-License-Identifier: MPL-2.0 -import {IERC1643} from "./engine/draft-IERC1643.sol"; pragma solidity ^0.8.20; +import {IERC1643} from "./engine/draft-IERC1643.sol"; + interface IERC1643CMTAT { struct DocumentInfo { diff --git a/contracts/mocks/ERC1363ReceiverMock.sol b/contracts/mocks/ERC1363ReceiverMock.sol new file mode 100644 index 00000000..932c56a0 --- /dev/null +++ b/contracts/mocks/ERC1363ReceiverMock.sol @@ -0,0 +1,16 @@ +//SPDX-License-Identifier: MPL-2.0 + +pragma solidity ^0.8.20; + +import "@openzeppelin/contracts/interfaces/IERC1363Receiver.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + + +contract ERC1363ReceiverMock is IERC1363Receiver { + event TokensReceived(address indexed operator, address indexed from, uint256 value, bytes data); + + function onTransferReceived(address operator, address from, uint256 value, bytes calldata data) external override returns (bytes4) { + emit TokensReceived(operator, from, value, data); + return IERC1363Receiver.onTransferReceived.selector; + } +} \ No newline at end of file diff --git a/contracts/mocks/SnapshotEngineMock.sol b/contracts/mocks/SnapshotEngineMock.sol index 6d2a07ba..2a68714c 100644 --- a/contracts/mocks/SnapshotEngineMock.sol +++ b/contracts/mocks/SnapshotEngineMock.sol @@ -6,6 +6,8 @@ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/acce import {SnapshotModuleBase} from "./library/snapshot/SnapshotModuleBase.sol"; import {ICMTATSnapshot} from "./library/snapshot/ICMTATSnapshot.sol"; import {ISnapshotEngine} from "../interfaces/engine/ISnapshotEngine.sol"; + + /* * @title a RuleEngine mock for testing, not suitable for production */ @@ -18,6 +20,9 @@ contract SnapshotEngineMock is SnapshotModuleBase, AccessControlUpgradeable, ISn /* ============ State Variables ============ */ bytes32 public constant SNAPSHOOTER_ROLE = keccak256("SNAPSHOOTER_ROLE"); + function setERC20(ERC20Upgradeable erc20_) public{ + erc20 = erc20_; + } /** * @dev Returns `true` if `account` has been granted `role`. */ diff --git a/doc/USAGE.md b/doc/USAGE.md index 8056560e..dff11d07 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -119,6 +119,12 @@ Please see the Hardhat [documentation](https://hardhat.org/tutorial/testing-cont We use linters to ensure consistent coding style. If you contribute code, please run this following command: +Prettier + +```bash +npm run-script lint:all:prettier +``` + For JavaScript: ```bash npm run-script lint:js @@ -157,7 +163,7 @@ Solidity static analyzer. JavaScript bindings for the Solidity compiler. ```bash -solc --base-path . --include-path ./node_modules/ contracts/CMTAT_STANDALONE.sol +solc --base-path . --include-path ./node_modules/ contracts/deployment/CMTAT_STANDALONE.sol ``` ## Generate documentation diff --git a/doc/ARCHITECTURE.md b/doc/general/ARCHITECTURE.md similarity index 59% rename from doc/ARCHITECTURE.md rename to doc/general/ARCHITECTURE.md index ede6ba12..236254c9 100644 --- a/doc/ARCHITECTURE.md +++ b/doc/general/ARCHITECTURE.md @@ -25,22 +25,22 @@ This section presents the different schema: #### Base -![surya_inheritance_CMTAT_BASE.sol](../schema/surya_inheritance/surya_inheritance_CMTAT_BASE.sol.png) +![surya_inheritance_CMTAT_BASE.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_BASE.sol.png) #### Proxy -![surya_inheritance_CMTAT_PROXY.sol](../schema/surya_inheritance/surya_inheritance_CMTAT_PROXY.sol.png) +![surya_inheritance_CMTAT_PROXY.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_PROXY.sol.png) #### Standalone -![surya_inheritance_CMTAT_STANDALONE.sol](../schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE.sol.png) +![surya_inheritance_CMTAT_STANDALONE.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE.sol.png) #### UUPS Proxy -![surya_inheritance_CMTAT_PROXY_UUPS.sol](../schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_UUPS.sol.png) +![surya_inheritance_CMTAT_PROXY_UUPS.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_UUPS.sol.png) @@ -53,11 +53,11 @@ See [CMTAT_BASE.svg](../schema/sol2uml/CMTAT_BASE.svg). #### CMTAT_PROXY -![CMTAT_PROXY_d1](../schema/sol2uml/CMTAT_PROXY.svg) +![CMTAT_PROXY_d1](./schema/sol2uml/CMTAT_PROXY.svg) #### CMTAT_STANDALONE -![CMTAT_STANDALONE_d1](../schema/sol2uml/CMTAT_STANDALONE.svg) +![CMTAT_STANDALONE_d1](./schema/sol2uml/CMTAT_STANDALONE.svg) @@ -65,12 +65,12 @@ See [CMTAT_BASE.svg](../schema/sol2uml/CMTAT_BASE.svg). #### Base -![surya_graph_CMTAT_BASE.sol](../schema/surya_graph/surya_graph_CMTAT_BASE.sol.png) +![surya_graph_CMTAT_BASE.sol](./schema/surya_graph/surya_graph_CMTAT_BASE.sol.png) #### Proxy -![surya_graph_CMTAT_PROXY.sol](../schema/surya_graph/surya_graph_CMTAT_PROXY.sol.png) +![surya_graph_CMTAT_PROXY.sol](./schema/surya_graph/surya_graph_CMTAT_PROXY.sol.png) #### Standalone -![surya_graph_CMTAT_STANDALONE.sol](../schema/surya_graph/surya_graph_CMTAT_STANDALONE.sol.png) +![surya_graph_CMTAT_STANDALONE.sol](./schema/surya_graph/surya_graph_CMTAT_STANDALONE.sol.png) diff --git a/FAQ.md b/doc/general/FAQ.md similarity index 100% rename from FAQ.md rename to doc/general/FAQ.md diff --git a/doc/Solidity-API-Docgen.md.md b/doc/general/Solidity-API-Docgen.md.md similarity index 100% rename from doc/Solidity-API-Docgen.md.md rename to doc/general/Solidity-API-Docgen.md.md diff --git a/doc/contract-size.png b/doc/general/contract-size.png similarity index 100% rename from doc/contract-size.png rename to doc/general/contract-size.png diff --git a/package.json b/package.json index 5c9a817a..a8dce581 100644 --- a/package.json +++ b/package.json @@ -36,13 +36,13 @@ "test:creditEvents": "npx hardhat test test/standard/modules/CreditEventsModule.test.js test/proxy/modules/CreditEventsModule.test.js", "test:validation": "npx hardhat test test/standard/modules/ValidationModule/ValidationModule.test.js test/proxy/modules/ValidationModule/ValidationModule.test.js test/standard/modules/ValidationModule/ValidationModuleConstructor.test.js test/proxy/modules/ValidationModule/ValidationModuleConstructor.test.js test/standard/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js test/proxy/modules/ValidationModule/ValidationModuleSetRuleEngine.test.js", "test:authorization": "npx hardhat test test/standard/modules/AuthorizationModule/AuthorizationModule.test.js test/proxy/modules/AuthorizationModule/AuthorizationModule.test.js", - "test:snapshot": "npx hardhat test test/standard/modules/ERC20SnapshotModule.test.js test/proxy/modules/ERC20SnapshotModule.test.js", + "test:snapshot": "npx hardhat test test/standard/modules/SnapshotModule/SnapshotModule.test.js test/standard/modules/SnapshotModule/SnapshotModuleConstructor.test.js test/proxy/modules/SnapshotModule/SnapshotModule.test.js test/proxy/modules/SnapshotModule/SnapshotModuleConstructor.test.js", "test:enforcement": "npx hardhat test test/standard/modules/EnforcementModule.test.js test/proxy/modules/EnforcementModule.test.js", "test:metaTx": "npx hardhat test test/standard/modules/MetaTxModule.test.js test/proxy/modules/MetaTxModule.test.js", "test:proxy": "npx hardhat test test/proxy/general/factory/Beacon.test.js test/proxy/general/factory/Transparent.test.js test/proxy/general/factory/TransparentSalt.test.js test/proxy/general/Proxy.test.js test/proxy/general/UpgradeProxy.test.js test/proxy/general/UpgradeProxyUUPS.test.js", - "test:deployment": "npx hardhat test test/deployment/deployment.test.js", + "test:deployment": "npx hardhat test test/deployment/deployment.test.js test/deployment/deploymentERC1363Proxy.test.js test/deployment/deploymentERC1363Standalone.test.js", "test:document": "npx hardhat test test/standard/modules/DocumentModule.test.js", - "test:debt": "npx hardhat test test/standard/modules/DebtModule.test.js" + "test:debt": "npx hardhat test test/standard/modules/DebtModule.test.js test/proxy/modules/DebtModule.test.js" }, "repository": { "type": "git", diff --git a/test/common/BaseModuleCommon.js b/test/common/BaseModuleCommon.js index 039813fa..71099dde 100644 --- a/test/common/BaseModuleCommon.js +++ b/test/common/BaseModuleCommon.js @@ -5,7 +5,8 @@ const { TERMS } = require('../deploymentUtils') function BaseModuleCommon () { context('Token structure', function () { async function checkTerms (myThis, terms) { - const blockTimestamp = (await ethers.provider.getBlock('latest')).timestamp + const blockTimestamp = (await ethers.provider.getBlock('latest')) + .timestamp const result = await myThis.cmtat.terms() expect(result[0]).to.equal(terms[0]) expect(result[1][0]).to.equal(terms[1]) diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js b/test/common/SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot.js similarity index 82% rename from test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js rename to test/common/SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot.js index a60cb434..cee5b345 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot.js +++ b/test/common/SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot.js @@ -1,13 +1,29 @@ const { time } = require('@nomicfoundation/hardhat-network-helpers') const { expect } = require('chai') +const { ZERO_ADDRESS } = require('../../utils') const { checkArraySnapshot -} = require('./ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils') +} = require('./SnapshotModuleUtils/SnapshotModuleUtils') -function ERC20SnapshotModuleCommonGetNextSnapshot () { +function SnapshotModuleCommonGetNextSnapshot () { context('Snapshot scheduling', function () { beforeEach(async function () { this.currentTime = await time.latest() + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } + }) + it('testCanReturnTheRightAddressIfSet', async function () { + if (this.definedAtDeployment) { + const transferEngine = await this.cmtat.snapshotEngine() + expect(this.transferEngineMock.target).to.equal(transferEngine) + } }) it('testCanGetAllNextSnapshots', async function () { // Arrange @@ -57,9 +73,9 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { // it('testCanReturnEmptyArrayIfAllSnapshotsAreInThePast', async function () { // Arrange - this.snapshotTime1 = this.currentTime + time.duration.seconds(3) - this.snapshotTime2 = this.currentTime + time.duration.seconds(4) - this.snapshotTime3 = this.currentTime + time.duration.seconds(5) + this.snapshotTime1 = this.currentTime + time.duration.seconds(4) + this.snapshotTime2 = this.currentTime + time.duration.seconds(5) + this.snapshotTime3 = this.currentTime + time.duration.seconds(6) await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(this.snapshotTime1) @@ -103,4 +119,4 @@ function ERC20SnapshotModuleCommonGetNextSnapshot () { }) }) } -module.exports = ERC20SnapshotModuleCommonGetNextSnapshot +module.exports = SnapshotModuleCommonGetNextSnapshot diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js b/test/common/SnapshotModuleCommon/SnapshotModuleCommonRescheduling.js similarity index 94% rename from test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js rename to test/common/SnapshotModuleCommon/SnapshotModuleCommonRescheduling.js index c98c0701..2dcfe80b 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling.js +++ b/test/common/SnapshotModuleCommon/SnapshotModuleCommonRescheduling.js @@ -1,16 +1,25 @@ const { time } = require('@nomicfoundation/hardhat-network-helpers') const { expect } = require('chai') -const { SNAPSHOOTER_ROLE } = require('../../utils') +const { SNAPSHOOTER_ROLE, ZERO_ADDRESS } = require('../../utils') const { checkArraySnapshot -} = require('./ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils') +} = require('./SnapshotModuleUtils/SnapshotModuleUtils') -function ERC20SnapshotModuleCommonRescheduling () { +function SnapshotModuleCommonRescheduling () { context('Snapshot rescheduling', function () { beforeEach(async function () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(60) this.newSnapshotTime = this.currentTime + time.duration.seconds(200) + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(this.snapshotTime) @@ -252,4 +261,4 @@ function ERC20SnapshotModuleCommonRescheduling () { }) }) } -module.exports = ERC20SnapshotModuleCommonRescheduling +module.exports = SnapshotModuleCommonRescheduling diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js b/test/common/SnapshotModuleCommon/SnapshotModuleCommonScheduling.js similarity index 91% rename from test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js rename to test/common/SnapshotModuleCommon/SnapshotModuleCommonScheduling.js index 35464e4c..d68f6f00 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling.js +++ b/test/common/SnapshotModuleCommon/SnapshotModuleCommonScheduling.js @@ -1,14 +1,23 @@ const { time } = require('@nomicfoundation/hardhat-network-helpers') const { expect } = require('chai') -const { SNAPSHOOTER_ROLE } = require('../../utils') +const { SNAPSHOOTER_ROLE, ZERO_ADDRESS } = require('../../utils') const { checkArraySnapshot -} = require('./ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils') +} = require('./SnapshotModuleUtils/SnapshotModuleUtils') -function ERC20SnapshotModuleCommonScheduling () { +function SnapshotModuleCommonScheduling () { context('Snapshot scheduling', function () { beforeEach(async function () { this.currentTime = await time.latest() + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } }) it('can schedule a snapshot with the snapshoter role', async function () { const SNAPSHOT_TIME = this.currentTime + time.duration.seconds(60) @@ -103,6 +112,15 @@ function ERC20SnapshotModuleCommonScheduling () { context('Snapshot scheduling NotOptimized', function () { beforeEach(async function () { this.currentTime = await time.latest() + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } }) it('can schedule a snapshot in the first place with the snapshoter role', async function () { const FIRST_SNAPSHOT = this.currentTime + time.duration.seconds(100) @@ -240,4 +258,4 @@ function ERC20SnapshotModuleCommonScheduling () { }) }) } -module.exports = ERC20SnapshotModuleCommonScheduling +module.exports = SnapshotModuleCommonScheduling diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js b/test/common/SnapshotModuleCommon/SnapshotModuleCommonUnschedule.js similarity index 92% rename from test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js rename to test/common/SnapshotModuleCommon/SnapshotModuleCommonUnschedule.js index 07d0ff57..c2b1cc19 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js +++ b/test/common/SnapshotModuleCommon/SnapshotModuleCommonUnschedule.js @@ -1,11 +1,11 @@ const { time } = require('@nomicfoundation/hardhat-network-helpers') const { expect } = require('chai') -const { SNAPSHOOTER_ROLE } = require('../../utils') +const { SNAPSHOOTER_ROLE, ZERO_ADDRESS } = require('../../utils') const { checkArraySnapshot -} = require('./ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils') +} = require('./SnapshotModuleUtils/SnapshotModuleUtils') -function ERC20SnapshotModuleCommonUnschedule () { +function SnapshotModuleCommonUnschedule () { context('unscheduleSnapshotNotOptimized', function () { beforeEach(async function () { this.currentTime = await time.latest() @@ -15,6 +15,15 @@ function ERC20SnapshotModuleCommonUnschedule () { this.snapshotTime4 = this.currentTime + time.duration.seconds(25) this.snapshotTime5 = this.currentTime + time.duration.seconds(30) this.snapshotTime6 = this.currentTime + time.duration.seconds(40) + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } }) it('can remove a snapshot as admin', async function () { @@ -201,6 +210,15 @@ function ERC20SnapshotModuleCommonUnschedule () { beforeEach(async function () { this.currentTime = await time.latest() this.snapshotTime = this.currentTime + time.duration.seconds(60) + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } await this.transferEngineMock .connect(this.admin) .scheduleSnapshot(this.snapshotTime) @@ -274,4 +292,4 @@ function ERC20SnapshotModuleCommonUnschedule () { }) }) } -module.exports = ERC20SnapshotModuleCommonUnschedule +module.exports = SnapshotModuleCommonUnschedule diff --git a/test/common/SnapshotModuleCommon/SnapshotModuleSetSnapshotEngineCommon.js b/test/common/SnapshotModuleCommon/SnapshotModuleSetSnapshotEngineCommon.js new file mode 100644 index 00000000..fe9901b6 --- /dev/null +++ b/test/common/SnapshotModuleCommon/SnapshotModuleSetSnapshotEngineCommon.js @@ -0,0 +1,45 @@ +const { expect } = require('chai') +const { SNAPSHOOTER_ROLE, ZERO_ADDRESS } = require('../../utils.js') + +function SnapshotModuleSetSnapshotEngineCommon () { + context('SnapshotEngineSetTest', function () { + it('testCanBeSetByAdmin', async function () { + // Act + this.logs = await this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock.target) + // Assert + // emits a SnapshotEngineSet event + await expect(this.logs) + .to.emit(this.cmtat, 'SnapshotEngine') + .withArgs(this.transferEngineMock.target) + }) + + it('testCannotBeSetByAdminWithTheSameValue', async function () { + // Act + await expect( + this.cmtat + .connect(this.admin) + .setSnapshotEngine(await this.cmtat.snapshotEngine()) + ).to.be.revertedWithCustomError( + this.cmtat, + 'CMTAT_SnapshotModule_SameValue' + ) + }) + + it('testCannotBeSetByNonAdmin', async function () { + // Act + await expect( + this.cmtat + .connect(this.address1) + .setSnapshotEngine(this.transferEngineMock.target) + ) + .to.be.revertedWithCustomError( + this.cmtat, + 'AccessControlUnauthorizedAccount' + ) + .withArgs(this.address1.address, SNAPSHOOTER_ROLE) + }) + }) +} +module.exports = SnapshotModuleSetSnapshotEngineCommon diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js b/test/common/SnapshotModuleCommon/SnapshotModuleUtils/SnapshotModuleUtils.js similarity index 100% rename from test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils.js rename to test/common/SnapshotModuleCommon/SnapshotModuleUtils/SnapshotModuleUtils.js diff --git a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js b/test/common/SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest.js similarity index 96% rename from test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js rename to test/common/SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest.js index 83bcda53..711b8c46 100644 --- a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest.js +++ b/test/common/SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest.js @@ -1,10 +1,8 @@ const { time } = require('@nomicfoundation/hardhat-network-helpers') const { expect } = require('chai') -const { - checkSnapshot -} = require('../ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils') - -function ERC20SnapshotModuleMultiplePlannedTest () { +const { checkSnapshot } = require('../SnapshotModuleUtils/SnapshotModuleUtils') +const { ZERO_ADDRESS } = require('../../../utils') +function SnapshotModuleMultiplePlannedTest () { // With multiple planned snapshot context('SnapshotMultiplePlannedTest', function () { const ADDRESSES = [this.address1, this.address2, this.address3] @@ -19,6 +17,15 @@ function ERC20SnapshotModuleMultiplePlannedTest () { const TRANSFER_AMOUNT_2 = 10n const TRANSFER_AMOUNT_3 = 5n beforeEach(async function () { + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } await this.cmtat .connect(this.admin) .mint(this.address1, ADDRESS1_INITIAL_MINT) @@ -447,4 +454,4 @@ function ERC20SnapshotModuleMultiplePlannedTest () { }) }) } -module.exports = ERC20SnapshotModuleMultiplePlannedTest +module.exports = SnapshotModuleMultiplePlannedTest diff --git a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js b/test/common/SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest.js similarity index 91% rename from test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js rename to test/common/SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest.js index bd7cbf2e..33a50f2c 100644 --- a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest.js +++ b/test/common/SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest.js @@ -1,11 +1,10 @@ const { time } = require('@nomicfoundation/hardhat-network-helpers') const { expect } = require('chai') -const { - checkSnapshot -} = require('../ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils') +const { checkSnapshot } = require('../SnapshotModuleUtils/SnapshotModuleUtils') +const { ZERO_ADDRESS } = require('../../../utils') const reason = 'BURN_TEST' -function ERC20SnapshotModuleOnePlannedSnapshotTest () { +function SnapshotModuleOnePlannedSnapshotTest () { const ADDRESSES = [this.address1, this.address2, this.address3] const ADDRESS1_INITIAL_MINT = '31' const ADDRESS2_INITIAL_MINT = '32' @@ -13,6 +12,15 @@ function ERC20SnapshotModuleOnePlannedSnapshotTest () { const TOTAL_SUPPLY_INITIAL_MINT = '96' context('OnePlannedSnapshotTest', function () { beforeEach(async function () { + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } await this.cmtat .connect(this.admin) .mint(this.address1, ADDRESS1_INITIAL_MINT) @@ -182,4 +190,4 @@ function ERC20SnapshotModuleOnePlannedSnapshotTest () { }) }) } -module.exports = ERC20SnapshotModuleOnePlannedSnapshotTest +module.exports = SnapshotModuleOnePlannedSnapshotTest diff --git a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleZeroPlannedSnapshot.js b/test/common/SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot.js similarity index 67% rename from test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleZeroPlannedSnapshot.js rename to test/common/SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot.js index 7db3afbc..5ac60120 100644 --- a/test/common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleZeroPlannedSnapshot.js +++ b/test/common/SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot.js @@ -1,10 +1,8 @@ const { time } = require('@nomicfoundation/hardhat-network-helpers') const { expect } = require('chai') -const { - checkSnapshot -} = require('../ERC20SnapshotModuleUtils/ERC20SnapshotModuleUtils') - -function ERC20SnapshotModuleCommonGlobal () { +const { checkSnapshot } = require('../SnapshotModuleUtils/SnapshotModuleUtils') +const { ZERO_ADDRESS } = require('../../../utils') +function SnapshotModuleCommonGlobal () { context('zeroPlannedSnapshotTest', function () { const ADDRESSES = [this.address1, this.address2, this.address3] const ADDRESS1_INITIAL_MINT = '31' @@ -12,6 +10,15 @@ function ERC20SnapshotModuleCommonGlobal () { const ADDRESS3_INITIAL_MINT = '33' const TOTAL_SUPPLY_INITIAL_MINT = '96' beforeEach(async function () { + if ((await this.cmtat.snapshotEngine()) === ZERO_ADDRESS) { + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + this.cmtat + .connect(this.admin) + .setSnapshotEngine(this.transferEngineMock) + } await this.cmtat .connect(this.admin) .mint(this.address1, ADDRESS1_INITIAL_MINT) @@ -37,4 +44,4 @@ function ERC20SnapshotModuleCommonGlobal () { }) }) } -module.exports = ERC20SnapshotModuleCommonGlobal +module.exports = SnapshotModuleCommonGlobal diff --git a/test/deployment/deploymentERC1363Proxy.test.js b/test/deployment/deploymentERC1363Proxy.test.js new file mode 100644 index 00000000..a003ec7e --- /dev/null +++ b/test/deployment/deploymentERC1363Proxy.test.js @@ -0,0 +1,63 @@ +const { expect } = require('chai') +const { + deployCMTATERC1363Proxy, + fixture, + loadFixture +} = require('../deploymentUtils') +const ERC20BaseModuleCommon = require('../common/ERC20BaseModuleCommon') +const VALUE = 20n +describe('CMTAT - Deployment', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.cmtat = await deployCMTATERC1363Proxy( + this._.address, + this.admin.address, + this.deployerAddress.address + ) + const ReceiverMockFactory = await ethers.getContractFactory( + 'ERC1363ReceiverMock' + ) + this.receiverMock = await ReceiverMockFactory.deploy() + }) + /* ============ ERC165 ============ */ + it('testSupportRightInterface', async function () { + const erc1363Interface = '0xb0202a11' + // don't really know how to compute this easily + // type(IAccessControl).interfaceId + const IERC165Interface = '0x01ffc9a7' + const IERC721Interface = '0x80ac58cd' + // Assert + expect(await this.cmtat.supportsInterface(erc1363Interface)).to.equal(true) + expect(await this.cmtat.supportsInterface(IERC165Interface)).to.equal(true) + expect(await this.cmtat.supportsInterface(IERC721Interface)).to.equal( + false + ) + }) + it('testCanSendTokenToReceiverContract', async function () { + // Arrange + await this.cmtat.connect(this.admin).mint(this.admin, VALUE) + // Arrange - Assert + // Check balance before transfer + expect(await this.cmtat.balanceOf(this.receiverMock)).to.equal(0) + + // Act + Assert + await expect( + this.cmtat.connect(this.admin).transferAndCall(this.receiverMock, VALUE) + ) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.admin, this.receiverMock, VALUE) + + // Assert + expect(await this.cmtat.balanceOf(this.receiverMock)).to.equal(VALUE) + }) + it('testCannotSendTokenToEOAWithERC1363Functions', async function () { + // Arrange + await this.cmtat.connect(this.admin).mint(this.admin, VALUE) + await expect( + this.cmtat.connect(this.admin).transferAndCall(this.address1, VALUE) + ) + .to.be.revertedWithCustomError(this.cmtat, 'ERC1363InvalidReceiver') + .withArgs(this.address1.address) + }) + ERC20BaseModuleCommon() +}) diff --git a/test/deployment/deploymentERC1363Standalone.test.js b/test/deployment/deploymentERC1363Standalone.test.js new file mode 100644 index 00000000..4628ce82 --- /dev/null +++ b/test/deployment/deploymentERC1363Standalone.test.js @@ -0,0 +1,67 @@ +const { expect } = require('chai') +const { + deployCMTATERC1363Standalone, + fixture, + loadFixture +} = require('../deploymentUtils') +const ERC20BaseModuleCommon = require('../common/ERC20BaseModuleCommon') +const VALUE = 20n +describe('CMTAT - Deployment', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.cmtat = await deployCMTATERC1363Standalone( + this._.address, + this.admin.address, + this.deployerAddress.address + ) + + const ReceiverMockFactory = await ethers.getContractFactory( + 'ERC1363ReceiverMock' + ) + this.receiverMock = await ReceiverMockFactory.deploy() + }) + + /* ============ ERC165 ============ */ + it('testSupportRightInterface', async function () { + const erc1363Interface = '0xb0202a11' + // don't really know how to compute this easily + // type(IAccessControl).interfaceId + const IERC165Interface = '0x01ffc9a7' + const IERC721Interface = '0x80ac58cd' + // Assert + expect(await this.cmtat.supportsInterface(erc1363Interface)).to.equal(true) + expect(await this.cmtat.supportsInterface(IERC165Interface)).to.equal(true) + expect(await this.cmtat.supportsInterface(IERC721Interface)).to.equal( + false + ) + }) + it('testCanSendTokenToReceiverContract', async function () { + // Arrange + await this.cmtat.connect(this.admin).mint(this.admin, VALUE) + + // Arrange - Assert + // Check balance before transfer + expect(await this.cmtat.balanceOf(this.receiverMock)).to.equal(0) + + // Act + Assert + await expect( + this.cmtat.connect(this.admin).transferAndCall(this.receiverMock, VALUE) + ) + .to.emit(this.cmtat, 'Transfer') + .withArgs(this.admin, this.receiverMock, VALUE) + + // Assert + expect(await this.cmtat.balanceOf(this.receiverMock)).to.equal(VALUE) + }) + it('testCannotSendTokenToEOAWithERC1363Functions', async function () { + // Arrange + await this.cmtat.connect(this.admin).mint(this.admin, VALUE) + + await expect( + this.cmtat.connect(this.admin).transferAndCall(this.address1, VALUE) + ) + .to.be.revertedWithCustomError(this.cmtat, 'ERC1363InvalidReceiver') + .withArgs(this.address1.address) + }) + ERC20BaseModuleCommon() +}) diff --git a/test/deploymentUtils.js b/test/deploymentUtils.js index 48da279e..8074b450 100644 --- a/test/deploymentUtils.js +++ b/test/deploymentUtils.js @@ -43,6 +43,17 @@ async function deployCMTATStandalone (_, admin, deployerAddress) { return cmtat } +async function deployCMTATERC1363Standalone (_, admin, deployerAddress) { + const cmtat = await ethers.deployContract('CMTAT_STANDALONE_ERC1363', [ + _, + admin, + ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], + ['CMTAT_ISIN', TERMS, 'CMTAT_info'], + [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] + ]) + return cmtat +} + async function deployCMTATProxyImplementation ( deployerAddress, forwarderIrrevocable @@ -85,6 +96,28 @@ async function deployCMTATStandaloneWithParameter ( return cmtat } +async function deployCMTATERC1363Proxy (_, admin, deployerAddress) { + // Ref: https://forum.openzeppelin.com/t/upgrades-hardhat-truffle5/30883/3 + const ETHERS_CMTAT_PROXY_FACTORY = await ethers.getContractFactory( + 'CMTAT_PROXY_ERC1363' + ) + const ETHERS_CMTAT_PROXY = await upgrades.deployProxy( + ETHERS_CMTAT_PROXY_FACTORY, + [ + admin, + ['CMTA Token', 'CMTAT', DEPLOYMENT_DECIMAL], + ['CMTAT_ISIN', TERMS, 'CMTAT_info'], + [ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS] + ], + { + initializer: 'initialize', + constructorArgs: [_], + from: deployerAddress + } + ) + return ETHERS_CMTAT_PROXY +} + async function deployCMTATProxy (_, admin, deployerAddress) { // Ref: https://forum.openzeppelin.com/t/upgrades-hardhat-truffle5/30883/3 const ETHERS_CMTAT_PROXY_FACTORY = await ethers.getContractFactory( @@ -144,6 +177,8 @@ async function deployCMTATProxyWithParameter ( module.exports = { deployCMTATStandalone, deployCMTATProxy, + deployCMTATERC1363Proxy, + deployCMTATERC1363Standalone, deployCMTATProxyWithParameter, deployCMTATStandaloneWithParameter, DEPLOYMENT_DECIMAL, diff --git a/test/proxy/modules/ERC20SnapshotModule.test.js b/test/proxy/modules/ERC20SnapshotModule.test.js deleted file mode 100644 index f7864000..00000000 --- a/test/proxy/modules/ERC20SnapshotModule.test.js +++ /dev/null @@ -1,35 +0,0 @@ -const { - deployCMTATProxy, - fixture, - loadFixture -} = require('../../deploymentUtils') -const ERC20SnapshotModuleCommonRescheduling = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling') -const ERC20SnapshotModuleCommonScheduling = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling') -const ERC20SnapshotModuleCommonUnschedule = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule') -const ERC20SnapshotModuleCommonGetNextSnapshot = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot') -const ERC20SnapshotModuleMultiplePlannedTest = require('../../common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest') -const ERC20SnapshotModuleOnePlannedSnapshotTest = require('../../common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest') -const ERC20SnapshotModuleZeroPlannedSnapshotTest = require('../../common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleZeroPlannedSnapshot') - -describe('Proxy - ERC20SnapshotModule', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.cmtat = await deployCMTATProxy( - this._.address, - this.admin.address, - this.deployerAddress.address - ) - this.transferEngineMock = await ethers.deployContract( - 'SnapshotEngineMock', - [this.cmtat.target, this.admin] - ) - this.cmtat.connect(this.admin).setSnapshotEngine(this.transferEngineMock) - }) - ERC20SnapshotModuleMultiplePlannedTest() - ERC20SnapshotModuleOnePlannedSnapshotTest() - ERC20SnapshotModuleZeroPlannedSnapshotTest() - ERC20SnapshotModuleCommonRescheduling() - ERC20SnapshotModuleCommonScheduling() - ERC20SnapshotModuleCommonUnschedule() - ERC20SnapshotModuleCommonGetNextSnapshot() -}) diff --git a/test/proxy/modules/SnapshotModule/SnapshotModule.test.js b/test/proxy/modules/SnapshotModule/SnapshotModule.test.js new file mode 100644 index 00000000..6217d05c --- /dev/null +++ b/test/proxy/modules/SnapshotModule/SnapshotModule.test.js @@ -0,0 +1,37 @@ +const SnapshotModuleCommonRescheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonRescheduling') +const SnapshotModuleCommonScheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonScheduling') +const SnapshotModuleCommonUnschedule = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonUnschedule') +const SnapshotModuleCommonGetNextSnapshot = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot') +const SnapshotModuleMultiplePlannedTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest') +const SnapshotModuleOnePlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest') +const SnapshotModuleZeroPlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot') +const SnapshotModuleSetSnapshotEngineCommon = require('../../../common/SnapshotModuleCommon/SnapshotModuleSetSnapshotEngineCommon') + +const { + deployCMTATProxy, + fixture, + loadFixture +} = require('../../../deploymentUtils') +describe('Proxy - SnapshotModule', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.cmtat = await deployCMTATProxy( + this._.address, + this.admin.address, + this.deployerAddress.address + ) + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + }) + SnapshotModuleMultiplePlannedTest() + SnapshotModuleOnePlannedSnapshotTest() + SnapshotModuleZeroPlannedSnapshotTest() + SnapshotModuleCommonRescheduling() + SnapshotModuleCommonScheduling() + SnapshotModuleCommonUnschedule() + SnapshotModuleCommonGetNextSnapshot() + // Set snapshot Engine + SnapshotModuleSetSnapshotEngineCommon +}) diff --git a/test/proxy/modules/SnapshotModule/SnapshotModuleConstructor.test.js b/test/proxy/modules/SnapshotModule/SnapshotModuleConstructor.test.js new file mode 100644 index 00000000..69b431db --- /dev/null +++ b/test/proxy/modules/SnapshotModule/SnapshotModuleConstructor.test.js @@ -0,0 +1,48 @@ +const SnapshotModuleCommonRescheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonRescheduling') +const SnapshotModuleCommonScheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonScheduling') +const SnapshotModuleCommonUnschedule = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonUnschedule') +const SnapshotModuleCommonGetNextSnapshot = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot') +const SnapshotModuleMultiplePlannedTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest') +const SnapshotModuleOnePlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest') +const SnapshotModuleZeroPlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot') + +const { + deployCMTATProxyWithParameter, + fixture, + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL +} = require('../../../deploymentUtils') + +const { ZERO_ADDRESS } = require('../../../utils') + +describe('Proxy - SnapshotModule - Constructor', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [ZERO_ADDRESS, this.admin] + ) + this.definedAtDeployment = true + this.cmtat = await deployCMTATProxyWithParameter( + this.deployerAddress.address, + this._.address, + this.admin.address, + 'CMTA Token', + 'CMTAT', + DEPLOYMENT_DECIMAL, + 'CMTAT_ISIN', + TERMS, + 'CMTAT_info', + [ZERO_ADDRESS, ZERO_ADDRESS, this.transferEngineMock.target, ZERO_ADDRESS] + ) + this.transferEngineMock.setERC20(this.cmtat) + }) + SnapshotModuleMultiplePlannedTest() + SnapshotModuleOnePlannedSnapshotTest() + SnapshotModuleZeroPlannedSnapshotTest() + SnapshotModuleCommonRescheduling() + SnapshotModuleCommonScheduling() + SnapshotModuleCommonUnschedule() + SnapshotModuleCommonGetNextSnapshot() +}) diff --git a/test/standard/modules/ERC20SnapshotModule.test.js b/test/standard/modules/ERC20SnapshotModule.test.js deleted file mode 100644 index e11d998c..00000000 --- a/test/standard/modules/ERC20SnapshotModule.test.js +++ /dev/null @@ -1,35 +0,0 @@ -const ERC20SnapshotModuleCommonRescheduling = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonRescheduling') -const ERC20SnapshotModuleCommonScheduling = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonScheduling') -const ERC20SnapshotModuleCommonUnschedule = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule') -const ERC20SnapshotModuleCommonGetNextSnapshot = require('../../common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonGetNextSnapshot') -const ERC20SnapshotModuleMultiplePlannedTest = require('../../common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleMultiplePlannedTest') -const ERC20SnapshotModuleOnePlannedSnapshotTest = require('../../common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleOnePlannedSnapshotTest') -const ERC20SnapshotModuleZeroPlannedSnapshotTest = require('../../common/ERC20SnapshotModuleCommon/global/ERC20SnapshotModuleZeroPlannedSnapshot') -const { - deployCMTATStandalone, - fixture, - loadFixture -} = require('../../deploymentUtils') - -describe('Standard - ERC20SnapshotModule', function () { - beforeEach(async function () { - Object.assign(this, await loadFixture(fixture)) - this.cmtat = await deployCMTATStandalone( - this._.address, - this.admin.address, - this.deployerAddress.address - ) - this.transferEngineMock = await ethers.deployContract( - 'SnapshotEngineMock', - [this.cmtat.target, this.admin] - ) - this.cmtat.connect(this.admin).setSnapshotEngine(this.transferEngineMock) - }) - ERC20SnapshotModuleMultiplePlannedTest() - ERC20SnapshotModuleOnePlannedSnapshotTest() - ERC20SnapshotModuleZeroPlannedSnapshotTest() - ERC20SnapshotModuleCommonRescheduling() - ERC20SnapshotModuleCommonScheduling() - ERC20SnapshotModuleCommonUnschedule() - ERC20SnapshotModuleCommonGetNextSnapshot() -}) diff --git a/test/standard/modules/SnapshotModule/SnapshotModule.test.js b/test/standard/modules/SnapshotModule/SnapshotModule.test.js new file mode 100644 index 00000000..eb47b210 --- /dev/null +++ b/test/standard/modules/SnapshotModule/SnapshotModule.test.js @@ -0,0 +1,37 @@ +const SnapshotModuleCommonRescheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonRescheduling') +const SnapshotModuleCommonScheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonScheduling') +const SnapshotModuleCommonUnschedule = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonUnschedule') +const SnapshotModuleCommonGetNextSnapshot = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot') +const SnapshotModuleMultiplePlannedTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest') +const SnapshotModuleOnePlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest') +const SnapshotModuleZeroPlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot') +const SnapshotModuleSetSnapshotEngineCommon = require('../../../common/SnapshotModuleCommon/SnapshotModuleSetSnapshotEngineCommon') + +const { + deployCMTATStandalone, + fixture, + loadFixture +} = require('../../../deploymentUtils') +describe('Standard - SnapshotModule', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.cmtat = await deployCMTATStandalone( + this._.address, + this.admin.address, + this.deployerAddress.address + ) + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [this.cmtat.target, this.admin] + ) + }) + SnapshotModuleMultiplePlannedTest() + SnapshotModuleOnePlannedSnapshotTest() + SnapshotModuleZeroPlannedSnapshotTest() + SnapshotModuleCommonRescheduling() + SnapshotModuleCommonScheduling() + SnapshotModuleCommonUnschedule() + SnapshotModuleCommonGetNextSnapshot() + // Set snapshot Engine + SnapshotModuleSetSnapshotEngineCommon +}) diff --git a/test/standard/modules/SnapshotModule/SnapshotModuleConstructor.test.js b/test/standard/modules/SnapshotModule/SnapshotModuleConstructor.test.js new file mode 100644 index 00000000..5d9a3cd7 --- /dev/null +++ b/test/standard/modules/SnapshotModule/SnapshotModuleConstructor.test.js @@ -0,0 +1,48 @@ +const SnapshotModuleCommonRescheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonRescheduling') +const SnapshotModuleCommonScheduling = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonScheduling') +const SnapshotModuleCommonUnschedule = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonUnschedule') +const SnapshotModuleCommonGetNextSnapshot = require('../../../common/SnapshotModuleCommon/SnapshotModuleCommonGetNextSnapshot') +const SnapshotModuleMultiplePlannedTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleMultiplePlannedTest') +const SnapshotModuleOnePlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleOnePlannedSnapshotTest') +const SnapshotModuleZeroPlannedSnapshotTest = require('../../../common/SnapshotModuleCommon/global/SnapshotModuleZeroPlannedSnapshot') + +const { + deployCMTATStandaloneWithParameter, + fixture, + loadFixture, + TERMS, + DEPLOYMENT_DECIMAL +} = require('../../../deploymentUtils') + +const { ZERO_ADDRESS } = require('../../../utils') + +describe('Standard - SnapshotModule - Constructor', function () { + beforeEach(async function () { + Object.assign(this, await loadFixture(fixture)) + this.transferEngineMock = await ethers.deployContract( + 'SnapshotEngineMock', + [ZERO_ADDRESS, this.admin] + ) + this.definedAtDeployment = true + this.cmtat = await deployCMTATStandaloneWithParameter( + this.deployerAddress.address, + this._.address, + this.admin.address, + 'CMTA Token', + 'CMTAT', + DEPLOYMENT_DECIMAL, + 'CMTAT_ISIN', + TERMS, + 'CMTAT_info', + [ZERO_ADDRESS, ZERO_ADDRESS, this.transferEngineMock.target, ZERO_ADDRESS] + ) + this.transferEngineMock.setERC20(this.cmtat) + }) + SnapshotModuleMultiplePlannedTest() + SnapshotModuleOnePlannedSnapshotTest() + SnapshotModuleZeroPlannedSnapshotTest() + SnapshotModuleCommonRescheduling() + SnapshotModuleCommonScheduling() + SnapshotModuleCommonUnschedule() + SnapshotModuleCommonGetNextSnapshot() +}) From 9dc4896df1ceb5f525cde0f295138015d39dc458 Mon Sep 17 00:00:00 2001 From: Ryan Sauge <71391932+rya-sge@users.noreply.github.com> Date: Thu, 13 Feb 2025 11:42:29 +0100 Subject: [PATCH 18/26] improve doc, generate slither report --- README.md | 200 ++++- contracts/mocks/DocumentEngineMock.sol | 4 - contracts/modules/CMTAT_BASE.sol | 6 +- doc/USAGE.md | 2 +- .../mythril/{ => v2.5.0}/myth_proxy_report.md | 0 .../{ => v2.5.0}/myth_standalone_report.md | 0 doc/audits/tools/slither/slither-report.md | 759 ---------------- .../tools/slither/v2.3.1-slither-report.md | 843 ------------------ .../tools/slither/v2.4.0-slither-report.md | 710 --------------- .../tools/slither/v3.0.0-slither-report.md | 340 +++++++ doc/general/ARCHITECTURE.md | 76 -- doc/general/contract-size.png | Bin 260628 -> 69451 bytes package.json | 2 +- slither-report.md | 326 +++++++ 14 files changed, 829 insertions(+), 2439 deletions(-) rename doc/audits/tools/mythril/{ => v2.5.0}/myth_proxy_report.md (100%) rename doc/audits/tools/mythril/{ => v2.5.0}/myth_standalone_report.md (100%) delete mode 100644 doc/audits/tools/slither/slither-report.md delete mode 100644 doc/audits/tools/slither/v2.3.1-slither-report.md delete mode 100644 doc/audits/tools/slither/v2.4.0-slither-report.md create mode 100644 doc/audits/tools/slither/v3.0.0-slither-report.md delete mode 100644 doc/general/ARCHITECTURE.md create mode 100644 slither-report.md diff --git a/README.md b/README.md index b2626790..68bab2d5 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ > To use the CMTAT, we recommend the latest audited version, from the [Releases](https://github.com/CMTA/CMTAT/releases) page. Currently, it is the version [v2.3.0](https://github.com/CMTA/CMTAT/releases/tag/v2.3.0) +[TOC] + + + ## Introduction The CMTA token (CMTAT) is a framework enabling the tokenization of securities in compliance with Swiss law. This repository provides CMTA's reference implementation of CMTAT for Ethereum, as an ERC-20 compatible token. @@ -13,10 +17,88 @@ The preferred way to receive comments is through the GitHub issue tracker. Priv Note that CMTAT may be used in other jurisdictions than Switzerland, and for tokenizing various asset types, beyond equity and debt products. +## Difference between version + +The main difference between the three main version are the following + +### Standard ERC + +Here the list of ERC supported between different version: + +| | ERC status | CMTAT 1.0 | CMTAT 2.30 | CMTAT 3.0.0 | +| ------------------------------------------------------------ | ------------------------ | --------- | ---------- | ------------------------------------------------------------ | +| **Fungible tokens** | | | | | +| [ERC-20](https://eips.ethereum.org/EIPS/eip-20) | Standard Track (final) | ☑ | ☑ | ☑ | +| [ERC-1363](https://eips.ethereum.org/EIPS/eip-1363) | Standard Track (final) | ☒ | ☒ | ☑
    (specific deployment version) | +| **Tokenization** | | | | | +| [ERC-1404](https://github.com/ethereum/eips/issues/1404)
    (Simple Restricted Token Standard) | Draft | ☑ | ☑ | ☑ | +| [ERC-1643](https://github.com/ethereum/eips/issues/1643) (Document Management Standard)
    (Standard from [ERC-1400](https://github.com/ethereum/EIPs/issues/1411)) | Draft | ☒ | ☒ | ☑
    (through DocumentEngine with small improvement) | +| **Proxy support related** | | | | | +| Deployment with a UUPS proxy ([ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)) | Stagnant
    (but used) | ☒ | ☒ | ☑
    (specific deployment version) | +| [ERC-7201](https://eips.ethereum.org/EIPS/eip-7201)
    (Storage namespaces for proxy contract) | Standard Track (final) | ☒ | ☒ | ☑ | +| **Other** | | | | | +| [ERC-2771](https://eips.ethereum.org/EIPS/eip-2771) (Meta Tx / gasless) | Standard Track (final) | ☑ | ☑ | ☑ | + +### Modules + +Here the list of modules supported between different version and the difference. + +For simplicity, the module names and function locations are those of version 3.0.0 + +- "fn" means function +- Changes made in a release are considered maintained in the following release unless explicitly stated otherwise + +| | CMTAT 1.0 | CMTAT 2.30 | CMTAT 3.0.0 | +| ------------------- | -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| ValidationModule | ☑ | ☑ | ☑ | +| AuthorizationModule | ☑
    | ☑

    (Admin has all the roles by default) | ☑
    | +| BaseModule | ☑ | ☑
    (Add two fields: flag and information) | ☑
    Remove field flag (not used) | +| BurnModule | ☑ | ☑
    Replace fn `burnFrom` by fn `forceBurn` | Add fn `burnBatch`
    Rename `forceBurn` in `burn`
    Add fn `burnFrom` | +| EnforcementModule | ☑ | ☑ | ☑ | +| ERC20BaseModule | ☑ | ☑
    Remove fn `forceTransfer`
    (replaced by `burn`and `mint`)
    | Add fn `transferBatch`

    Add fn `balanceInfo` (useful to distribute dividends)
    Add fn `enforceTransfer`(=forceTransfer)

    Add fn `setName`and `setSymbol`
    Remove custom fn `approve`(keep only ERC-20 approve) | +| MintModule | ☑ | ☑ | Add fn `mintBatch` | +| PauseModule | ☑ | ☑ | Replace fn `kill` by fn `deactivateContract` | + +CMTAT 3.0.0 adds also a function `burnAndMint`to burn and mint atomically in the same function. + +| | CMTAT 1.0 | CMTAT 2.30 | CMTAT 3.0.0 | +| -------------- | --------------- | -------------------------------------------------------- | --------------------------------------------------------- | +| CreditsEvents | ☒ | ☑
    | ☑
    (Require an external contract DebtEngine) | +| DebtEvents | ☒ | ☑ | ☑
    (Require an external contract DebtEngine) | +| MetaTx | ☑
    | ☑

    (forwarder immutable) | ☑
    | +| SnapshotModule | ☑
    | Partial
    (Not included by default because unaudited) | ☑ 
    (require an external SnapshotEngine) | + [TOC] +------ + +## Documentation + +Here a summary of the main documents: + +| Document | Link/Files | +| ----------------------------------- | -------------------------------------------------------- | +| Documentation of the modules API. | [doc/modules](doc/modules) | +| How to use the project + toolchains | [doc/USAGE.md](doc/USAGE.md) | +| Project architecture | [architecture.pdf](./doc/schema/drawio/architecture.pdf) | +| FAQ | [doc/general/FAQ.md](doc/general/FAQ.md) | + +CMTA providers further documentation describing the CMTAT framework in a platform-agnostic way, and covering legal aspects, see + +- [CMTA Token (CMTAT)](https://cmta.ch/standards/cmta-token-cmtat) +- [Standard for the tokenization of shares of Swiss corporations using the distributed ledger technology](https://cmta.ch/standards/standard-for-the-tokenization-of-shares-of-swiss-corporations-using-the-distributed-ledger-technology) + +### Further reading + +- [CMTA - A comparison of different security token standards](https://cmta.ch/news-articles/a-comparison-of-different-security-token-standards) +- [Taurus - Security Token Standards: A Closer Look at CMTAT](https://www.taurushq.com/blog/security-token-standards-a-closer-look-at-cmtat/) +- [Taurus - Equity Tokenization: How to Pay Dividend On-Chain Using CMTAT](https://www.taurushq.com/blog/equity-tokenization-how-to-pay-dividend-on-chain-using-cmtat/) (CMTAT v2.4.0) +- [Taurus - Token Transfer Management: How to Apply Restrictions with CMTAT and ERC-1404](https://www.taurushq.com/blog/token-transfer-management-how-to-apply-restrictions-with-cmtat-and-erc-1404/) (CMTAT v2.4.0) +- [Taurus - Making CMTAT Tokenization More Scalable and Cost-Effective with Proxy and Factory Contracts](https://www.taurushq.com/blog/cmtat-tokenization-deployment-with-proxy-and-factory/) (CMTAT v2.5.1) +- [Taurus - Addressing the Privacy and Compliance Challenge in Public Blockchain Token Transactions](https://www.taurushq.com/blog/enhancing-token-transaction-privacy-on-public-blockchains-while-ensuring-compliance/) (Aztec) + ## Functionality ### Overview @@ -56,11 +138,17 @@ The consequences are the following: ### Gasless support -The CMTAT supports client-side gasless transactions using the [Gas Station Network](https://docs.opengsn.org/#the-problem) (GSN) pattern, the main open standard for transfering fee payment to another account than that of the transaction issuer. The contract uses the OpenZeppelin contract `ERC2771ContextUpgradeable`, which allows a contract to get the original client with `_msgSender()` instead of the fee payer given by `msg.sender` while allowing upgrades on the main contract (see *Deployment via a proxy* above). +The CMTAT supports client-side gasless transactions using the [ERC-2771](https://eips.ethereum.org/EIPS/eip-2771) + +The contract uses the OpenZeppelin contract `ERC2771ContextUpgradeable`, which allows a contract to get the original client with `_msgSender()` instead of the fee payer given by `msg.sender` while allowing upgrades on the main contract (see *Deployment via a proxy* above). + +At deployment, the parameter `forwarder` inside the CMTAT contract constructor has to be set with the defined address of the forwarder. Please note that the forwarder can not be changed after deployment, and with a proxy architecture, its value is stored inside the implementation contract bytecode instead of the storage of the proxy. -At deployment, the parameter `forwarder` inside the CMTAT contract constructor has to be set with the defined address of the forwarder. Please note that the forwarder can not be changed after deployment, and with a proxy architecture, its value is stored inside the implementation contract bytecode instead of the storage of the proxy. +References: -Please see the OpenGSN [documentation](https://docs.opengsn.org/contracts/#receiving-a-relayed-call) for more details on what is done to support GSN in the contract. +- [OpenZeppelin Meta Transactions](https://docs.openzeppelin.com/contracts/5.x/api/metatx) + +- OpenGSN has deployed several forwarders, see their [documentation](https://docs.opengsn.org/contracts/#receiving-a-relayed-call) to see some examples. ----- @@ -68,6 +156,12 @@ Please see the OpenGSN [documentation](https://docs.opengsn.org/contracts/#recei CMTAT architecture is divided in two main componentes: module and engines +The main schema describing the architecture can be found here: [architecture.pdf](./doc/schema/drawio/architecture.pdf) + +#### Base + +![surya_graph_CMTAT_BASE.sol](./doc/schema/surya_graph/surya_graph_CMTAT_BASE.sol.png) + ### Module Modules describe a **logical** code separation inside CMTAT. They are defined as abstract contracts. @@ -308,6 +402,10 @@ Contracts for deployment are available in the directory [./contracts/deployment] To deploy CMTAT without a proxy, in standalone mode, you need to use the contract version `CMTAT_STANDALONE`. +Here the surya inheritance schema: + +![surya_inheritance_CMTAT_STANDALONE.sol](./doc/schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE.sol.png) + ### With a proxy The CMTAT supports deployment via a proxy contract. Furthermore, using a proxy permits to upgrade the contract, using a standard proxy upgrade pattern. @@ -317,7 +415,19 @@ The CMTAT supports deployment via a proxy contract. Furthermore, using a proxy Please see the OpenZeppelin [upgradeable contracts documentation](https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable) for more information about the proxy requirements applied to the contract. -Please see the OpenZeppelin [Upgrades plugins](https://docs.openzeppelin.com/upgrades-plugins/1.x/) for more information about plugin upgrades in general. +See the OpenZeppelin [Upgrades plugins](https://docs.openzeppelin.com/upgrades-plugins/1.x/) for more information about plugin upgrades in general. + +#### Inheritance + +- UUPS + +![surya_inheritance_CMTAT_PROXY_UUPS.sol](./doc/schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_UUPS.sol.png) + +- Proxy standard + + + +![surya_inheritance_CMTAT_PROXY.sol](./doc/schema/surya_inheritance/surya_inheritance_CMTAT_PROXY.sol.png) #### Implementation details @@ -347,6 +457,24 @@ Two dedicated version (proxy and standalone) implementing this standard are avai More information on this standard here: [erc1363.org](https://erc1363.org), [RareSkills - ERC-1363](https://www.rareskills.io/post/erc-1363) +#### Inheritance + +- CMTAT ERC-1363 Base + +![surya_inheritance_CMTAT_ERC1363_BASE.sol](./doc/schema/surya_inheritance/surya_inheritance_CMTAT_ERC1363_BASE.sol.png) + + + +- CMTAT PROXY ERC-1363 + +![surya_inheritance_CMTAT_PROXY_ERC1363.sol](./doc/schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_ERC1363.sol.png) + + + +- CMTAT Proxy ERC-1363 + +![surya_inheritance_CMTAT_STANDALONE_ERC1363.sol](./doc/schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE_ERC1363.sol.png) + ### Factory Factory contracts are available to deploy the CMTAT with a beacon proxy, a transparent proxy or an UUPS proxy. @@ -406,19 +534,17 @@ The report is available in [ABDK_CMTA_CMTATRuleEngine_v_1_0.pdf](doc/audits/ABDK You will find the report produced by [Slither](https://github.com/crytic/slither) in -| Version | File | -| ------------ | ------------------------------------------------------------ | -| Last version | [slither-report.md](doc/audits/tools/slither//slither-report.md) | -| v2.3.0 | [v2.3.0-slither-report.md](doc/audits/tools/slither/v2.3.0-slither-report.md) | -| v2.3.1 | [v2.3.1-slither-report.md](doc/audits/tools/slither/v2.3.1-slither-report.md) | -| v2.4.0 | [v2.4.0-slither-report.md](doc/audits/tools/slither/v2.4.0-slither-report.md) | -| v2.5.0 | [v2.5.0-slither-report.md](doc/audits/tools/slither/v2.5.0-slither-report.md) | +| Version | File | +| ------- | ------------------------------------------------------------ | +| v3.0.0 | [v3.0.0-slither-report.md](doc/audits/tools/slither/v3.0.0-slither-report.md) | +| v2.5.0 | [v2.5.0-slither-report.md](doc/audits/tools/slither/v2.5.0-slither-report.md) | +| v2.3.0 | [v2.3.0-slither-report.md](doc/audits/tools/slither/v2.3.0-slither-report.md) | #### [Mythril](https://github.com/Consensys/mythril) -| Version | File | -| ------------ | ------------------------------------------------------------ | -| Last version | [mythril-report-standalone.md](doc/audits/tools/mythril/myth_standalone_report.md)
    [mythril-report-proxy.md](doc/audits/tools/mythril/myth_proxy_report.md)
    | +| Version | File | +| ------- | ------------------------------------------------------------ | +| v2.5.0 | [mythril-report-standalone.md](doc/audits/tools/mythril/v2.5.0/myth_standalone_report.md)
    [mythril-report-proxy.md](doc/audits/tools/mythril/v2.5.0/myth_proxy_report.md)
    | ### Test @@ -430,33 +556,10 @@ A code coverage is available in [index.html](doc/general/test/coverage/index.htm As with any token contract, access to the owner key must be adequately restricted. Likewise, access to the proxy contract must be restricted and seggregated from the token contract. ------- - -## Documentation - -Here a summary of the main documents: - -| Document | Link/Files | -| --------------------------------- | ---------------------------------------------------------- | -| Documentation of the modules API. | [doc/modules](doc/modules) | -| Documentation on the toolchain | [doc/TOOLCHAIN.md](doc/TOOLCHAIN.md) | -| How to use the project | [doc/USAGE.md](doc/USAGE.md) | -| Project architecture | [doc/general/ARCHITECTURE.md](doc/general/ARCHITECTURE.md) | - -CMTA providers further documentation describing the CMTAT framework in a platform-agnostic way, and covering legal aspects, see - -- [CMTA Token (CMTAT)](https://cmta.ch/standards/cmta-token-cmtat) -- [Standard for the tokenization of shares of Swiss corporations using the distributed ledger technology](https://cmta.ch/standards/standard-for-the-tokenization-of-shares-of-swiss-corporations-using-the-distributed-ledger-technology) - -### Further reading -- [CMTA - A comparison of different security token standards](https://cmta.ch/news-articles/a-comparison-of-different-security-token-standards) -- [Taurus - Security Token Standards: A Closer Look at CMTAT](https://www.taurushq.com/blog/security-token-standards-a-closer-look-at-cmtat/) -- [Taurus - Equity Tokenization: How to Pay Dividend On-Chain Using CMTAT](https://www.taurushq.com/blog/equity-tokenization-how-to-pay-dividend-on-chain-using-cmtat/) (CMTAT v2.4.0) -- [Taurus - Token Transfer Management: How to Apply Restrictions with CMTAT and ERC-1404](https://www.taurushq.com/blog/token-transfer-management-how-to-apply-restrictions-with-cmtat-and-erc-1404/) (CMTAT v2.4.0) -- [Taurus - Making CMTAT Tokenization More Scalable and Cost-Effective with Proxy and Factory Contracts](https://www.taurushq.com/blog/cmtat-tokenization-deployment-with-proxy-and-factory/) (CMTAT v2.5.1) -- [Taurus - Addressing the Privacy and Compliance Challenge in Public Blockchain Token Transactions](https://www.taurushq.com/blog/enhancing-token-transaction-privacy-on-public-blockchains-while-ensuring-compliance/) (Aztec) +--- ## Others implementations + Two versions are available for the blockchain [Tezos](https://tezos.com) - [CMTAT FA2](https://github.com/CMTA/CMTAT-Tezos-FA2) Official version written in SmartPy - [@ligo/cmtat](https://github.com/ligolang/CMTAT-Ligo/) Unofficial version written in Ligo @@ -464,11 +567,24 @@ Two versions are available for the blockchain [Tezos](https://tezos.com) For [Aztec](https://aztec.network), see [Taurus - Addressing the Privacy and Compliance Challenge in Public Blockchain Token Transactions](https://www.taurushq.com/blog/enhancing-token-transaction-privacy-on-public-blockchains-while-ensuring-compliance/) - ## Contract size -![contract-size](./doc/general/contract-size.png) +```bash +npm run-script size +``` + +Solc version: 0.8.28 + +Optimizer: true +First column: contract name + +second colum: deployed size (KiB)) + +Third column: Initcode size (KiB) + + +![contract-size](./doc/general/contract-size.png) ## Intellectual property -The code is copyright (c) Capital Market and Technology Association, 2018-2024, and is released under [Mozilla Public License 2.0](./LICENSE.md). +The code is copyright (c) Capital Market and Technology Association, 2018-2025, and is released under [Mozilla Public License 2.0](./LICENSE.md). diff --git a/contracts/mocks/DocumentEngineMock.sol b/contracts/mocks/DocumentEngineMock.sol index 2d49149c..c4b4dd80 100644 --- a/contracts/mocks/DocumentEngineMock.sol +++ b/contracts/mocks/DocumentEngineMock.sol @@ -24,10 +24,6 @@ interface IERC1643Whole is IERC1643{ * @title a DocumentEngine mock for testing, not suitable for production */ contract DocumentEngineMock is IERC1643Whole { - /*struct DocumentStorage { - uint256 key; - Document doc; - }*/ mapping(string => Document) private documents; mapping(string => uint256) private documentKey; string[] private documentNames; diff --git a/contracts/modules/CMTAT_BASE.sol b/contracts/modules/CMTAT_BASE.sol index b71cba83..19e84cae 100644 --- a/contracts/modules/CMTAT_BASE.sol +++ b/contracts/modules/CMTAT_BASE.sol @@ -237,10 +237,10 @@ abstract contract CMTAT_BASE is revert Errors.CMTAT_InvalidTransfer(from, to, amount); } // We check here the address of the snapshotEngine here because we don't want to read balance/totalSupply if there is no ruleEngine - ISnapshotEngine snapshotEngine = snapshotEngine(); + ISnapshotEngine snapshotEngineLocal = snapshotEngine(); // Required to be performed before the update - if(address(snapshotEngine) != address(0)){ - snapshotEngine.operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); + if(address(snapshotEngineLocal) != address(0)){ + snapshotEngineLocal.operateOnTransfer(from, to, balanceOf(from), balanceOf(to), totalSupply()); } ERC20Upgradeable._update(from, to, amount); } diff --git a/doc/USAGE.md b/doc/USAGE.md index dff11d07..7388d476 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -243,7 +243,7 @@ npm run-script coverage Slither is a Solidity static analysis framework written in Python3 ```bash -slither . --checklist --filter-paths "openzeppelin-contracts-upgradeable|openzeppelin-contracts|@openzeppelin|test" > slither-report.md +slither . --checklist --filter-paths "mocks|openzeppelin-contracts-upgradeable|openzeppelin-contracts|@openzeppelin|test" > slither-report.md ``` ### [Mythril](https://github.com/Consensys/mythril) diff --git a/doc/audits/tools/mythril/myth_proxy_report.md b/doc/audits/tools/mythril/v2.5.0/myth_proxy_report.md similarity index 100% rename from doc/audits/tools/mythril/myth_proxy_report.md rename to doc/audits/tools/mythril/v2.5.0/myth_proxy_report.md diff --git a/doc/audits/tools/mythril/myth_standalone_report.md b/doc/audits/tools/mythril/v2.5.0/myth_standalone_report.md similarity index 100% rename from doc/audits/tools/mythril/myth_standalone_report.md rename to doc/audits/tools/mythril/v2.5.0/myth_standalone_report.md diff --git a/doc/audits/tools/slither/slither-report.md b/doc/audits/tools/slither/slither-report.md deleted file mode 100644 index 0804fd62..00000000 --- a/doc/audits/tools/slither/slither-report.md +++ /dev/null @@ -1,759 +0,0 @@ -**THIS CHECKLIST IS NOT COMPLETE**. Use `--show-ignored-findings` to show all the results. -Summary - - [incorrect-equality](#incorrect-equality) (2 results) (Medium) - - [uninitialized-local](#uninitialized-local) (1 results) (Medium) - - [unused-return](#unused-return) (1 results) (Medium) - - [shadowing-local](#shadowing-local) (1 results) (Low) - - [missing-zero-check](#missing-zero-check) (1 results) (Low) - - [calls-loop](#calls-loop) (4 results) (Low) - - [timestamp](#timestamp) (5 results) (Low) - - [assembly](#assembly) (9 results) (Informational) - - [costly-loop](#costly-loop) (1 results) (Informational) - - [dead-code](#dead-code) (1 results) (Informational) - - [solc-version](#solc-version) (1 results) (Informational) - - [naming-convention](#naming-convention) (56 results) (Informational) - - [similar-names](#similar-names) (3 results) (Informational) - - [too-many-digits](#too-many-digits) (2 results) (Informational) -## incorrect-equality - -> Mock: not intended to be used in production - -Impact: Medium -Confidence: High - - - [ ] ID-0 - [DocumentEngineMock.removeDocument(bytes32)](contracts/mocks/DocumentEngineMock.sol#L72-L89) uses a dangerous strict equality: - - [bytes(documents[name_].uri).length == 0](contracts/mocks/DocumentEngineMock.sol#L73) - -contracts/mocks/DocumentEngineMock.sol#L72-L89 - - - - [ ] ID-1 - [DocumentEngineMock.getDocument(bytes32)](contracts/mocks/DocumentEngineMock.sol#L37-L49) uses a dangerous strict equality: - - [bytes(documents[name_].uri).length == 0](contracts/mocks/DocumentEngineMock.sol#L43) - -contracts/mocks/DocumentEngineMock.sol#L37-L49 - -## uninitialized-local - -> The concerned variable local `mostRecent` is initialized in the loop - -Impact: Medium -Confidence: Medium - - - [ ] ID-2 -[SnapshotModuleBase._findScheduledMostRecentPastSnapshot().mostRecent](contracts/modules/internal/base/SnapshotModuleBase.sol#L385) is a local variable never initialized - -contracts/modules/internal/base/SnapshotModuleBase.sol#L385 - -## unused-return - -> Not the case - -Impact: Medium -Confidence: Medium - - - [ ] ID-3 -[DocumentModule.getDocument(bytes32)](contracts/modules/wrapper/extensions/DocumentModule.sol#L74-L81) ignores return value by [$._documentEngine.getDocument(_name)](contracts/modules/wrapper/extensions/DocumentModule.sol#L77) - -contracts/modules/wrapper/extensions/DocumentModule.sol#L74-L81 - -## shadowing-local - -> Mock: not intended to be used in production - -Impact: Low -Confidence: High - - - [ ] ID-4 - [IDebtEngineMock.setCreditEvents(IDebtGlobal.CreditEvents).creditEvents](contracts/mocks/DebtEngineMock.sol#L7) shadows: - - [IDebtEngine.creditEvents()](contracts/interfaces/engine/IDebtEngine.sol#L17) (function) - -contracts/mocks/DebtEngineMock.sol#L7 - -## missing-zero-check - -> Mock: not intended to be used in production - -Impact: Low -Confidence: Medium - - - [ ] ID-5 - [AuthorizationEngineMock.authorizeAdminChange(address).newAdmin](contracts/mocks/AuthorizationEngineMock.sol#L22) lacks a zero-check on : - - [nextAdmin = newAdmin](contracts/mocks/AuthorizationEngineMock.sol#L23) - -contracts/mocks/AuthorizationEngineMock.sol#L22 - -## calls-loop - -> ValidationModuleInternal: Acknowledge -> -> Mock: not intended to be used in production -> ValidationModuleInternal: the loop happens only for batch function. A relevant alternative could be the creation of a batch function for the RuleEngine, but for the moment we don't have an implemented solution. - - - -Impact: Low -Confidence: Medium - - [ ] ID-6 -[RuleEngineMock.messageForTransferRestriction(uint8)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97) has external calls inside a loop: [_rules[i].canReturnTransferRestrictionCode(_restrictionCode)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L88) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97 - - - - [ ] ID-7 -[RuleEngineMock.messageForTransferRestriction(uint8)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97) has external calls inside a loop: [_rules[i].messageForTransferRestriction(_restrictionCode)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L89-L90) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97 - - - - [ ] ID-8 -[ValidationModuleInternal._operateOnTransfer(address,address,uint256)](contracts/modules/internal/ValidationModuleInternal.sol#L89-L92) has external calls inside a loop: [$._ruleEngine.operateOnTransfer(from,to,amount)](contracts/modules/internal/ValidationModuleInternal.sol#L91) - -contracts/modules/internal/ValidationModuleInternal.sol#L89-L92 - - - - [ ] ID-9 -[RuleEngineMock.detectTransferRestriction(address,address,uint256)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L39-L59) has external calls inside a loop: [restriction = _rules[i].detectTransferRestriction(_from,_to,_amount)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L46-L50) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L39-L59 - -## timestamp - -> With the Proof of Work, it was possible for a miner to modify the timestamp in a range of about 15 seconds -> -> With the Proof Of Stake, a new block is created every 12 seconds -> -> In all cases, we are not looking for such precision - -Impact: Low -Confidence: Medium - - - [ ] ID-10 - [SnapshotModuleBase._findScheduledMostRecentPastSnapshot()](contracts/modules/internal/base/SnapshotModuleBase.sol#L370-L398) uses timestamp for comparisons - Dangerous comparisons: - - [$._scheduledSnapshots[i] <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L389) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L370-L398 - - - - [ ] ID-11 - [DocumentEngineMock.getDocument(bytes32)](contracts/mocks/DocumentEngineMock.sol#L37-L49) uses timestamp for comparisons - Dangerous comparisons: - - [bytes(documents[name_].uri).length == 0](contracts/mocks/DocumentEngineMock.sol#L43) - -contracts/mocks/DocumentEngineMock.sol#L37-L49 - - - - [ ] ID-12 - [SnapshotModuleBase._checkTimeSnapshotAlreadyDone(uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L420-L424) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L421) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L420-L424 - - - - [ ] ID-13 - [SnapshotModuleBase._checkTimeInThePast(uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L412-L419) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L413) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L412-L419 - - - - [ ] ID-14 - [DocumentEngineMock.removeDocument(bytes32)](contracts/mocks/DocumentEngineMock.sol#L72-L89) uses timestamp for comparisons - Dangerous comparisons: - - [bytes(documents[name_].uri).length == 0](contracts/mocks/DocumentEngineMock.sol#L73) - -contracts/mocks/DocumentEngineMock.sol#L72-L89 - -## assembly - -> use to implement ERC-7201 - -Impact: Informational -Confidence: High - - - [ ] ID-15 - [AuthorizationModule._getAuthorizationModuleStorage()](contracts/modules/security/AuthorizationModule.sol#L114-L118) uses assembly - - [INLINE ASM](contracts/modules/security/AuthorizationModule.sol#L115-L117) - -contracts/modules/security/AuthorizationModule.sol#L114-L118 - - - - [ ] ID-16 - [EnforcementModuleInternal._getEnforcementModuleInternalStorage()](contracts/modules/internal/EnforcementModuleInternal.sol#L112-L116) uses assembly - - [INLINE ASM](contracts/modules/internal/EnforcementModuleInternal.sol#L113-L115) - -contracts/modules/internal/EnforcementModuleInternal.sol#L112-L116 - - - - [ ] ID-17 - [ValidationModuleInternal._getValidationModuleInternalStorage()](contracts/modules/internal/ValidationModuleInternal.sol#L96-L100) uses assembly - - [INLINE ASM](contracts/modules/internal/ValidationModuleInternal.sol#L97-L99) - -contracts/modules/internal/ValidationModuleInternal.sol#L96-L100 - - - - [ ] ID-18 - [SnapshotModuleBase._getSnapshotModuleBaseStorage()](contracts/modules/internal/base/SnapshotModuleBase.sol#L427-L431) uses assembly - - [INLINE ASM](contracts/modules/internal/base/SnapshotModuleBase.sol#L428-L430) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L427-L431 - - - - [ ] ID-19 - [DocumentModule._getDocumentModuleStorage()](contracts/modules/wrapper/extensions/DocumentModule.sol#L96-L100) uses assembly - - [INLINE ASM](contracts/modules/wrapper/extensions/DocumentModule.sol#L97-L99) - -contracts/modules/wrapper/extensions/DocumentModule.sol#L96-L100 - - - - [ ] ID-20 - [PauseModule._getPauseModuleStorage()](contracts/modules/wrapper/core/PauseModule.sol#L104-L108) uses assembly - - [INLINE ASM](contracts/modules/wrapper/core/PauseModule.sol#L105-L107) - -contracts/modules/wrapper/core/PauseModule.sol#L104-L108 - - - - [ ] ID-21 - [DebtModule._getDebtModuleStorage()](contracts/modules/wrapper/extensions/DebtModule.sol#L94-L98) uses assembly - - [INLINE ASM](contracts/modules/wrapper/extensions/DebtModule.sol#L95-L97) - -contracts/modules/wrapper/extensions/DebtModule.sol#L94-L98 - - - - [ ] ID-22 - [BaseModule._getBaseModuleStorage()](contracts/modules/wrapper/core/BaseModule.sol#L108-L112) uses assembly - - [INLINE ASM](contracts/modules/wrapper/core/BaseModule.sol#L109-L111) - -contracts/modules/wrapper/core/BaseModule.sol#L108-L112 - - - - [ ] ID-23 - [ERC20BaseModule._getERC20BaseModuleStorage()](contracts/modules/wrapper/core/ERC20BaseModule.sol#L134-L138) uses assembly - - [INLINE ASM](contracts/modules/wrapper/core/ERC20BaseModule.sol#L135-L137) - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L134-L138 - -## costly-loop - -> Acknowledge -> -> Mocks are not destined to be used in production - - - -Impact: Informational -Confidence: Medium - - - [ ] ID-24 - [DocumentEngineMock.removeDocument(bytes32)](contracts/mocks/DocumentEngineMock.sol#L72-L89) has costly operations inside a loop: - - [documentNames.pop()](contracts/mocks/DocumentEngineMock.sol#L83) - -contracts/mocks/DocumentEngineMock.sol#L72-L89 - -## dead-code - -> - Implemented to be gasless compatible (see MetaTxModule) -> -> - If we remove this function, we will have the following error: -> -> "Derived contract must override function "_msgData". Two or more base classes define function with same name and parameter types." - -Impact: Informational -Confidence: Medium - - - [ ] ID-25 -[CMTAT_BASE._msgData()](contracts/modules/CMTAT_BASE.sol#L232-L239) is never used and should be removed - -contracts/modules/CMTAT_BASE.sol#L232-L239 - -## solc-version - -> The version set in the config file is 0.8.27 - -Impact: Informational -Confidence: High - - [ ] ID-26 - Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - - VerbatimInvalidDeduplication - - FullInlinerNonExpressionSplitArgumentEvaluationOrder - - MissingSideEffectsOnSelectorAccess. - It is used by: - - node_modules/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/metatx/ERC2771ForwarderUpgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol#3 - - node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#4 - - node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol#4 - - node_modules/@openzeppelin/contracts/access/AccessControl.sol#4 - - node_modules/@openzeppelin/contracts/access/IAccessControl.sol#4 - - node_modules/@openzeppelin/contracts/access/Ownable.sol#4 - - node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol#4 - - node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol#4 - - node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#4 - - node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol#3 - - node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#4 - - node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#4 - - node_modules/@openzeppelin/contracts/proxy/Proxy.sol#4 - - node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol#4 - - node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#4 - - node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol#4 - - node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol#4 - - node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#4 - - node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4 - - node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4 - - node_modules/@openzeppelin/contracts/utils/Address.sol#4 - - node_modules/@openzeppelin/contracts/utils/Arrays.sol#4 - - node_modules/@openzeppelin/contracts/utils/Context.sol#4 - - node_modules/@openzeppelin/contracts/utils/Create2.sol#4 - - node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#5 - - node_modules/@openzeppelin/contracts/utils/Strings.sol#4 - - node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#4 - - node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#4 - - node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol#4 - - node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol#4 - - node_modules/@openzeppelin/contracts/utils/math/Math.sol#4 - - node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol#4 - - contracts/CMTAT_PROXY.sol#3 - - contracts/CMTAT_PROXY_UUPS.sol#3 - - contracts/CMTAT_STANDALONE.sol#3 - - contracts/deployment/CMTAT_BEACON_FACTORY.sol#2 - - contracts/deployment/CMTAT_TP_FACTORY.sol#2 - - contracts/deployment/CMTAT_UUPS_FACTORY.sol#2 - - contracts/deployment/libraries/CMTATFactoryBase.sol#2 - - contracts/deployment/libraries/CMTATFactoryInvariant.sol#2 - - contracts/deployment/libraries/CMTATFactoryRoot.sol#2 - - contracts/interfaces/ICCIPToken.sol#3 - - contracts/interfaces/ICMTATConstructor.sol#2 - - contracts/interfaces/ICMTATSnapshot.sol#3 - - contracts/interfaces/draft-IERC1404/draft-IERC1404.sol#3 - - contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#3 - - contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol#3 - - contracts/interfaces/engine/IAuthorizationEngine.sol#3 - - contracts/interfaces/engine/IDebtEngine.sol#3 - - contracts/interfaces/engine/IDebtGlobal.sol#3 - - contracts/interfaces/engine/IRuleEngine.sol#3 - - contracts/interfaces/engine/draft-IERC1643.sol#3 - - contracts/libraries/Errors.sol#3 - - contracts/libraries/FactoryErrors.sol#3 - - contracts/mocks/AuthorizationEngineMock.sol#3 - - contracts/mocks/DebtEngineMock.sol#3 - - contracts/mocks/DocumentEngineMock.sol#3 - - contracts/mocks/MinimalForwarderMock.sol#3 - - contracts/mocks/RuleEngine/CodeList.sol#3 - - contracts/mocks/RuleEngine/RuleEngineMock.sol#3 - - contracts/mocks/RuleEngine/RuleMock.sol#3 - - contracts/mocks/RuleEngine/interfaces/IRule.sol#3 - - contracts/mocks/RuleEngine/interfaces/IRuleEngineMock.sol#3 - - contracts/modules/CMTAT_BASE.sol#3 - - contracts/modules/internal/ERC20SnapshotModuleInternal.sol#3 - - contracts/modules/internal/EnforcementModuleInternal.sol#3 - - contracts/modules/internal/ValidationModuleInternal.sol#3 - - contracts/modules/internal/base/SnapshotModuleBase.sol#3 - - contracts/modules/security/AuthorizationModule.sol#3 - - contracts/modules/wrapper/controllers/ValidationModule.sol#3 - - contracts/modules/wrapper/core/BaseModule.sol#3 - - contracts/modules/wrapper/core/ERC20BaseModule.sol#3 - - contracts/modules/wrapper/core/ERC20BurnModule.sol#3 - - contracts/modules/wrapper/core/ERC20MintModule.sol#3 - - contracts/modules/wrapper/core/EnforcementModule.sol#3 - - contracts/modules/wrapper/core/PauseModule.sol#3 - - contracts/modules/wrapper/extensions/DebtModule.sol#3 - - contracts/modules/wrapper/extensions/DocumentModule.sol#3 - - contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#3 - - contracts/modules/wrapper/extensions/MetaTxModule.sol#3 - - contracts/test/proxy/CMTAT_PROXY_TEST.sol#3 - - contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol#3 - -## naming-convention - -> It is not really necessary to rename all the variables. It will generate a lot of work for a minor improvement. - -Impact: Informational -Confidence: High - - [ ] ID-27 -Contract [CMTAT_PROXY_UUPS](contracts/CMTAT_PROXY_UUPS.sol#L11-L54) is not in CapWords - -contracts/CMTAT_PROXY_UUPS.sol#L11-L54 - - - - [ ] ID-28 -Enum [IERC1404EnumCode.REJECTED_CODE_BASE](contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14) is not in CapWords - -contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14 - - - - [ ] ID-29 -Constant [EnforcementModuleInternal.EnforcementModuleInternalStorageLocation](contracts/modules/internal/EnforcementModuleInternal.sol#L41) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/internal/EnforcementModuleInternal.sol#L41 - - - - [ ] ID-30 -Function [CMTATFactoryRoot.CMTATProxyAddress(uint256)](contracts/deployment/libraries/CMTATFactoryRoot.sol#L45-L47) is not in mixedCase - -contracts/deployment/libraries/CMTATFactoryRoot.sol#L45-L47 - - - - [ ] ID-31 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L42) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L42 - - - - [ ] ID-32 -Constant [PauseModule.PauseModuleStorageLocation](contracts/modules/wrapper/core/PauseModule.sol#L28) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/wrapper/core/PauseModule.sol#L28 - - - - [ ] ID-33 -Contract [CMTAT_UUPS_FACTORY](contracts/deployment/CMTAT_UUPS_FACTORY.sol#L15-L93) is not in CapWords - -contracts/deployment/CMTAT_UUPS_FACTORY.sol#L15-L93 - - - - [ ] ID-34 -Contract [CMTAT_PROXY](contracts/CMTAT_PROXY.sol#L11-L23) is not in CapWords - -contracts/CMTAT_PROXY.sol#L11-L23 - - - - [ ] ID-35 -Function [PauseModule.__PauseModule_init_unchained()](contracts/modules/wrapper/core/PauseModule.sol#L34-L36) is not in mixedCase - -contracts/modules/wrapper/core/PauseModule.sol#L34-L36 - - - - [ ] ID-36 -Function [BaseModule.__Base_init_unchained(string,string,string)](contracts/modules/wrapper/core/BaseModule.sol#L40-L49) is not in mixedCase - -contracts/modules/wrapper/core/BaseModule.sol#L40-L49 - - - - [ ] ID-37 -Function [EnforcementModuleInternal.__Enforcement_init_unchained()](contracts/modules/internal/EnforcementModuleInternal.sol#L53-L55) is not in mixedCase - -contracts/modules/internal/EnforcementModuleInternal.sol#L53-L55 - - - - [ ] ID-38 -Struct [CMTATFactoryInvariant.CMTAT_ARGUMENT](contracts/deployment/libraries/CMTATFactoryInvariant.sol#L13-L18) is not in CapWords - -contracts/deployment/libraries/CMTATFactoryInvariant.sol#L13-L18 - - - - [ ] ID-39 -Function [ERC20BurnModule.__ERC20BurnModule_init_unchained()](contracts/modules/wrapper/core/ERC20BurnModule.sol#L32-L34) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L32-L34 - - - - [ ] ID-40 -Function [ValidationModuleInternal.__Validation_init_unchained(IRuleEngine)](contracts/modules/internal/ValidationModuleInternal.sol#L30-L38) is not in mixedCase - -contracts/modules/internal/ValidationModuleInternal.sol#L30-L38 - - - - [ ] ID-41 -Constant [ValidationModuleInternal.ValidationModuleInternalStorageLocation](contracts/modules/internal/ValidationModuleInternal.sol#L24) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/internal/ValidationModuleInternal.sol#L24 - - - - [ ] ID-42 -Contract [CMTAT_STANDALONE](contracts/CMTAT_STANDALONE.sol#L11-L37) is not in CapWords - -contracts/CMTAT_STANDALONE.sol#L11-L37 - - - - [ ] ID-43 -Parameter [RuleEngineMock.operateOnTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L74) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L74 - - - - [ ] ID-44 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L64) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L64 - - - - [ ] ID-45 -Parameter [RuleEngineMock.operateOnTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L73) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L73 - - - - [ ] ID-46 -Parameter [RuleMock.validateTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleMock.sol#L15) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L15 - - - - [ ] ID-47 -Parameter [RuleEngineMock.operateOnTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L75) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L75 - - - - [ ] ID-48 -Parameter [RuleMock.canReturnTransferRestrictionCode(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleMock.sol#L36) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L36 - - - - [ ] ID-49 -Function [DebtModule.__DebtModule_init_unchained(IDebtEngine)](contracts/modules/wrapper/extensions/DebtModule.sol#L41-L50) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule.sol#L41-L50 - - - - [ ] ID-50 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L63) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L63 - - - - [ ] ID-51 -Function [DocumentModule.__DocumentModule_init_unchained(IERC1643)](contracts/modules/wrapper/extensions/DocumentModule.sol#L41-L48) is not in mixedCase - -contracts/modules/wrapper/extensions/DocumentModule.sol#L41-L48 - - - - [ ] ID-52 -Parameter [DocumentModule.getDocument(bytes32)._name](contracts/modules/wrapper/extensions/DocumentModule.sol#L74) is not in mixedCase - -contracts/modules/wrapper/extensions/DocumentModule.sol#L74 - - - - [ ] ID-53 -Constant [SnapshotModuleBase.SnapshotModuleBaseStorageLocation](contracts/modules/internal/base/SnapshotModuleBase.sol#L45) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/internal/base/SnapshotModuleBase.sol#L45 - - - - [ ] ID-54 -Function [AuthorizationModule.__AuthorizationModule_init_unchained(address,IAuthorizationEngine)](contracts/modules/security/AuthorizationModule.sol#L30-L41) is not in mixedCase - -contracts/modules/security/AuthorizationModule.sol#L30-L41 - - - - [ ] ID-55 -Function [CMTAT_BASE.__CMTAT_init(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine)](contracts/modules/CMTAT_BASE.sol#L77-L129) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L77-L129 - - - - [ ] ID-56 -Constant [ERC20BaseModule.ERC20BaseModuleStorageLocation](contracts/modules/wrapper/core/ERC20BaseModule.sol#L26) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L26 - - - - [ ] ID-57 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L62) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L62 - - - - [ ] ID-58 -Parameter [RuleMock.validateTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleMock.sol#L16) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L16 - - - - [ ] ID-59 -Parameter [CMTAT_PROXY_UUPS.initialize(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/CMTAT_PROXY_UUPS.sol#L39) is not in mixedCase - -contracts/CMTAT_PROXY_UUPS.sol#L39 - - - - [ ] ID-60 -Parameter [CMTAT_BASE.initialize(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L61) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L61 - - - - [ ] ID-61 -Function [CMTAT_BASE.__CMTAT_init_unchained()](contracts/modules/CMTAT_BASE.sol#L131-L133) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L131-L133 - - - - [ ] ID-62 -Constant [DocumentModule.DocumentModuleStorageLocation](contracts/modules/wrapper/extensions/DocumentModule.sol#L27) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/wrapper/extensions/DocumentModule.sol#L27 - - - - [ ] ID-63 -Parameter [RuleMock.detectTransferRestriction(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleMock.sol#L27) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L27 - - - - [ ] ID-64 -Function [ERC20BaseModule.__ERC20BaseModule_init_unchained(uint8)](contracts/modules/wrapper/core/ERC20BaseModule.sol#L39-L44) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L39-L44 - - - - [ ] ID-65 -Parameter [RuleMock.messageForTransferRestriction(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleMock.sol#L42) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L42 - - - - [ ] ID-66 -Constant [AuthorizationModule.AuthorizationModuleStorageLocation](contracts/modules/security/AuthorizationModule.sol#L17) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/security/AuthorizationModule.sol#L17 - - - - [ ] ID-67 -Function [ERC20MintModule.__ERC20MintModule_init_unchained()](contracts/modules/wrapper/core/ERC20MintModule.sol#L27-L29) is not in mixedCase - -contracts/modules/wrapper/core/ERC20MintModule.sol#L27-L29 - - - - [ ] ID-68 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L41) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L41 - - - - [ ] ID-69 -Constant [BaseModule.BaseModuleStorageLocation](contracts/modules/wrapper/core/BaseModule.sol#L25) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/wrapper/core/BaseModule.sol#L25 - - - - [ ] ID-70 -Function [SnapshotModuleBase.__SnapshotModuleBase_init_unchained()](contracts/modules/internal/base/SnapshotModuleBase.sol#L70-L73) is not in mixedCase - -contracts/modules/internal/base/SnapshotModuleBase.sol#L70-L73 - - - - [ ] ID-71 -Contract [CMTAT_BEACON_FACTORY](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L15-L110) is not in CapWords - -contracts/deployment/CMTAT_BEACON_FACTORY.sol#L15-L110 - - - - [ ] ID-72 -Parameter [CMTAT_BASE.__CMTAT_init(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L79) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L79 - - - - [ ] ID-73 -Contract [CMTAT_BASE](contracts/modules/CMTAT_BASE.sol#L29-L240) is not in CapWords - -contracts/modules/CMTAT_BASE.sol#L29-L240 - - - - [ ] ID-74 -Parameter [RuleEngineMock.messageForTransferRestriction(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleEngineMock.sol#L84) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L84 - - - - [ ] ID-75 -Function [ValidationModule.__ValidationModule_init_unchained()](contracts/modules/wrapper/controllers/ValidationModule.sol#L28-L30) is not in mixedCase - -contracts/modules/wrapper/controllers/ValidationModule.sol#L28-L30 - - - - [ ] ID-76 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L40) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L40 - - - - [ ] ID-77 -Constant [DebtModule.DebtModuleStorageLocation](contracts/modules/wrapper/extensions/DebtModule.sol#L20) is not in UPPER_CASE_WITH_UNDERSCORES - -contracts/modules/wrapper/extensions/DebtModule.sol#L20 - - - - [ ] ID-78 -Function [ERC20SnapshotModule.__ERC20SnasphotModule_init_unchained()](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L22-L24) is not in mixedCase - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L22-L24 - - - - [ ] ID-79 -Function [EnforcementModule.__EnforcementModule_init_unchained()](contracts/modules/wrapper/core/EnforcementModule.sol#L27-L29) is not in mixedCase - -contracts/modules/wrapper/core/EnforcementModule.sol#L27-L29 - - - - [ ] ID-80 -Function [ERC20SnapshotModuleInternal.__ERC20Snapshot_init_unchained()](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L21-L24) is not in mixedCase - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L21-L24 - - - - [ ] ID-81 -Contract [CMTAT_TP_FACTORY](contracts/deployment/CMTAT_TP_FACTORY.sol#L15-L98) is not in CapWords - -contracts/deployment/CMTAT_TP_FACTORY.sol#L15-L98 - - - - [ ] ID-82 -Parameter [RuleMock.validateTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleMock.sol#L14) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L14 - -## similar-names - -> Acknowledge - -Impact: Informational -Confidence: Medium - - - [ ] ID-83 -Variable [IERC1643Whole.setDocument(bytes32,string,bytes32)._documentHash](contracts/mocks/DocumentEngineMock.sol#L8) is too similar to [DocumentEngineMock.setDocument(bytes32,string,bytes32).documentHash_](contracts/mocks/DocumentEngineMock.sol#L55) - -contracts/mocks/DocumentEngineMock.sol#L8 - - - - [ ] ID-84 -Variable [CMTAT_BEACON_FACTORY._getBytecode(CMTATFactoryInvariant.CMTAT_ARGUMENT)._implementation](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L100-L106) is too similar to [CMTAT_BEACON_FACTORY.constructor(address,address,address,bool).implementation_](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L22) - -contracts/deployment/CMTAT_BEACON_FACTORY.sol#L100-L106 - - - - [ ] ID-85 -Variable [DebtEngineMock._creditEvents](contracts/mocks/DebtEngineMock.sol#L15) is too similar to [DebtEngineMock.setCreditEvents(IDebtGlobal.CreditEvents).creditEvents_](contracts/mocks/DebtEngineMock.sol#L29) - -contracts/mocks/DebtEngineMock.sol#L15 - -## too-many-digits - -> Don't understand - -Impact: Informational -Confidence: Medium - - [ ] ID-86 - [CMTAT_TP_FACTORY._getBytecode(address,CMTATFactoryInvariant.CMTAT_ARGUMENT)](contracts/deployment/CMTAT_TP_FACTORY.sol#L85-L96) uses literals with too many digits: - - [bytecode = abi.encodePacked(type()(TransparentUpgradeableProxy).creationCode,abi.encode(logic,proxyAdminOwner,implementation))](contracts/deployment/CMTAT_TP_FACTORY.sol#L95) - -contracts/deployment/CMTAT_TP_FACTORY.sol#L85-L96 - - - - [ ] ID-87 - [CMTAT_BEACON_FACTORY._getBytecode(CMTATFactoryInvariant.CMTAT_ARGUMENT)](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L97-L108) uses literals with too many digits: - - [bytecode = abi.encodePacked(type()(BeaconProxy).creationCode,abi.encode(address(beacon),_implementation))](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L107) - -contracts/deployment/CMTAT_BEACON_FACTORY.sol#L97-L108 - diff --git a/doc/audits/tools/slither/v2.3.1-slither-report.md b/doc/audits/tools/slither/v2.3.1-slither-report.md deleted file mode 100644 index 0f8177f3..00000000 --- a/doc/audits/tools/slither/v2.3.1-slither-report.md +++ /dev/null @@ -1,843 +0,0 @@ -# Slither report - -This report was generated with [Slither](https://github.com/crytic/slither) - -**THIS CHECKLIST IS NOT COMPLETE**. Use `--show-ignored-findings` to show all the results. -Summary - - - [uninitialized-local](#uninitialized-local) (1 results) (Medium) - - [calls-loop](#calls-loop) (4 results) (Low) - - [timestamp](#timestamp) (6 results) (Low) - - [costly-loop](#costly-loop) (2 results) (Informational) - - [dead-code](#dead-code) (16 results) (Informational) - - [solc-version](#solc-version) (29 results) (Informational) - - [naming-convention](#naming-convention) (65 results) (Informational) -## uninitialized-local - -> The concerned variable local `mostRecent` is initialized in the loop - -Impact: Medium -Confidence: Medium - - - [ ] ID-0 - [ERC20SnapshotModuleInternal._findScheduledMostRecentPastSnapshot().mostRecent](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L476) is a local variable never initialized - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L476 - - - -## calls-loop - -> Remark: -> -> - The RuleEngine is a trusted contract deployed by the issuer. -> -> It is not a problem to perform external call to this contract -> -> - When a ruleEngine is created, the issuer has indeed to keep in mind to limit the number of rules. - - - -Impact: Low -Confidence: Medium - - [ ] ID-0 -[RuleEngineMock.messageForTransferRestriction(uint8)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L74-L88) has external calls inside a loop: [_rules[i].messageForTransferRestriction(_restrictionCode)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L80-L81) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L74-L88 - - - - [ ] ID-1 -[RuleEngineMock.messageForTransferRestriction(uint8)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L74-L88) has external calls inside a loop: [_rules[i].canReturnTransferRestrictionCode(_restrictionCode)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L79) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L74-L88 - - - - [ ] ID-2 -[ValidationModuleInternal._validateTransfer(address,address,uint256)](contracts/modules/internal/ValidationModuleInternal.sol#L47-L53) has external calls inside a loop: [ruleEngine.validateTransfer(from,to,amount)](contracts/modules/internal/ValidationModuleInternal.sol#L52) - -contracts/modules/internal/ValidationModuleInternal.sol#L47-L53 - - - - [ ] ID-3 -[RuleEngineMock.detectTransferRestriction(address,address,uint256)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L40-L60) has external calls inside a loop: [restriction = _rules[i].detectTransferRestriction(_from,_to,_amount)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L47-L51) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L40-L60 - - - -## timestamp - -> Remark: -> -> With the Proof of Work, it was possible for a miner to modify the timestamp in a range of about 15 seconds -> -> With the Proof Of Stake, a new block is created every 12 seconds -> -> In all cases, we are not looking for such precision - -Impact: Low -Confidence: Medium - - - [ ] ID-4 - [ERC20SnapshotModuleInternal._rescheduleSnapshot(uint256,uint256)](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L153-L194) uses timestamp for comparisons - Dangerous comparisons: - - [oldTime <= block.timestamp](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L155) - - [newTime <= block.timestamp](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L158) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L153-L194 - - - - [ ] ID-5 - [ERC20SnapshotModuleInternal._unscheduleSnapshotNotOptimized(uint256)](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L221-L236) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L222) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L221-L236 - - - - [ ] ID-6 - [ERC20SnapshotModuleInternal._unscheduleLastSnapshot(uint256)](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L199-L213) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L201) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L199-L213 - - - - [ ] ID-7 - [ERC20SnapshotModuleInternal._scheduleSnapshot(uint256)](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L89-L115) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L91) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L89-L115 - - - - [ ] ID-8 - [ERC20SnapshotModuleInternal._scheduleSnapshotNotOptimized(uint256)](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L120-L148) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L121) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L120-L148 - - - - [ ] ID-9 - [ERC20SnapshotModuleInternal._findScheduledMostRecentPastSnapshot()](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L464-L494) uses timestamp for comparisons - Dangerous comparisons: - - [_scheduledSnapshots[i] <= block.timestamp](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L482) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L464-L494 - -## costly-loop - -> Inside the function, these two operations are not performed inside a loop. -> -> It seems that the only loops which calls`setCurrentSnapshot`are inside the batch functions(mintBatch, burnBatch, ...) through a call to the function update. -> At the moment, There is no trivial solution to resolve this. - -Impact: Informational -Confidence: Medium - - - [ ] ID-10 - [ERC20SnapshotModuleInternal._setCurrentSnapshot()](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L410-L419) has costly operations inside a loop: - - [_currentSnapshotTime = scheduleSnapshotTime](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L416) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L410-L419 - - - - [ ] ID-11 - [ERC20SnapshotModuleInternal._setCurrentSnapshot()](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L410-L419) has costly operations inside a loop: - - [_currentSnapshotIndex = scheduleSnapshotIndex](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L417) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L410-L419 - -## dead-code - -> Remark: -> -> function init: -> -> We have theses dead codes because we follow the same architecture and -> principle as OpenZeppelin, -> -> For example: [https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/eb67bf72abb459f9f22fd2a67e8eb87781486042/contracts/access/AccessControlUpgradeable.sol#L82](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/eb67bf72abb459f9f22fd2a67e8eb87781486042/contracts/access/AccessControlUpgradeable.sol#L82) -> -> ID-16- msgData: -> -> - Implemented to be gasless compatible (see MetaTxModule) -> -> - If we remove this function, we will have the following error: -> -> "Derived contract must override function "_msgData". Two or more base classes define function with same name and parameter types." - -Impact: Informational -Confidence: Medium - - - [ ] ID-12 -[MetaTxModule._msgData()](contracts/modules/wrapper/extensions/MetaTxModule.sol#L33-L41) is never used and should be removed - -contracts/modules/wrapper/extensions/MetaTxModule.sol#L33-L41 - - - - [ ] ID-13 -[PauseModule.__PauseModule_init(address,uint48)](contracts/modules/wrapper/core/PauseModule.sol#L25-L40) is never used and should be removed - -contracts/modules/wrapper/core/PauseModule.sol#L25-L40 - - - - [ ] ID-14 -[ValidationModule.__ValidationModule_init(IEIP1404Wrapper,address,uint48)](contracts/modules/wrapper/controller/ValidationModule.sol#L27-L54) is never used and should be removed - -contracts/modules/wrapper/controller/ValidationModule.sol#L27-L54 - - - - [ ] ID-15 -[ERC20MintModule.__ERC20MintModule_init(string,string,address,uint48)](contracts/modules/wrapper/core/ERC20MintModule.sol#L16-L36) is never used and should be removed - -contracts/modules/wrapper/core/ERC20MintModule.sol#L16-L36 - - - - [ ] ID-16 -[CMTAT_BASE._msgData()](contracts/modules/CMTAT_BASE.sol#L216-L223) is never used and should be removed - -contracts/modules/CMTAT_BASE.sol#L216-L223 - - - - [ ] ID-17 -[DebtBaseModule.__DebtBaseModule_init(address,uint48)](contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L58-L75) is never used and should be removed - -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L58-L75 - - - - [ ] ID-18 -[ERC20BaseModule.__ERC20Module_init(string,string,uint8)](contracts/modules/wrapper/core/ERC20BaseModule.sol#L27-L38) is never used and should be removed - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L27-L38 - - - - [ ] ID-19 -[CreditEventsModule.__CreditEvents_init(address,uint48)](contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L25-L42) is never used and should be removed - -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L25-L42 - - - - [ ] ID-20 -[ERC20BurnModule.__ERC20BurnModule_init(string,string,address,uint48)](contracts/modules/wrapper/core/ERC20BurnModule.sol#L15-L35) is never used and should be removed - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L15-L35 - - - - [ ] ID-21 -[ValidationModuleInternal.__Validation_init(IEIP1404Wrapper)](contracts/modules/internal/ValidationModuleInternal.sol#L28-L33) is never used and should be removed - -contracts/modules/internal/ValidationModuleInternal.sol#L28-L33 - - - - [ ] ID-22 -[EnforcementModuleInternal.__Enforcement_init()](contracts/modules/internal/EnforcementModuleInternal.sol#L43-L46) is never used and should be removed - -contracts/modules/internal/EnforcementModuleInternal.sol#L43-L46 - - - - [ ] ID-23 -[ERC20SnapshotModule.__ERC20SnasphotModule_init(string,string,address,uint48)](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L19-L43) is never used and should be removed - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L19-L43 - - - - [ ] ID-24 -[BaseModule.__Base_init(string,string,string,uint256,address,uint48)](contracts/modules/wrapper/core/BaseModule.sol#L39-L59) is never used and should be removed - -contracts/modules/wrapper/core/BaseModule.sol#L39-L59 - - - - [ ] ID-25 -[ERC20SnapshotModuleInternal.__ERC20Snapshot_init(string,string)](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L71-L78) is never used and should be removed - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L71-L78 - - - - [ ] ID-26 -[EnforcementModule.__EnforcementModule_init(address,uint48)](contracts/modules/wrapper/core/EnforcementModule.sol#L25-L42) is never used and should be removed - -contracts/modules/wrapper/core/EnforcementModule.sol#L25-L42 - - - - [ ] ID-27 -[AuthorizationModule.__AuthorizationModule_init(address,uint48)](contracts/modules/security/AuthorizationModule.sol#L29-L42) is never used and should be removed - -contracts/modules/security/AuthorizationModule.sol#L29-L42 - -## solc-version - -> Remark: -> -> The use of the version 0.8.20 is a requirement to update the OpenZeppelin library to the version 5.0.0 - -Impact: Informational -Confidence: High - - [ ] ID-28 -Pragma version[^0.8.20](contracts/modules/internal/ValidationModuleInternal.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/internal/ValidationModuleInternal.sol#L3 - - - - [ ] ID-29 -Pragma version[^0.8.20](contracts/modules/wrapper/core/ERC20BurnModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L3 - - - - [ ] ID-30 -Pragma version[^0.8.20](contracts/CMTAT_PROXY.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/CMTAT_PROXY.sol#L3 - - - - [ ] ID-31 -Pragma version[^0.8.20](contracts/modules/CMTAT_BASE.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/CMTAT_BASE.sol#L3 - - - - [ ] ID-32 -Pragma version[^0.8.20](contracts/libraries/Errors.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/libraries/Errors.sol#L3 - - - - [ ] ID-33 -Pragma version[^0.8.20](contracts/mocks/MinimalForwarderMock.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/mocks/MinimalForwarderMock.sol#L3 - - - - [ ] ID-34 -Pragma version[^0.8.20](contracts/modules/security/AuthorizationModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/security/AuthorizationModule.sol#L3 - - - - [ ] ID-35 -Pragma version[^0.8.20](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L3 - - - - [ ] ID-36 -solc-0.8.20 is not recommended for deployment - - - [ ] ID-37 -Pragma version[^0.8.0](contracts/mocks/RuleEngine/interfaces/IRuleEngine.sol#L3) allows old versions - -contracts/mocks/RuleEngine/interfaces/IRuleEngine.sol#L3 - - - - [ ] ID-38 -Pragma version[^0.8.0](contracts/interfaces/IEIP1404/IEIP1404.sol#L3) allows old versions - -contracts/interfaces/IEIP1404/IEIP1404.sol#L3 - - - - [ ] ID-39 -Pragma version[^0.8.0](contracts/mocks/RuleEngine/interfaces/IRule.sol#L3) allows old versions - -contracts/mocks/RuleEngine/interfaces/IRule.sol#L3 - - - - [ ] ID-40 -Pragma version[^0.8.20](contracts/modules/internal/EnforcementModuleInternal.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/internal/EnforcementModuleInternal.sol#L3 - - - - [ ] ID-41 -Pragma version[^0.8.20](contracts/modules/wrapper/core/BaseModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/core/BaseModule.sol#L3 - - - - [ ] ID-42 -Pragma version[^0.8.20](contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L3 - - - - [ ] ID-43 -Pragma version[^0.8.0](contracts/interfaces/IDebtGlobal.sol#L3) allows old versions - -contracts/interfaces/IDebtGlobal.sol#L3 - - - - [ ] ID-44 -Pragma version[^0.8.20](contracts/mocks/RuleEngine/RuleMock.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/mocks/RuleEngine/RuleMock.sol#L3 - - - - [ ] ID-45 -Pragma version[^0.8.20](contracts/modules/wrapper/core/ERC20MintModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/core/ERC20MintModule.sol#L3 - - - - [ ] ID-46 -Pragma version[^0.8.20](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L3 - - - - [ ] ID-47 -Pragma version[^0.8.20](contracts/modules/wrapper/controller/ValidationModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/controller/ValidationModule.sol#L3 - - - - [ ] ID-48 -Pragma version[^0.8.20](contracts/mocks/RuleEngine/CodeList.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/mocks/RuleEngine/CodeList.sol#L3 - - - - [ ] ID-49 -Pragma version[^0.8.0](contracts/interfaces/IEIP1404/IEIP1404Wrapper.sol#L3) allows old versions - -contracts/interfaces/IEIP1404/IEIP1404Wrapper.sol#L3 - - - - [ ] ID-50 -Pragma version[^0.8.20](contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L3 - - - - [ ] ID-51 -Pragma version[^0.8.20](contracts/modules/wrapper/core/ERC20BaseModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L3 - - - - [ ] ID-52 -Pragma version[^0.8.20](contracts/modules/wrapper/core/PauseModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/core/PauseModule.sol#L3 - - - - [ ] ID-53 -Pragma version[^0.8.20](contracts/mocks/RuleEngine/RuleEngineMock.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L3 - - - - [ ] ID-54 -Pragma version[^0.8.20](contracts/modules/wrapper/extensions/MetaTxModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/extensions/MetaTxModule.sol#L3 - - - - [ ] ID-55 -Pragma version[^0.8.20](contracts/CMTAT_STANDALONE.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/CMTAT_STANDALONE.sol#L3 - - - - [ ] ID-56 -Pragma version[^0.8.20](contracts/modules/wrapper/core/EnforcementModule.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18. - -contracts/modules/wrapper/core/EnforcementModule.sol#L3 - -## naming-convention - -> Remark: -> -> It is not really necessary to rename all the variables. It will generate a lot of work for a minor improvement. - -Impact: Informational -Confidence: High - - [ ] ID-57 -Variable [RuleEngineMock._rules](contracts/mocks/RuleEngine/RuleEngineMock.sol#L14) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L14 - - - - [ ] ID-58 -Function [ERC20BurnModule.__ERC20BurnModule_init(string,string,address,uint48)](contracts/modules/wrapper/core/ERC20BurnModule.sol#L15-L35) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L15-L35 - - - - [ ] ID-59 -Variable [CreditEventsModule.__gap](contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L99) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L99 - - - - [ ] ID-60 -Function [EnforcementModuleInternal.__Enforcement_init()](contracts/modules/internal/EnforcementModuleInternal.sol#L43-L46) is not in mixedCase - -contracts/modules/internal/EnforcementModuleInternal.sol#L43-L46 - - - - [ ] ID-61 -Function [AuthorizationModule.__AuthorizationModule_init(address,uint48)](contracts/modules/security/AuthorizationModule.sol#L29-L42) is not in mixedCase - -contracts/modules/security/AuthorizationModule.sol#L29-L42 - - - - [ ] ID-62 -Function [BaseModule.__Base_init(string,string,string,uint256,address,uint48)](contracts/modules/wrapper/core/BaseModule.sol#L39-L59) is not in mixedCase - -contracts/modules/wrapper/core/BaseModule.sol#L39-L59 - - - - [ ] ID-63 -Enum [IEIP1404Wrapper.REJECTED_CODE_BASE](contracts/interfaces/IEIP1404/IEIP1404Wrapper.sol#L11-L16) is not in CapWords - -contracts/interfaces/IEIP1404/IEIP1404Wrapper.sol#L11-L16 - - - - [ ] ID-64 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L43) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L43 - - - - [ ] ID-65 -Function [ValidationModuleInternal.__Validation_init(IEIP1404Wrapper)](contracts/modules/internal/ValidationModuleInternal.sol#L28-L33) is not in mixedCase - -contracts/modules/internal/ValidationModuleInternal.sol#L28-L33 - - - - [ ] ID-66 -Function [DebtBaseModule.__DebtBaseModule_init(address,uint48)](contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L58-L75) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L58-L75 - - - - [ ] ID-67 -Contract [CMTAT_PROXY](contracts/CMTAT_PROXY.sol#L7-L21) is not in CapWords - -contracts/CMTAT_PROXY.sol#L7-L21 - - - - [ ] ID-68 -Function [ERC20SnapshotModuleInternal.__ERC20Snapshot_init(string,string)](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L71-L78) is not in mixedCase - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L71-L78 - - - - [ ] ID-69 -Function [PauseModule.__PauseModule_init_unchained()](contracts/modules/wrapper/core/PauseModule.sol#L42-L44) is not in mixedCase - -contracts/modules/wrapper/core/PauseModule.sol#L42-L44 - - - - [ ] ID-70 -Function [CreditEventsModule.__CreditEvents_init_unchained()](contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L44-L46) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L44-L46 - - - - [ ] ID-71 -Variable [CMTAT_BASE.__gap](contracts/modules/CMTAT_BASE.sol#L225) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L225 - - - - [ ] ID-72 -Function [EnforcementModuleInternal.__Enforcement_init_unchained()](contracts/modules/internal/EnforcementModuleInternal.sol#L48-L50) is not in mixedCase - -contracts/modules/internal/EnforcementModuleInternal.sol#L48-L50 - - - - [ ] ID-73 -Variable [ValidationModuleInternal.__gap](contracts/modules/internal/ValidationModuleInternal.sol#L75) is not in mixedCase - -contracts/modules/internal/ValidationModuleInternal.sol#L75 - - - - [ ] ID-74 -Function [ERC20BurnModule.__ERC20BurnModule_init_unchained()](contracts/modules/wrapper/core/ERC20BurnModule.sol#L37-L39) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L37-L39 - - - - [ ] ID-75 -Function [CreditEventsModule.__CreditEvents_init(address,uint48)](contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L25-L42) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L25-L42 - - - - [ ] ID-76 -Variable [BaseModule.__gap](contracts/modules/wrapper/core/BaseModule.sol#L115) is not in mixedCase - -contracts/modules/wrapper/core/BaseModule.sol#L115 - - - - [ ] ID-77 -Variable [ValidationModule.__gap](contracts/modules/wrapper/controller/ValidationModule.sol#L144) is not in mixedCase - -contracts/modules/wrapper/controller/ValidationModule.sol#L144 - - - - [ ] ID-78 -Function [ValidationModule.__ValidationModule_init(IEIP1404Wrapper,address,uint48)](contracts/modules/wrapper/controller/ValidationModule.sol#L27-L54) is not in mixedCase - -contracts/modules/wrapper/controller/ValidationModule.sol#L27-L54 - - - - [ ] ID-79 -Variable [EnforcementModule.__gap](contracts/modules/wrapper/core/EnforcementModule.sol#L74) is not in mixedCase - -contracts/modules/wrapper/core/EnforcementModule.sol#L74 - - - - [ ] ID-80 -Contract [CMTAT_STANDALONE](contracts/CMTAT_STANDALONE.sol#L7-L52) is not in CapWords - -contracts/CMTAT_STANDALONE.sol#L7-L52 - - - - [ ] ID-81 -Variable [DebtBaseModule.__gap](contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L265) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L265 - - - - [ ] ID-82 -Function [PauseModule.__PauseModule_init(address,uint48)](contracts/modules/wrapper/core/PauseModule.sol#L25-L40) is not in mixedCase - -contracts/modules/wrapper/core/PauseModule.sol#L25-L40 - - - - [ ] ID-83 -Function [EnforcementModule.__EnforcementModule_init(address,uint48)](contracts/modules/wrapper/core/EnforcementModule.sol#L25-L42) is not in mixedCase - -contracts/modules/wrapper/core/EnforcementModule.sol#L25-L42 - - - - [ ] ID-84 -Variable [AuthorizationModule.__gap](contracts/modules/security/AuthorizationModule.sol#L80) is not in mixedCase - -contracts/modules/security/AuthorizationModule.sol#L80 - - - - [ ] ID-85 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L65) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L65 - - - - [ ] ID-86 -Parameter [RuleMock.validateTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleMock.sol#L14) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L14 - - - - [ ] ID-87 -Function [ERC20BaseModule.__ERC20Module_init_unchained(uint8)](contracts/modules/wrapper/core/ERC20BaseModule.sol#L40-L44) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L40-L44 - - - - [ ] ID-88 -Variable [EnforcementModuleInternal.__gap](contracts/modules/internal/EnforcementModuleInternal.sol#L91) is not in mixedCase - -contracts/modules/internal/EnforcementModuleInternal.sol#L91 - - - - [ ] ID-89 -Parameter [RuleMock.canReturnTransferRestrictionCode(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleMock.sol#L35) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L35 - - - - [ ] ID-90 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L64) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L64 - - - - [ ] ID-91 -Function [BaseModule.__Base_init_unchained(string,string,string,uint256)](contracts/modules/wrapper/core/BaseModule.sol#L61-L71) is not in mixedCase - -contracts/modules/wrapper/core/BaseModule.sol#L61-L71 - - - - [ ] ID-92 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L63) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L63 - - - - [ ] ID-93 -Parameter [RuleMock.validateTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleMock.sol#L15) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L15 - - - - [ ] ID-94 -Function [AuthorizationModule.__AuthorizationModule_init_unchained()](contracts/modules/security/AuthorizationModule.sol#L51-L53) is not in mixedCase - -contracts/modules/security/AuthorizationModule.sol#L51-L53 - - - - [ ] ID-95 -Variable [PauseModule.__gap](contracts/modules/wrapper/core/PauseModule.sol#L100) is not in mixedCase - -contracts/modules/wrapper/core/PauseModule.sol#L100 - - - - [ ] ID-96 -Function [CMTAT_BASE.__CMTAT_init_unchained()](contracts/modules/CMTAT_BASE.sol#L147-L149) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L147-L149 - - - - [ ] ID-97 -Variable [ERC20SnapshotModule.__gap](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L103) is not in mixedCase - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L103 - - - - [ ] ID-98 -Parameter [RuleMock.detectTransferRestriction(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleMock.sol#L26) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L26 - - - - [ ] ID-99 -Parameter [RuleMock.messageForTransferRestriction(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleMock.sol#L41) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L41 - - - - [ ] ID-100 -Function [ERC20MintModule.__ERC20MintModule_init_unchained()](contracts/modules/wrapper/core/ERC20MintModule.sol#L38-L40) is not in mixedCase - -contracts/modules/wrapper/core/ERC20MintModule.sol#L38-L40 - - - - [ ] ID-101 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L42) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L42 - - - - [ ] ID-102 -Variable [MetaTxModule.__gap](contracts/modules/wrapper/extensions/MetaTxModule.sol#L43) is not in mixedCase - -contracts/modules/wrapper/extensions/MetaTxModule.sol#L43 - - - - [ ] ID-103 -Function [ERC20BaseModule.__ERC20Module_init(string,string,uint8)](contracts/modules/wrapper/core/ERC20BaseModule.sol#L27-L38) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L27-L38 - - - - [ ] ID-104 -Function [ERC20SnapshotModule.__ERC20SnasphotModule_init(string,string,address,uint48)](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L19-L43) is not in mixedCase - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L19-L43 - - - - [ ] ID-105 -Variable [ERC20BurnModule.__gap](contracts/modules/wrapper/core/ERC20BurnModule.sol#L96) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L96 - - - - [ ] ID-106 -Variable [ERC20BaseModule.__gap](contracts/modules/wrapper/core/ERC20BaseModule.sol#L138) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L138 - - - - [ ] ID-107 -Function [ERC20MintModule.__ERC20MintModule_init(string,string,address,uint48)](contracts/modules/wrapper/core/ERC20MintModule.sol#L16-L36) is not in mixedCase - -contracts/modules/wrapper/core/ERC20MintModule.sol#L16-L36 - - - - [ ] ID-108 -Contract [CMTAT_BASE](contracts/modules/CMTAT_BASE.sol#L30-L226) is not in CapWords - -contracts/modules/CMTAT_BASE.sol#L30-L226 - - - - [ ] ID-109 -Parameter [RuleEngineMock.messageForTransferRestriction(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleEngineMock.sol#L75) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L75 - - - - [ ] ID-110 -Variable [ERC20MintModule.__gap](contracts/modules/wrapper/core/ERC20MintModule.sol#L95) is not in mixedCase - -contracts/modules/wrapper/core/ERC20MintModule.sol#L95 - - - - [ ] ID-111 -Function [CMTAT_BASE.__CMTAT_init(address,uint48,string,string,uint8,string,string,IEIP1404Wrapper,string,uint256)](contracts/modules/CMTAT_BASE.sol#L88-L145) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L88-L145 - - - - [ ] ID-112 -Function [ValidationModule.__ValidationModule_init_unchained()](contracts/modules/wrapper/controller/ValidationModule.sol#L56-L58) is not in mixedCase - -contracts/modules/wrapper/controller/ValidationModule.sol#L56-L58 - - - - [ ] ID-113 -Function [DebtBaseModule.__DebtBaseModule_init_unchained()](contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L77-L79) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L77-L79 - - - - [ ] ID-114 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L41) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L41 - - - - [ ] ID-115 -Function [ERC20SnapshotModule.__ERC20SnasphotModule_init_unchained()](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L45-L47) is not in mixedCase - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L45-L47 - - - - [ ] ID-116 -Function [ValidationModuleInternal.__Validation_init_unchained(IEIP1404Wrapper)](contracts/modules/internal/ValidationModuleInternal.sol#L35-L42) is not in mixedCase - -contracts/modules/internal/ValidationModuleInternal.sol#L35-L42 - - - - [ ] ID-117 -Variable [ERC20SnapshotModuleInternal.__gap](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L496) is not in mixedCase - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L496 - - - - [ ] ID-118 -Function [EnforcementModule.__EnforcementModule_init_unchained()](contracts/modules/wrapper/core/EnforcementModule.sol#L44-L46) is not in mixedCase - -contracts/modules/wrapper/core/EnforcementModule.sol#L44-L46 - - - - [ ] ID-119 -Function [ERC20SnapshotModuleInternal.__ERC20Snapshot_init_unchained()](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L80-L83) is not in mixedCase - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L80-L83 - - - - [ ] ID-120 -Parameter [RuleMock.validateTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleMock.sol#L13) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L13 - - - - [ ] ID-121 -Variable [CMTAT_PROXY.__gap](contracts/CMTAT_PROXY.sol#L20) is not in mixedCase - -contracts/CMTAT_PROXY.sol#L20 - diff --git a/doc/audits/tools/slither/v2.4.0-slither-report.md b/doc/audits/tools/slither/v2.4.0-slither-report.md deleted file mode 100644 index 414e0e42..00000000 --- a/doc/audits/tools/slither/v2.4.0-slither-report.md +++ /dev/null @@ -1,710 +0,0 @@ -**THIS CHECKLIST IS NOT COMPLETE**. Use `--show-ignored-findings` to show all the results. -Summary - - [shadowing-state](#shadowing-state) (1 results) (High) - - [reentrancy-no-eth](#reentrancy-no-eth) (1 results) (Medium) - - [uninitialized-local](#uninitialized-local) (1 results) (Medium) - - [missing-zero-check](#missing-zero-check) (2 results) (Low) - - [calls-loop](#calls-loop) (4 results) (Low) - - [reentrancy-benign](#reentrancy-benign) (3 results) (Low) - - [reentrancy-events](#reentrancy-events) (2 results) (Low) - - [timestamp](#timestamp) (6 results) (Low) - - [costly-loop](#costly-loop) (2 results) (Informational) - - [dead-code](#dead-code) (1 results) (Informational) - - [solc-version](#solc-version) (1 results) (Informational) - - [naming-convention](#naming-convention) (57 results) (Informational) -## shadowing-state - -> Forgot to set this but only one module modifies the variable - -Impact: High -Confidence: High - - [ ] ID-0 - [ERC20SnapshotModuleInternal._scheduledSnapshots](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L25) shadows: - - [SnapshotModuleBase._scheduledSnapshots](contracts/modules/internal/base/SnapshotModuleBase.sol#L62) - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L25 - - -## reentrancy-no-eth -Impact: Medium -Confidence: Medium - - [ ] ID-1 - Reentrancy in [CMTAT_BASE.burnAndMint(address,address,uint256,uint256,string)](contracts/modules/CMTAT_BASE.sol#L189-L192): - External calls: - - [burn(from,amountToBurn,reason)](contracts/modules/CMTAT_BASE.sol#L190) - - [ruleEngine.operateOnTransfer(from,to,amount)](contracts/modules/internal/ValidationModuleInternal.sol#L65) - - [mint(to,amountToMint)](contracts/modules/CMTAT_BASE.sol#L191) - - [ruleEngine.operateOnTransfer(from,to,amount)](contracts/modules/internal/ValidationModuleInternal.sol#L65) - State variables written after the call(s): - - [mint(to,amountToMint)](contracts/modules/CMTAT_BASE.sol#L191) - - [_currentSnapshotIndex = scheduleSnapshotIndex](contracts/modules/internal/base/SnapshotModuleBase.sol#L328) - [SnapshotModuleBase._currentSnapshotIndex](contracts/modules/internal/base/SnapshotModuleBase.sol#L55) can be used in cross function reentrancies: - - [SnapshotModuleBase._findScheduledMostRecentPastSnapshot()](contracts/modules/internal/base/SnapshotModuleBase.sol#L375-L402) - - [SnapshotModuleBase._setCurrentSnapshot()](contracts/modules/internal/base/SnapshotModuleBase.sol#L321-L330) - - [mint(to,amountToMint)](contracts/modules/CMTAT_BASE.sol#L191) - - [_currentSnapshotTime = scheduleSnapshotTime](contracts/modules/internal/base/SnapshotModuleBase.sol#L327) - [SnapshotModuleBase._currentSnapshotTime](contracts/modules/internal/base/SnapshotModuleBase.sol#L53) can be used in cross function reentrancies: - - [SnapshotModuleBase._setCurrentSnapshot()](contracts/modules/internal/base/SnapshotModuleBase.sol#L321-L330) - - [SnapshotModuleBase._updateSnapshot(SnapshotModuleBase.Snapshots,uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L305-L314) - - [SnapshotModuleBase.getNextSnapshots()](contracts/modules/internal/base/SnapshotModuleBase.sol#L82-L111) - -contracts/modules/CMTAT_BASE.sol#L189-L192 - -## uninitialized-local - -> The concerned variable local `mostRecent` is initialized in the loop - -Impact: Medium -Confidence: Medium - - - [ ] ID-2 -[SnapshotModuleBase._findScheduledMostRecentPastSnapshot().mostRecent](contracts/modules/internal/base/SnapshotModuleBase.sol#L389) is a local variable never initialized - -contracts/modules/internal/base/SnapshotModuleBase.sol#L389 - -## missing-zero-check - -> Mock: not intended to be used in production - -Impact: Low -Confidence: Medium - - - - [ ] ID-4 - [AuthorizationEngineMock.authorizeAdminChange(address).newAdmin](contracts/mocks/AuthorizationEngineMock.sol#L21) lacks a zero-check on : - - [nextAdmin = newAdmin](contracts/mocks/AuthorizationEngineMock.sol#L22) - -contracts/mocks/AuthorizationEngineMock.sol#L21 - -## calls-loop - ->Mock: not intended to be used in production ->ValidationModuleInternal: the loop happens only for batch function. A relevant alternative could be the creation of a batch function for the RuleEngine, but for the moment we don't have an implemented solution. - -Impact: Low -Confidence: Medium - - - [ ] ID-5 -[RuleEngineMock.messageForTransferRestriction(uint8)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97) has external calls inside a loop: [_rules[i].canReturnTransferRestrictionCode(_restrictionCode)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L88) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97 - - - - [ ] ID-6 -[RuleEngineMock.messageForTransferRestriction(uint8)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97) has external calls inside a loop: [_rules[i].messageForTransferRestriction(_restrictionCode)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L89-L90) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L83-L97 - - - - [ ] ID-7 -[ValidationModuleInternal._operateOnTransfer(address,address,uint256)](contracts/modules/internal/ValidationModuleInternal.sol#L64-L66) has external calls inside a loop: [ruleEngine.operateOnTransfer(from,to,amount)](contracts/modules/internal/ValidationModuleInternal.sol#L65) - -contracts/modules/internal/ValidationModuleInternal.sol#L64-L66 - - - - [ ] ID-8 -[RuleEngineMock.detectTransferRestriction(address,address,uint256)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L39-L59) has external calls inside a loop: [restriction = _rules[i].detectTransferRestriction(_from,_to,_amount)](contracts/mocks/RuleEngine/RuleEngineMock.sol#L46-L50) - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L39-L59 - -## reentrancy-benign - -> Factory contract : It is not a security issue since only authorized user can call the function -> CMTAT_BASE._update: the contract called is a trusted contract (RuleEngine) - -Impact: Low -Confidence: Medium - - [ ] ID-9 - Reentrancy in [CMTAT_BEACON_FACTORY.deployCMTAT(address,IAuthorizationEngine,string,string,uint8,string,string,IRuleEngine,string,uint256)](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L41-L75): - External calls: - - [cmtat = new BeaconProxy(address(beacon),abi.encodeWithSelector(CMTAT_PROXY(address(0)).initialize.selector,admin,authorizationEngineIrrevocable,nameIrrevocable,symbolIrrevocable,decimalsIrrevocable,tokenId_,terms_,ruleEngine_,information_,flag_))](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L54-L69) - State variables written after the call(s): - - [cmtatCounterId ++](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L72) - - [cmtats[cmtatCounterId] = address(cmtat)](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L70) - - [cmtatsList.push(address(cmtat))](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L73) - -contracts/deployment/CMTAT_BEACON_FACTORY.sol#L41-L75 - - - - [ ] ID-10 - Reentrancy in [CMTAT_TP_FACTORY.deployCMTAT(address,address,IAuthorizationEngine,string,string,uint8,string,string,IRuleEngine,string,uint256)](contracts/deployment/CMTAT_TP_FACTORY.sol#L32-L68): - External calls: - - [cmtat = new TransparentUpgradeableProxy(logic,proxyAdminOwner,abi.encodeWithSelector(CMTAT_PROXY(address(0)).initialize.selector,admin,authorizationEngineIrrevocable,nameIrrevocable,symbolIrrevocable,decimalsIrrevocable,tokenId_,terms_,ruleEngine_,information_,flag_))](contracts/deployment/CMTAT_TP_FACTORY.sol#L46-L62) - State variables written after the call(s): - - [cmtatID ++](contracts/deployment/CMTAT_TP_FACTORY.sol#L65) - - [cmtats[cmtatID] = address(cmtat)](contracts/deployment/CMTAT_TP_FACTORY.sol#L63) - - [cmtatsList.push(address(cmtat))](contracts/deployment/CMTAT_TP_FACTORY.sol#L66) - -contracts/deployment/CMTAT_TP_FACTORY.sol#L32-L68 - - - - [ ] ID-11 - Reentrancy in [CMTAT_BASE._update(address,address,uint256)](contracts/modules/CMTAT_BASE.sol#L198-L213): - External calls: - - [! ValidationModule._operateOnTransfer(from,to,amount)](contracts/modules/CMTAT_BASE.sol#L203) - - [ruleEngine.operateOnTransfer(from,to,amount)](contracts/modules/internal/ValidationModuleInternal.sol#L65) - State variables written after the call(s): - - [ERC20SnapshotModuleInternal._snapshotUpdate(from,to)](contracts/modules/CMTAT_BASE.sol#L211) - - [_currentSnapshotIndex = scheduleSnapshotIndex](contracts/modules/internal/base/SnapshotModuleBase.sol#L328) - - [ERC20SnapshotModuleInternal._snapshotUpdate(from,to)](contracts/modules/CMTAT_BASE.sol#L211) - - [_currentSnapshotTime = scheduleSnapshotTime](contracts/modules/internal/base/SnapshotModuleBase.sol#L327) - -contracts/modules/CMTAT_BASE.sol#L198-L213 - -## reentrancy-events - -> It is not a security issue since only authorized user can call the function - -Impact: Low -Confidence: Medium - - [ ] ID-12 - Reentrancy in [CMTAT_TP_FACTORY.deployCMTAT(address,address,IAuthorizationEngine,string,string,uint8,string,string,IRuleEngine,string,uint256)](contracts/deployment/CMTAT_TP_FACTORY.sol#L32-L68): - External calls: - - [cmtat = new TransparentUpgradeableProxy(logic,proxyAdminOwner,abi.encodeWithSelector(CMTAT_PROXY(address(0)).initialize.selector,admin,authorizationEngineIrrevocable,nameIrrevocable,symbolIrrevocable,decimalsIrrevocable,tokenId_,terms_,ruleEngine_,information_,flag_))](contracts/deployment/CMTAT_TP_FACTORY.sol#L46-L62) - Event emitted after the call(s): - - [CMTAT(address(cmtat),cmtatID)](contracts/deployment/CMTAT_TP_FACTORY.sol#L64) - -contracts/deployment/CMTAT_TP_FACTORY.sol#L32-L68 - - - - [ ] ID-13 - Reentrancy in [CMTAT_BEACON_FACTORY.deployCMTAT(address,IAuthorizationEngine,string,string,uint8,string,string,IRuleEngine,string,uint256)](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L41-L75): - External calls: - - [cmtat = new BeaconProxy(address(beacon),abi.encodeWithSelector(CMTAT_PROXY(address(0)).initialize.selector,admin,authorizationEngineIrrevocable,nameIrrevocable,symbolIrrevocable,decimalsIrrevocable,tokenId_,terms_,ruleEngine_,information_,flag_))](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L54-L69) - Event emitted after the call(s): - - [CMTAT(address(cmtat),cmtatCounterId)](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L71) - -contracts/deployment/CMTAT_BEACON_FACTORY.sol#L41-L75 - -## timestamp - -> With the Proof of Work, it was possible for a miner to modify the timestamp in a range of about 15 seconds -> -> With the Proof Of Stake, a new block is created every 12 seconds -> -> In all cases, we are not looking for such precision - -Impact: Low -Confidence: Medium - - [ ] ID-14 - [SnapshotModuleBase._scheduleSnapshotNotOptimized(uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L149-L177) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L150) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L149-L177 - - - - [ ] ID-15 - [SnapshotModuleBase._rescheduleSnapshot(uint256,uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L182-L223) uses timestamp for comparisons - Dangerous comparisons: - - [oldTime <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L184) - - [newTime <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L187) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L182-L223 - - - - [ ] ID-16 - [SnapshotModuleBase._unscheduleSnapshotNotOptimized(uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L250-L263) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L251) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L250-L263 - - - - [ ] ID-17 - [SnapshotModuleBase._scheduleSnapshot(uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L118-L144) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L120) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L118-L144 - - - - [ ] ID-18 - [SnapshotModuleBase._unscheduleLastSnapshot(uint256)](contracts/modules/internal/base/SnapshotModuleBase.sol#L228-L242) uses timestamp for comparisons - Dangerous comparisons: - - [time <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L230) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L228-L242 - - - - [ ] ID-19 - [SnapshotModuleBase._findScheduledMostRecentPastSnapshot()](contracts/modules/internal/base/SnapshotModuleBase.sol#L375-L402) uses timestamp for comparisons - Dangerous comparisons: - - [_scheduledSnapshots[i] <= block.timestamp](contracts/modules/internal/base/SnapshotModuleBase.sol#L393) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L375-L402 - -## costly-loop - -> Inside the function, these two operations are not performed inside a loop. -> -> It seems that the only loops which calls`setCurrentSnapshot`are inside the batch functions(mintBatch, burnBatch, ...) through a call to the function update. -> At the moment, there is no trivial solution to resolve this. - -Impact: Informational -Confidence: Medium - - [ ] ID-20 - [SnapshotModuleBase._setCurrentSnapshot()](contracts/modules/internal/base/SnapshotModuleBase.sol#L321-L330) has costly operations inside a loop: - - [_currentSnapshotTime = scheduleSnapshotTime](contracts/modules/internal/base/SnapshotModuleBase.sol#L327) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L321-L330 - - - - [ ] ID-21 - [SnapshotModuleBase._setCurrentSnapshot()](contracts/modules/internal/base/SnapshotModuleBase.sol#L321-L330) has costly operations inside a loop: - - [_currentSnapshotIndex = scheduleSnapshotIndex](contracts/modules/internal/base/SnapshotModuleBase.sol#L328) - -contracts/modules/internal/base/SnapshotModuleBase.sol#L321-L330 - -## dead-code - -> - Implemented to be gasless compatible (see MetaTxModule) -> -> - If we remove this function, we will have the following error: -> -> "Derived contract must override function "_msgData". Two or more base classes define function with same name and parameter types." - -Impact: Informational -Confidence: Medium - - - [ ] ID-22 -[CMTAT_BASE._msgData()](contracts/modules/CMTAT_BASE.sol#L240-L247) is never used and should be removed - -contracts/modules/CMTAT_BASE.sol#L240-L247 - -## solc-version - -> The version set in the config file is 0.8.22 - -Impact: Informational -Confidence: High - - [ ] ID-23 - Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - - VerbatimInvalidDeduplication - - FullInlinerNonExpressionSplitArgumentEvaluationOrder - - MissingSideEffectsOnSelectorAccess. - It is used by: - - node_modules/@openzeppelin/contracts/access/AccessControl.sol#4 - - node_modules/@openzeppelin/contracts/access/IAccessControl.sol#4 - - node_modules/@openzeppelin/contracts/access/Ownable.sol#4 - - node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol#4 - - node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol#4 - - node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol#3 - - node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#4 - - node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#4 - - node_modules/@openzeppelin/contracts/proxy/Proxy.sol#4 - - node_modules/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol#4 - - node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#4 - - node_modules/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol#4 - - node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol#4 - - node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#4 - - node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4 - - node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4 - - node_modules/@openzeppelin/contracts/utils/Address.sol#4 - - node_modules/@openzeppelin/contracts/utils/Arrays.sol#4 - - node_modules/@openzeppelin/contracts/utils/Context.sol#4 - - node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#5 - - node_modules/@openzeppelin/contracts/utils/Strings.sol#4 - - node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#4 - - node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#4 - - node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol#4 - - node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol#4 - - node_modules/@openzeppelin/contracts/utils/math/Math.sol#4 - - node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol#4 - - contracts/CMTAT_PROXY.sol#3 - - contracts/CMTAT_STANDALONE.sol#3 - - contracts/deployment/CMTAT_BEACON_FACTORY.sol#2 - - contracts/deployment/CMTAT_TP_FACTORY.sol#2 - - contracts/interfaces/ICCIPToken.sol#3 - - contracts/interfaces/ICMTATSnapshot.sol#3 - - contracts/interfaces/IDebtGlobal.sol#3 - - contracts/interfaces/draft-IERC1404/draft-IERC1404.sol#3 - - contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#3 - - contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol#3 - - contracts/interfaces/engine/IAuthorizationEngine.sol#3 - - contracts/interfaces/engine/IRuleEngine.sol#3 - - contracts/libraries/Errors.sol#3 - - contracts/mocks/AuthorizationEngineMock.sol#3 - - contracts/mocks/MinimalForwarderMock.sol#3 - - contracts/mocks/RuleEngine/CodeList.sol#3 - - contracts/mocks/RuleEngine/RuleEngineMock.sol#3 - - contracts/mocks/RuleEngine/RuleMock.sol#3 - - contracts/mocks/RuleEngine/interfaces/IRule.sol#3 - - contracts/mocks/RuleEngine/interfaces/IRuleEngineMock.sol#3 - - contracts/modules/CMTAT_BASE.sol#3 - - contracts/modules/internal/ERC20SnapshotModuleInternal.sol#3 - - contracts/modules/internal/EnforcementModuleInternal.sol#3 - - contracts/modules/internal/ValidationModuleInternal.sol#3 - - contracts/modules/internal/base/SnapshotModuleBase.sol#3 - - contracts/modules/security/AuthorizationModule.sol#3 - - contracts/modules/wrapper/controllers/ValidationModule.sol#3 - - contracts/modules/wrapper/core/BaseModule.sol#3 - - contracts/modules/wrapper/core/ERC20BaseModule.sol#3 - - contracts/modules/wrapper/core/ERC20BurnModule.sol#3 - - contracts/modules/wrapper/core/ERC20MintModule.sol#3 - - contracts/modules/wrapper/core/EnforcementModule.sol#3 - - contracts/modules/wrapper/core/PauseModule.sol#3 - - contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#3 - - contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#3 - - contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#3 - - contracts/modules/wrapper/extensions/MetaTxModule.sol#3 - - contracts/test/proxy/CMTAT_PROXY.sol#3 - - openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/metatx/ERC2771ContextUpgradeable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/metatx/ERC2771ForwarderUpgradeable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#3 - - openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#4 - - openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4 - -## naming-convention - -> It is not really necessary to rename all the variables. It will generate a lot of work for a minor improvement. - -Impact: Informational -Confidence: High - - - [ ] ID-24 -Enum [IERC1404EnumCode.REJECTED_CODE_BASE](contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14) is not in CapWords - -contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14 - - - - [ ] ID-25 -Variable [CreditEventsModule.__gap](contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L83) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L83 - - - - [ ] ID-26 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L42) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L42 - - - - [ ] ID-27 -Contract [CMTAT_PROXY](contracts/CMTAT_PROXY.sol#L7-L21) is not in CapWords - -contracts/CMTAT_PROXY.sol#L7-L21 - - - - [ ] ID-28 -Function [PauseModule.__PauseModule_init_unchained()](contracts/modules/wrapper/core/PauseModule.sol#L26-L28) is not in mixedCase - -contracts/modules/wrapper/core/PauseModule.sol#L26-L28 - - - - [ ] ID-29 -Function [CreditEventsModule.__CreditEvents_init_unchained()](contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L28-L30) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/CreditEventsModule.sol#L28-L30 - - - - [ ] ID-30 -Variable [CMTAT_BASE.__gap](contracts/modules/CMTAT_BASE.sol#L249) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L249 - - - - [ ] ID-31 -Function [EnforcementModuleInternal.__Enforcement_init_unchained()](contracts/modules/internal/EnforcementModuleInternal.sol#L40-L42) is not in mixedCase - -contracts/modules/internal/EnforcementModuleInternal.sol#L40-L42 - - - - [ ] ID-32 -Variable [ValidationModuleInternal.__gap](contracts/modules/internal/ValidationModuleInternal.sol#L68) is not in mixedCase - -contracts/modules/internal/ValidationModuleInternal.sol#L68 - - - - [ ] ID-33 -Function [ERC20BurnModule.__ERC20BurnModule_init_unchained()](contracts/modules/wrapper/core/ERC20BurnModule.sol#L19-L21) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L19-L21 - - - - [ ] ID-34 -Function [ValidationModuleInternal.__Validation_init_unchained(IRuleEngine)](contracts/modules/internal/ValidationModuleInternal.sol#L24-L31) is not in mixedCase - -contracts/modules/internal/ValidationModuleInternal.sol#L24-L31 - - - - [ ] ID-35 -Variable [BaseModule.__gap](contracts/modules/wrapper/core/BaseModule.sol#L94) is not in mixedCase - -contracts/modules/wrapper/core/BaseModule.sol#L94 - - - - [ ] ID-36 -Variable [ValidationModule.__gap](contracts/modules/wrapper/controllers/ValidationModule.sol#L136) is not in mixedCase - -contracts/modules/wrapper/controllers/ValidationModule.sol#L136 - - - - [ ] ID-37 -Variable [EnforcementModule.__gap](contracts/modules/wrapper/core/EnforcementModule.sol#L55) is not in mixedCase - -contracts/modules/wrapper/core/EnforcementModule.sol#L55 - - - - [ ] ID-38 -Contract [CMTAT_STANDALONE](contracts/CMTAT_STANDALONE.sol#L7-L53) is not in CapWords - -contracts/CMTAT_STANDALONE.sol#L7-L53 - - - - [ ] ID-39 -Variable [DebtBaseModule.__gap](contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L232) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L232 - - - - [ ] ID-40 -Variable [AuthorizationModule.__gap](contracts/modules/security/AuthorizationModule.sol#L85) is not in mixedCase - -contracts/modules/security/AuthorizationModule.sol#L85 - - - - [ ] ID-41 -Parameter [RuleEngineMock.operateOnTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L74) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L74 - - - - [ ] ID-42 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L64) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L64 - - - - [ ] ID-43 -Parameter [RuleEngineMock.operateOnTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L73) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L73 - - - - [ ] ID-44 -Parameter [RuleMock.validateTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleMock.sol#L14) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L14 - - - - [ ] ID-45 -Parameter [RuleEngineMock.operateOnTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleEngineMock.sol#L75) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L75 - - - - [ ] ID-46 -Variable [EnforcementModuleInternal.__gap](contracts/modules/internal/EnforcementModuleInternal.sol#L87) is not in mixedCase - -contracts/modules/internal/EnforcementModuleInternal.sol#L87 - - - - [ ] ID-47 -Parameter [RuleMock.canReturnTransferRestrictionCode(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleMock.sol#L35) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L35 - - - - [ ] ID-48 -Variable [SnapshotModuleBase.__gap](contracts/modules/internal/base/SnapshotModuleBase.sol#L404) is not in mixedCase - -contracts/modules/internal/base/SnapshotModuleBase.sol#L404 - - - - [ ] ID-49 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L63) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L63 - - - - [ ] ID-50 -Function [BaseModule.__Base_init_unchained(string,string,string,uint256)](contracts/modules/wrapper/core/BaseModule.sol#L40-L50) is not in mixedCase - -contracts/modules/wrapper/core/BaseModule.sol#L40-L50 - - - - [ ] ID-51 -Function [AuthorizationModule.__AuthorizationModule_init_unchained(address,IAuthorizationEngine)](contracts/modules/security/AuthorizationModule.sol#L22-L33) is not in mixedCase - -contracts/modules/security/AuthorizationModule.sol#L22-L33 - - - - [ ] ID-52 -Parameter [RuleEngineMock.validateTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L62) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L62 - - - - [ ] ID-53 -Parameter [RuleMock.validateTransfer(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleMock.sol#L15) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L15 - - - - [ ] ID-54 -Variable [PauseModule.__gap](contracts/modules/wrapper/core/PauseModule.sol#L83) is not in mixedCase - -contracts/modules/wrapper/core/PauseModule.sol#L83 - - - - [ ] ID-55 -Function [CMTAT_BASE.__CMTAT_init_unchained()](contracts/modules/CMTAT_BASE.sol#L148-L150) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L148-L150 - - - - [ ] ID-56 -Variable [ERC20SnapshotModule.__gap](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L77) is not in mixedCase - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L77 - - - - [ ] ID-57 -Parameter [RuleMock.detectTransferRestriction(address,address,uint256)._amount](contracts/mocks/RuleEngine/RuleMock.sol#L26) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L26 - - - - [ ] ID-58 -Function [ERC20BaseModule.__ERC20BaseModule_init_unchained(uint8)](contracts/modules/wrapper/core/ERC20BaseModule.sol#L28-L32) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L28-L32 - - - - [ ] ID-59 -Parameter [RuleMock.messageForTransferRestriction(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleMock.sol#L41) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L41 - - - - [ ] ID-60 -Function [CMTAT_BASE.__CMTAT_init(address,IAuthorizationEngine,string,string,uint8,string,string,IRuleEngine,string,uint256)](contracts/modules/CMTAT_BASE.sol#L87-L146) is not in mixedCase - -contracts/modules/CMTAT_BASE.sol#L87-L146 - - - - [ ] ID-61 -Function [ERC20MintModule.__ERC20MintModule_init_unchained()](contracts/modules/wrapper/core/ERC20MintModule.sol#L17-L19) is not in mixedCase - -contracts/modules/wrapper/core/ERC20MintModule.sol#L17-L19 - - - - [ ] ID-62 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._to](contracts/mocks/RuleEngine/RuleEngineMock.sol#L41) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L41 - - - - [ ] ID-63 -Variable [MetaTxModule.__gap](contracts/modules/wrapper/extensions/MetaTxModule.sol#L22) is not in mixedCase - -contracts/modules/wrapper/extensions/MetaTxModule.sol#L22 - - - - [ ] ID-64 -Function [SnapshotModuleBase.__SnapshotModuleBase_init_unchained()](contracts/modules/internal/base/SnapshotModuleBase.sol#L64-L67) is not in mixedCase - -contracts/modules/internal/base/SnapshotModuleBase.sol#L64-L67 - - - - [ ] ID-65 -Variable [ERC20BurnModule.__gap](contracts/modules/wrapper/core/ERC20BurnModule.sol#L113) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BurnModule.sol#L113 - - - - [ ] ID-66 -Variable [ERC20BaseModule.__gap](contracts/modules/wrapper/core/ERC20BaseModule.sol#L113) is not in mixedCase - -contracts/modules/wrapper/core/ERC20BaseModule.sol#L113 - - - - [ ] ID-67 -Contract [CMTAT_BEACON_FACTORY](contracts/deployment/CMTAT_BEACON_FACTORY.sol#L15-L93) is not in CapWords - -contracts/deployment/CMTAT_BEACON_FACTORY.sol#L15-L93 - - - - [ ] ID-68 -Contract [CMTAT_BASE](contracts/modules/CMTAT_BASE.sol#L29-L250) is not in CapWords - -contracts/modules/CMTAT_BASE.sol#L29-L250 - - - - [ ] ID-69 -Parameter [RuleEngineMock.messageForTransferRestriction(uint8)._restrictionCode](contracts/mocks/RuleEngine/RuleEngineMock.sol#L84) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L84 - - - - [ ] ID-70 -Variable [ERC20MintModule.__gap](contracts/modules/wrapper/core/ERC20MintModule.sol#L73) is not in mixedCase - -contracts/modules/wrapper/core/ERC20MintModule.sol#L73 - - - - [ ] ID-71 -Function [ValidationModule.__ValidationModule_init_unchained()](contracts/modules/wrapper/controllers/ValidationModule.sol#L26-L28) is not in mixedCase - -contracts/modules/wrapper/controllers/ValidationModule.sol#L26-L28 - - - - [ ] ID-72 -Function [DebtBaseModule.__DebtBaseModule_init_unchained()](contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L60-L62) is not in mixedCase - -contracts/modules/wrapper/extensions/DebtModule/DebtBaseModule.sol#L60-L62 - - - - [ ] ID-73 -Parameter [RuleEngineMock.detectTransferRestriction(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleEngineMock.sol#L40) is not in mixedCase - -contracts/mocks/RuleEngine/RuleEngineMock.sol#L40 - - - - [ ] ID-74 -Function [ERC20SnapshotModule.__ERC20SnasphotModule_init_unchained()](contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L20-L22) is not in mixedCase - -contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol#L20-L22 - - - - [ ] ID-75 -Variable [ERC20SnapshotModuleInternal.__gap](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L140) is not in mixedCase - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L140 - - - - [ ] ID-76 -Function [EnforcementModule.__EnforcementModule_init_unchained()](contracts/modules/wrapper/core/EnforcementModule.sol#L25-L27) is not in mixedCase - -contracts/modules/wrapper/core/EnforcementModule.sol#L25-L27 - - - - [ ] ID-77 -Function [ERC20SnapshotModuleInternal.__ERC20Snapshot_init_unchained()](contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L27-L30) is not in mixedCase - -contracts/modules/internal/ERC20SnapshotModuleInternal.sol#L27-L30 - - - - [ ] ID-78 -Contract [CMTAT_TP_FACTORY](contracts/deployment/CMTAT_TP_FACTORY.sol#L11-L78) is not in CapWords - -contracts/deployment/CMTAT_TP_FACTORY.sol#L11-L78 - - - - [ ] ID-79 -Parameter [RuleMock.validateTransfer(address,address,uint256)._from](contracts/mocks/RuleEngine/RuleMock.sol#L13) is not in mixedCase - -contracts/mocks/RuleEngine/RuleMock.sol#L13 - - - - [ ] ID-80 -Variable [CMTAT_PROXY.__gap](contracts/CMTAT_PROXY.sol#L20) is not in mixedCase - -contracts/CMTAT_PROXY.sol#L20 - diff --git a/doc/audits/tools/slither/v3.0.0-slither-report.md b/doc/audits/tools/slither/v3.0.0-slither-report.md new file mode 100644 index 00000000..0c99dd53 --- /dev/null +++ b/doc/audits/tools/slither/v3.0.0-slither-report.md @@ -0,0 +1,340 @@ +**THIS CHECKLIST IS NOT COMPLETE**. Use `--show-ignored-findings` to show all the results. +Summary + - [shadowing-local](#shadowing-local) (1 results) (Low) + - [calls-loop](#calls-loop) (2 results) (Low) + - [assembly](#assembly) (8 results) (Informational) + - [dead-code](#dead-code) (2 results) (Informational) + - [naming-convention](#naming-convention) (38 results) (Informational) +## calls-loop + +> Acknowledge +> We don't have a better solution + +Impact: Low +Confidence: Medium + - [ ] ID-1 +[ValidationModule._operateOnTransfer(address,address,uint256)](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L193-L204) has external calls inside a loop: [$._ruleEngine.operateOnTransfer(from,to,amount)](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L199) + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L193-L204 + + + - [ ] ID-2 +[CMTAT_BASE._update(address,address,uint256)](contracts/modules/CMTAT_BASE.sol#L231-L246) has external calls inside a loop: [snapshotEngine.operateOnTransfer(from,to,balanceOf(from),balanceOf(to),totalSupply())](contracts/modules/CMTAT_BASE.sol#L243) + +contracts/modules/CMTAT_BASE.sol#L231-L246 + +## assembly + +> use to implement ERC-7201 + +Impact: Informational +Confidence: High + - [ ] ID-3 + [ValidationModule._getValidationModuleInternalStorage()](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L207-L211) uses assembly + - [INLINE ASM](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L208-L210) + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L207-L211 + + + - [ ] ID-4 + [EnforcementModuleInternal._getEnforcementModuleInternalStorage()](contracts/modules/internal/EnforcementModuleInternal.sol#L112-L116) uses assembly + - [INLINE ASM](contracts/modules/internal/EnforcementModuleInternal.sol#L113-L115) + +contracts/modules/internal/EnforcementModuleInternal.sol#L112-L116 + + + - [ ] ID-5 + [DebtModule._getDebtModuleStorage()](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L101-L105) uses assembly + - [INLINE ASM](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L102-L104) + +contracts/modules/wrapper/extensions/DebtEngineModule.sol#L101-L105 + + + - [ ] ID-6 + [ERC20BaseModule._getERC20BaseModuleStorage()](contracts/modules/wrapper/core/ERC20BaseModule.sol#L203-L207) uses assembly + - [INLINE ASM](contracts/modules/wrapper/core/ERC20BaseModule.sol#L204-L206) + +contracts/modules/wrapper/core/ERC20BaseModule.sol#L203-L207 + + + - [ ] ID-7 + [SnapshotEngineModule._getSnapshotEngineModuleStorage()](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L76-L80) uses assembly + - [INLINE ASM](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L77-L79) + +contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L76-L80 + + + - [ ] ID-8 + [PauseModule._getPauseModuleStorage()](contracts/modules/wrapper/core/PauseModule.sol#L104-L108) uses assembly + - [INLINE ASM](contracts/modules/wrapper/core/PauseModule.sol#L105-L107) + +contracts/modules/wrapper/core/PauseModule.sol#L104-L108 + + + - [ ] ID-9 + [BaseModule._getBaseModuleStorage()](contracts/modules/wrapper/core/BaseModule.sol#L150-L154) uses assembly + - [INLINE ASM](contracts/modules/wrapper/core/BaseModule.sol#L151-L153) + +contracts/modules/wrapper/core/BaseModule.sol#L150-L154 + + + - [ ] ID-10 + [DocumentModule._getDocumentModuleStorage()](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L100-L104) uses assembly + - [INLINE ASM](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L101-L103) + +contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L100-L104 + +## dead-code + +> - Implemented to be gasless compatible (see MetaTxModule) +> +> - If we remove this function, we will have the following error: +> +> "Derived contract must override function "_msgData". Two or more base classes define function with same name and parameter types." + +Impact: Informational +Confidence: Medium + - [ ] ID-11 +[CMTAT_BASE._msgData()](contracts/modules/CMTAT_BASE.sol#L274-L281) is never used and should be removed + +contracts/modules/CMTAT_BASE.sol#L274-L281 + + + - [ ] ID-12 +[CMTAT_ERC1363_BASE._msgData()](contracts/modules/CMTAT_ERC1363_BASE.sol#L118-L125) is never used and should be removed + +contracts/modules/CMTAT_ERC1363_BASE.sol#L118-L125 + +## naming-convention + +> It is not really necessary to rename all the variables. It will generate a lot of work for a minor improvement. + +Impact: Informational +Confidence: High + - [ ] ID-13 +Function [CMTAT_BASE.__CMTAT_modules_init_unchained(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine)](contracts/modules/CMTAT_BASE.sol#L123-L141) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L123-L141 + + + - [ ] ID-14 +Function [ERC20BaseModule.__ERC20BaseModule_init_unchained(uint8,string,string)](contracts/modules/wrapper/core/ERC20BaseModule.sol#L50-L59) is not in mixedCase + +contracts/modules/wrapper/core/ERC20BaseModule.sol#L50-L59 + + + - [ ] ID-15 +Contract [CMTAT_PROXY_UUPS](contracts/deployment/CMTAT_PROXY_UUPS.sol#L11-L54) is not in CapWords + +contracts/deployment/CMTAT_PROXY_UUPS.sol#L11-L54 + + + - [ ] ID-16 +Enum [IERC1404EnumCode.REJECTED_CODE_BASE](contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14) is not in CapWords + +contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol#L9-L14 + + + - [ ] ID-17 +Constant [ValidationModule.ValidationModuleInternalStorageLocation](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L37) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L37 + + + - [ ] ID-18 +Function [CMTAT_BASE.__CMTAT_openzeppelin_init_unchained()](contracts/modules/CMTAT_BASE.sol#L103-L109) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L103-L109 + + + - [ ] ID-19 +Constant [EnforcementModuleInternal.EnforcementModuleInternalStorageLocation](contracts/modules/internal/EnforcementModuleInternal.sol#L41) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/internal/EnforcementModuleInternal.sol#L41 + + + - [ ] ID-20 +Constant [PauseModule.PauseModuleStorageLocation](contracts/modules/wrapper/core/PauseModule.sol#L28) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/core/PauseModule.sol#L28 + + + - [ ] ID-21 +Contract [CMTAT_PROXY](contracts/deployment/CMTAT_PROXY.sol#L11-L23) is not in CapWords + +contracts/deployment/CMTAT_PROXY.sol#L11-L23 + + + - [ ] ID-22 +Constant [SnapshotEngineModule.SnapshotEngineModuleStorageLocation](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L19) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L19 + + + - [ ] ID-23 +Function [CMTAT_ERC1363_BASE.__CMTAT_openzeppelin_init_unchained()](contracts/modules/CMTAT_ERC1363_BASE.sol#L85-L88) is not in mixedCase + +contracts/modules/CMTAT_ERC1363_BASE.sol#L85-L88 + + + - [ ] ID-24 +Function [PauseModule.__PauseModule_init_unchained()](contracts/modules/wrapper/core/PauseModule.sol#L34-L36) is not in mixedCase + +contracts/modules/wrapper/core/PauseModule.sol#L34-L36 + + + - [ ] ID-25 +Function [EnforcementModuleInternal.__Enforcement_init_unchained()](contracts/modules/internal/EnforcementModuleInternal.sol#L53-L55) is not in mixedCase + +contracts/modules/internal/EnforcementModuleInternal.sol#L53-L55 + + + - [ ] ID-26 +Function [ERC20BurnModule.__ERC20BurnModule_init_unchained()](contracts/modules/wrapper/core/ERC20BurnModule.sol#L32-L34) is not in mixedCase + +contracts/modules/wrapper/core/ERC20BurnModule.sol#L32-L34 + + + - [ ] ID-27 +Contract [CMTAT_STANDALONE](contracts/deployment/CMTAT_STANDALONE.sol#L11-L37) is not in CapWords + +contracts/deployment/CMTAT_STANDALONE.sol#L11-L37 + + + - [ ] ID-28 +Function [DebtModule.__DebtModule_init_unchained(IDebtEngine)](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L41-L50) is not in mixedCase + +contracts/modules/wrapper/extensions/DebtEngineModule.sol#L41-L50 + + + - [ ] ID-29 +Function [AuthorizationModule.__AuthorizationModule_init_unchained(address)](contracts/modules/security/AuthorizationModule.sol#L17-L23) is not in mixedCase + +contracts/modules/security/AuthorizationModule.sol#L17-L23 + + + - [ ] ID-30 +Function [DocumentModule.__DocumentModule_init_unchained(IERC1643)](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L41-L47) is not in mixedCase + +contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L41-L47 + + + - [ ] ID-31 +Function [CMTAT_BASE.__CMTAT_init(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine)](contracts/modules/CMTAT_BASE.sol#L75-L98) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L75-L98 + + + - [ ] ID-32 +Constant [ERC20BaseModule.ERC20BaseModuleStorageLocation](contracts/modules/wrapper/core/ERC20BaseModule.sol#L35) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/core/ERC20BaseModule.sol#L35 + + + - [ ] ID-33 +Parameter [CMTAT_PROXY_UUPS.initialize(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/deployment/CMTAT_PROXY_UUPS.sol#L39) is not in mixedCase + +contracts/deployment/CMTAT_PROXY_UUPS.sol#L39 + + + - [ ] ID-34 +Parameter [CMTAT_BASE.initialize(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L59) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L59 + + + - [ ] ID-35 +Function [CMTAT_BASE.__CMTAT_init_unchained()](contracts/modules/CMTAT_BASE.sol#L143-L146) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L143-L146 + + + - [ ] ID-36 +Constant [DocumentModule.DocumentModuleStorageLocation](contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L27) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/extensions/DocumentEngineModule.sol#L27 + + + - [ ] ID-37 +Contract [CMTAT_STANDALONE_ERC1363](contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol#L12-L38) is not in CapWords + +contracts/deployment/ERC1363/CMTAT_STANDALONE_ERC1363.sol#L12-L38 + + + - [ ] ID-38 +Function [ValidationModule.__ValidationModule_init_unchained(IRuleEngine)](contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L44-L51) is not in mixedCase + +contracts/modules/wrapper/controllers/ValidationEngineModule.sol#L44-L51 + + + - [ ] ID-39 +Function [SnapshotEngineModule.__SnapshotModule_init_unchained(ISnapshotEngine)](contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L32-L38) is not in mixedCase + +contracts/modules/wrapper/extensions/SnapshotEngineModule.sol#L32-L38 + + + - [ ] ID-40 +Contract [CMTAT_PROXY_ERC1363](contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol#L12-L25) is not in CapWords + +contracts/deployment/ERC1363/CMTAT_PROXY_ERC1363.sol#L12-L25 + + + - [ ] ID-41 +Function [ERC20MintModule.__ERC20MintModule_init_unchained()](contracts/modules/wrapper/core/ERC20MintModule.sol#L27-L29) is not in mixedCase + +contracts/modules/wrapper/core/ERC20MintModule.sol#L27-L29 + + + - [ ] ID-42 +Constant [BaseModule.BaseModuleStorageLocation](contracts/modules/wrapper/core/BaseModule.sol#L31) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/core/BaseModule.sol#L31 + + + - [ ] ID-43 +Parameter [CMTAT_BASE.__CMTAT_modules_init_unchained(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L123) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L123 + + + - [ ] ID-44 +Function [CMTAT_BASE.__CMTAT_internal_init_unchained()](contracts/modules/CMTAT_BASE.sol#L116-L118) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L116-L118 + + + - [ ] ID-45 +Parameter [CMTAT_BASE.__CMTAT_init(address,ICMTATConstructor.ERC20Attributes,ICMTATConstructor.BaseModuleAttributes,ICMTATConstructor.Engine).ERC20Attributes_](contracts/modules/CMTAT_BASE.sol#L77) is not in mixedCase + +contracts/modules/CMTAT_BASE.sol#L77 + + + - [ ] ID-46 +Contract [CMTAT_BASE](contracts/modules/CMTAT_BASE.sol#L27-L282) is not in CapWords + +contracts/modules/CMTAT_BASE.sol#L27-L282 + + + - [ ] ID-47 +Function [BaseModule.__Base_init_unchained(string,IERC1643CMTAT.DocumentInfo,string)](contracts/modules/wrapper/core/BaseModule.sol#L46-L58) is not in mixedCase + +contracts/modules/wrapper/core/BaseModule.sol#L46-L58 + + + - [ ] ID-48 +Constant [DebtModule.DebtModuleStorageLocation](contracts/modules/wrapper/extensions/DebtEngineModule.sol#L20) is not in UPPER_CASE_WITH_UNDERSCORES + +contracts/modules/wrapper/extensions/DebtEngineModule.sol#L20 + + + - [ ] ID-49 +Function [EnforcementModule.__EnforcementModule_init_unchained()](contracts/modules/wrapper/core/EnforcementModule.sol#L27-L29) is not in mixedCase + +contracts/modules/wrapper/core/EnforcementModule.sol#L27-L29 + + + - [ ] ID-50 +Contract [CMTAT_ERC1363_BASE](contracts/modules/CMTAT_ERC1363_BASE.sol#L14-L126) is not in CapWords + +contracts/modules/CMTAT_ERC1363_BASE.sol#L14-L126 + diff --git a/doc/general/ARCHITECTURE.md b/doc/general/ARCHITECTURE.md deleted file mode 100644 index 236254c9..00000000 --- a/doc/general/ARCHITECTURE.md +++ /dev/null @@ -1,76 +0,0 @@ -# Architecture - -This documents presents an overview of the CMTAT architecture. - - -## Introduction - -There are three mains contracts for deployment: - -| Model | Contract | -| --------------------------- | -------------------------------------------------------- | -| Standalone | [CMTAT_STANDALONE](../../contracts/CMTAT_STANDALONE.sol) | -| Transparent or Beacon Proxy | [CMTAT_PROXY](../../contracts/CMTAT_PROXY.sol) | -| UUPS Proxy | [CMTAT_PROXY_UUPS](../../contracts/CMTAT_PROXY_UUPS.sol) | - -These contracts inherit from the same base contract [CMTAT_BASE.sol](../contracts/modules/CMTAT_BASE.sol), which inherits of the different modules. - -The main schema describing the architecture can be found here: [architecture.pdf](../schema/drawio/architecture.pdf) - -## Schema - -This section presents the different schema: - -### Inheritance - -#### Base - -![surya_inheritance_CMTAT_BASE.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_BASE.sol.png) - - -#### Proxy - -![surya_inheritance_CMTAT_PROXY.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_PROXY.sol.png) - -#### Standalone - -![surya_inheritance_CMTAT_STANDALONE.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_STANDALONE.sol.png) - - - -#### UUPS Proxy - -![surya_inheritance_CMTAT_PROXY_UUPS.sol](./schema/surya_inheritance/surya_inheritance_CMTAT_PROXY_UUPS.sol.png) - - - - - -### UML - -See [CMTAT_BASE.svg](../schema/sol2uml/CMTAT_BASE.svg). - - -#### CMTAT_PROXY - -![CMTAT_PROXY_d1](./schema/sol2uml/CMTAT_PROXY.svg) - -#### CMTAT_STANDALONE - -![CMTAT_STANDALONE_d1](./schema/sol2uml/CMTAT_STANDALONE.svg) - - - -### Graph - -#### Base - -![surya_graph_CMTAT_BASE.sol](./schema/surya_graph/surya_graph_CMTAT_BASE.sol.png) - -#### Proxy - -![surya_graph_CMTAT_PROXY.sol](./schema/surya_graph/surya_graph_CMTAT_PROXY.sol.png) - -#### Standalone - -![surya_graph_CMTAT_STANDALONE.sol](./schema/surya_graph/surya_graph_CMTAT_STANDALONE.sol.png) diff --git a/doc/general/contract-size.png b/doc/general/contract-size.png index 80fd05d313017897d56f36a7e8de7a032a26675d..a361c7d090ecd17512c046b5ec0b0a42882ec4b8 100644 GIT binary patch literal 69451 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 diff --git a/doc/schema/surya_graph/surya_graph_ValidationModule.sol.png b/doc/schema/surya_graph/surya_graph_ValidationModule.sol.png index ab13dccac1c311a75001c05d257defcbd9d2ed42..b7fac96197fe72598a320ee68d38b208194e1303 100644 GIT binary patch literal 135940 zcmd432T)bpwk?Vo6;YH7f-Vq{C`yhhS#l17s31rX1VNB&B#DS51qmWZPLi{Vh>8eG zk|ZFKqezawE%)B;5dRlnksL}wa)?Ap_LPq6)A8;b#=3Kr z8^8AY9p6hhbW0>5!Ac|~{6>DxhpUH@o1gldy*SAJ^kv-Oh%uE$Q?vWiuZ)cvjRJX3 zDL##nyzqN*g!4G*oln1Wyu33yD;aO{a26LWyRCmQ%Py!K`@NQNC8nuts>6nkBY=QW zkdO=?kueee^V`XA#mqmytjSq#`}3dpw77`>p7ahe+C=sa>xjH7%{{;3qm0mrW$D)aA2ZmA$;YN+)s6gXc2~sAI&O z1MrQm9+sbR#r|fJS^;6d;3V~QPHctubzrtbLu9}qBRq)CS%i_qWN4t zXtX80Emb>N%z1RUG-hLN%_8lTbljcK!%yLvUJtgI|I*I}$RQ|9z(ft7{v_NF9d z8f9hWy?cXCSbn}NJJ=e@D+@9%$Y=(9O;xzf&HVnImzzr`;W~}^b@CX%_oi$^WRbke8~mE2eDvti zE1iWrRVUckVNzyasvCr_UEQPR+umb>CU z1D`7dx89%nmTQ)Ijs_QXx>cY@BFHT$s4M%UzdziO*QAt{aBc8Y?#q`^{ATjkug|yV zS*piMEPWQAx-4DOm@~8Sq||LL&F@=hr*!TZ0@_FIq0y%1L`nB~d`Y0<)vH%)p4-{k zov`>+>@@P|`SbqX*S9@AJoK{9@epvUx-nW*&ILleyjd2@+ws?x*lDh^0SR42$@%%S zzRX_3-DO1u1#_7H)wMO;z=;zl@cp7@@5m@bF|eCkc06E`jEatSUzwjsQjSb>S-n2~ zEjLYj*REa7A4e%KUAjcjLI`D^6_$~yj*ma&9DJ|T7UAz>xt$oW$|@@5?hAIBnwlyq z_oGa9@7m?HGEsC`<{m=)$>Yb|208ILIagaV3_pMVEF>fp8ymZ}Ja-@@J|1r$V_{*r zT_td(V|Kc)8aHBKKubY!m{1$ctWTL#T)gp{2Mz4uDA9~raMYP5ajhYugV+z$>6WRP@ox_I$oQu6F*3l}%HiY&s5 znwhx@_cuqC?Y*(mgP_pMGPW`^%kx@Wo~qjT-r2b_*Ji4&q_i~rJXrod?Jx66V&;?B zw4G||myGJK`FSCJ{&r#pV%Ri`jeAv3FCsWNxb#V6Bn<++%UN zyu7@^ePOhe0+Hl{NK$`aVACeGzSuugB`$d4gnQpzn(cd;RLqeuPUiRN12(KK|!k7=PGX9x|Q(!`IgO_(+o?Z4s1%1{Ib77VV+X) zCZgg`0t~1vKsI^%R#sS8m}2MNy;WXorSrc^N=oV?`Mfs=?O_laZ!`67ks8FJ@KrAU zD0Lpgsv(;fAflmA&ry~49Lh~O4EG#XP2Zm9yh$(ja9{Q)^ zE}uI(jJiiACoA3Ntc8V(5NA47FX#P9BHZtvJzSX6`=oBCc+#&(sS_VP-RuC#R3?5vZwx3{W!%VPm6 zt^RjG>86G&vLvyO_aCJQad({RnVHi6NyYB4?7PZxCc&v2Y1`E)QLkBonK=%to|Kr# zjSbZM>ZY(=*Hvfdxw$!>qel&~X%gfDWmzR9O*AQY?+#Rr7Rod#;ACZGJ$(3?N!fLo zdu09r0rdDAl#|fVP}JqYhB$jWJ1Ohtlr-yr_tl&j0uVt(d$!#PncXRCDcQ4*%t zOzpob%S}g~xoKr91{l{k-?_i2A>|alqbdfqZJ5fdZI_7_^KDATRf7^<)E|XlCKTI{ zkPsI6`zeEtDbd8&S$vOyfkD0A_V~S{N|F=~l(jpLAJ!sxNA}RX-%LQxRAZV^<#QGH1fx3?$Wo11bAC=~$as>D}jeq;n(cuQny1q_?ML-tp>akDx&E9z?U(Tju zV)FVuSntsPt|e7lK{Am#vTBl<*EF%*$A^UCiNp;@J-t>>-mTCxEns5nldDE*>}P)LGW=pFHufiEh7~hYHd$F&xlDFZgkT4UMMO|jQ_IWB`n~_v zUrQx-l$Te^;l~|6M)B(^nqk;?fr{qlKT!aIvZ%QYGz<(xY+AW3EiD-s7}V7pQ2tP8 znDAlQM~@ygAI)#JZB7aCv+b#rJaOV002&hF$GW;Q$AOOs^asq+yoA2KJ|r}%&iR=c zBW&uHbbWD`Ng&g~J9qB<`0=C6Wy-Fn(sO>iUB;K(+0il0;?l%{O|Hj3)vU@aO+REj z6B0)C^2encPa;7jrnxmVY_^lpPQTv4JX{)RBy7`~G2^XJVB7xEvLQCA-p9wsuDjGq zsA_$A3|ma!)U)OLcPS1I#mpSMAHj1rDk{p&)s+$GK$Eim==}VAQ?j}~rJQ^HlM|Lk zhK2?9JyHS!PQcfIoWPWlS9^Ud?&sxQ(_K?gPzYua&N9ric=zsIVPPQ{hG~_TrYC7QILJJMqt3Cl2v6^G_F~2t2w~8@Iv*yurNx@o|&210AEs4 zQjvX+*FdclQ;bFW!_^>}?)wi1ni|$O!DiB~eTz}8s(}iM-NfDqJ6OBz~3O}av*YxyobE-Bf zzJM@U9KPoDt!<-2NJ1;i%XaNA?&&c-U?|9@8r59v(Es=FWlb*ed=6t^7`VE3=M|2Sjfc&oe+_n_s;;kF^Na zqw|>zrwZ_+O#C>t5m7B^9+xi5_i%iy)DC%DV%Oxpch3RcGn|6Hw6oxuF;tY7b3Wicdi05;`*j0@#~`SF8UJ;41fwu0bxMtki!0qFcK(&m^z`)4 zpXQd9LoZ(*x3{-PMB{~&$n3rP>t?-a+4aoC#6+v67f26A_asjbY$PgnP5Me~dsVG0 zes*d7C4nO3DTCvZ>Hf95%~P!P3QA4SE_MtnUEhH~+L1~X{Q29r;`sQJYfr<%1RxO1 zD70msr8#&IYb^pK+h|s1evcnNPKma# zupnp|8*>v-u?UWXpPpn_t&6d;%ASx9{PanMf?rUuMGEzNV@Hw>;hsd-Q4;IhZojWC zZ~IWpv2!J{?o6&#_E;?HZNWn$%@g#3*0aBAnIn75EG&fVzn6pD$;!$uE-mSnaz;l* zaT0$0`UQ5ka4=2edt=T=hK>XK_j`DFpf0SguA->VPj;`ox)&{MpQV-wfNYv1g-JPo zp0)bML2`|i$?=fsg>(sP1O1NyH7~;j7r$4jnov%Z5519`4-p3>gRjOZP84t$A-w zR#s&^sik(tqS&=oxwhuwz>Bd$plKFD!4J*1wYABKiIh}SNY1J5A3uKFf8ao}%9BS} z^62Q!D(?;99uI9#+egcT(O4r?@(jFCsR{e(=t_`APzkr~rlzE({v0J(*WTWa2!$kr z>V>*o`{3XK3e~kYZ{GO%ky40ytrjP60IspCJ>3^#R{KEEx>-@S(7q@3$&(VBwk(vy zfq?;&62}2>bntbW5bTPsuC4(6zJY-Pi~6W^{p{%hdO75ON?=U-E;a zKY!}f{{bvNX$_SEHGkYNE}uFRNp*39KHGL1NpEU$d@C94vEJKzr5c@S1npNBe;KVm z5ObTojCF5mKsF3WaCLLDe!wKL1(@h@JyU}9oYc)+Mh znS=r|>WW%`T*ejf73zy>2oO{~3B}U#ST=T))ul@<7#cDk5-x-g^%$`^fb}ST#I&x7 znv>Hkl4z8mjRk6kjZG&iA#!zOL`0fGy7m&1aLW_YlRRfumHcU6yq(fMv)j4*OeU?6 ztpUdBOjPztFT`_5aK0$S7@{9PhPEO@)CObis(tr1)YZ8U?|8F`WLl+{`~tE5{yR!3 z-AF0eV{ASancm~qS)}LsPoJ#Q=t)S5_d;f!?kc%9q_*dU9v4?Su@vYCl8{_wp4>;& z14xGd6UjEfy2NA2F;2>pn}>%%$ac8DzkhhR`0|$o`cy`Ugzc7bqN1YsmUQ`DL^|vm z@z5yF;r8}D$2n>-dCkquH8n|CXOQ0;H*T~Xef02QBh)c<>9tvCHu!CQFxvi6Xy_g? zGV8=@?3*3ix3e8NVnr8<6!ok4-Dst#hufvOT1=hOq^6&a} zQYLN@hpw2}Pz=yjTT^3**V(hRZ{LDEva++=cbB%{0#E_L$0GSmz0QYVMI$02Dt~_# zM*;!J#x4y=fX-MZFDCJq_?k~9g8BkrP)r1jO)v1LJSc`W0aQS+jxH{cc5eKYAW4I&SBeB=m*m!(m0;CQlIeBsffEI78i@~@nsYB14(zNlXla+uYt0Grm=KI1maAOh>}{{P~=#eWxiz zJr=Kmo~*5|B82s`j7zW(NVjz0pAO}~M)2vBqvN0Q@sAp(Oy zBPkzXQ^_ePKnQuh=VQXnopcT{inAGY12G+e_>8scD7=#XeS25Fl{N(!aq28LGWSgM zXttKBib}I8#A^yL)vUC^8r1)D<%_Ln?X5V$qjSIdL$jBA3t6Dcd!Y?0F@G~ z*k)uOaRK^!tyCHcdc0OtWx+&3|0m+vD^b_js8RPqURMyb`Y2U`eNq%qj-Cc(QX0(! z1n9G}AFJNfLSFv#iJPBaQ`w$MHzV%h!`}Y>(6F$dLqnG4=J_sD=O{Gej55w4ZiJ37RUA9sA~M-kOx1d>M4j?B?d35-di;hESv)CNlIjA;Qt0zZf1|DOvH z_rzYNq@?8JXk1Hh%g$IXKSFVogJWOF*RNX6c^Mfhl194qNSk!@^xL;>OJxz{GQ{t>dZ9v%m zJEO3jFIx-F@#BOSC4sPzJP`*H-f`WpQlPw{!%0jz4 zEFmGm&OWsGtKa%HaE||bz=YqwfA8MCn}tA-{fYMj63~bNnLB;Z%+}V}N)^cezv@OT z2u}SsAdt1KEh8;0Xb=Czw|+=JpbWvtsS`y#Oahl5MtrA~OEs;k^g|@ueaq>C95X6M z1bx57L`D7IqqtxrVA}#%rlMtlUfEM=?{!RtKIJ8lB($vb^z?u)m~kz?FuunRA8OQj zrx9cMn#`$8x?|^G?O^tZ?_>h=a_xyL#zqSatn=BlrO>t=tijl88o^>zXlrF{J=)jj z@bf)|oF?eF$$A%9T-r|Ufyv45z)|%UCr_S)E-Dah>b>TiBnS}+yh_|9tD>Uf?%kUA zAuKdJM$NfqwWw`~bR9RUFJHbukA+tA1TCD*%qt6%-N-4Xz{_+w#3oB-j%t(uu3!hn zEPZaudl(X*!OsMgyDj ziV7qc?1N`x@+2f1huPR(Y~Pq_`1mnRDU?l6H&g2`w5H9xdk4v@-}l7t5bM%wJg-_Bj0QR0vgNiy`6FL@R6Ler$EK4a&%G=tD9FtvVk8X> z4JRk3lP6#Gt5iTe06nWs)#%(toKMo!IV*>u&oK}H{S{I4|0>-XqE4ue=!fRpv`tQS zmzjDkT@u{QBy#mU3U~`0u@IwXyL`V<3pCWzQ-!>w88(x<kp! z?b!pV?i=JvNJ>&VsylZ0j*^u*kLjVe%#`M+THpYxg9@H~>h^ZrLDTB=r|xb~q-L~k zX?TrYe=31V(E>&P4+yD~Q6QzA1-OPLEUpP844tR}oa4g>qS_U;=|6z7umYfqhAUt8$GZs@?)biO%zvq?8&>6Oq&Br|1o^@W9n?8S^QVldlv8LTl< zQ@7${fVF^XNIV7=s`|?I|FI(jr$Rk=;+HS{yu6?5>e6v%&{lz67$jVCu*FMCZeah` zvHwIL=K5G`eRFd@_#SdmhQTpp)V}p^m`#$)&;AFOOG&jJ85tqW%y-)BOC)9~aR$tE z*klvMZCR2<%jpPm7j=uxoMTI6f{vK47)2u|C;ghSV z@@Nl0TNM@%z#r=b1~W@nVxXf#JZB4W9l!S(hIvdPCc1(J`I_J3yw|PF&CM@f)Y8z1 zAFvU18h)6RG_bz5f}%i#0jM}w5NaA4n<-V#C>=Mq(gY5`Rec5CvxVcJuBc+jsgsB! z1Z3!=M_Hy-P_p`Ar!b7M1Az{r7ZkfOV}9=3clJ0B0s#S2oPEeAxdyq1d5F0aIH|M9 zzU{oU5gCI}2AmM;7I31>?ny16mRxF1YOGe!W5ycaIF>C z%|(zGgM%PvT;ZnM?Y%O8h2o3TIjI89fc?zO*-Dv4FPgOS(u5|X$;A zzzeNoD3!WFnk>2W?*$Ri|6NQst)ZBy9*X4HgLnj5SeSqgc?EQ|xdFmFL5rwJp~vU1 z2<-$Z0@(}&wONuLo9BP4X+0z7;N;}w=5D^PKNXG^=ohKKw$U#)G_qyQXMTPF{a!fu z@$={JKDnKjN7^Wd~KXWdgBF>-S-R5P1on&PBIXT0fMNP1s7`q z{&O9S0L_BfLk$hRwz}w0;QKFtut3G~AM}^jVer!YgJ;{={~vLlyEpIx2}#4jZi%g< zOB#6%`}82wUHbHxAN&3UKR)N50CVwhbIU(q zEP((7mq6CJ3NaQI8O<=1TeR7}V$)Su_oD&@B)}|Ey4u5ujH`3t1#Ac=D^B69I%uXb zP@yICziF0Pyh60L6um)P#(c7?WHj0_e*sd>{AhZ1M`!1bZQHEK+dDha6gSC)O-ThB z7ErJ6y?dY=EnQt60KTJ%rk-=*fq{X*nlSOuQBfs5;4{s!*m%3CnJM-#8ObZ{*C+d8 z-x>8!OkBBm@ugWUxry**k`!40EVmQypT}fX8l)2oVyAA>-_AfOI&xs2JuakMh;#T~ zm=*tkIG@jnNlCgMEKY(0Lqib4TWzJmObGBo_KG6w&WY^(Dl8}n+fMpxFW`zKc=vpU z!Z6^hv$*=+cT@k41CcnO|0{k=sE9W$yHIt&rc#O4Nc9R-#4#c?b*et8Nole${b?Ci zKiJuba%Qh#@Ax0jOGu@$2 zo&aVLb@G7QkUpXDEWKl}XJup4^WMd?ZSIsHU)m3vZ5V+ctfq~7?Cqz>2Z-JBYaD2- zr-hf|HPV?iGFx-(Mb>3@j-dDbtiwX+P-CToG!2&LOb6ffdP_ym| zoP+(Cdd`Eygj0WsC_ydPq~Flg_0&Xb!i4CO?ItBBUx)e9sK}1kRiCO{$wKjpl7Y!_ zdSPLzHM0}zCA~cSd_`@%DY*gLs%|Q`uu#fvb{OoH>+?&CdU{w}b_j+3WosIx%y97oIu7DL2l7hE^Ma^y@B#U6~A`Morz z9=Yi0Q``WZ6bJ5$jXjs!3rVZ?K3#ub-xr`C@aMSEinpkaV7`VBIzgm}_5r}m@?Y;5 z(6-?0`L4k1sWaj@h6>BY%c3tB5)lZASbvINPZ(r0-EMGTKzI4>#_I0|l(O-zlDx>s zw!Ug#u7g`he9j%l4sl9F7add*o@50>!zUJ&4i34f!G0>}t#fg4!EyjdjT%klI5oTQ zod5uu=H`imZPAguCNsZ&-GDa+7I3^xcDl4Aj&@mY*5tDhEK4aKl8?7rvtt+zucXGVJh=A1}|pz6D9A{yuseXj2bB zIyPPZpag*o)xxSJt;MrVt3}p`my7a|bg zND5!~#ZH~wg-j4{268~$!LXdBwjZFQ8|mx&(<_4y6eeFlI?ttnNG{I|O=zpQ)>*Fx zsOEqM7`cs=)e_`AG+WfK4O8p_TgdiaOGmc~bzA^mNZbfk502J6czs~`ypA>@;W$Vd zLd?j(01YCdl`SdBN)7vP`qwXr6Gt~>e*o0#8DDNWj>4 zjQ|=5Sba@I9D|u1<>G=NT080XCXz;GI4pb~7#bOo(;hpIDTspK?g%K}fso$b-n~+b zy+G~I5!a!3!r#Q1sj=P`jhKaC-NBVzp3vSuIQU{|m2?~AZbyU*2ySxM#v6*wcoG zISA+w!G!oSCkM&RYpP-)&FFM_aOw18DD%G>pHsoN{%n=%9uWe=QfC~~qzjJc;^YM2 zD(U!B5gmPO2PSI*4~?!TPy=BG$y8DeuGv@#r1q11L>h_y8@f>i5HA-%Wsk73q5-FG z+@NFsx~0o6-Ag0RXcqnwdU|@I+iie(ij{x>Y|?6c_3EUoK(HyNX(M#%FJFG4#TS)4 z!v;$G^Jh6aNkmnfgAi5HyqC&e0{zBGn7`o*w)p(iaO8CQynnuNm>(@2oxk58cR|wZ z?CeTq3YHqplMI909{?)Y-cW@7@82gQBg@D~mwOgnf0B3_G2}S-ZBW|~qH5h{_V#>) z9psGfKYRdDZM?gi1|D{Mbd!OW5M=?1IyyRDUX?^+y}T^%xpI8LaBuH1h@ZsX3_gUL z4+;*}x8E{9H>cZ^t!;G*8HNHa+cRjSAV8OHA$FtxGNpsu!cn88t-Z0-;C+4S`x^8! zZcfh9t9`fp(7@5t3_~{`EYV5`y?y*D5KK-KV9@+SW2OaYfI^dUps2^|KnS!Fs?XP)w`KQqaWUUv|$CZnF{jq;PY5TT_lHz8>!D_xbZN7@CH}@ z^2On6q7uOo%SrTB*3?`AR~fZ1F!=WHu*^C4i2`IoNC7vnh0%97DCPv(Nei-$lm{L-!8*wRvuFZ!}|;x0=n#3Bqu*g7@TDSy=iJ7Zeoe zrKGX#4@u+w*x6Zzzd-f{M?@DJjlVQ7EU2RJj>9^&EYCa_NRLg6V<6}$Vn*<7xSfr; zZ12+R6Tn={WY@W;K;IJ%|2TcZUwPxNPW`&Ee;iX`?rloY`Aj9)LifRpk1KXOp# z-!Y&Ozx2OxTqyES5<^Fj1U&%IO*kY+O?6>i0HKG_i+AMYETsmV6YK_{AXir%}GF}Kq3Vo#|srd_U_%g&@M2`5GU~p4-cO+MdPAb+owbR z&&ehyD2YgtV5ia>t0#^ek^9|--_abxww_timTm4rpYDQ%g&v?8v}(M>#l>L`cAFc0 z5*@AFQlb+c8L6+OmC)X7ZX`%DgxA0T6%9>oZEbqA^?68rM|h` zaRF~ejxS5UauE;*LBy0^oC^sIujO|1 z@I4~7rvdqgjRrqJ6@m<1VTaZ7u~dS`1}ZZ46cYo3JA{1VUsky5%Oa6s_|4qON>0`W zo*gnKUS8|a&5%(hl?SnR4p89e2tHl}dnVEw-1EShpp`XEULP8d2?}1p+d+{>{xAqZ zHc82~kKtVWe_jB(s%OsZr}(Q+Tvl3|W|avI2?IgyYI4p~M+)@v@K}X(3R~d@5;<{9 zm7ZnA#ov$#YH9}VRzZ4dMFMH7|3N{-l_Vq;+D1lLp%wrqIJZnIJw#F9WYK-cOr)MZro%plS`9WsAnX7)6a zii*l7V6BEYX=W;_@aSk8DDsn&S%$|l(A3Ft_uvF@u+mF|R+i$G`v)Ktr2G0RK(O1n z;r8Iq*|}jYH@9V&B#38)>iDX#`U005;~}PPO*7Kc)4M+KF`W1X;x4=pY1r9o0l4kG zSIz>r0t4$#5?a;&Y{!#3E}EGI9~4I)7tPHhEG*9fNT8YJ!4=b0zWg>UJlq5U2v8j* zy$$&%R?;2*ZyZ${E)`#8{yX$=ssvf`G9VhH>=fJredu@B{ypfCnH0?%*S&v_h#LRP z=8N-nL+B1=n^r-d)Av;7ar)~hU~}oqmtf!zCc4WO;E;qShH0F{gaRP#*|W#Fn|@se zI0q-W(0zSVU5$RGgrp?IKu>f6O%~>iS^h*v0SDB2+#_^Ubrls4fO&w570@(TpkR%c zI0;7T1Hb%==kxk&ZZ4;V`Kd_xV|7{*Fdhv1aNpQl_v<^cl1U&9yAga#fE0*-n( zcT+McU%dDOIt5BEG*ih-AHy&Uk+tH|{C^fBo(;|p!l6TlL`829`zE!)Lzg%k9wEb^ zuwZ72JXhvX+9w;I-Odts<89Wm9uOYDH@Z%O;dlXXBOKt7UIX7lT&S3PzQd_8Z@k~* zxe(*;{{dU(?A0d5d3u}klPr~id2v+sdoi!ecJ@)UbsI<`M? zo=~uku(3U$!+v%AZAn>OE zN8m_;D+mK9PB2;t0mBd}ZO&&<^R=}#q%L6Sv`gP0UxP=ci@AYC*BZw)`}!URRO02} zxcuhMPRu3(6y*?e_eSO~JCy_tR(i)C`eyVqF~!7IL)(PTQE6!yOMCW`lNaXaQ-;7k z>*nr`LV+G{LQc-~%s?Id@%Mv*VkB<7gd1>6dN*PffM|AZj`&u@1;_+Qf?nvcf|`{k zXJl}Tincd2Oqp&h>o>hnwfXtgi5DcldapEiN@uAv7oSt+p1&%sL@A654Ct3{-8y{D zoGJuR;W%{uypiEy1JLj}98z=uw2k04BoI)xxOjQJ&I{I;>}70)A$Z0eiH8AhOq{{| zIWQn8yRcmU^(!p);Z+;!D=^YHckgB*D)i9*Dj|5rc`aMv36PfTpTDZvep%y)n>#+;7}Sb=gb|C+w*MAutFOpb;0&_6{`#9e!LT&E-^SSs8%V zsoxfn2%ofQ-K6?}P`yi-cyw0nI}0a>hAW=4=q)uMs=>oc;rp-$f5vtaV8Qo`VQmos zo-pp?Hnm)E)qkPxeiAu~a}4f`;Du{APlw0|LpfL0j(_(jb5D=20Phj)sMztt=JW92 z2hsAw%5gx_ZIJFEB5%vV?9FC&S3Hx^h>Qv>{qLGpVTP*&@C@q*?fmkwL z1)5)1tzk-F>Jvv)YK}3d;mUzq9;d_~-jAbDsyI~%|Tf>=`KuUFVS$TLeiH)L!0kke4*6XfY zrYuPAEx`xFsX=f{=at4<(vxq{Yr~Cz(jn-Jq1EZ*SS3XW7HIAo>NHf8j(agNCQx?8 z#w$%*^mKpT3~CWUb+7mAX!QP*d?i+(C^|2SzkBuS6)f(+JilOaNB3hKLJ5FAI{~4Z zIml%|FL3!P5)6p60~*X|9ca_oGPla8THD)8I}K~pzlgYG4LuDfscOgxu)aD_+YZ z$)hy_=Vzk5LALeZSU@o?PR+;|M-szU^g72j9c`B zt(oYJiKG~bai&eReAKi+C9MV^4yS>eqoU|q_FA_CxgdEu0ySbri3%KgW^QBI7CtZ) zshUv*N*I|1k7F=^^hg_SJS_@Ae@cFDd)sq`y$}v@q$lm``Aj2}0@Ng&8o`TF4ks>- z;Z!k>T4-v1!A(m_N)mY)%viGW(5G@Em;ns6-~S02Nv5&igd6eX^|E`mE?FY3xc#MIX{ z6U>T_KaZ)$&MaI`>PtO8t+CMsO(=A3Ka^I)mcskt23KjD#Bsok)gs;qv_(N=X+ zIxnxn{!#br9rFXH=_R*ry+a$YO(S5BT&cpH{`3?^4GAAc@g0qE0UUCa44eeH;Mo`Z z+>}XE6WOE9$Hpf=MLbyu4slj(->Ud6Y~`B6KopvTgWr$Wc?~_eF}SfNJ#T>qtqR-k zFYl2;zyD1CG8n;Y;szrsHhov_waaBxA&QAD)}7^se?N>OzHAXff_|pa9Gv0Oi@mqk zvy#S$o-EQ^k0ov#cMoO#Ff%iQ!Z-)I{;MwOo`(UjGvu&eL>YoX=u=ODlj=m6(FL*# zSTL|^6P0M8`pW|An47HBRBU=Rg*u&>FUa5ME&u{*HZVTZNNKT#ccAmxxpM&t(4aTQ zI|{~vgunZ|?-=Pt%C}$p$`M#3aYIGff(QL5yD*6xZIJykIcHTwQgf6(&Ec;_; zVK3?5V-DAy;gm5x%s6Pj=0zMOD(2AuHyqR=Hd3S0Ie2+vk)Wh%t_7B%`WBDc**uU+81^U#mFMl1Kjyt%`(#c%Aj0WQ?R zWj0-q&45c+P53TvL4+GX_D90!N7n!mdzh2+V-J-x%`y4|eGt_JcrwkJXbwK^LuyX_9DHmxA70$;<`>b5XR zJYt4(Ps?Q-joT0X)hYAIQc<>wd7Ss5to#~xX2Ow?{hzHrpRMcZps4E4tz}}sV?}g0 zE3_}&>eM=WwhYc2qILwt!op$(o(MT~!9_E^{^Z~HZKAg)`<)+yCtvlYV#c>OUQT`} zDY%xj_e}QXY@)<%Pc+QfS3ZH?5QPtnrccDna@Tg@8oMH9=y<5;(6t^avLZdZ&wOC- zbM4LA@tMdU@G_C*DJsPI&qExGzq8{TZ=KzD+W1~w?B@=W$i7nkg)Q%PQ0wvOlr?{M zq1Z|+snCSSpj2>%V=^`2N@hgrIC-d8Mt!?L!^K>pWe4C$%wsX9x{p@MW06?(@6&FY zdeHOwvdUl6y;^fWdiU0Ca&HJi@q@d6kCn`k9xgeXm6UI!m7bLEpkvHPC!AedZhRqY z!OUU1i`nF<)>DD$)U~0%q*}EM4T%R-&~^ZT&^@$|jPAHOT(IC_MMjzPzc?D15IKM% z9w1;iYkcSqPLUqNNO1sAKS^t;OkkS*pKP%5vNz(m7afDf?z?wI6P_B`@tjs1jF1x} zwENI2zhmnRWtfd3+&Q<~`%0uEjXO2h4hPz|tPgi?q%F6d98)E0F*`rmJQXFLO>c67j)QHrJU~kzJ zhKL4zji_CCE;~6p7o0q#2o$KSj0&Iu&ulMa{{yl=G#ZCUqDaX#ITz2$XZGqJ^8-fZ z7`3Mp?4t16ZS}i&cCno4ccR^hNB642T<{F-xwE=<1x5{Mb`p(8mY;tP4vI07=Ndc( zb@z~gN#~A1k1?-43gY}8jDg%&h7bZ*EE$aRJUl!{j%-sinBe{&d*_wEsPf{G@ud{e z1V(lF0seB##E?g`!EvF8fPr`+KM%3k$#kFW!RGpql1oKBM%R!J@yLMBdvI^$zPD@p zAs1Q|7-i})fB^t#Gca_w#$$P^^1Z zceMPUk$kQdfBw=WwdU4E`Y#ian&PAZ38)dk3h48VS5^qf0o^e_mgvs_nJLjxT%Vn zKxCi1c)~`6=D}RX7h~qltvT(sxD^BrWZ_uSbQC|MqUdAPERR3gcbfK|l>oiE$P^einoxMvddT+*{gYJ> z2JXJ5`#ViCGVTM#fa`H`ps6TtXoYpY-H+_McxPV1dfkQr(sut1r?nshN>28 z!OkSu8MkjLSn>JmsZ%7YAA(BKU3I@lD)Q{37CE-#bMLdy8dJ)N)=HT^H~X&H(a33v z#bgy0wu*BI`8}|Gg8>WArB{YuWsFp0C4?wqND7yxb|z_kVAEyFu76j&Ifmvhahv3- z!bq{$6o2ThZFebstqISyj5h6|YiW3@mfUTJ1VipyZCyaP^X=rA;VZi$@ffuRRjIfs zPqs`&){ADz#=MqOkIp0=W7=PA2$)cEaC76P1L+b|CdAIr$5<5qD#fuZJCWM)ejwsaA z47Obxqd4tYWUOrE-tI1W-s8}R*szmqikJPX0=JPk+5GL;D6Jgi4dHZFe$J?AbVfYU zOOcx{`l9+y$8Aex1|%el41Xsu4M((U8EVy&U^mXRv*BwLCx=U*SC`#Uc0>^t6XF?HWf*ERg-!`LsL$oy|L9dgZW zxvA<-9V0#gqD%Czg=jn|%5S-|>TRgzHCfSuE~7gSyLj5PI#}JmZtcH={OPZ<|Lf^L z7w@M3>*7wk#jewKDC}j2_d8BuUI%q zBikz*d#E8)6Tq%rMCi`LjwH30>_NwZAIsIBdC6WQc2Sg!aT2$B@Sm@6v-@Q7iEqA= zRCQa`tyA}#d4iIE6eM21Z>91`GL@!%H*Xjos}w{2_kg5S&v8&$PBT4VLZEyXiLKDE zE@okrc}$FOlB;L`n&tTCc@DPQ-rSP7a4z-`pXuW`_D?7JE$(ReonVc< gdrn$1 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 IGlqBn59Ee60RR91 literal 188264 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