@owney/sdk 0.6.6 → 0.6.7-beta.2
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.cjs +88 -16
- package/dist/index.js +88 -16
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -535,7 +535,8 @@ var storage = () => {
|
|
|
535
535
|
return null;
|
|
536
536
|
}
|
|
537
537
|
};
|
|
538
|
-
var buildKey = (address
|
|
538
|
+
var buildKey = (address) => `${KEY_PREFIX}:${address.toLowerCase()}`;
|
|
539
|
+
var legacyKeyPrefix = (address) => `${KEY_PREFIX}:${address.toLowerCase()}:`;
|
|
539
540
|
var isJwtExpired = (token) => {
|
|
540
541
|
const parts = token.split(".");
|
|
541
542
|
if (parts.length !== 3) return false;
|
|
@@ -552,9 +553,37 @@ var isJwtExpired = (token) => {
|
|
|
552
553
|
};
|
|
553
554
|
var memorySessions = /* @__PURE__ */ new Map();
|
|
554
555
|
var isFreshSession = (session) => !!session && !!session.token && !isJwtExpired(session.token);
|
|
555
|
-
var
|
|
556
|
+
var readLegacySession = (store, address) => {
|
|
557
|
+
if (!store) return null;
|
|
558
|
+
const prefix = legacyKeyPrefix(address);
|
|
559
|
+
const legacyKeys = [];
|
|
560
|
+
try {
|
|
561
|
+
for (let i = 0; i < store.length; i++) {
|
|
562
|
+
const key = store.key(i);
|
|
563
|
+
if (key?.startsWith(prefix)) legacyKeys.push(key);
|
|
564
|
+
}
|
|
565
|
+
} catch {
|
|
566
|
+
return null;
|
|
567
|
+
}
|
|
568
|
+
let adopted = null;
|
|
569
|
+
for (const key of legacyKeys) {
|
|
570
|
+
if (!adopted) {
|
|
571
|
+
try {
|
|
572
|
+
const parsed = JSON.parse(store.getItem(key) ?? "");
|
|
573
|
+
if (isFreshSession(parsed)) adopted = parsed;
|
|
574
|
+
} catch {
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
try {
|
|
578
|
+
store.removeItem(key);
|
|
579
|
+
} catch {
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
return adopted;
|
|
583
|
+
};
|
|
584
|
+
var readSession = (address, _chainId) => {
|
|
556
585
|
if (typeof window === "undefined") return null;
|
|
557
|
-
const key = buildKey(address
|
|
586
|
+
const key = buildKey(address);
|
|
558
587
|
const store = storage();
|
|
559
588
|
let raw = null;
|
|
560
589
|
try {
|
|
@@ -575,14 +604,19 @@ var readSession = (address, chainId) => {
|
|
|
575
604
|
}
|
|
576
605
|
return null;
|
|
577
606
|
}
|
|
607
|
+
const legacy = readLegacySession(store, address);
|
|
608
|
+
if (legacy) {
|
|
609
|
+
writeSession(address, _chainId, legacy);
|
|
610
|
+
return legacy;
|
|
611
|
+
}
|
|
578
612
|
const cached = memorySessions.get(key);
|
|
579
613
|
if (isFreshSession(cached)) return cached;
|
|
580
614
|
if (cached) memorySessions.delete(key);
|
|
581
615
|
return null;
|
|
582
616
|
};
|
|
583
|
-
var writeSession = (address,
|
|
617
|
+
var writeSession = (address, _chainId, session) => {
|
|
584
618
|
if (typeof window === "undefined") return;
|
|
585
|
-
const key = buildKey(address
|
|
619
|
+
const key = buildKey(address);
|
|
586
620
|
memorySessions.set(key, session);
|
|
587
621
|
const store = storage();
|
|
588
622
|
try {
|
|
@@ -590,14 +624,15 @@ var writeSession = (address, chainId, session) => {
|
|
|
590
624
|
} catch {
|
|
591
625
|
}
|
|
592
626
|
};
|
|
593
|
-
var clearSession = (address,
|
|
594
|
-
const key = buildKey(address
|
|
627
|
+
var clearSession = (address, _chainId) => {
|
|
628
|
+
const key = buildKey(address);
|
|
595
629
|
memorySessions.delete(key);
|
|
596
630
|
const store = storage();
|
|
597
631
|
try {
|
|
598
632
|
store?.removeItem(key);
|
|
599
633
|
} catch {
|
|
600
634
|
}
|
|
635
|
+
readLegacySession(store, address);
|
|
601
636
|
};
|
|
602
637
|
|
|
603
638
|
// src/agents/zyfai/autoSelect.ts
|
|
@@ -2718,11 +2753,39 @@ var storage2 = () => {
|
|
|
2718
2753
|
return null;
|
|
2719
2754
|
}
|
|
2720
2755
|
};
|
|
2721
|
-
var buildKey2 = (address
|
|
2756
|
+
var buildKey2 = (address) => `${KEY_PREFIX2}:${address.toLowerCase()}`;
|
|
2757
|
+
var legacyKeyPrefix2 = (address) => `${KEY_PREFIX2}:${address.toLowerCase()}:`;
|
|
2722
2758
|
var memorySiwxSessions = /* @__PURE__ */ new Map();
|
|
2759
|
+
var readLegacySiwxSession = (store, address) => {
|
|
2760
|
+
if (!store) return null;
|
|
2761
|
+
const prefix = legacyKeyPrefix2(address);
|
|
2762
|
+
const legacyKeys = [];
|
|
2763
|
+
try {
|
|
2764
|
+
for (let i = 0; i < store.length; i++) {
|
|
2765
|
+
const key = store.key(i);
|
|
2766
|
+
if (key?.startsWith(prefix)) legacyKeys.push(key);
|
|
2767
|
+
}
|
|
2768
|
+
} catch {
|
|
2769
|
+
return null;
|
|
2770
|
+
}
|
|
2771
|
+
let adopted = null;
|
|
2772
|
+
for (const key of legacyKeys) {
|
|
2773
|
+
if (!adopted) {
|
|
2774
|
+
try {
|
|
2775
|
+
adopted = JSON.parse(store.getItem(key) ?? "");
|
|
2776
|
+
} catch {
|
|
2777
|
+
}
|
|
2778
|
+
}
|
|
2779
|
+
try {
|
|
2780
|
+
store.removeItem(key);
|
|
2781
|
+
} catch {
|
|
2782
|
+
}
|
|
2783
|
+
}
|
|
2784
|
+
return adopted;
|
|
2785
|
+
};
|
|
2723
2786
|
var readSiwxSession = (address, chainId) => {
|
|
2724
2787
|
if (typeof window === "undefined") return null;
|
|
2725
|
-
const key = buildKey2(address
|
|
2788
|
+
const key = buildKey2(address);
|
|
2726
2789
|
const store = storage2();
|
|
2727
2790
|
let raw = null;
|
|
2728
2791
|
try {
|
|
@@ -2742,11 +2805,16 @@ var readSiwxSession = (address, chainId) => {
|
|
|
2742
2805
|
return null;
|
|
2743
2806
|
}
|
|
2744
2807
|
}
|
|
2808
|
+
const legacy = readLegacySiwxSession(store, address);
|
|
2809
|
+
if (legacy) {
|
|
2810
|
+
writeSiwxSession(address, chainId, legacy);
|
|
2811
|
+
return legacy;
|
|
2812
|
+
}
|
|
2745
2813
|
return memorySiwxSessions.get(key) ?? null;
|
|
2746
2814
|
};
|
|
2747
|
-
var writeSiwxSession = (address,
|
|
2815
|
+
var writeSiwxSession = (address, _chainId, session) => {
|
|
2748
2816
|
if (typeof window === "undefined") return;
|
|
2749
|
-
const key = buildKey2(address
|
|
2817
|
+
const key = buildKey2(address);
|
|
2750
2818
|
memorySiwxSessions.set(key, session);
|
|
2751
2819
|
const store = storage2();
|
|
2752
2820
|
try {
|
|
@@ -2754,14 +2822,15 @@ var writeSiwxSession = (address, chainId, session) => {
|
|
|
2754
2822
|
} catch {
|
|
2755
2823
|
}
|
|
2756
2824
|
};
|
|
2757
|
-
var clearSiwxSession = (address,
|
|
2758
|
-
const key = buildKey2(address
|
|
2825
|
+
var clearSiwxSession = (address, _chainId) => {
|
|
2826
|
+
const key = buildKey2(address);
|
|
2759
2827
|
memorySiwxSessions.delete(key);
|
|
2760
2828
|
const store = storage2();
|
|
2761
2829
|
try {
|
|
2762
2830
|
store?.removeItem(key);
|
|
2763
2831
|
} catch {
|
|
2764
2832
|
}
|
|
2833
|
+
readLegacySiwxSession(store, address);
|
|
2765
2834
|
};
|
|
2766
2835
|
|
|
2767
2836
|
// src/agents/zyfai/zyfai.siwx.ts
|
|
@@ -2825,9 +2894,12 @@ function buildSIWXConfig(deps) {
|
|
|
2825
2894
|
}
|
|
2826
2895
|
if (!stored) return [];
|
|
2827
2896
|
const session = {
|
|
2828
|
-
// `stored.data
|
|
2829
|
-
//
|
|
2830
|
-
|
|
2897
|
+
// `stored.data` is kept AppKit-free in the cache, so narrow at the
|
|
2898
|
+
// boundary. Echo the REQUESTED chain rather than the one originally
|
|
2899
|
+
// signed: the Zyfai JWT is account-scoped (no chain claim), so one
|
|
2900
|
+
// signature is valid for every chain, and AppKit would otherwise treat
|
|
2901
|
+
// the session as not covering the active network and re-prompt.
|
|
2902
|
+
data: { ...stored.data, chainId },
|
|
2831
2903
|
message: stored.message,
|
|
2832
2904
|
signature: stored.signature
|
|
2833
2905
|
};
|
package/dist/index.js
CHANGED
|
@@ -503,7 +503,8 @@ var storage = () => {
|
|
|
503
503
|
return null;
|
|
504
504
|
}
|
|
505
505
|
};
|
|
506
|
-
var buildKey = (address
|
|
506
|
+
var buildKey = (address) => `${KEY_PREFIX}:${address.toLowerCase()}`;
|
|
507
|
+
var legacyKeyPrefix = (address) => `${KEY_PREFIX}:${address.toLowerCase()}:`;
|
|
507
508
|
var isJwtExpired = (token) => {
|
|
508
509
|
const parts = token.split(".");
|
|
509
510
|
if (parts.length !== 3) return false;
|
|
@@ -520,9 +521,37 @@ var isJwtExpired = (token) => {
|
|
|
520
521
|
};
|
|
521
522
|
var memorySessions = /* @__PURE__ */ new Map();
|
|
522
523
|
var isFreshSession = (session) => !!session && !!session.token && !isJwtExpired(session.token);
|
|
523
|
-
var
|
|
524
|
+
var readLegacySession = (store, address) => {
|
|
525
|
+
if (!store) return null;
|
|
526
|
+
const prefix = legacyKeyPrefix(address);
|
|
527
|
+
const legacyKeys = [];
|
|
528
|
+
try {
|
|
529
|
+
for (let i = 0; i < store.length; i++) {
|
|
530
|
+
const key = store.key(i);
|
|
531
|
+
if (key?.startsWith(prefix)) legacyKeys.push(key);
|
|
532
|
+
}
|
|
533
|
+
} catch {
|
|
534
|
+
return null;
|
|
535
|
+
}
|
|
536
|
+
let adopted = null;
|
|
537
|
+
for (const key of legacyKeys) {
|
|
538
|
+
if (!adopted) {
|
|
539
|
+
try {
|
|
540
|
+
const parsed = JSON.parse(store.getItem(key) ?? "");
|
|
541
|
+
if (isFreshSession(parsed)) adopted = parsed;
|
|
542
|
+
} catch {
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
try {
|
|
546
|
+
store.removeItem(key);
|
|
547
|
+
} catch {
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
return adopted;
|
|
551
|
+
};
|
|
552
|
+
var readSession = (address, _chainId) => {
|
|
524
553
|
if (typeof window === "undefined") return null;
|
|
525
|
-
const key = buildKey(address
|
|
554
|
+
const key = buildKey(address);
|
|
526
555
|
const store = storage();
|
|
527
556
|
let raw = null;
|
|
528
557
|
try {
|
|
@@ -543,14 +572,19 @@ var readSession = (address, chainId) => {
|
|
|
543
572
|
}
|
|
544
573
|
return null;
|
|
545
574
|
}
|
|
575
|
+
const legacy = readLegacySession(store, address);
|
|
576
|
+
if (legacy) {
|
|
577
|
+
writeSession(address, _chainId, legacy);
|
|
578
|
+
return legacy;
|
|
579
|
+
}
|
|
546
580
|
const cached = memorySessions.get(key);
|
|
547
581
|
if (isFreshSession(cached)) return cached;
|
|
548
582
|
if (cached) memorySessions.delete(key);
|
|
549
583
|
return null;
|
|
550
584
|
};
|
|
551
|
-
var writeSession = (address,
|
|
585
|
+
var writeSession = (address, _chainId, session) => {
|
|
552
586
|
if (typeof window === "undefined") return;
|
|
553
|
-
const key = buildKey(address
|
|
587
|
+
const key = buildKey(address);
|
|
554
588
|
memorySessions.set(key, session);
|
|
555
589
|
const store = storage();
|
|
556
590
|
try {
|
|
@@ -558,14 +592,15 @@ var writeSession = (address, chainId, session) => {
|
|
|
558
592
|
} catch {
|
|
559
593
|
}
|
|
560
594
|
};
|
|
561
|
-
var clearSession = (address,
|
|
562
|
-
const key = buildKey(address
|
|
595
|
+
var clearSession = (address, _chainId) => {
|
|
596
|
+
const key = buildKey(address);
|
|
563
597
|
memorySessions.delete(key);
|
|
564
598
|
const store = storage();
|
|
565
599
|
try {
|
|
566
600
|
store?.removeItem(key);
|
|
567
601
|
} catch {
|
|
568
602
|
}
|
|
603
|
+
readLegacySession(store, address);
|
|
569
604
|
};
|
|
570
605
|
|
|
571
606
|
// src/agents/zyfai/autoSelect.ts
|
|
@@ -2690,11 +2725,39 @@ var storage2 = () => {
|
|
|
2690
2725
|
return null;
|
|
2691
2726
|
}
|
|
2692
2727
|
};
|
|
2693
|
-
var buildKey2 = (address
|
|
2728
|
+
var buildKey2 = (address) => `${KEY_PREFIX2}:${address.toLowerCase()}`;
|
|
2729
|
+
var legacyKeyPrefix2 = (address) => `${KEY_PREFIX2}:${address.toLowerCase()}:`;
|
|
2694
2730
|
var memorySiwxSessions = /* @__PURE__ */ new Map();
|
|
2731
|
+
var readLegacySiwxSession = (store, address) => {
|
|
2732
|
+
if (!store) return null;
|
|
2733
|
+
const prefix = legacyKeyPrefix2(address);
|
|
2734
|
+
const legacyKeys = [];
|
|
2735
|
+
try {
|
|
2736
|
+
for (let i = 0; i < store.length; i++) {
|
|
2737
|
+
const key = store.key(i);
|
|
2738
|
+
if (key?.startsWith(prefix)) legacyKeys.push(key);
|
|
2739
|
+
}
|
|
2740
|
+
} catch {
|
|
2741
|
+
return null;
|
|
2742
|
+
}
|
|
2743
|
+
let adopted = null;
|
|
2744
|
+
for (const key of legacyKeys) {
|
|
2745
|
+
if (!adopted) {
|
|
2746
|
+
try {
|
|
2747
|
+
adopted = JSON.parse(store.getItem(key) ?? "");
|
|
2748
|
+
} catch {
|
|
2749
|
+
}
|
|
2750
|
+
}
|
|
2751
|
+
try {
|
|
2752
|
+
store.removeItem(key);
|
|
2753
|
+
} catch {
|
|
2754
|
+
}
|
|
2755
|
+
}
|
|
2756
|
+
return adopted;
|
|
2757
|
+
};
|
|
2695
2758
|
var readSiwxSession = (address, chainId) => {
|
|
2696
2759
|
if (typeof window === "undefined") return null;
|
|
2697
|
-
const key = buildKey2(address
|
|
2760
|
+
const key = buildKey2(address);
|
|
2698
2761
|
const store = storage2();
|
|
2699
2762
|
let raw = null;
|
|
2700
2763
|
try {
|
|
@@ -2714,11 +2777,16 @@ var readSiwxSession = (address, chainId) => {
|
|
|
2714
2777
|
return null;
|
|
2715
2778
|
}
|
|
2716
2779
|
}
|
|
2780
|
+
const legacy = readLegacySiwxSession(store, address);
|
|
2781
|
+
if (legacy) {
|
|
2782
|
+
writeSiwxSession(address, chainId, legacy);
|
|
2783
|
+
return legacy;
|
|
2784
|
+
}
|
|
2717
2785
|
return memorySiwxSessions.get(key) ?? null;
|
|
2718
2786
|
};
|
|
2719
|
-
var writeSiwxSession = (address,
|
|
2787
|
+
var writeSiwxSession = (address, _chainId, session) => {
|
|
2720
2788
|
if (typeof window === "undefined") return;
|
|
2721
|
-
const key = buildKey2(address
|
|
2789
|
+
const key = buildKey2(address);
|
|
2722
2790
|
memorySiwxSessions.set(key, session);
|
|
2723
2791
|
const store = storage2();
|
|
2724
2792
|
try {
|
|
@@ -2726,14 +2794,15 @@ var writeSiwxSession = (address, chainId, session) => {
|
|
|
2726
2794
|
} catch {
|
|
2727
2795
|
}
|
|
2728
2796
|
};
|
|
2729
|
-
var clearSiwxSession = (address,
|
|
2730
|
-
const key = buildKey2(address
|
|
2797
|
+
var clearSiwxSession = (address, _chainId) => {
|
|
2798
|
+
const key = buildKey2(address);
|
|
2731
2799
|
memorySiwxSessions.delete(key);
|
|
2732
2800
|
const store = storage2();
|
|
2733
2801
|
try {
|
|
2734
2802
|
store?.removeItem(key);
|
|
2735
2803
|
} catch {
|
|
2736
2804
|
}
|
|
2805
|
+
readLegacySiwxSession(store, address);
|
|
2737
2806
|
};
|
|
2738
2807
|
|
|
2739
2808
|
// src/agents/zyfai/zyfai.siwx.ts
|
|
@@ -2797,9 +2866,12 @@ function buildSIWXConfig(deps) {
|
|
|
2797
2866
|
}
|
|
2798
2867
|
if (!stored) return [];
|
|
2799
2868
|
const session = {
|
|
2800
|
-
// `stored.data
|
|
2801
|
-
//
|
|
2802
|
-
|
|
2869
|
+
// `stored.data` is kept AppKit-free in the cache, so narrow at the
|
|
2870
|
+
// boundary. Echo the REQUESTED chain rather than the one originally
|
|
2871
|
+
// signed: the Zyfai JWT is account-scoped (no chain claim), so one
|
|
2872
|
+
// signature is valid for every chain, and AppKit would otherwise treat
|
|
2873
|
+
// the session as not covering the active network and re-prompt.
|
|
2874
|
+
data: { ...stored.data, chainId },
|
|
2803
2875
|
message: stored.message,
|
|
2804
2876
|
signature: stored.signature
|
|
2805
2877
|
};
|