Build browser-native Super Testnet v0 inscription loop
This commit is contained in:
1 parent
d3272032c8
commit
4fa4130150
25 files changed
+2393
-2
No files matched your search
@@ -0,0 +1,18 @@
|
||||
import { LocalChain } from './adapters/chain.js';
|
||||
import { TestWallet, NETWORK } from './adapters/wallet.js';
|
||||
export const STORAGE_KEY = 'super-testnet:lab:v1';
|
||||
export function decodeLab(raw) {
|
||||
if (!raw) return { wallet: null, chain: new LocalChain() };
|
||||
const data = JSON.parse(raw);
|
||||
if (data.kind !== 'test-lab' || data.network !== NETWORK || data.version !== 1) throw new Error('Unsupported lab backup.');
|
||||
return { wallet: data.wallet ? TestWallet.load(data.wallet) : null, chain: new LocalChain(data.chain) };
|
||||
}
|
||||
export const encodeLab = lab => JSON.stringify({
|
||||
kind: 'test-lab', network: NETWORK, version: 1,
|
||||
wallet: lab.wallet?.backup() ?? null, chain: lab.chain.snapshot(),
|
||||
});
|
||||
export const readLab = () => decodeLab(localStorage.getItem(STORAGE_KEY));
|
||||
export function saveLab(lab) {
|
||||
try { localStorage.setItem(STORAGE_KEY, encodeLab(lab)); }
|
||||
catch { throw new Error('Browser storage is full or unavailable. No changes were saved. Export a lab backup before clearing storage.'); }
|
||||
}
|
||||
Reference in new issue
Block a user