@moon-x/core 0.10.0 → 0.11.0
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/chunk-527SU2F6.mjs +6 -0
- package/dist/{chunk-I56GRKAG.mjs → chunk-W6BYGZ2F.mjs} +218 -65
- package/dist/{chunk-KRZVIDBQ.mjs → chunk-Z57WM6IO.mjs} +16 -9
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +21 -9
- package/dist/index.mjs +5 -2
- package/dist/{interfaces-CF5UrEBb.d.mts → interfaces-Bt5CAMSt.d.mts} +1 -1
- package/dist/{interfaces-B5zxo2Jx.d.ts → interfaces-pGbKBjWD.d.ts} +1 -1
- package/dist/lib/index.d.mts +133 -51
- package/dist/lib/index.d.ts +133 -51
- package/dist/lib/index.js +228 -67
- package/dist/lib/index.mjs +21 -5
- package/dist/{post-message-2NAnU0Lf.d.mts → post-message-BR2NClJ5.d.mts} +4 -1
- package/dist/{post-message-2NAnU0Lf.d.ts → post-message-BR2NClJ5.d.ts} +4 -1
- package/dist/react/index.mjs +1 -1
- package/dist/sdk/index.d.mts +3 -3
- package/dist/sdk/index.d.ts +3 -3
- package/dist/sdk/index.js +1 -0
- package/dist/sdk/index.mjs +3 -2
- package/dist/types/index.d.mts +204 -76
- package/dist/types/index.d.ts +204 -76
- package/dist/utils/index.d.mts +14 -2
- package/dist/utils/index.d.ts +14 -2
- package/dist/utils/index.js +21 -9
- package/dist/utils/index.mjs +5 -2
- package/dist/web/index.d.mts +2 -2
- package/dist/web/index.d.ts +2 -2
- package/dist/web/index.js +16 -9
- package/dist/web/index.mjs +1 -1
- package/package.json +4 -3
- package/dist/chunk-CMYR6AOY.mjs +0 -0
package/dist/lib/index.js
CHANGED
|
@@ -39,16 +39,17 @@ __export(lib_exports, {
|
|
|
39
39
|
broadcastEthereumRaw: () => broadcastEthereumRaw,
|
|
40
40
|
broadcastSolanaSigned: () => broadcastSolanaSigned,
|
|
41
41
|
bs58ToBytes: () => bs58ToBytes,
|
|
42
|
+
buildChainIndex: () => buildChainIndex,
|
|
42
43
|
buildUrl: () => buildUrl,
|
|
43
44
|
canonicalAlgorithmFor: () => canonicalAlgorithmFor,
|
|
44
45
|
createManualSiweMessage: () => createManualSiweMessage,
|
|
46
|
+
entryCaip2: () => entryCaip2,
|
|
45
47
|
estimateEvmGas: () => estimateEvmGas,
|
|
46
48
|
estimateEvmGasReserve: () => estimateEvmGasReserve,
|
|
47
49
|
formatPasskeyLabel: () => formatPasskeyLabel,
|
|
48
50
|
fromB64url: () => fromB64url,
|
|
49
51
|
generatePasskeyUserId: () => generatePasskeyUserId,
|
|
50
52
|
getChainById: () => getChainById,
|
|
51
|
-
getDefaultChain: () => getDefaultChain,
|
|
52
53
|
getEvmGasPrice: () => getEvmGasPrice,
|
|
53
54
|
getEvmMaxPriorityFeePerGas: () => getEvmMaxPriorityFeePerGas,
|
|
54
55
|
getEvmNonce: () => getEvmNonce,
|
|
@@ -57,14 +58,21 @@ __export(lib_exports, {
|
|
|
57
58
|
getSOLTransfersFromInstructions: () => getSOLTransfersFromInstructions,
|
|
58
59
|
getTransferInfoFromInstructions: () => getTransferInfoFromInstructions,
|
|
59
60
|
isChainSupported: () => isChainSupported,
|
|
61
|
+
isEvmEntry: () => isEvmEntry,
|
|
62
|
+
normalizeChainItem: () => normalizeChainItem,
|
|
63
|
+
normalizeChainKey: () => normalizeChainKey,
|
|
60
64
|
parseDerivationPath: () => parseDerivationPath,
|
|
61
65
|
prepareEvmSendTransaction: () => prepareEvmSendTransaction,
|
|
62
66
|
prepareEvmSignTransaction: () => prepareEvmSignTransaction,
|
|
67
|
+
resolveChainEntry: () => resolveChainEntry,
|
|
63
68
|
resolveEvmChain: () => resolveEvmChain,
|
|
69
|
+
resolveEvmChainEntry: () => resolveEvmChainEntry,
|
|
64
70
|
resolvePasskeyMetadata: () => resolvePasskeyMetadata,
|
|
71
|
+
resolveRpcUrl: () => resolveRpcUrl,
|
|
72
|
+
resolveSolanaChainEntry: () => resolveSolanaChainEntry,
|
|
73
|
+
resolveWsUrl: () => resolveWsUrl,
|
|
65
74
|
sanitizeUserData: () => sanitizeUserData,
|
|
66
75
|
serializeEthereumTransaction: () => serializeEthereumTransaction,
|
|
67
|
-
setChainRpcUrl: () => setChainRpcUrl,
|
|
68
76
|
toB64url: () => toB64url,
|
|
69
77
|
validateChainConfig: () => validateChainConfig,
|
|
70
78
|
verifyIdToken: () => verifyIdToken
|
|
@@ -362,18 +370,6 @@ function resolvePasskeyMetadata(input) {
|
|
|
362
370
|
|
|
363
371
|
// src/lib/ethereum/chains.ts
|
|
364
372
|
var import_viem = require("viem");
|
|
365
|
-
function setChainRpcUrl(chain, rpcUrl) {
|
|
366
|
-
return {
|
|
367
|
-
...chain,
|
|
368
|
-
rpcUrls: {
|
|
369
|
-
...chain.rpcUrls,
|
|
370
|
-
default: {
|
|
371
|
-
http: [rpcUrl],
|
|
372
|
-
webSocket: chain.rpcUrls.default.webSocket
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
373
|
function getRpcUrl(chain) {
|
|
378
374
|
return chain.rpcUrls.default.http[0];
|
|
379
375
|
}
|
|
@@ -506,35 +502,152 @@ async function estimateEvmGasReserve(rpcUrl, chainId, opts = {}) {
|
|
|
506
502
|
return Number((0, import_viem.formatEther)(reserveWei));
|
|
507
503
|
}
|
|
508
504
|
function getChainById(chains, chainId) {
|
|
509
|
-
|
|
505
|
+
for (const item of chains) {
|
|
506
|
+
const entry = normalizeChainItem(item);
|
|
507
|
+
if (isEvmEntry(entry) && entry.chain.id === chainId) return entry.chain;
|
|
508
|
+
}
|
|
509
|
+
return void 0;
|
|
510
510
|
}
|
|
511
511
|
function isChainSupported(chains, chainId) {
|
|
512
|
-
return chains
|
|
512
|
+
return getChainById(chains, chainId) !== void 0;
|
|
513
513
|
}
|
|
514
|
-
function
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
514
|
+
function isEvmEntry(entry) {
|
|
515
|
+
return "chain" in entry;
|
|
516
|
+
}
|
|
517
|
+
function normalizeChainItem(item) {
|
|
518
|
+
if ("chain" in item) return item;
|
|
519
|
+
if (typeof item.id === "number") {
|
|
520
|
+
return { chain: item };
|
|
518
521
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
522
|
+
return item;
|
|
523
|
+
}
|
|
524
|
+
function entryCaip2(entry) {
|
|
525
|
+
return isEvmEntry(entry) ? `eip155:${entry.chain.id}` : entry.id;
|
|
526
|
+
}
|
|
527
|
+
function slug(s) {
|
|
528
|
+
return s.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
529
|
+
}
|
|
530
|
+
function aliasesFor(entry) {
|
|
531
|
+
const keys = [];
|
|
532
|
+
if (isEvmEntry(entry)) {
|
|
533
|
+
const { chain } = entry;
|
|
534
|
+
keys.push(`eip155:${chain.id}`, String(chain.id));
|
|
535
|
+
if (chain.name) {
|
|
536
|
+
const s = slug(chain.name);
|
|
537
|
+
keys.push(`eth:${s}`, s);
|
|
538
|
+
}
|
|
539
|
+
if (chain.network) {
|
|
540
|
+
const s = slug(chain.network);
|
|
541
|
+
keys.push(`eth:${s}`, s);
|
|
542
|
+
}
|
|
543
|
+
} else {
|
|
544
|
+
keys.push(entry.id);
|
|
545
|
+
const cluster = entry.id.split(":")[1];
|
|
546
|
+
if (cluster) keys.push(`solana:${cluster}`, `sol:${cluster}`, cluster);
|
|
547
|
+
}
|
|
548
|
+
return keys;
|
|
549
|
+
}
|
|
550
|
+
function normalizeChainKey(key) {
|
|
551
|
+
if (typeof key === "number") return `eip155:${key}`;
|
|
552
|
+
if (typeof key === "string") return key.trim().toLowerCase();
|
|
553
|
+
const id = key?.id;
|
|
554
|
+
throw new Error(
|
|
555
|
+
typeof id === "number" ? `Invalid chain reference: expected an alias, CAIP-2 id, or numeric chainId, but got a chain object. Use "eip155:${id}" or ${id}.` : `Invalid chain reference: expected a string alias / CAIP-2 id or a numeric chainId, got ${typeof key}.`
|
|
556
|
+
);
|
|
557
|
+
}
|
|
558
|
+
function buildChainIndex(chains = []) {
|
|
559
|
+
const entries = chains.map(normalizeChainItem);
|
|
560
|
+
const byAlias = /* @__PURE__ */ new Map();
|
|
561
|
+
for (const entry of entries) {
|
|
562
|
+
for (const alias of aliasesFor(entry)) {
|
|
563
|
+
const key = alias.toLowerCase();
|
|
564
|
+
if (!byAlias.has(key)) byAlias.set(key, entry);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
return { entries, byAlias };
|
|
568
|
+
}
|
|
569
|
+
function resolveChainEntry(chains, selector, defaultSelector) {
|
|
570
|
+
const index = buildChainIndex(chains ?? []);
|
|
571
|
+
if (selector != null) {
|
|
572
|
+
return index.byAlias.get(normalizeChainKey(selector));
|
|
573
|
+
}
|
|
574
|
+
if (defaultSelector != null) {
|
|
575
|
+
const fallback = index.byAlias.get(normalizeChainKey(defaultSelector));
|
|
576
|
+
if (fallback) return fallback;
|
|
577
|
+
}
|
|
578
|
+
return index.entries[0];
|
|
579
|
+
}
|
|
580
|
+
function resolveSolanaChainEntry(chains, selector, defaultSelector) {
|
|
581
|
+
const index = buildChainIndex(chains ?? []);
|
|
582
|
+
const asSolana = (k) => {
|
|
583
|
+
if (k == null) return void 0;
|
|
584
|
+
const e = index.byAlias.get(normalizeChainKey(k));
|
|
585
|
+
return e && !isEvmEntry(e) ? e : void 0;
|
|
586
|
+
};
|
|
587
|
+
if (selector != null) return asSolana(selector);
|
|
588
|
+
return asSolana(defaultSelector) ?? index.entries.find((e) => !isEvmEntry(e));
|
|
589
|
+
}
|
|
590
|
+
function resolveEvmChainEntry(opts) {
|
|
591
|
+
const index = buildChainIndex(opts.chains ?? []);
|
|
592
|
+
const lookup = (k) => {
|
|
593
|
+
if (k == null) return void 0;
|
|
594
|
+
const e = index.byAlias.get(normalizeChainKey(k));
|
|
595
|
+
return e && isEvmEntry(e) ? e : void 0;
|
|
596
|
+
};
|
|
597
|
+
if (opts.selector != null) return lookup(opts.selector);
|
|
598
|
+
if (opts.requestedChainId != null) return lookup(opts.requestedChainId);
|
|
599
|
+
return lookup(opts.walletChainId) ?? lookup(opts.defaultSelector) ?? index.entries.find(isEvmEntry);
|
|
600
|
+
}
|
|
601
|
+
function resolveRpcUrl(entry, override) {
|
|
602
|
+
if (override) return override;
|
|
603
|
+
if (isEvmEntry(entry)) return entry.rpcUrl ?? getRpcUrl(entry.chain);
|
|
604
|
+
return entry.rpcUrl;
|
|
605
|
+
}
|
|
606
|
+
function resolveWsUrl(entry, override) {
|
|
607
|
+
if (override) return override;
|
|
608
|
+
if (isEvmEntry(entry)) {
|
|
609
|
+
return entry.wsUrl ?? entry.chain.rpcUrls.default.webSocket?.[0];
|
|
610
|
+
}
|
|
611
|
+
return entry.wsUrl;
|
|
612
|
+
}
|
|
613
|
+
function validateChainConfig(config) {
|
|
614
|
+
const { chains, defaultChain } = config;
|
|
615
|
+
if (defaultChain != null) {
|
|
616
|
+
if (typeof defaultChain !== "string" && typeof defaultChain !== "number") {
|
|
617
|
+
const id = defaultChain.id;
|
|
618
|
+
throw new Error(
|
|
619
|
+
`defaultChain must be a chain reference (alias, CAIP-2 id, or numeric chainId), not a chain object.${typeof id === "number" ? ` Use "eip155:${id}" or ${id}.` : ""}`
|
|
620
|
+
);
|
|
621
|
+
}
|
|
622
|
+
if (!chains || chains.length === 0) {
|
|
524
623
|
throw new Error(
|
|
525
|
-
`defaultChain
|
|
624
|
+
`defaultChain "${defaultChain}" is set but no \`chains\` are configured. Add the chain to \`chains\`, or remove \`defaultChain\`.`
|
|
526
625
|
);
|
|
527
626
|
}
|
|
528
627
|
}
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
return config.defaultChain;
|
|
628
|
+
if (!chains) return;
|
|
629
|
+
if (chains.length === 0) {
|
|
630
|
+
throw new Error("chains cannot be an empty array");
|
|
533
631
|
}
|
|
534
|
-
|
|
535
|
-
|
|
632
|
+
const index = buildChainIndex(chains);
|
|
633
|
+
const seen = /* @__PURE__ */ new Set();
|
|
634
|
+
for (const entry of index.entries) {
|
|
635
|
+
const id = entryCaip2(entry);
|
|
636
|
+
if (seen.has(id)) {
|
|
637
|
+
throw new Error(`Duplicate chain in config: ${id}`);
|
|
638
|
+
}
|
|
639
|
+
seen.add(id);
|
|
640
|
+
if (!isEvmEntry(entry) && !entry.rpcUrl) {
|
|
641
|
+
throw new Error(`Solana chain "${entry.id}" is missing an rpcUrl`);
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
if (defaultChain != null && !index.byAlias.get(normalizeChainKey(defaultChain))) {
|
|
645
|
+
throw new Error(
|
|
646
|
+
`defaultChain "${defaultChain}" is not in the configured chains (${[
|
|
647
|
+
...seen
|
|
648
|
+
].join(", ")})`
|
|
649
|
+
);
|
|
536
650
|
}
|
|
537
|
-
return void 0;
|
|
538
651
|
}
|
|
539
652
|
|
|
540
653
|
// src/lib/ethereum/siwe.ts
|
|
@@ -597,7 +710,7 @@ function createManualSiweMessage({
|
|
|
597
710
|
let siweMessage = `${domain} wants you to sign in with your Ethereum account:
|
|
598
711
|
`;
|
|
599
712
|
siweMessage += `${checksummedAddress}`;
|
|
600
|
-
const defaultStatement = `Sign in with Ethereum to
|
|
713
|
+
const defaultStatement = `Sign in with Ethereum to MoonX using ${walletName}.`;
|
|
601
714
|
siweMessage += `
|
|
602
715
|
|
|
603
716
|
${statement || defaultStatement}`;
|
|
@@ -615,54 +728,91 @@ ${fields.join("\n")}`;
|
|
|
615
728
|
|
|
616
729
|
// src/lib/ethereum/tx-prep.ts
|
|
617
730
|
var import_viem3 = require("viem");
|
|
731
|
+
function syntheticChain(chainId, rpcUrl) {
|
|
732
|
+
return {
|
|
733
|
+
id: chainId,
|
|
734
|
+
name: `chain-${chainId}`,
|
|
735
|
+
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
|
736
|
+
rpcUrls: { default: { http: [rpcUrl] } }
|
|
737
|
+
};
|
|
738
|
+
}
|
|
618
739
|
function resolveEvmChain({
|
|
740
|
+
chains,
|
|
741
|
+
chainSelector,
|
|
619
742
|
requestedChainId,
|
|
620
743
|
walletChainId,
|
|
621
|
-
supportedChains,
|
|
622
744
|
defaultChain,
|
|
745
|
+
rpcUrlOverride,
|
|
623
746
|
strict = false
|
|
624
747
|
}) {
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
748
|
+
if (chainSelector != null) {
|
|
749
|
+
const entry2 = resolveEvmChainEntry({ chains, selector: chainSelector });
|
|
750
|
+
if (!entry2) {
|
|
751
|
+
throw new Error(
|
|
752
|
+
`chain "${chainSelector}" is not in the configured chains.`
|
|
753
|
+
);
|
|
754
|
+
}
|
|
755
|
+
return { chain: entry2.chain, rpcUrl: resolveRpcUrl(entry2, rpcUrlOverride) };
|
|
631
756
|
}
|
|
632
|
-
if (
|
|
633
|
-
|
|
757
|
+
if (requestedChainId != null) {
|
|
758
|
+
const entry2 = resolveEvmChainEntry({ chains, requestedChainId });
|
|
759
|
+
if (entry2) {
|
|
760
|
+
return {
|
|
761
|
+
chain: entry2.chain,
|
|
762
|
+
rpcUrl: resolveRpcUrl(entry2, rpcUrlOverride)
|
|
763
|
+
};
|
|
764
|
+
}
|
|
765
|
+
if (rpcUrlOverride) {
|
|
766
|
+
return {
|
|
767
|
+
chain: syntheticChain(Number(requestedChainId), rpcUrlOverride),
|
|
768
|
+
rpcUrl: rpcUrlOverride
|
|
769
|
+
};
|
|
770
|
+
}
|
|
771
|
+
if (strict) {
|
|
772
|
+
throw new Error(
|
|
773
|
+
`Requested chainId ${requestedChainId} is not in the configured chains.`
|
|
774
|
+
);
|
|
775
|
+
}
|
|
634
776
|
}
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
777
|
+
const entry = resolveEvmChainEntry({
|
|
778
|
+
chains,
|
|
779
|
+
walletChainId,
|
|
780
|
+
defaultSelector: defaultChain
|
|
781
|
+
});
|
|
782
|
+
if (entry) {
|
|
783
|
+
return { chain: entry.chain, rpcUrl: resolveRpcUrl(entry, rpcUrlOverride) };
|
|
639
784
|
}
|
|
640
|
-
if (
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
785
|
+
if (rpcUrlOverride && requestedChainId != null) {
|
|
786
|
+
return {
|
|
787
|
+
chain: syntheticChain(Number(requestedChainId), rpcUrlOverride),
|
|
788
|
+
rpcUrl: rpcUrlOverride
|
|
789
|
+
};
|
|
644
790
|
}
|
|
645
|
-
|
|
791
|
+
throw new Error(
|
|
792
|
+
"No chain configured. Set `chains` (and optionally `defaultChain`) in MoonKeyProvider config, or pass an `rpcUrl` together with the transaction's `chainId`."
|
|
793
|
+
);
|
|
646
794
|
}
|
|
647
795
|
async function prepareEvmSignTransaction({
|
|
648
796
|
transaction,
|
|
649
797
|
wallet,
|
|
650
|
-
|
|
651
|
-
defaultChain
|
|
798
|
+
chains,
|
|
799
|
+
defaultChain,
|
|
800
|
+
chainSelector
|
|
652
801
|
}) {
|
|
653
802
|
if (typeof transaction === "string") {
|
|
654
803
|
return { serializedTransaction: transaction, chain: void 0 };
|
|
655
804
|
}
|
|
656
805
|
const txObj = transaction;
|
|
657
806
|
const transactionType = txObj.type ?? 2;
|
|
658
|
-
const chain = resolveEvmChain({
|
|
807
|
+
const { chain } = resolveEvmChain({
|
|
808
|
+
chains,
|
|
809
|
+
chainSelector,
|
|
659
810
|
requestedChainId: txObj.chainId,
|
|
660
811
|
walletChainId: wallet.chainId,
|
|
661
|
-
supportedChains,
|
|
662
812
|
defaultChain,
|
|
663
813
|
strict: false
|
|
664
814
|
});
|
|
665
|
-
const derivedChainId = txObj.chainId || chain.id;
|
|
815
|
+
const derivedChainId = chainSelector != null ? chain.id : txObj.chainId || chain.id;
|
|
666
816
|
const formattedTransaction = {
|
|
667
817
|
to: txObj.to,
|
|
668
818
|
value: txObj.value ? typeof txObj.value === "bigint" ? txObj.value : (0, import_viem3.parseEther)(txObj.value.toString()) : BigInt(0),
|
|
@@ -694,17 +844,20 @@ async function prepareEvmSignTransaction({
|
|
|
694
844
|
async function prepareEvmSendTransaction({
|
|
695
845
|
transaction,
|
|
696
846
|
wallet,
|
|
697
|
-
|
|
698
|
-
defaultChain
|
|
847
|
+
chains,
|
|
848
|
+
defaultChain,
|
|
849
|
+
chainSelector,
|
|
850
|
+
rpcUrlOverride
|
|
699
851
|
}) {
|
|
700
|
-
const chain = resolveEvmChain({
|
|
852
|
+
const { chain, rpcUrl } = resolveEvmChain({
|
|
853
|
+
chains,
|
|
854
|
+
chainSelector,
|
|
701
855
|
requestedChainId: transaction.chainId,
|
|
702
856
|
walletChainId: wallet.chainId,
|
|
703
|
-
supportedChains,
|
|
704
857
|
defaultChain,
|
|
858
|
+
rpcUrlOverride,
|
|
705
859
|
strict: true
|
|
706
860
|
});
|
|
707
|
-
const rpcUrl = getRpcUrl(chain);
|
|
708
861
|
if (!rpcUrl) {
|
|
709
862
|
throw new Error(
|
|
710
863
|
`No RPC URL found for chain ${chain.name}. Chain may be missing rpcUrls configuration.`
|
|
@@ -1371,12 +1524,12 @@ async function getSOLTransfersFromInstructions(base64Transaction, logs, solPrice
|
|
|
1371
1524
|
// src/lib/build-url.ts
|
|
1372
1525
|
var buildUrl = (baseUrl, sdkConfig, enableCaptcha, captchaSitekey) => {
|
|
1373
1526
|
if (!sdkConfig.publishableKey) {
|
|
1374
|
-
throw new Error("
|
|
1527
|
+
throw new Error("MoonX SDK Error: Publishable Key is required");
|
|
1375
1528
|
}
|
|
1376
1529
|
if (!baseUrl || typeof baseUrl !== "string" || baseUrl === "null" || baseUrl === "undefined") {
|
|
1377
1530
|
console.error("Invalid baseUrl:", baseUrl);
|
|
1378
1531
|
throw new Error(
|
|
1379
|
-
`
|
|
1532
|
+
`MoonX SDK Error: Invalid base URL provided: "${baseUrl}"`
|
|
1380
1533
|
);
|
|
1381
1534
|
}
|
|
1382
1535
|
if (typeof window === "undefined") {
|
|
@@ -1410,7 +1563,7 @@ var buildUrl = (baseUrl, sdkConfig, enableCaptcha, captchaSitekey) => {
|
|
|
1410
1563
|
return url.toString();
|
|
1411
1564
|
} catch (error) {
|
|
1412
1565
|
throw new Error(
|
|
1413
|
-
`
|
|
1566
|
+
`MoonX SDK Error: Invalid base URL "${baseUrl}": ${error instanceof Error ? error.message : "Unknown error"}`
|
|
1414
1567
|
);
|
|
1415
1568
|
}
|
|
1416
1569
|
};
|
|
@@ -1566,16 +1719,17 @@ var bs58ToBytes = async (value) => {
|
|
|
1566
1719
|
broadcastEthereumRaw,
|
|
1567
1720
|
broadcastSolanaSigned,
|
|
1568
1721
|
bs58ToBytes,
|
|
1722
|
+
buildChainIndex,
|
|
1569
1723
|
buildUrl,
|
|
1570
1724
|
canonicalAlgorithmFor,
|
|
1571
1725
|
createManualSiweMessage,
|
|
1726
|
+
entryCaip2,
|
|
1572
1727
|
estimateEvmGas,
|
|
1573
1728
|
estimateEvmGasReserve,
|
|
1574
1729
|
formatPasskeyLabel,
|
|
1575
1730
|
fromB64url,
|
|
1576
1731
|
generatePasskeyUserId,
|
|
1577
1732
|
getChainById,
|
|
1578
|
-
getDefaultChain,
|
|
1579
1733
|
getEvmGasPrice,
|
|
1580
1734
|
getEvmMaxPriorityFeePerGas,
|
|
1581
1735
|
getEvmNonce,
|
|
@@ -1584,14 +1738,21 @@ var bs58ToBytes = async (value) => {
|
|
|
1584
1738
|
getSOLTransfersFromInstructions,
|
|
1585
1739
|
getTransferInfoFromInstructions,
|
|
1586
1740
|
isChainSupported,
|
|
1741
|
+
isEvmEntry,
|
|
1742
|
+
normalizeChainItem,
|
|
1743
|
+
normalizeChainKey,
|
|
1587
1744
|
parseDerivationPath,
|
|
1588
1745
|
prepareEvmSendTransaction,
|
|
1589
1746
|
prepareEvmSignTransaction,
|
|
1747
|
+
resolveChainEntry,
|
|
1590
1748
|
resolveEvmChain,
|
|
1749
|
+
resolveEvmChainEntry,
|
|
1591
1750
|
resolvePasskeyMetadata,
|
|
1751
|
+
resolveRpcUrl,
|
|
1752
|
+
resolveSolanaChainEntry,
|
|
1753
|
+
resolveWsUrl,
|
|
1592
1754
|
sanitizeUserData,
|
|
1593
1755
|
serializeEthereumTransaction,
|
|
1594
|
-
setChainRpcUrl,
|
|
1595
1756
|
toB64url,
|
|
1596
1757
|
validateChainConfig,
|
|
1597
1758
|
verifyIdToken
|
package/dist/lib/index.mjs
CHANGED
|
@@ -8,16 +8,17 @@ import {
|
|
|
8
8
|
broadcastEthereumRaw,
|
|
9
9
|
broadcastSolanaSigned,
|
|
10
10
|
bs58ToBytes,
|
|
11
|
+
buildChainIndex,
|
|
11
12
|
buildUrl,
|
|
12
13
|
canonicalAlgorithmFor,
|
|
13
14
|
createManualSiweMessage,
|
|
15
|
+
entryCaip2,
|
|
14
16
|
estimateEvmGas,
|
|
15
17
|
estimateEvmGasReserve,
|
|
16
18
|
formatPasskeyLabel,
|
|
17
19
|
fromB64url,
|
|
18
20
|
generatePasskeyUserId,
|
|
19
21
|
getChainById,
|
|
20
|
-
getDefaultChain,
|
|
21
22
|
getEvmGasPrice,
|
|
22
23
|
getEvmMaxPriorityFeePerGas,
|
|
23
24
|
getEvmNonce,
|
|
@@ -26,18 +27,25 @@ import {
|
|
|
26
27
|
getSOLTransfersFromInstructions,
|
|
27
28
|
getTransferInfoFromInstructions,
|
|
28
29
|
isChainSupported,
|
|
30
|
+
isEvmEntry,
|
|
31
|
+
normalizeChainItem,
|
|
32
|
+
normalizeChainKey,
|
|
29
33
|
parseDerivationPath,
|
|
30
34
|
prepareEvmSendTransaction,
|
|
31
35
|
prepareEvmSignTransaction,
|
|
36
|
+
resolveChainEntry,
|
|
32
37
|
resolveEvmChain,
|
|
38
|
+
resolveEvmChainEntry,
|
|
33
39
|
resolvePasskeyMetadata,
|
|
40
|
+
resolveRpcUrl,
|
|
41
|
+
resolveSolanaChainEntry,
|
|
42
|
+
resolveWsUrl,
|
|
34
43
|
sanitizeUserData,
|
|
35
44
|
serializeEthereumTransaction,
|
|
36
|
-
setChainRpcUrl,
|
|
37
45
|
toB64url,
|
|
38
46
|
validateChainConfig,
|
|
39
47
|
verifyIdToken
|
|
40
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-W6BYGZ2F.mjs";
|
|
41
49
|
import "../chunk-GQKIA37O.mjs";
|
|
42
50
|
export {
|
|
43
51
|
DEFAULT_AUTH_URL,
|
|
@@ -49,16 +57,17 @@ export {
|
|
|
49
57
|
broadcastEthereumRaw,
|
|
50
58
|
broadcastSolanaSigned,
|
|
51
59
|
bs58ToBytes,
|
|
60
|
+
buildChainIndex,
|
|
52
61
|
buildUrl,
|
|
53
62
|
canonicalAlgorithmFor,
|
|
54
63
|
createManualSiweMessage,
|
|
64
|
+
entryCaip2,
|
|
55
65
|
estimateEvmGas,
|
|
56
66
|
estimateEvmGasReserve,
|
|
57
67
|
formatPasskeyLabel,
|
|
58
68
|
fromB64url,
|
|
59
69
|
generatePasskeyUserId,
|
|
60
70
|
getChainById,
|
|
61
|
-
getDefaultChain,
|
|
62
71
|
getEvmGasPrice,
|
|
63
72
|
getEvmMaxPriorityFeePerGas,
|
|
64
73
|
getEvmNonce,
|
|
@@ -67,14 +76,21 @@ export {
|
|
|
67
76
|
getSOLTransfersFromInstructions,
|
|
68
77
|
getTransferInfoFromInstructions,
|
|
69
78
|
isChainSupported,
|
|
79
|
+
isEvmEntry,
|
|
80
|
+
normalizeChainItem,
|
|
81
|
+
normalizeChainKey,
|
|
70
82
|
parseDerivationPath,
|
|
71
83
|
prepareEvmSendTransaction,
|
|
72
84
|
prepareEvmSignTransaction,
|
|
85
|
+
resolveChainEntry,
|
|
73
86
|
resolveEvmChain,
|
|
87
|
+
resolveEvmChainEntry,
|
|
74
88
|
resolvePasskeyMetadata,
|
|
89
|
+
resolveRpcUrl,
|
|
90
|
+
resolveSolanaChainEntry,
|
|
91
|
+
resolveWsUrl,
|
|
75
92
|
sanitizeUserData,
|
|
76
93
|
serializeEthereumTransaction,
|
|
77
|
-
setChainRpcUrl,
|
|
78
94
|
toB64url,
|
|
79
95
|
validateChainConfig,
|
|
80
96
|
verifyIdToken
|
|
@@ -66,7 +66,10 @@ declare class PostMessageServer {
|
|
|
66
66
|
constructor(originValidator?: (origin: string, publishableKey?: string) => Promise<boolean>);
|
|
67
67
|
addTrustedSource(source: Window): void;
|
|
68
68
|
removeTrustedSource(source: Window): void;
|
|
69
|
-
register<Payload, Response>(type: PostMessageType, method: string, handler: (payload: Payload
|
|
69
|
+
register<Payload, Response>(type: PostMessageType, method: string, handler: (payload: Payload, ctx?: {
|
|
70
|
+
origin: string;
|
|
71
|
+
source: MessageEventSource | null;
|
|
72
|
+
}) => Promise<Response | void>): void;
|
|
70
73
|
cleanup(): void;
|
|
71
74
|
private static isLocalhostOrigin;
|
|
72
75
|
private isValidPostMessageRequest;
|
|
@@ -66,7 +66,10 @@ declare class PostMessageServer {
|
|
|
66
66
|
constructor(originValidator?: (origin: string, publishableKey?: string) => Promise<boolean>);
|
|
67
67
|
addTrustedSource(source: Window): void;
|
|
68
68
|
removeTrustedSource(source: Window): void;
|
|
69
|
-
register<Payload, Response>(type: PostMessageType, method: string, handler: (payload: Payload
|
|
69
|
+
register<Payload, Response>(type: PostMessageType, method: string, handler: (payload: Payload, ctx?: {
|
|
70
|
+
origin: string;
|
|
71
|
+
source: MessageEventSource | null;
|
|
72
|
+
}) => Promise<Response | void>): void;
|
|
70
73
|
cleanup(): void;
|
|
71
74
|
private static isLocalhostOrigin;
|
|
72
75
|
private isValidPostMessageRequest;
|
package/dist/react/index.mjs
CHANGED
package/dist/sdk/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { T as Transport, P as PasskeyAssertor, R as RelyingPartyOriginInput, K as KvStorage } from '../interfaces-
|
|
2
|
-
export { O as OAuthOpener, a as PlatformImpls, W as WebAuthnAssertionResponse, b as WebAuthnRequestOptions, r as resolveRelyingPartyOrigin } from '../interfaces-
|
|
1
|
+
import { T as Transport, P as PasskeyAssertor, R as RelyingPartyOriginInput, K as KvStorage } from '../interfaces-Bt5CAMSt.mjs';
|
|
2
|
+
export { O as OAuthOpener, a as PlatformImpls, W as WebAuthnAssertionResponse, b as WebAuthnRequestOptions, r as resolveRelyingPartyOrigin } from '../interfaces-Bt5CAMSt.mjs';
|
|
3
3
|
import { C as CachedAssertion } from '../passkey-cache-WnDFQ-v4.mjs';
|
|
4
4
|
import { EthereumSignMessageParams, EthereumSignMessageResult, EthereumSignTransactionParams, EthereumSignTransactionResult, EthereumSignTypedDataParams, EthereumSignTypedDataResult, EthereumSignHashParams, EthereumSignHashResult, EthereumSign7702AuthorizationParams, EthereumSign7702AuthorizationResult, EthereumSendTransactionParams, EthereumSendTransactionResult, EthereumGetBalanceParams, EthereumGetBalanceResult, EthereumGetTokenAccountsByOwnerParams, EthereumGetTokenAccountsByOwnerResult, SolanaSignMessageParams, SolanaSignMessageResult, SolanaSignTransactionParams, SolanaSignTransactionResult, SolanaSendTransactionParams, SolanaSendTransactionResult, SolanaGetBalanceParams, SolanaGetBalanceResult, SolanaGetTokenAccountsByOwnerParams, SolanaGetTokenAccountsByOwnerResult, SendEmailOtpResponse, PublicWallet, ProvisionEphemeralSignerParams, ProvisionEphemeralSignerResult, ListEphemeralSignersResult, RevokeEphemeralSignerParams } from '../types/index.mjs';
|
|
5
|
-
import '../post-message-
|
|
5
|
+
import '../post-message-BR2NClJ5.mjs';
|
|
6
6
|
|
|
7
7
|
type AssertPasskeyInParentResult = CachedAssertion;
|
|
8
8
|
declare const assertPasskeyInParent: ({ transport, passkey, publishableKey, validateCredentialInAllowList, }: {
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { T as Transport, P as PasskeyAssertor, R as RelyingPartyOriginInput, K as KvStorage } from '../interfaces-
|
|
2
|
-
export { O as OAuthOpener, a as PlatformImpls, W as WebAuthnAssertionResponse, b as WebAuthnRequestOptions, r as resolveRelyingPartyOrigin } from '../interfaces-
|
|
1
|
+
import { T as Transport, P as PasskeyAssertor, R as RelyingPartyOriginInput, K as KvStorage } from '../interfaces-pGbKBjWD.js';
|
|
2
|
+
export { O as OAuthOpener, a as PlatformImpls, W as WebAuthnAssertionResponse, b as WebAuthnRequestOptions, r as resolveRelyingPartyOrigin } from '../interfaces-pGbKBjWD.js';
|
|
3
3
|
import { C as CachedAssertion } from '../passkey-cache-WnDFQ-v4.js';
|
|
4
4
|
import { EthereumSignMessageParams, EthereumSignMessageResult, EthereumSignTransactionParams, EthereumSignTransactionResult, EthereumSignTypedDataParams, EthereumSignTypedDataResult, EthereumSignHashParams, EthereumSignHashResult, EthereumSign7702AuthorizationParams, EthereumSign7702AuthorizationResult, EthereumSendTransactionParams, EthereumSendTransactionResult, EthereumGetBalanceParams, EthereumGetBalanceResult, EthereumGetTokenAccountsByOwnerParams, EthereumGetTokenAccountsByOwnerResult, SolanaSignMessageParams, SolanaSignMessageResult, SolanaSignTransactionParams, SolanaSignTransactionResult, SolanaSendTransactionParams, SolanaSendTransactionResult, SolanaGetBalanceParams, SolanaGetBalanceResult, SolanaGetTokenAccountsByOwnerParams, SolanaGetTokenAccountsByOwnerResult, SendEmailOtpResponse, PublicWallet, ProvisionEphemeralSignerParams, ProvisionEphemeralSignerResult, ListEphemeralSignersResult, RevokeEphemeralSignerParams } from '../types/index.js';
|
|
5
|
-
import '../post-message-
|
|
5
|
+
import '../post-message-BR2NClJ5.js';
|
|
6
6
|
|
|
7
7
|
type AssertPasskeyInParentResult = CachedAssertion;
|
|
8
8
|
declare const assertPasskeyInParent: ({ transport, passkey, publishableKey, validateCredentialInAllowList, }: {
|
package/dist/sdk/index.js
CHANGED
|
@@ -1210,6 +1210,7 @@ async function resolveBinding(input) {
|
|
|
1210
1210
|
const bindings = json.wallets.map((w) => ({
|
|
1211
1211
|
walletId: w.wallet_id,
|
|
1212
1212
|
keyId: w.key_id,
|
|
1213
|
+
publicAddress: w.public_address,
|
|
1213
1214
|
derivationPath: w.derivation_path
|
|
1214
1215
|
}));
|
|
1215
1216
|
bindingsCache.set(input.apiPubHex, bindings);
|
package/dist/sdk/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PostMessageMethod,
|
|
3
3
|
PostMessageType
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-Z57WM6IO.mjs";
|
|
5
5
|
import {
|
|
6
6
|
arrayLikeToBytes,
|
|
7
7
|
authState,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
bs58ToBytes,
|
|
11
11
|
serializeEthereumTransaction,
|
|
12
12
|
toB64url
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-W6BYGZ2F.mjs";
|
|
14
14
|
import "../chunk-GQKIA37O.mjs";
|
|
15
15
|
|
|
16
16
|
// src/sdk/interfaces.ts
|
|
@@ -911,6 +911,7 @@ async function resolveBinding(input) {
|
|
|
911
911
|
const bindings = json.wallets.map((w) => ({
|
|
912
912
|
walletId: w.wallet_id,
|
|
913
913
|
keyId: w.key_id,
|
|
914
|
+
publicAddress: w.public_address,
|
|
914
915
|
derivationPath: w.derivation_path
|
|
915
916
|
}));
|
|
916
917
|
bindingsCache.set(input.apiPubHex, bindings);
|