Conversation
- Implemented a new POST endpoint `/cross-id-check` to validate cap table data from the request body. - Added error handling for empty requests and validation errors, returning appropriate HTTP status codes and messages. - Enhanced logging for server errors during the verification process.
Created with git submodule add --name fairmint-canton --force https://github.com/Fairmint/canton src/chain-operations/canton/lib/fairmint-canton
POC Canton demo integration
There was a problem hiding this comment.
Bug: Missing Parameter Causes Deployment Failure
The deployCapTable function now requires a fourth issuer parameter. Existing callers, such as the /issuer/create-fairmint-reflection route, were not updated and still pass only three arguments. When a Canton chain ID is used, the issuer parameter is undefined, causing deployCapTableCanton to throw a TypeError when attempting to access issuer.legal_name. This prevents cap-table deployment and breaks issuer creation on Canton networks.
src/chain-operations/deployCapTable.js#L23-L32
open-captable-protocol/src/chain-operations/deployCapTable.js
Lines 23 to 32 in 65c5d1a
Bug: Canton Chain ID Handling Regression
The getContractInstance() function now returns null for Canton chain IDs. Existing read-only routes (e.g., /stockClass/id/:id, /stakeholder/id/:id) unconditionally use req.contract without null-checking, causing "Cannot read properties of null" errors when attempting to invoke contract methods. This regression breaks these previously working endpoints for Canton issuers.
src/chain-operations/getContractInstances.js#L17-L23
open-captable-protocol/src/chain-operations/getContractInstances.js
Lines 17 to 23 in 65c5d1a
Was this report helpful? Give feedback by reacting with 👍 or 👎
What?
Please describe what you're trying to accomplish in this PR.
Why?
What problem does this solve? Why is this important? What's the context?
Screenshots (optional)