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