@pear-protocol/symmio-client 0.3.9 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25087,68 +25087,96 @@ async function internalTransfer(walletClient, publicClient, multiAccount, subAcc
25087
25087
  }
25088
25088
 
25089
25089
  // src/clients/muon.ts
25090
- function parseSchnorrSign(sigs) {
25091
- return {
25092
- signature: BigInt(sigs.signature),
25093
- owner: sigs.owner,
25094
- nonce: sigs.nonce
25095
- };
25090
+ function normalizeSignParams(raw) {
25091
+ if (Array.isArray(raw)) {
25092
+ const out = {};
25093
+ for (const entry of raw) {
25094
+ if (entry && typeof entry === "object" && "name" in entry) {
25095
+ const e = entry;
25096
+ out[e.name] = e.value;
25097
+ }
25098
+ }
25099
+ return out;
25100
+ }
25101
+ return raw ?? {};
25096
25102
  }
25097
- function parseSingleUpnlSig(result) {
25103
+ function unwrapMuonResult(result) {
25098
25104
  const data = result["result"];
25099
25105
  if (!data) {
25100
25106
  throw new SymmioSDKError("Invalid Muon response: missing result", "MUON_PARSE_ERROR");
25101
25107
  }
25102
25108
  const sigData = data["data"];
25103
- const signParams = sigData?.["signParams"] ?? data["signParams"];
25104
- const signatures = sigData?.["signatures"] ?? data["signatures"];
25109
+ return {
25110
+ signParams: normalizeSignParams(sigData?.["signParams"] ?? data["signParams"]),
25111
+ signatures: sigData?.["signatures"] ?? data["signatures"] ?? [],
25112
+ init: sigData?.["init"] ?? data["init"]
25113
+ };
25114
+ }
25115
+ function extractSchnorrSign(signParams, signatures, init) {
25116
+ const inline = signParams["sigs"];
25117
+ if (inline?.signature !== void 0) {
25118
+ return {
25119
+ signature: BigInt(inline.signature),
25120
+ owner: inline.owner,
25121
+ nonce: inline.nonce
25122
+ };
25123
+ }
25124
+ const sig = signatures?.[0];
25125
+ if (!sig?.["signature"]) {
25126
+ throw new SymmioSDKError(
25127
+ "Invalid Muon response: missing schnorr signature",
25128
+ "MUON_PARSE_ERROR"
25129
+ );
25130
+ }
25131
+ const nonceAddress = init?.["nonceAddress"] ?? sig["nonce"] ?? signParams["nonce"];
25132
+ if (!nonceAddress) {
25133
+ throw new SymmioSDKError(
25134
+ "Invalid Muon response: missing nonce address",
25135
+ "MUON_PARSE_ERROR"
25136
+ );
25137
+ }
25138
+ return {
25139
+ signature: BigInt(sig["signature"]),
25140
+ owner: sig["owner"],
25141
+ nonce: nonceAddress
25142
+ };
25143
+ }
25144
+ function gatewaySigOf(signatures) {
25145
+ return signatures?.[0]?.["signature"] ?? "0x";
25146
+ }
25147
+ function parseSingleUpnlSig(result) {
25148
+ const { signParams, signatures, init } = unwrapMuonResult(result);
25105
25149
  return {
25106
25150
  reqId: signParams["reqId"],
25107
25151
  timestamp: BigInt(signParams["timestamp"]),
25108
25152
  upnl: BigInt(signParams["upnl"]),
25109
- gatewaySignature: signatures?.[0]?.["signature"] ?? "0x",
25110
- sigs: parseSchnorrSign(
25111
- signParams["sigs"] ?? signatures?.[1]
25112
- )
25153
+ gatewaySignature: gatewaySigOf(signatures),
25154
+ sigs: extractSchnorrSign(signParams, signatures, init)
25113
25155
  };
25114
25156
  }
25115
25157
  function parseSingleUpnlAndPriceSig(result) {
25116
- const data = result["result"];
25117
- if (!data) {
25118
- throw new SymmioSDKError("Invalid Muon response: missing result", "MUON_PARSE_ERROR");
25119
- }
25120
- const sigData = data["data"];
25121
- const signParams = sigData?.["signParams"] ?? data["signParams"];
25122
- const signatures = sigData?.["signatures"] ?? data["signatures"];
25158
+ const { signParams, signatures, init } = unwrapMuonResult(result);
25123
25159
  return {
25124
25160
  reqId: signParams["reqId"],
25125
25161
  timestamp: BigInt(signParams["timestamp"]),
25126
25162
  upnl: BigInt(signParams["upnl"]),
25127
25163
  price: BigInt(signParams["price"]),
25128
- gatewaySignature: signatures?.[0]?.["signature"] ?? "0x",
25129
- sigs: parseSchnorrSign(
25130
- signParams["sigs"] ?? signatures?.[1]
25131
- )
25164
+ gatewaySignature: gatewaySigOf(signatures),
25165
+ sigs: extractSchnorrSign(signParams, signatures, init)
25132
25166
  };
25133
25167
  }
25134
25168
  function parseBatchSig(result) {
25135
- const data = result["result"];
25136
- if (!data) {
25137
- throw new SymmioSDKError("Invalid Muon response: missing result", "MUON_PARSE_ERROR");
25138
- }
25139
- const sigData = data["data"];
25140
- const signParams = sigData?.["signParams"] ?? data["signParams"];
25141
- const signatures = sigData?.["signatures"] ?? data["signatures"];
25169
+ const { signParams, signatures, init } = unwrapMuonResult(result);
25170
+ const prices = signParams["prices"];
25171
+ const symbolIds = signParams["symbolIds"];
25142
25172
  return {
25143
25173
  reqId: signParams["reqId"],
25144
25174
  timestamp: BigInt(signParams["timestamp"]),
25145
25175
  upnl: BigInt(signParams["upnl"]),
25146
- prices: signParams["prices"].map((p) => BigInt(p)),
25147
- symbolIds: signParams["symbolIds"].map((s) => BigInt(s)),
25148
- gatewaySignature: signatures?.[0]?.["signature"] ?? "0x",
25149
- sigs: parseSchnorrSign(
25150
- signParams["sigs"] ?? signatures?.[1]
25151
- )
25176
+ prices: (prices ?? []).map((p) => BigInt(p)),
25177
+ symbolIds: (symbolIds ?? []).map((s) => BigInt(s)),
25178
+ gatewaySignature: gatewaySigOf(signatures),
25179
+ sigs: extractSchnorrSign(signParams, signatures, init)
25152
25180
  };
25153
25181
  }
25154
25182
  var MuonClient = class {