Files
smom-dbis-138/contracts/dbis/BUILD_NOTES.md
defiQUG 2b52cc6e32 refactor(archive): move historical contracts and adapters to archive directory
- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`.
- Updated documentation to reflect the historical status of archived components.
- Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations.
- Enhanced Makefile and package.json scripts for improved contract testing and building processes.
- Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory.
- Updated implementation reports to indicate archived status for various components.
2026-04-12 18:21:05 -07:00

1.4 KiB

DBIS Rail — Build notes

  • Contracts: All DBIS Rail contracts (RootRegistry, ParticipantRegistry, SignerRegistry, SettlementRouter, GRU_MintController, StablecoinReferenceRegistry, Conversion Router) are in this folder and implement Technical Spec v1 and v1.5 add-ons.
  • Tests: test/dbis/DBIS_Rail.t.sol covers submitMintAuth success, replay revert, and signer-revoked-at-block. Uses MockMintableToken for a minimal GRU token in tests.
  • Build: Default Foundry config (via_ir = true, optimizer_runs = 200) builds successfully. Yul stack-too-deep was resolved by:
    • Moving EIP-712 hashing and signature recovery into DBIS_EIP712Helper (and optional historical DBIS_EIP712Lib, now archived at archive/solidity/contracts/dbis/DBIS_EIP712Lib.sol).
    • Extracting the mint loop in DBIS_GRU_MintController.mintFromAuthorization into _mintToRecipients to reduce stack depth.
    • Using StablecoinReferenceRegistry._setEntry for struct assignment and SignerRegistry.hasDuplicateSigners / areSignersActiveAtBlock to keep router loops out of the main path.
  • Deploy: Run DeployDBISRail.s.sol on Chain 138; deploy DBIS_EIP712Helper first and pass its address to both DBIS_SettlementRouter and DBIS_ConversionRouter constructors; then set GRU token on MintController, grant MINTER_ROLE on c* tokens to MintController, register stablecoins, and add venues/quote issuers as needed.