@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 +65 -37
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +65 -37
- package/dist/index.mjs.map +1 -1
- package/dist/react/index.js +65 -37
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +65 -37
- package/dist/react/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -23327,68 +23327,96 @@ function validateQuantity(quantity) {
|
|
|
23327
23327
|
}
|
|
23328
23328
|
|
|
23329
23329
|
// src/clients/muon.ts
|
|
23330
|
-
function
|
|
23331
|
-
|
|
23332
|
-
|
|
23333
|
-
|
|
23334
|
-
|
|
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
|
|
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
|
-
|
|
23344
|
-
|
|
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
|
|
23350
|
-
sigs:
|
|
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
|
|
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
|
|
23369
|
-
sigs:
|
|
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
|
|
23376
|
-
|
|
23377
|
-
|
|
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:
|
|
23387
|
-
symbolIds:
|
|
23388
|
-
gatewaySignature: signatures
|
|
23389
|
-
sigs:
|
|
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 {
|