@pear-protocol/symmio-client 0.3.8 → 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.
package/dist/index.mjs CHANGED
@@ -23325,68 +23325,96 @@ function validateQuantity(quantity) {
23325
23325
  }
23326
23326
 
23327
23327
  // src/clients/muon.ts
23328
- function parseSchnorrSign(sigs) {
23329
- return {
23330
- signature: BigInt(sigs.signature),
23331
- owner: sigs.owner,
23332
- nonce: sigs.nonce
23333
- };
23328
+ function normalizeSignParams(raw) {
23329
+ if (Array.isArray(raw)) {
23330
+ const out = {};
23331
+ for (const entry of raw) {
23332
+ if (entry && typeof entry === "object" && "name" in entry) {
23333
+ const e = entry;
23334
+ out[e.name] = e.value;
23335
+ }
23336
+ }
23337
+ return out;
23338
+ }
23339
+ return raw ?? {};
23334
23340
  }
23335
- function parseSingleUpnlSig(result) {
23341
+ function unwrapMuonResult(result) {
23336
23342
  const data = result["result"];
23337
23343
  if (!data) {
23338
23344
  throw new SymmioSDKError("Invalid Muon response: missing result", "MUON_PARSE_ERROR");
23339
23345
  }
23340
23346
  const sigData = data["data"];
23341
- const signParams = sigData?.["signParams"] ?? data["signParams"];
23342
- const signatures = sigData?.["signatures"] ?? data["signatures"];
23347
+ return {
23348
+ signParams: normalizeSignParams(sigData?.["signParams"] ?? data["signParams"]),
23349
+ signatures: sigData?.["signatures"] ?? data["signatures"] ?? [],
23350
+ init: sigData?.["init"] ?? data["init"]
23351
+ };
23352
+ }
23353
+ function extractSchnorrSign(signParams, signatures, init) {
23354
+ const inline = signParams["sigs"];
23355
+ if (inline?.signature !== void 0) {
23356
+ return {
23357
+ signature: BigInt(inline.signature),
23358
+ owner: inline.owner,
23359
+ nonce: inline.nonce
23360
+ };
23361
+ }
23362
+ const sig = signatures?.[0];
23363
+ if (!sig?.["signature"]) {
23364
+ throw new SymmioSDKError(
23365
+ "Invalid Muon response: missing schnorr signature",
23366
+ "MUON_PARSE_ERROR"
23367
+ );
23368
+ }
23369
+ const nonceAddress = init?.["nonceAddress"] ?? sig["nonce"] ?? signParams["nonce"];
23370
+ if (!nonceAddress) {
23371
+ throw new SymmioSDKError(
23372
+ "Invalid Muon response: missing nonce address",
23373
+ "MUON_PARSE_ERROR"
23374
+ );
23375
+ }
23376
+ return {
23377
+ signature: BigInt(sig["signature"]),
23378
+ owner: sig["owner"],
23379
+ nonce: nonceAddress
23380
+ };
23381
+ }
23382
+ function gatewaySigOf(signatures) {
23383
+ return signatures?.[0]?.["signature"] ?? "0x";
23384
+ }
23385
+ function parseSingleUpnlSig(result) {
23386
+ const { signParams, signatures, init } = unwrapMuonResult(result);
23343
23387
  return {
23344
23388
  reqId: signParams["reqId"],
23345
23389
  timestamp: BigInt(signParams["timestamp"]),
23346
23390
  upnl: BigInt(signParams["upnl"]),
23347
- gatewaySignature: signatures?.[0]?.["signature"] ?? "0x",
23348
- sigs: parseSchnorrSign(
23349
- signParams["sigs"] ?? signatures?.[1]
23350
- )
23391
+ gatewaySignature: gatewaySigOf(signatures),
23392
+ sigs: extractSchnorrSign(signParams, signatures, init)
23351
23393
  };
23352
23394
  }
23353
23395
  function parseSingleUpnlAndPriceSig(result) {
23354
- const data = result["result"];
23355
- if (!data) {
23356
- throw new SymmioSDKError("Invalid Muon response: missing result", "MUON_PARSE_ERROR");
23357
- }
23358
- const sigData = data["data"];
23359
- const signParams = sigData?.["signParams"] ?? data["signParams"];
23360
- const signatures = sigData?.["signatures"] ?? data["signatures"];
23396
+ const { signParams, signatures, init } = unwrapMuonResult(result);
23361
23397
  return {
23362
23398
  reqId: signParams["reqId"],
23363
23399
  timestamp: BigInt(signParams["timestamp"]),
23364
23400
  upnl: BigInt(signParams["upnl"]),
23365
23401
  price: BigInt(signParams["price"]),
23366
- gatewaySignature: signatures?.[0]?.["signature"] ?? "0x",
23367
- sigs: parseSchnorrSign(
23368
- signParams["sigs"] ?? signatures?.[1]
23369
- )
23402
+ gatewaySignature: gatewaySigOf(signatures),
23403
+ sigs: extractSchnorrSign(signParams, signatures, init)
23370
23404
  };
23371
23405
  }
23372
23406
  function parseBatchSig(result) {
23373
- const data = result["result"];
23374
- if (!data) {
23375
- throw new SymmioSDKError("Invalid Muon response: missing result", "MUON_PARSE_ERROR");
23376
- }
23377
- const sigData = data["data"];
23378
- const signParams = sigData?.["signParams"] ?? data["signParams"];
23379
- const signatures = sigData?.["signatures"] ?? data["signatures"];
23407
+ const { signParams, signatures, init } = unwrapMuonResult(result);
23408
+ const prices = signParams["prices"];
23409
+ const symbolIds = signParams["symbolIds"];
23380
23410
  return {
23381
23411
  reqId: signParams["reqId"],
23382
23412
  timestamp: BigInt(signParams["timestamp"]),
23383
23413
  upnl: BigInt(signParams["upnl"]),
23384
- prices: signParams["prices"].map((p) => BigInt(p)),
23385
- symbolIds: signParams["symbolIds"].map((s) => BigInt(s)),
23386
- gatewaySignature: signatures?.[0]?.["signature"] ?? "0x",
23387
- sigs: parseSchnorrSign(
23388
- signParams["sigs"] ?? signatures?.[1]
23389
- )
23414
+ prices: (prices ?? []).map((p) => BigInt(p)),
23415
+ symbolIds: (symbolIds ?? []).map((s) => BigInt(s)),
23416
+ gatewaySignature: gatewaySigOf(signatures),
23417
+ sigs: extractSchnorrSign(signParams, signatures, init)
23390
23418
  };
23391
23419
  }
23392
23420
  var MuonClient = class {