diff --git a/.changeset/silver-taxes-kiss.md b/.changeset/silver-taxes-kiss.md new file mode 100644 index 000000000..9d172888a --- /dev/null +++ b/.changeset/silver-taxes-kiss.md @@ -0,0 +1,5 @@ +--- +"@hashgraph/asset-tokenization-contracts": patch +--- + +fix base implementation in TotalBalanceStorageWrapper diff --git a/package.json b/package.json index 0524052f4..ddaa1146e 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "clean:deps:full": "npm run clean:deps && rimraf package-lock.json packages/*/dist packages/*/*/dist apps/*/dist apps/*/*/dist packages/*/build packages/*/*/build apps/*/build apps/*/*/build && echo '\\nāœ… All dependency files have been cleaned (including package-lock.json)'", "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'", "lint:staged:js": "eslint --cache", - "lint:staged:sol": "solhint --config packages/ats/contracts/.solhint.json", + "lint:staged:sol": "solhint --config packages/ats/contracts/solhint.config.js", "format:staged": "prettier --write", "format:staged:check": "prettier --check", "pre-commit": "lint-staged", @@ -58,7 +58,7 @@ "ats:test:ci": "npm run ats:contracts:test:ci && npm run ats:sdk:test:ci && npm run ats:web:test:ci", "ats:lint": "npm run ats:lint:js && npm run ats:lint:sol", "ats:lint:js": "eslint '*.{js,mjs,cjs,ts,tsx,mts,json}' 'packages/ats/**/*' 'apps/ats/**/*' --cache", - "ats:lint:sol": "solhint 'packages/ats/contracts/contracts/**/*.sol' --config packages/ats/contracts/.solhint.json", + "ats:lint:sol": "solhint 'packages/ats/contracts/contracts/**/*.sol' --config packages/ats/contracts/solhint.config.js", "ats:lint:fix": "eslint '*.{js,mjs,cjs,ts,tsx,mts,json}' 'packages/ats/**/*' 'apps/ats/**/*' --fix && npm run ats:format", "ats:format": "prettier --write '*.{js,mjs,cjs,ts,tsx,mts,json,md,yml,yaml}' 'packages/ats/**/*.{js,mjs,cjs,ts,tsx,mts,json,md,yml,yaml,sol}' 'apps/ats/**/*.{js,mjs,cjs,ts,tsx,mts,json,md,yml,yaml}' --cache", "ats:format:check": "prettier --check '*.{js,mjs,cjs,ts,tsx,mts,json,md,yml,yaml}' 'packages/ats/**/*.{js,mjs,cjs,ts,tsx,mts,json,md,yml,yaml,sol}' 'apps/ats/**/*.{js,mjs,cjs,ts,tsx,mts,json,md,yml,yaml}' --cache", diff --git a/packages/ats/contracts/contracts/layer_0/lock/LockStorageWrapper1.sol b/packages/ats/contracts/contracts/layer_0/lock/LockStorageWrapper1.sol index b5383dbb9..5a5221f82 100644 --- a/packages/ats/contracts/contracts/layer_0/lock/LockStorageWrapper1.sol +++ b/packages/ats/contracts/contracts/layer_0/lock/LockStorageWrapper1.sol @@ -109,11 +109,13 @@ abstract contract LockStorageWrapper1 is CapStorageWrapper1 { address _tokenHolder, uint256 _timestamp ) internal view virtual override returns (uint256) { - return _getLockedAmountForAdjustedAt(_tokenHolder, _timestamp); + return + super._getTotalBalanceForAdjustedAt(_tokenHolder, _timestamp) + + _getLockedAmountForAdjustedAt(_tokenHolder, _timestamp); } function _getTotalBalance(address _tokenHolder) internal view virtual override returns (uint256) { - return _getLockedAmountForAdjustedAt(_tokenHolder, _blockTimestamp()); + return super._getTotalBalance(_tokenHolder) + _getLockedAmountForAdjustedAt(_tokenHolder, _blockTimestamp()); } function _getLockedAmountForByPartitionAdjusted( diff --git a/packages/ats/contracts/contracts/layer_0/proceedRecipients/ProceedRecipientsStorageWrapper.sol b/packages/ats/contracts/contracts/layer_0/proceedRecipients/ProceedRecipientsStorageWrapper.sol index e7e5dafab..c54fe6eb3 100644 --- a/packages/ats/contracts/contracts/layer_0/proceedRecipients/ProceedRecipientsStorageWrapper.sol +++ b/packages/ats/contracts/contracts/layer_0/proceedRecipients/ProceedRecipientsStorageWrapper.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity >=0.8.0 <0.9.0; -import { TotalBalancesStorageWrapper } from "../totalBalances/totalBalancesStorageWrapper.sol"; +import { TotalBalancesStorageWrapper } from "../totalBalances/TotalBalancesStorageWrapper.sol"; import { _PROCEED_RECIPIENTS_STORAGE_POSITION, _PROCEED_RECIPIENTS_DATA_STORAGE_POSITION diff --git a/packages/ats/contracts/contracts/layer_0/totalBalances/totalBalancesStorageWrapper.sol b/packages/ats/contracts/contracts/layer_0/totalBalances/TotalBalancesStorageWrapper.sol similarity index 73% rename from packages/ats/contracts/contracts/layer_0/totalBalances/totalBalancesStorageWrapper.sol rename to packages/ats/contracts/contracts/layer_0/totalBalances/TotalBalancesStorageWrapper.sol index e4672b0b8..bade813f3 100644 --- a/packages/ats/contracts/contracts/layer_0/totalBalances/totalBalancesStorageWrapper.sol +++ b/packages/ats/contracts/contracts/layer_0/totalBalances/TotalBalancesStorageWrapper.sol @@ -4,12 +4,16 @@ pragma solidity >=0.8.0 <0.9.0; import { PauseStorageWrapper } from "../core/pause/PauseStorageWrapper.sol"; abstract contract TotalBalancesStorageWrapper is PauseStorageWrapper { - function _getTotalBalance(address _tokenHolder) internal view virtual returns (uint256 totalBalance); + function _getTotalBalance(address /*_tokenHolder*/) internal view virtual returns (uint256 totalBalance) { + return 0; + } function _getTotalBalanceForAdjustedAt( - address tokenHolder, - uint256 timestamp - ) internal view virtual returns (uint256 totalBalance); + address /*_tokenHolder*/, + uint256 /*_timestamp*/ + ) internal view virtual returns (uint256 totalBalance) { + return 0; + } function _getTotalBalanceForByPartitionAdjusted( bytes32 partition, diff --git a/packages/ats/contracts/test/contracts/unit/layer_1/bond/bond.test.ts b/packages/ats/contracts/test/contracts/unit/layer_1/bond/bond.test.ts index e3e8c6917..662f7e28c 100644 --- a/packages/ats/contracts/test/contracts/unit/layer_1/bond/bond.test.ts +++ b/packages/ats/contracts/test/contracts/unit/layer_1/bond/bond.test.ts @@ -14,7 +14,6 @@ import { IHold, ControlList, ClearingActionsFacet, - ProtectedPartitions, FreezeFacet, ClearingTransferFacet, BondUSAReadFacet, @@ -80,7 +79,6 @@ describe("Bond Tests", () => { let ssiManagementFacet: SsiManagement; let controlListFacet: ControlList; let clearingActionsFacet: ClearingActionsFacet; - let protectedPartitionsFacet: ProtectedPartitions; let freezeFacet: FreezeFacet; let clearingTransferFacet: ClearingTransferFacet; let erc3643Facet: IERC3643; @@ -159,7 +157,7 @@ describe("Bond Tests", () => { controlListFacet = await ethers.getContractAt("ControlList", diamond.address, signer_D); clearingActionsFacet = await ethers.getContractAt("ClearingActionsFacet", diamond.address, signer_A); - protectedPartitionsFacet = await ethers.getContractAt("ProtectedPartitions", diamond.address, signer_A); + freezeFacet = await ethers.getContractAt("FreezeFacet", diamond.address, signer_A); clearingTransferFacet = await ethers.getContractAt("ClearingTransferFacet", diamond.address, signer_A);