fix(account): add message_hash and parties to GetSignSessionByInviteCode
- Query message_hash from mpc_sessions table and return as hex string - Query participants table to get party_id and party_index - Add parties array to response for Sign.tsx to use 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
b79289bc29
commit
ea66a3987e
|
|
@ -615,13 +615,14 @@ func (h *CoManagedHTTPHandler) GetSignSessionByInviteCode(c *gin.Context) {
|
||||||
var thresholdN, thresholdT int
|
var thresholdN, thresholdT int
|
||||||
var status string
|
var status string
|
||||||
var expiresAt time.Time
|
var expiresAt time.Time
|
||||||
|
var messageHash []byte
|
||||||
|
|
||||||
err := h.db.QueryRowContext(ctx, `
|
err := h.db.QueryRowContext(ctx, `
|
||||||
SELECT id, COALESCE(wallet_name, ''), COALESCE(keygen_session_id::text, ''),
|
SELECT id, COALESCE(wallet_name, ''), COALESCE(keygen_session_id::text, ''),
|
||||||
threshold_n, threshold_t, status, expires_at
|
threshold_n, threshold_t, status, expires_at, message_hash
|
||||||
FROM mpc_sessions
|
FROM mpc_sessions
|
||||||
WHERE invite_code = $1 AND session_type = 'sign'
|
WHERE invite_code = $1 AND session_type = 'sign'
|
||||||
`, inviteCode).Scan(&sessionID, &walletName, &keygenSessionID, &thresholdN, &thresholdT, &status, &expiresAt)
|
`, inviteCode).Scan(&sessionID, &walletName, &keygenSessionID, &thresholdN, &thresholdT, &status, &expiresAt, &messageHash)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
|
|
@ -684,21 +685,52 @@ func (h *CoManagedHTTPHandler) GetSignSessionByInviteCode(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Query participants for this session
|
||||||
|
var parties []gin.H
|
||||||
|
partiesRows, err := h.db.QueryContext(ctx, `
|
||||||
|
SELECT party_id, party_index
|
||||||
|
FROM participants
|
||||||
|
WHERE session_id = $1
|
||||||
|
ORDER BY party_index
|
||||||
|
`, sessionID)
|
||||||
|
if err == nil {
|
||||||
|
defer partiesRows.Close()
|
||||||
|
for partiesRows.Next() {
|
||||||
|
var partyID string
|
||||||
|
var partyIndex int
|
||||||
|
if err := partiesRows.Scan(&partyID, &partyIndex); err == nil {
|
||||||
|
parties = append(parties, gin.H{
|
||||||
|
"party_id": partyID,
|
||||||
|
"party_index": partyIndex,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert message_hash to hex string
|
||||||
|
messageHashHex := ""
|
||||||
|
if len(messageHash) > 0 {
|
||||||
|
messageHashHex = hex.EncodeToString(messageHash)
|
||||||
|
}
|
||||||
|
|
||||||
logger.Info("Found sign session for invite_code",
|
logger.Info("Found sign session for invite_code",
|
||||||
zap.String("invite_code", inviteCode),
|
zap.String("invite_code", inviteCode),
|
||||||
zap.String("session_id", sessionID),
|
zap.String("session_id", sessionID),
|
||||||
zap.String("wallet_name", walletName),
|
zap.String("wallet_name", walletName),
|
||||||
zap.Bool("has_join_token", joinToken != ""))
|
zap.Bool("has_join_token", joinToken != ""),
|
||||||
|
zap.Int("parties_count", len(parties)))
|
||||||
|
|
||||||
c.JSON(http.StatusOK, gin.H{
|
c.JSON(http.StatusOK, gin.H{
|
||||||
"session_id": sessionID,
|
"session_id": sessionID,
|
||||||
"keygen_session_id": keygenSessionID,
|
"keygen_session_id": keygenSessionID,
|
||||||
"wallet_name": walletName,
|
"wallet_name": walletName,
|
||||||
|
"message_hash": messageHashHex,
|
||||||
"threshold_n": thresholdN,
|
"threshold_n": thresholdN,
|
||||||
"threshold_t": thresholdT,
|
"threshold_t": thresholdT,
|
||||||
"status": statusResp.Status,
|
"status": statusResp.Status,
|
||||||
"completed_parties": statusResp.CompletedParties,
|
"completed_parties": statusResp.CompletedParties,
|
||||||
"total_parties": statusResp.TotalParties,
|
"total_parties": statusResp.TotalParties,
|
||||||
|
"parties": parties,
|
||||||
"expires_at": expiresAt.UnixMilli(),
|
"expires_at": expiresAt.UnixMilli(),
|
||||||
"join_token": joinToken,
|
"join_token": joinToken,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue