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