Skip to content

Commit 2e7d438

Browse files
committed
fix: remove duplicated fragments warning
Signed-off-by: Axel-IoBuilders <108282711+Axel-IoBuilders@users.noreply.github.com> Signed-off-by: Miguel_LZPF <miguel.carpena@io.builders>
1 parent 9f7cee1 commit 2e7d438

File tree

5 files changed

+59
-34
lines changed

5 files changed

+59
-34
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": patch
3+
---
4+
5+
- Optimize test fixture deployment speed (96% improvement). Improved contract test performance from 47 seconds to 2 seconds per fixture by fixing inefficient batch processing and removing unnecessary network delays on instant-mining networks (Hardhat/local).
6+
- Remove duplicated contract interface fragments in test files (ERC3643, clearing, protectedPartitions tests).

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
"clean:full": "npm run clean:workspaces && npm run clean:deps:full && npm run clean:root && echo '\\n✅ Complete cleanup finished — workspaces, dependencies, and root junk removed'",
3737
"lint:staged:js": "eslint --cache",
3838
"lint:staged:sol": "solhint --config packages/ats/contracts/.solhint.json",
39-
"format:staged": "prettier --check",
39+
"format:staged": "prettier --write",
40+
"format:staged:check": "prettier --check",
4041
"pre-commit": "lint-staged",
4142
"commitlint": "commitlint --edit",
4243
"prepare": "husky",

packages/ats/contracts/test/contracts/unit/layer_1/ERC3643/erc3643.test.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,21 @@ describe("ERC3643 Tests", () => {
199199
);
200200
const clearingTransferFacet = await ethers.getContractAt("ClearingTransferFacet", diamond.address, signer_A);
201201

202-
clearingFacet = new Contract(
203-
diamond.address,
204-
[
205-
...clearingTransferFacet.interface.fragments,
206-
...clearingRedeemFacet.interface.fragments,
207-
...clearingHoldCreationFacet.interface.fragments,
208-
...clearingActionsFacet.interface.fragments,
209-
],
210-
signer_A,
211-
);
202+
const fragmentMap = new Map<string, any>();
203+
[
204+
...clearingTransferFacet.interface.fragments,
205+
...clearingRedeemFacet.interface.fragments,
206+
...clearingHoldCreationFacet.interface.fragments,
207+
...clearingActionsFacet.interface.fragments,
208+
].forEach((fragment) => {
209+
const key = fragment.format();
210+
if (!fragmentMap.has(key)) {
211+
fragmentMap.set(key, fragment);
212+
}
213+
});
214+
215+
const uniqueFragments = Array.from(fragmentMap.values());
216+
clearingFacet = new Contract(diamond.address, uniqueFragments, signer_A);
212217
holdFacet = await ethers.getContractAt("IHold", diamond.address, signer_A);
213218
protectedPartitionsFacet = await ethers.getContractAt("ProtectedPartitions", diamond.address);
214219
diamondFacet = await ethers.getContractAt("DiamondFacet", diamond.address);

packages/ats/contracts/test/contracts/unit/layer_1/clearing/clearing.test.ts

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
77
import {
88
type ResolverProxy,
99
type ClearingActionsFacet,
10+
ClearingActionsFacet__factory,
1011
type IHold,
1112
ControlList,
1213
Pause,
@@ -126,21 +127,27 @@ describe("Clearing Tests", () => {
126127
signer_A,
127128
);
128129
const clearingReadFacet = await ethers.getContractAt("ClearingReadFacet", diamond.address, signer_A);
130+
clearingActionsFacet = ClearingActionsFacet__factory.connect(diamond.address, signer_A);
131+
132+
const fragmentMap = new Map<string, any>();
133+
[
134+
...clearingTransferFacet.interface.fragments,
135+
...clearingRedeemFacet.interface.fragments,
136+
...clearingHoldCreationFacet.interface.fragments,
137+
...clearingReadFacet.interface.fragments,
138+
...clearingActionsFacet.interface.fragments,
139+
].forEach((fragment) => {
140+
const key = fragment.format();
141+
if (!fragmentMap.has(key)) {
142+
fragmentMap.set(key, fragment);
143+
}
144+
});
129145

130-
// TODO : refactor one facet with all the interfaces
131-
clearingFacet = new Contract(
132-
diamond.address,
133-
[
134-
...clearingTransferFacet.interface.fragments,
135-
...clearingRedeemFacet.interface.fragments,
136-
...clearingHoldCreationFacet.interface.fragments,
137-
...clearingReadFacet.interface.fragments,
138-
],
139-
signer_A,
140-
);
146+
const uniqueFragments = Array.from(fragmentMap.values());
147+
148+
clearingFacet = new Contract(diamond.address, uniqueFragments, signer_A);
141149

142150
holdFacet = await ethers.getContractAt("IHold", diamond.address, signer_A);
143-
clearingActionsFacet = await ethers.getContractAt("ClearingActionsFacet", diamond.address, signer_A);
144151
equityFacet = await ethers.getContractAt("Equity", diamond.address, signer_A);
145152
accessControlFacet = await ethers.getContractAt("AccessControlFacet", diamond.address, signer_A);
146153
adjustBalancesFacet = await ethers.getContractAt("AdjustBalances", diamond.address, signer_A);

packages/ats/contracts/test/contracts/unit/layer_1/protectedPartitions/protectedPartitions.test.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -267,17 +267,23 @@ describe("ProtectedPartitions Tests", () => {
267267
const clearingReadFacet = await ethers.getContractAt("ClearingReadFacet", address, signer_A);
268268
const clearingActionsFacet = await ethers.getContractAt("ClearingActionsFacet", address, signer_A);
269269

270-
clearingFacet = new Contract(
271-
address,
272-
[
273-
...clearingTransferFacet.interface.fragments,
274-
...clearingRedeemFacet.interface.fragments,
275-
...clearingHoldCreationFacet.interface.fragments,
276-
...clearingReadFacet.interface.fragments,
277-
...clearingActionsFacet.interface.fragments,
278-
],
279-
signer_A,
280-
);
270+
const fragmentMap = new Map<string, any>();
271+
[
272+
...clearingTransferFacet.interface.fragments,
273+
...clearingRedeemFacet.interface.fragments,
274+
...clearingHoldCreationFacet.interface.fragments,
275+
...clearingReadFacet.interface.fragments,
276+
...clearingActionsFacet.interface.fragments,
277+
].forEach((fragment) => {
278+
const key = fragment.format();
279+
if (!fragmentMap.has(key)) {
280+
fragmentMap.set(key, fragment);
281+
}
282+
});
283+
284+
const uniqueFragments = Array.from(fragmentMap.values());
285+
286+
clearingFacet = new Contract(address, uniqueFragments, signer_A);
281287

282288
if (compliance) {
283289
complianceMock = await ethers.getContractAt("ComplianceMock", compliance);

0 commit comments

Comments
 (0)