From b688b0176e66539bf8ac400cad40c1867198603d Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 30 Dec 2025 19:16:38 -0800 Subject: [PATCH] fix(service-party-app): serialize BigInt to string for sessionStorage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BigInt cannot be serialized by JSON.stringify. Convert gasLimit, maxFeePerGas, maxPriorityFeePerGas, and value to strings before storing in sessionStorage. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../services/service-party-app/src/pages/Home.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/mpc-system/services/service-party-app/src/pages/Home.tsx b/backend/mpc-system/services/service-party-app/src/pages/Home.tsx index 67eb62f8..24f0c8d3 100644 --- a/backend/mpc-system/services/service-party-app/src/pages/Home.tsx +++ b/backend/mpc-system/services/service-party-app/src/pages/Home.tsx @@ -288,13 +288,21 @@ export default function Home() { if (result.success && result.sessionId) { // 保存交易信息到 sessionStorage,以便签名完成后使用 - sessionStorage.setItem(`tx_${result.sessionId}`, JSON.stringify({ - preparedTx, + // 注意: BigInt 无法直接 JSON 序列化,需要转换为字符串 + const txToStore = { + preparedTx: { + ...preparedTx, + gasLimit: preparedTx.gasLimit.toString(), + maxFeePerGas: preparedTx.maxFeePerGas.toString(), + maxPriorityFeePerGas: preparedTx.maxPriorityFeePerGas.toString(), + value: preparedTx.value.toString(), + }, to: transferTo, amount: transferAmount, from: transferShare.evmAddress, walletName: transferShare.walletName, - })); + }; + sessionStorage.setItem(`tx_${result.sessionId}`, JSON.stringify(txToStore)); // 关闭模态框并跳转到签名会话页面 handleCloseTransfer();