Debug and troubleshoot common issues with the Orderly SDK including errors, WebSocket issues, authentication problems, and trading failures.
全面指南,用于调试常见问题、处理错误以及排查 Orderly SDK 的各类故障。
Uncaught ReferenceError: Buffer is not defined
原因:钱包库使用了浏览器中不存在的 Node.js 内置模块(Buffer、crypto)。
解决方案:添加 vite-plugin-node-polyfills:
bash
npm install -D vite-plugin-node-polyfills
ts
// vite.config.ts
import { nodePolyfills } from vite-plugin-node-polyfills;
export default defineConfig({
plugins: [
react(),
nodePolyfills({
include: [buffer, crypto, stream, util],
globals: {
Buffer: true,
global: true,
process: true,
},
}),
],
});
ENOENT: no such file or directory, open @orderly.network/trading/dist/styles.css
原因:只有 @orderly.network/ui 包含 CSS 文件。
解决方案:仅从 @orderly.network/ui 导入:
css
/ 正确 - 只有 ui 包包含 CSS /
@import @orderly.network/ui/dist/styles.css;
/ 错误 - 这些路径不存在 /
/ @import @orderly.network/trading/dist/styles.css; /
/ @import @orderly.network/portfolio/dist/styles.css; /
| 代码 | 消息 | 原因 | 解决方案 |
|---|---|---|---|
| -1000 | 未知错误 | 服务器错误 | 重试请求 |
| -1002 |
| 代码 | 消息 | 原因 | 解决方案 |
|---|---|---|---|
| -2001 | 余额不足 | USDC 不够 | 存入更多资金 |
| -2002 |
| 代码 | 消息 | 原因 | 解决方案 |
|---|---|---|---|
| -3001 | 余额不足 | 可用余额不足 | 检查未结算盈亏 |
| -3002 |
tsx
import { useWsStatus, WsNetworkStatus } from @orderly.network/hooks;
function ConnectionIndicator() {
const wsStatus = useWsStatus();
return (
| 状态 | 描述 |
|---|---|
| Connected | WebSocket 已连接且正常工作 |
| Unstable |
tsx
import { useAccount, AccountStatusEnum } from @orderly.network/hooks;
function AccountDebugger() {
const { state, account } = useAccount();
useEffect(() => {
console.log(账户状态:, {
status: state.status,
address: state.address,
userId: state.userId,
accountId: state.accountId,
hasOrderlyKey: !!account?.keyStore?.getOrderlyKey(),
});
}, [state, account]);
// 常见问题:
switch (state.status) {
case AccountStatusEnum.NotConnected:
return
钱包未连接
;钱包已连接,未登录
;需要签名消息以创建 Orderly 密钥
;已完成身份验证
;| 问题 | 原因 | 解决方案 |
|---|---|---|
| 卡在已连接状态 | 用户未签名 | 提示用户签名 |
| 密钥已过期 |
tsx
import { useOrderEntry } from @orderly.network/hooks;
function OrderDebugger() {
const { formattedOrder, metaState, helper } = useOrderEntry(PERPETHUSDC);
// 检查验证错误
if (metaState.errors) {
console.log(订单错误:, metaState.errors);
}
// 检查订单就绪状态
console.log(订单就绪:, {
canSubmit: !metaState.errors && formattedOrder,
maxQty: helper.maxQty,
estLiqPrice: helper.estLiqPrice,
});
}
tsx
async function submitOrderWithDebug(order) {
try {
const result = await submit();
console.log(订单已提交:, result);
} catch (error) {
console.error(订单失败:, {
code: error.code,
message: error.message,
});
if (error.code === -2001) {
console.log(修复: 存入更多 USDC 或减小订单规模);
} else if (error.code === -2002) {
console.log(修复: 降低杠杆或减小仓位规模);
}
throw error;
}
}
tsx
import { useDeposit } from @orderly.network/hooks;
function DepositDebugger() {
const { deposit, balance, allowance, approve } = useDeposit();
const handleDeposit = async (amount) => {
console.log(充值调试:, {
amount,
walletBalance: balance,
currentAllowance: allowance,
needsApproval: Number(amount) > Number(allowance),
});
try {
if (Number(amount) > Number(allowance)) {
console.log(正在授权 USDC...);
await approve(amount);
}
console.log(正在充值...);
const result = await deposit();
console.log(充值成功:, result);
} catch (error) {
console.error(充值失败:, error);
if (error.message.includes(user rejected)) {
console.log(用户拒绝了交易);
} else if (error.message.includes(insufficient)) {
console.log(余额或 Gas 不足);
}
}
};
}
tsx
// 记录所有钩子状态变化
function useDebugHook(hookName, value) {
useEffect(() => {
console.log([${hookName}], value);
}, [value, hookName]);
return value;
}
// 使用示例
const positions = useDebugHook(positions, usePositionStream().positions);
Access to fetch at https://api.orderly.org/... has been blocked by CORS
解决方案:
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 orderly-sdk-debugging-1776195781 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 orderly-sdk-debugging-1776195781 技能
skillhub install orderly-sdk-debugging-1776195781
文件大小: 4.55 KB | 发布时间: 2026-4-15 12:20