Skip to content

Commit fdc50e5

Browse files
committed
feat: sync codebase from develop to main
Syncs all codebase changes from develop branch to main (excluding workflow files): - Smart contracts (packages/ats/contracts/) - SDK (packages/ats/sdk/) - Web application (apps/ats/web/) - Mass payout packages - Tests, documentation, configuration files Includes features from develop: - T-REX SDK enhancements - Bond coupon system improvements - UI/UX fixes and refactoring - Workspace dependency alignment - Version alignment to 1.17.0 - Scripts refactoring - Changesets implementation - Mass-payout build fixes Part 2/2 of develop→main sync (codebase changes). Workflow files are in PR #712. Signed-off-by: Miguel_LZPF <[email protected]>
1 parent 82f334a commit fdc50e5

File tree

605 files changed

+85176
-55382
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

605 files changed

+85176
-55382
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": minor
3+
---
4+
5+
feat: export missing utilities and enhance deployment tracking
6+
7+
Export missing infrastructure and domain utilities from scripts index:
8+
9+
- Export Hedera utilities (`fetchHederaContractId`, `getMirrorNodeUrl`, `isHederaNetwork`) for mirror node integration
10+
- Export deployment file utilities (`loadDeployment`, `findLatestDeployment`, `listDeploymentFiles`) for deployment management
11+
- Export verification utilities (`verifyContract`, `verifyContractCode`, `verifyContractInterface`) for post-deployment validation
12+
- Export selector utility (`getSelector`) for function selector generation
13+
- Export transparent proxy deployment operation (`deployTransparentProxy`)
14+
- Export bond token deployment from factory (`deployBondFromFactory`)
15+
16+
Enhance deployment workflows with better tracking:
17+
18+
- Add optional `existingBlrImplementation` parameter to track BLR implementation address when using existing BLR
19+
- Replace ambiguous `contractId` field with explicit `implementationContractId` and `proxyContractId` fields for proxied contracts (BLR, Factory)
20+
- Improve deployment documentation and upgrade history tracking
21+
- Better integration with Hedera tooling requiring explicit contract IDs
22+
23+
These changes improve the public API consistency and provide better deployment documentation for downstream consumers like GBP.

.changeset/brave-docs-update.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": patch
3+
---
4+
5+
Update DEVELOPER_GUIDE.md with current architecture and comprehensive script documentation including core operations, modules, and workflow patterns

.changeset/few-parks-share.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": minor
3+
"@hashgraph/asset-tokenization-sdk": minor
4+
"@hashgraph/asset-tokenization-dapp": patch
5+
---
6+
7+
full redeem at maturity method added
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": patch
3+
---
4+
5+
fix: enable clean imports from /scripts path with Hardhat compatibility
6+
7+
Fixed npm package exports to enable clean imports:
8+
9+
- Import from `@hashgraph/asset-tokenization-contracts/scripts` instead of `/build/scripts`
10+
- Added `typesVersions` field for legacy TypeScript `moduleResolution: "node"` compatibility (required by Hardhat)
11+
- Added missing runtime dependencies: `tslib` and `dotenv`
12+
- Removed duplicate export entry that caused confusion
13+
- Added package validation tools: `publint` and `@arethetypeswrong/cli`
14+
15+
This maintains full compatibility with Hardhat v2 CommonJS requirements while providing proper TypeScript type resolution.

.changeset/mighty-lights-burn.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hashgraph/asset-tokenization-dapp": patch
3+
---
4+
5+
Add number of decimals to nominal value in bonds and equity in web app

.changeset/nine-bushes-act.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": minor
3+
---
4+
5+
Bond and Equity storage layout updated to avoid breaking change and inconsistency with previous versions
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
'@hashgraph/asset-tokenization-contracts': minor
3+
---
4+
5+
Refactor deployment scripts into modular infrastructure/domain architecture with framework-agnostic provider pattern and automated registry generation.
6+
7+
**Breaking Changes:**
8+
9+
- Deployment scripts API changed: operations now require `DeploymentProvider` parameter
10+
- Import paths changed to `@scripts/infrastructure` and `@scripts/domain` aliases
11+
- Removed legacy command/query/result patterns and monolithic scripts
12+
- Scripts reorganized: infrastructure/ (generic, reusable) and domain/ (ATS-specific)
13+
- Some function signatures changed for consistency with provider pattern
14+
15+
**Architecture:**
16+
17+
- **Infrastructure/Domain Separation**: Strict separation between generic operations (infrastructure/) and ATS-specific business logic (domain/)
18+
- **DeploymentProvider Interface**: Framework-agnostic deployment abstraction enabling scripts to work with Hardhat OR standalone Node.js
19+
- **Provider Implementations**: HardhatProvider (uses Hardhat ethers) and StandaloneProvider (pure ethers.js)
20+
- **Modular Operations**: Atomic deployment operations (deployBlr, deployFacets, createBatchConfiguration, deployProxy, upgradeProxy)
21+
- **Workflow Compositions**: High-level orchestration (deployCompleteSystem, deployWithExistingBlr)
22+
23+
**Registry System Enhancements:**
24+
25+
- **Automated Generation**: Registry regenerates automatically after compilation (integrated into Hardhat build)
26+
- **Event/Error Deduplication**: Filters out StorageWrapper base classes during inheritance (AccessControlFacet: 51→4 events, 88% reduction)
27+
- **Expanded Metadata**: 49 facets | 2 infrastructure contracts | 29 storage wrappers | 28 unique roles
28+
- **Rich Metadata**: Full inheritance chains, method signatures with selectors, events with topic0, custom errors
29+
- **Minimal Output Mode**: Uses LogLevel system for quiet compilation output
30+
- **Zero Warnings**: TimeTravelFacet correctly excluded from resolver key and variant checks
31+
32+
**External Facet Extensibility:**
33+
34+
- Enable downstream projects (e.g., Green Bonds Platform) to deploy custom facets alongside ATS facets
35+
- `deployFacets()` and `createBatchConfiguration()` accept facets not in ATS registry
36+
- `RegistryProvider` interface for dependency injection pattern
37+
- Registry generation tools exported for downstream use
38+
39+
**Code Quality:**
40+
41+
- **Deduplication**: 90% code duplication eliminated between equity/bond modules (240 lines removed)
42+
- **Magic Numbers**: Eliminated across 175 test files, replaced with named constants
43+
- **Type Safety**: Fixed 748 TypeScript errors with proper Hardhat plugin type references
44+
- **Test Modernization**: All test fixtures updated to use new modular deployment approach
45+
46+
**Facet Standardization:**
47+
48+
- All facets follow `*Facet.sol` naming convention
49+
- TimeTravel variants follow `*FacetTimeTravel.sol` pattern
50+
- ERC20Votes split into library (ERC20Votes.sol) + facet (ERC20VotesFacet.sol)
51+
52+
**Performance:**
53+
54+
- Full build: 43.5s → 45.3s (+1.8s, 4% overhead for registry)
55+
- Registry generation: ~1.5s standalone
56+
- Net code reduction: 2,947 lines (29,203 insertions, 32,150 deletions across 175 files)

.changeset/silent-cities-deny.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
'@hashgraph/asset-tokenization-contracts': major
3+
'@hashgraph/asset-tokenization-sdk': major
4+
'@hashgraph/asset-tokenization-dapp': major
5+
---
6+
7+
nominal value decimals added to Bonds and Equities.
8+
Now the nominal value decimals must be provided when deploying new Bonds/Equities and must be retrieved when reading the nominal value.

.changeset/silent-things-swim.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": minor
3+
"@hashgraph/asset-tokenization-sdk": minor
4+
"@hashgraph/asset-tokenization-dapp": minor
5+
---
6+
7+
Dividend Amount For added

.changeset/silver-taxes-kiss.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hashgraph/asset-tokenization-contracts": patch
3+
---
4+
5+
fix base implementation in TotalBalanceStorageWrapper

0 commit comments

Comments
 (0)