Skip to content

Beta boe - #71

Closed
manishdex25 wants to merge 2 commits into
masterfrom
beta-boe
Closed

Beta boe#71
manishdex25 wants to merge 2 commits into
masterfrom
beta-boe

Conversation

@manishdex25

@manishdex25 manishdex25 commented Aug 7, 2026

Copy link
Copy Markdown

Summary

What is the background of this pull request?

Changes

  • What are the changes made in this pull request?
  • Change this and that, etc...

Issues

What are the related issues or stories?

Releases

Channels: latest
ETA: Any target release date

Summary by CodeRabbit

  • New Features

    • Added obligation title support with TrustVC tokens and escrow workflows.
    • Added escrow lifecycle management, including acceptance, rejection, discharge, transfers, issuer returns, and shredding.
    • Added deterministic escrow address creation and lookup.
    • Added utilities and contract interface support for integrating with obligation escrows.
  • Documentation

    • Expanded the README with obligation title workflows, lifecycle guidance, access controls, and deployment instructions.
  • Release

    • Added beta release channel support and included the new contracts in published packages.

manishdex25 and others added 2 commits July 30, 2026 13:23
* feat: implement ObligationEscrow and related factories

- Added ObligationEscrow contract for managing title custody and status lifecycle.
- Introduced ObligationEscrowFactory for deploying upgradeable ObligationEscrow instances.
- Created ObligationRegistryFactory to deploy ObligationToken proxies linked to the ObligationEscrowFactory.
- Defined interfaces and error handling for ObligationEscrow and its factory.
- Updated hardhat configuration to include new compiler settings and output selection.
- Added utility functions for computing ObligationEscrow addresses.

* feat: add Obligation contracts and tests

- Added ObligationEscrow, ObligationEscrowFactory, ObligationToken, and ObligationRegistryFactory contracts.
- Implemented tests for ObligationEscrow and ObligationEscrowFactory, covering lifecycle and ownership functionalities.
- Updated package.json to include new contract files.
- Created fixture files for deploying Obligation contracts in tests.

* refactor: rename ObligationToken to TradeTrustObligationToken and update related contracts

- Replaced all instances of ObligationToken with TradeTrustObligationToken across contracts and tests.
- Updated the ObligationRegistryFactory to deploy TradeTrustObligationToken proxies.
- Removed the obsolete ObligationToken contract and its associated interface and errors.
- Adjusted test files and fixtures to reflect the new token name and ensure compatibility.

* refactor: replace TradeTrustObligationToken with TrustVCToken across contracts and tests

- Renamed TradeTrustObligationToken to TrustVCToken in relevant contracts and interfaces.
- Updated ObligationRegistryFactory to deploy TrustVCToken proxies instead of TradeTrustObligationToken.
- Removed the obsolete TradeTrustObligationToken contract and its associated interface and errors.
- Adjusted test files and fixtures to reflect the new token name and ensure compatibility.

* refactor: update interface support and clean up code in ObligationEscrow and TrustVCToken

- Removed the ITitleEscrow interface import from ObligationEscrow and updated the supportsInterface function to reflect this change.
- Modified the _setBeneficiary function to use an empty string instead of "0x" when setting the nominee.
- Updated the burnFromEscrow function in TrustVCToken to pass the remark parameter correctly during the registry transfer.
- Cleaned up related tests by removing the check for ITitleEscrow interface support.

* refactor: update ObligationEscrow and ObligationEscrowFactory for improved functionality

- Refactored the ObligationEscrow contract to utilize a new constructor pattern and introduced a private _setStatus function for status transitions.
- Updated the ObligationEscrowFactory to deploy non-upgradeable clones instead of upgradeable beacons, simplifying the deployment process.
- Removed the obsolete ObligationRegistryFactory contract and its associated tests, streamlining the codebase.
- Adjusted related tests to reflect changes in the factory and escrow implementations, ensuring compatibility with the new structure.
- Updated .gitignore to exclude new dependency files.

* refactor: enhance deployObligationEscrowFactoryFixture to support multiple signer types

- Updated the deployObligationEscrowFactoryFixture function to accept both SignerWithAddress and Signer types for the deployer parameter, improving flexibility in testing scenarios.

* refactor: replace enums with const objects for Status and TerminationReason in tests

- Updated the ObligationEscrow and TrustVCToken test files to replace enum declarations with const objects for Status and TerminationReason, enhancing type safety and consistency.
- Simplified the deployObligationEscrowFactoryFixture function signature for improved readability.

* chore: retrigger CI after PR title conventional-commit fix

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: remove obsolete configuration and scenario files

- Deleted remix.config.json and scenario.json as they are no longer needed, streamlining the project structure.

* Update contracts/ObligationEscrow.sol

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update test/ObligationEscrowFactory.test.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: retrigger failed jobs

* fix: correct documentation and variable names in ObligationEscrow and tests

- Updated the documentation comment in ObligationEscrow to fix the formatting of the `@notice` tag.
- Renamed `fakeRegistryAddress` to `registryAddress` in the test file for clarity and consistency.
- Adjusted the initialization calls in tests to use the updated `registryAddress` variable, ensuring accurate contract behavior during tests.

* chore: update package version and add beta branch for releases

- Bumped the package version to 5.5.2-beta.1 in package.json.
- Added a new beta-boe branch to the release workflow for managing beta releases.

* Update contracts/ObligationEscrow.sol

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: enhance Hardhat configuration for output selection

- Updated the Hardhat configuration to include additional output selections: `abi`, `evm.bytecode`, and `evm.deployedBytecode`, alongside `storageLayout`, improving the build output for contract deployments.

* Update hardhat.config.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* refactor: simplify Hardhat configuration by removing unnecessary compiler settings

* Update hardhat.config.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* docs: update README to reflect changes in TradeTrust documentation

- Revised the description to include Electronic Title Records (ETR) and Obligation Titles (BoE).
- Added detailed sections for TrustVCToken and Obligation Escrow, including usage examples and status lifecycle.
- Enhanced the Table of Contents for better navigation.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat: implement ObligationEscrow and related factories

- Added ObligationEscrow contract for managing title custody and status lifecycle.
- Introduced ObligationEscrowFactory for deploying upgradeable ObligationEscrow instances.
- Created ObligationRegistryFactory to deploy ObligationToken proxies linked to the ObligationEscrowFactory.
- Defined interfaces and error handling for ObligationEscrow and its factory.
- Updated hardhat configuration to include new compiler settings and output selection.
- Added utility functions for computing ObligationEscrow addresses.

* feat: add Obligation contracts and tests

- Added ObligationEscrow, ObligationEscrowFactory, ObligationToken, and ObligationRegistryFactory contracts.
- Implemented tests for ObligationEscrow and ObligationEscrowFactory, covering lifecycle and ownership functionalities.
- Updated package.json to include new contract files.
- Created fixture files for deploying Obligation contracts in tests.

* refactor: rename ObligationToken to TradeTrustObligationToken and update related contracts

- Replaced all instances of ObligationToken with TradeTrustObligationToken across contracts and tests.
- Updated the ObligationRegistryFactory to deploy TradeTrustObligationToken proxies.
- Removed the obsolete ObligationToken contract and its associated interface and errors.
- Adjusted test files and fixtures to reflect the new token name and ensure compatibility.

* refactor: replace TradeTrustObligationToken with TrustVCToken across contracts and tests

- Renamed TradeTrustObligationToken to TrustVCToken in relevant contracts and interfaces.
- Updated ObligationRegistryFactory to deploy TrustVCToken proxies instead of TradeTrustObligationToken.
- Removed the obsolete TradeTrustObligationToken contract and its associated interface and errors.
- Adjusted test files and fixtures to reflect the new token name and ensure compatibility.

* refactor: update interface support and clean up code in ObligationEscrow and TrustVCToken

- Removed the ITitleEscrow interface import from ObligationEscrow and updated the supportsInterface function to reflect this change.
- Modified the _setBeneficiary function to use an empty string instead of "0x" when setting the nominee.
- Updated the burnFromEscrow function in TrustVCToken to pass the remark parameter correctly during the registry transfer.
- Cleaned up related tests by removing the check for ITitleEscrow interface support.

* refactor: update ObligationEscrow and ObligationEscrowFactory for improved functionality

- Refactored the ObligationEscrow contract to utilize a new constructor pattern and introduced a private _setStatus function for status transitions.
- Updated the ObligationEscrowFactory to deploy non-upgradeable clones instead of upgradeable beacons, simplifying the deployment process.
- Removed the obsolete ObligationRegistryFactory contract and its associated tests, streamlining the codebase.
- Adjusted related tests to reflect changes in the factory and escrow implementations, ensuring compatibility with the new structure.
- Updated .gitignore to exclude new dependency files.

* refactor: enhance deployObligationEscrowFactoryFixture to support multiple signer types

- Updated the deployObligationEscrowFactoryFixture function to accept both SignerWithAddress and Signer types for the deployer parameter, improving flexibility in testing scenarios.

* refactor: replace enums with const objects for Status and TerminationReason in tests

- Updated the ObligationEscrow and TrustVCToken test files to replace enum declarations with const objects for Status and TerminationReason, enhancing type safety and consistency.
- Simplified the deployObligationEscrowFactoryFixture function signature for improved readability.

* chore: retrigger CI after PR title conventional-commit fix

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: remove obsolete configuration and scenario files

- Deleted remix.config.json and scenario.json as they are no longer needed, streamlining the project structure.

* Update contracts/ObligationEscrow.sol

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update test/ObligationEscrowFactory.test.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: retrigger failed jobs

* fix: correct documentation and variable names in ObligationEscrow and tests

- Updated the documentation comment in ObligationEscrow to fix the formatting of the `@notice` tag.
- Renamed `fakeRegistryAddress` to `registryAddress` in the test file for clarity and consistency.
- Adjusted the initialization calls in tests to use the updated `registryAddress` variable, ensuring accurate contract behavior during tests.

* chore: update package version and add beta branch for releases

- Bumped the package version to 5.5.2-beta.1 in package.json.
- Added a new beta-boe branch to the release workflow for managing beta releases.

* Update contracts/ObligationEscrow.sol

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: enhance Hardhat configuration for output selection

- Updated the Hardhat configuration to include additional output selections: `abi`, `evm.bytecode`, and `evm.deployedBytecode`, alongside `storageLayout`, improving the build output for contract deployments.

* Update hardhat.config.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* refactor: simplify Hardhat configuration by removing unnecessary compiler settings

* Update hardhat.config.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* docs: update README to reflect changes in TradeTrust documentation

- Revised the description to include Electronic Title Records (ETR) and Obligation Titles (BoE).
- Added detailed sections for TrustVCToken and Obligation Escrow, including usage examples and status lifecycle.
- Enhanced the Table of Contents for better navigation.

* chore: update GitHub Actions workflow for release process

- Upgraded actions/checkout and actions/setup-node to version 4 for improved performance.
- Changed the semantic release step to run npm script directly instead of using the semantic-release-action.
- Removed the output step for new release version as it is no longer needed.

* Update .github/workflows/release.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: retrigger checks

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@manishdex25 manishdex25 closed this Aug 7, 2026
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0bfd9ab2-8e94-4c63-a280-ba0395050dbb

📥 Commits

Reviewing files that changed from the base of the PR and between 857ac29 and 7f1ef91.

📒 Files selected for processing (26)
  • .github/workflows/release.yml
  • .gitignore
  • README.md
  • contracts/ObligationEscrow.sol
  • contracts/ObligationEscrowFactory.sol
  • contracts/TrustVCToken.sol
  • contracts/interfaces/IObligationEscrow.sol
  • contracts/interfaces/IObligationEscrowFactory.sol
  • contracts/interfaces/ITrustVCToken.sol
  • contracts/interfaces/ObligationEscrowErrors.sol
  • contracts/interfaces/ObligationEscrowFactoryErrors.sol
  • contracts/interfaces/TrustVCTokenErrors.sol
  • contracts/mocks/ObligationEscrowFactoryCallerMock.sol
  • hardhat.config.ts
  • package.json
  • src/constants/contract-interface-id.ts
  • src/constants/contract-interfaces.ts
  • src/utils/compute-obligation-escrow-address.ts
  • src/utils/index.ts
  • test/ObligationEscrow.test.ts
  • test/ObligationEscrowFactory.test.ts
  • test/TrustVCToken.test.ts
  • test/fixtures/deploy-obligation-escrow-factory.fixture.ts
  • test/fixtures/deploy-obligation-escrow.fixture.ts
  • test/fixtures/deploy-trustvc-token.fixture.ts
  • test/fixtures/index.ts

📝 Walkthrough

Walkthrough

Adds the TrustVCToken registry, deterministic ObligationEscrow clones, escrow lifecycle operations, TypeScript address utilities, comprehensive tests, documentation, and beta release configuration.

Changes

Obligation title stack

Layer / File(s) Summary
Contracts and interfaces
contracts/interfaces/*
Defines escrow status, ownership, lifecycle, factory, token, and custom-error interfaces.
Factory and token deployment
contracts/ObligationEscrowFactory.sol, contracts/TrustVCToken.sol, contracts/mocks/*, test/ObligationEscrowFactory.test.ts, test/TrustVCToken.test.ts, test/fixtures/*
Creates deterministic escrow clones and connects TrustVCToken to escrow-authorized minting and burning.
Escrow lifecycle and custody
contracts/ObligationEscrow.sol, test/ObligationEscrow.test.ts, test/fixtures/deploy-obligation-escrow.fixture.ts
Implements registration, status transitions, nominations, ownership transfers, transfer rejection, issuer returns, shredding, custody checks, and pause or inactive guards.
SDK and build integration
src/constants/*, src/utils/*, hardhat.config.ts
Adds the escrow interface mapping, deterministic CREATE2 address computation, public utility export, and expanded compiler artifacts.
Documentation and beta release
README.md, package.json, .github/workflows/release.yml, .gitignore
Documents obligation title workflows and configures beta packaging, release execution, and ignored dependency files.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant TrustVCToken
  participant ObligationEscrowFactory
  participant ObligationEscrow
  TrustVCToken->>ObligationEscrowFactory: create(tokenId)
  ObligationEscrowFactory->>ObligationEscrow: initialize registry and token
  ObligationEscrow->>TrustVCToken: burnFromEscrow(tokenId, remark)
Loading

Possibly related PRs

Suggested labels: released on @beta``

Suggested reviewers: rongquan1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch beta-boe

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant