chunktech 0.1.0 → 0.3.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/README.md +287 -130
- package/dist/crosschain.d.ts +24 -0
- package/dist/crosschain.d.ts.map +1 -0
- package/dist/crosschain.js +332 -0
- package/dist/crosschain.js.map +1 -0
- package/dist/extension-loader.d.ts +33 -0
- package/dist/extension-loader.d.ts.map +1 -0
- package/dist/extension-loader.js +299 -0
- package/dist/extension-loader.js.map +1 -0
- package/dist/extension-uploader.d.ts +69 -0
- package/dist/extension-uploader.d.ts.map +1 -0
- package/dist/extension-uploader.js +153 -0
- package/dist/extension-uploader.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChunkTech - Extension Loader Generator
|
|
3
|
+
* Creates a self-contained inscription that downloads Chrome/Firefox extensions from Base
|
|
4
|
+
*/
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// HTML Generator
|
|
7
|
+
// ============================================================================
|
|
8
|
+
export function generateExtensionLoader(manifest) {
|
|
9
|
+
const html = `<!DOCTYPE html>
|
|
10
|
+
<html>
|
|
11
|
+
<head>
|
|
12
|
+
<meta charset="UTF-8">
|
|
13
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
14
|
+
<title>${esc(manifest.name)} - On-Chain Extension</title>
|
|
15
|
+
<style>
|
|
16
|
+
*{margin:0;padding:0;box-sizing:border-box}
|
|
17
|
+
body{background:#0a0a0f;color:#fff;font-family:system-ui,-apple-system,sans-serif;min-height:100vh;padding:40px 20px}
|
|
18
|
+
.container{max-width:600px;margin:0 auto}
|
|
19
|
+
h1{font-size:2rem;margin-bottom:8px;background:linear-gradient(135deg,#f7931a,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
|
20
|
+
.version{color:#888;font-size:.9rem;margin-bottom:4px}
|
|
21
|
+
.developer{color:#667eea;font-size:.85rem;margin-bottom:16px;font-family:monospace}
|
|
22
|
+
.desc{color:#aaa;font-size:.95rem;margin-bottom:32px;line-height:1.5}
|
|
23
|
+
.builds{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:32px}
|
|
24
|
+
.build{background:#12121a;border-radius:12px;padding:24px;border:2px solid transparent;transition:border-color .2s}
|
|
25
|
+
.build:hover{border-color:#333}
|
|
26
|
+
.build.detected{border-color:#667eea}
|
|
27
|
+
.build-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}
|
|
28
|
+
.build-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}
|
|
29
|
+
.build-icon.chrome{background:linear-gradient(135deg,#4285f4,#34a853,#fbbc05,#ea4335);background-size:200% 200%}
|
|
30
|
+
.build-icon.firefox{background:linear-gradient(135deg,#ff6611,#ff3366)}
|
|
31
|
+
.build-title{font-size:1.1rem;font-weight:600}
|
|
32
|
+
.build-subtitle{font-size:.75rem;color:#666}
|
|
33
|
+
.build-meta{font-size:.8rem;color:#888;margin-bottom:16px}
|
|
34
|
+
.build-btn{width:100%;padding:12px;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:opacity .2s}
|
|
35
|
+
.build-btn:hover{opacity:.9}
|
|
36
|
+
.build-btn:disabled{opacity:.5;cursor:not-allowed}
|
|
37
|
+
.build-btn.chrome{background:linear-gradient(135deg,#4285f4,#357abd);color:#fff}
|
|
38
|
+
.build-btn.firefox{background:linear-gradient(135deg,#ff6611,#e55200);color:#fff}
|
|
39
|
+
.progress{background:#1a1a2e;border-radius:4px;height:6px;overflow:hidden;margin-top:12px;display:none}
|
|
40
|
+
.progress.show{display:block}
|
|
41
|
+
.progress-bar{background:linear-gradient(90deg,#667eea,#764ba2);height:100%;width:0;transition:width .3s}
|
|
42
|
+
.status{font-size:.8rem;color:#888;margin-top:8px;min-height:1.2em}
|
|
43
|
+
.instructions{background:#12121a;border-radius:12px;padding:24px;margin-bottom:24px}
|
|
44
|
+
.instructions h3{font-size:1rem;margin-bottom:16px;color:#667eea}
|
|
45
|
+
.instructions ol{padding-left:20px;color:#aaa;font-size:.9rem;line-height:1.8}
|
|
46
|
+
.instructions code{background:#1a1a2e;padding:2px 6px;border-radius:4px;font-size:.85rem;color:#fff}
|
|
47
|
+
.tabs{display:flex;gap:8px;margin-bottom:16px}
|
|
48
|
+
.tab{padding:8px 16px;border-radius:6px;background:#1a1a2e;color:#888;cursor:pointer;font-size:.85rem;border:none}
|
|
49
|
+
.tab.active{background:#667eea;color:#fff}
|
|
50
|
+
.tab-content{display:none}
|
|
51
|
+
.tab-content.active{display:block}
|
|
52
|
+
.meta{background:#12121a;border-radius:12px;padding:20px;font-size:.8rem}
|
|
53
|
+
.meta-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #1a1a2e}
|
|
54
|
+
.meta-row:last-child{border:none}
|
|
55
|
+
.meta-label{color:#667eea}
|
|
56
|
+
.meta-value{color:#888;font-family:monospace}
|
|
57
|
+
.badge{display:inline-block;background:#1a1a2e;color:#667eea;padding:4px 8px;border-radius:4px;font-size:.7rem;margin-left:8px}
|
|
58
|
+
.error{color:#ff6b6b;background:#2a1a1a;padding:12px;border-radius:8px;margin-top:12px;font-size:.85rem;display:none}
|
|
59
|
+
.detected-badge{background:#667eea;color:#fff;font-size:.7rem;padding:2px 8px;border-radius:4px;margin-left:8px}
|
|
60
|
+
a{color:#667eea}
|
|
61
|
+
</style>
|
|
62
|
+
</head>
|
|
63
|
+
<body>
|
|
64
|
+
<div class="container">
|
|
65
|
+
<h1>${esc(manifest.name)}</h1>
|
|
66
|
+
<div class="version">v${esc(manifest.extVersion)}</div>
|
|
67
|
+
<div class="developer">${esc(manifest.developer)}${manifest.homepage ? ` · <a href="${esc(manifest.homepage)}" target="_blank">homepage</a>` : ''}</div>
|
|
68
|
+
<p class="desc">${esc(manifest.description || 'A censorship-resistant browser extension stored permanently on-chain.')}</p>
|
|
69
|
+
|
|
70
|
+
<div class="builds">
|
|
71
|
+
${manifest.chrome ? `
|
|
72
|
+
<div class="build" id="chrome-build">
|
|
73
|
+
<div class="build-header">
|
|
74
|
+
<div class="build-icon chrome">🌐</div>
|
|
75
|
+
<div>
|
|
76
|
+
<div class="build-title">Chrome / Brave / Edge<span class="detected-badge" id="chrome-detected" style="display:none">Detected</span></div>
|
|
77
|
+
<div class="build-subtitle">Chromium-based browsers</div>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="build-meta">${formatBytes(manifest.chrome.size)} · ${manifest.chrome.chunks} chunks · SHA256: ${manifest.chrome.sha256.slice(0, 8)}...</div>
|
|
81
|
+
<button class="build-btn chrome" id="chrome-btn" onclick="download('chrome')">Download for Chrome</button>
|
|
82
|
+
<div class="progress" id="chrome-progress"><div class="progress-bar" id="chrome-progress-bar"></div></div>
|
|
83
|
+
<div class="status" id="chrome-status"></div>
|
|
84
|
+
<div class="error" id="chrome-error"></div>
|
|
85
|
+
</div>
|
|
86
|
+
` : ''}
|
|
87
|
+
${manifest.firefox ? `
|
|
88
|
+
<div class="build" id="firefox-build">
|
|
89
|
+
<div class="build-header">
|
|
90
|
+
<div class="build-icon firefox">🦊</div>
|
|
91
|
+
<div>
|
|
92
|
+
<div class="build-title">Firefox<span class="detected-badge" id="firefox-detected" style="display:none">Detected</span></div>
|
|
93
|
+
<div class="build-subtitle">Mozilla Firefox</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="build-meta">${formatBytes(manifest.firefox.size)} · ${manifest.firefox.chunks} chunks · SHA256: ${manifest.firefox.sha256.slice(0, 8)}...</div>
|
|
97
|
+
<button class="build-btn firefox" id="firefox-btn" onclick="download('firefox')">Download for Firefox</button>
|
|
98
|
+
<div class="progress" id="firefox-progress"><div class="progress-bar" id="firefox-progress-bar"></div></div>
|
|
99
|
+
<div class="status" id="firefox-status"></div>
|
|
100
|
+
<div class="error" id="firefox-error"></div>
|
|
101
|
+
</div>
|
|
102
|
+
` : ''}
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<div class="instructions">
|
|
106
|
+
<h3>Installation Instructions</h3>
|
|
107
|
+
<div class="tabs">
|
|
108
|
+
<button class="tab active" onclick="showTab('chrome-inst')">Chrome / Brave</button>
|
|
109
|
+
<button class="tab" onclick="showTab('firefox-inst')">Firefox</button>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="tab-content active" id="chrome-inst">
|
|
112
|
+
<ol>
|
|
113
|
+
<li>Download the extension above</li>
|
|
114
|
+
<li>Unzip the downloaded file</li>
|
|
115
|
+
<li>Open <code>chrome://extensions</code> in your browser</li>
|
|
116
|
+
<li>Enable <strong>"Developer mode"</strong> (toggle in top right)</li>
|
|
117
|
+
<li>Click <strong>"Load unpacked"</strong></li>
|
|
118
|
+
<li>Select the unzipped folder</li>
|
|
119
|
+
</ol>
|
|
120
|
+
</div>
|
|
121
|
+
<div class="tab-content" id="firefox-inst">
|
|
122
|
+
<ol>
|
|
123
|
+
<li>Download the extension above</li>
|
|
124
|
+
<li>Open <code>about:addons</code> in Firefox</li>
|
|
125
|
+
<li>Click the gear icon ⚙️</li>
|
|
126
|
+
<li>Select <strong>"Install Add-on From File..."</strong></li>
|
|
127
|
+
<li>Choose the downloaded .xpi file</li>
|
|
128
|
+
<li>Click <strong>"Add"</strong> when prompted</li>
|
|
129
|
+
</ol>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<div class="meta">
|
|
134
|
+
<div class="meta-row"><span class="meta-label">Data Chain</span><span class="meta-value">${manifest.dataChain} (${manifest.dataChainId})</span></div>
|
|
135
|
+
<div class="meta-row"><span class="meta-label">Stored</span><span class="meta-value">${new Date(manifest.timestamp).toISOString().split('T')[0]}</span></div>
|
|
136
|
+
<div class="meta-row"><span class="meta-label">Format</span><span class="meta-value">ChunkTech v${manifest.version}</span></div>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
<script>
|
|
141
|
+
const M=${JSON.stringify(manifest)};
|
|
142
|
+
// RPC discovery via calldata-rpc (https://github.com/chopperdaddy/calldata-rpc)
|
|
143
|
+
// Decentralized RPC endpoints hosted on IPFS via ENS
|
|
144
|
+
const TESTNET_RPC={84532:["https://sepolia.base.org"],421614:["https://sepolia-rollup.arbitrum.io/rpc"],11155111:["https://rpc.sepolia.org"]};
|
|
145
|
+
const rpcCache={};
|
|
146
|
+
|
|
147
|
+
async function getRPCs(chainId){
|
|
148
|
+
if(rpcCache[chainId])return rpcCache[chainId];
|
|
149
|
+
if(TESTNET_RPC[chainId]){rpcCache[chainId]=TESTNET_RPC[chainId];return TESTNET_RPC[chainId];}
|
|
150
|
+
const urls=["https://rpcs.calldata.eth.limo","https://rpcs.calldata.eth.link"];
|
|
151
|
+
for(const url of urls){
|
|
152
|
+
try{
|
|
153
|
+
const r=await fetch(url);
|
|
154
|
+
if(r.ok){const d=await r.json();if(d[chainId]&&Array.isArray(d[chainId])){rpcCache[chainId]=d[chainId];return d[chainId];}}
|
|
155
|
+
}catch(e){}
|
|
156
|
+
}
|
|
157
|
+
return[];
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Detect browser
|
|
161
|
+
const isFirefox=/Firefox/.test(navigator.userAgent);
|
|
162
|
+
const isChrome=/Chrome/.test(navigator.userAgent)&&!/Edg/.test(navigator.userAgent);
|
|
163
|
+
const isBrave=navigator.brave!==undefined;
|
|
164
|
+
const isEdge=/Edg/.test(navigator.userAgent);
|
|
165
|
+
|
|
166
|
+
if((isChrome||isBrave||isEdge)&&document.getElementById('chrome-detected')){
|
|
167
|
+
document.getElementById('chrome-detected').style.display='inline';
|
|
168
|
+
document.getElementById('chrome-build').classList.add('detected');
|
|
169
|
+
}
|
|
170
|
+
if(isFirefox&&document.getElementById('firefox-detected')){
|
|
171
|
+
document.getElementById('firefox-detected').style.display='inline';
|
|
172
|
+
document.getElementById('firefox-build').classList.add('detected');
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function showTab(id){
|
|
176
|
+
document.querySelectorAll('.tab').forEach(t=>t.classList.remove('active'));
|
|
177
|
+
document.querySelectorAll('.tab-content').forEach(t=>t.classList.remove('active'));
|
|
178
|
+
document.getElementById(id).classList.add('active');
|
|
179
|
+
event.target.classList.add('active');
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
async function fetchChunkFromRpc(rpc,hash){
|
|
183
|
+
const r=await fetch(rpc,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"eth_getTransactionByHash",params:[hash],id:1})});
|
|
184
|
+
const j=await r.json();
|
|
185
|
+
if(!j.result||!j.result.input)throw new Error("TX not found");
|
|
186
|
+
const hex=j.result.input.slice(2);
|
|
187
|
+
const bytes=new Uint8Array(hex.length/2);
|
|
188
|
+
for(let i=0;i<hex.length;i+=2)bytes[i/2]=parseInt(hex.substr(i,2),16);
|
|
189
|
+
const str=new TextDecoder().decode(bytes);
|
|
190
|
+
const prefix="data:chunk,";
|
|
191
|
+
if(!str.startsWith(prefix))throw new Error("Invalid chunk format");
|
|
192
|
+
const payload=JSON.parse(atob(str.slice(prefix.length)));
|
|
193
|
+
const binary=atob(payload.data);
|
|
194
|
+
const data=new Uint8Array(binary.length);
|
|
195
|
+
for(let i=0;i<binary.length;i++)data[i]=binary.charCodeAt(i);
|
|
196
|
+
return{part:payload.part,data};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
async function fetchChunk(rpcs,hash){
|
|
200
|
+
let lastErr;
|
|
201
|
+
for(const rpc of rpcs){
|
|
202
|
+
try{return await fetchChunkFromRpc(rpc,hash);}catch(e){lastErr=e;}
|
|
203
|
+
}
|
|
204
|
+
throw new Error("All RPCs failed for "+hash.slice(0,10)+"...: "+(lastErr?.message||"unknown"));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
async function download(browser){
|
|
208
|
+
const build=M[browser];
|
|
209
|
+
if(!build)return;
|
|
210
|
+
|
|
211
|
+
const btn=document.getElementById(browser+'-btn');
|
|
212
|
+
const progress=document.getElementById(browser+'-progress');
|
|
213
|
+
const progressBar=document.getElementById(browser+'-progress-bar');
|
|
214
|
+
const status=document.getElementById(browser+'-status');
|
|
215
|
+
const error=document.getElementById(browser+'-error');
|
|
216
|
+
|
|
217
|
+
btn.disabled=true;
|
|
218
|
+
progress.classList.add('show');
|
|
219
|
+
error.style.display='none';
|
|
220
|
+
|
|
221
|
+
try{
|
|
222
|
+
status.textContent="Discovering RPC endpoints...";
|
|
223
|
+
const rpcs=await getRPCs(M.dataChainId);
|
|
224
|
+
if(!rpcs.length){throw new Error("No RPC endpoints for chain "+M.dataChainId);}
|
|
225
|
+
|
|
226
|
+
const chunks=[];
|
|
227
|
+
for(let i=0;i<build.txHashes.length;i++){
|
|
228
|
+
status.textContent="Fetching chunk "+(i+1)+"/"+build.chunks+" from "+M.dataChain+"...";
|
|
229
|
+
const chunk=await fetchChunk(rpcs,build.txHashes[i]);
|
|
230
|
+
chunks.push(chunk);
|
|
231
|
+
progressBar.style.width=((i+1)/build.chunks*90)+"%";
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
status.textContent="Reassembling...";
|
|
235
|
+
chunks.sort((a,b)=>a.part-b.part);
|
|
236
|
+
const total=chunks.reduce((s,c)=>s+c.data.length,0);
|
|
237
|
+
const result=new Uint8Array(total);
|
|
238
|
+
let offset=0;
|
|
239
|
+
for(const c of chunks){result.set(c.data,offset);offset+=c.data.length;}
|
|
240
|
+
|
|
241
|
+
status.textContent="Verifying SHA256...";
|
|
242
|
+
const hashBuf=await crypto.subtle.digest("SHA-256",result);
|
|
243
|
+
const hash=Array.from(new Uint8Array(hashBuf)).map(b=>b.toString(16).padStart(2,"0")).join("");
|
|
244
|
+
|
|
245
|
+
if(hash!==build.sha256){
|
|
246
|
+
throw new Error("Hash mismatch! File may be corrupted.");
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
progressBar.style.width="100%";
|
|
250
|
+
status.textContent="Verified! Starting download...";
|
|
251
|
+
|
|
252
|
+
const ext=browser==='firefox'?'xpi':'zip';
|
|
253
|
+
const mime=browser==='firefox'?'application/x-xpinstall':'application/zip';
|
|
254
|
+
const filename=M.name.toLowerCase().replace(/[^a-z0-9]/g,'-')+'-v'+M.extVersion+'.'+ext;
|
|
255
|
+
|
|
256
|
+
const blob=new Blob([result],{type:mime});
|
|
257
|
+
const url=URL.createObjectURL(blob);
|
|
258
|
+
const a=document.createElement('a');
|
|
259
|
+
a.href=url;
|
|
260
|
+
a.download=filename;
|
|
261
|
+
a.click();
|
|
262
|
+
URL.revokeObjectURL(url);
|
|
263
|
+
|
|
264
|
+
status.textContent="Download complete! ✓";
|
|
265
|
+
btn.textContent="Download Again";
|
|
266
|
+
btn.disabled=false;
|
|
267
|
+
|
|
268
|
+
}catch(e){
|
|
269
|
+
error.textContent="Error: "+e.message;
|
|
270
|
+
error.style.display="block";
|
|
271
|
+
status.textContent="Failed";
|
|
272
|
+
btn.disabled=false;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
function formatBytes(b){if(b<1024)return b+" B";if(b<1048576)return(b/1024).toFixed(1)+" KB";return(b/1048576).toFixed(2)+" MB";}
|
|
277
|
+
</script>
|
|
278
|
+
</body>
|
|
279
|
+
</html>`;
|
|
280
|
+
return `data:text/html;base64,${btoa(unescape(encodeURIComponent(html)))}`;
|
|
281
|
+
}
|
|
282
|
+
// ============================================================================
|
|
283
|
+
// Utilities
|
|
284
|
+
// ============================================================================
|
|
285
|
+
function esc(str) {
|
|
286
|
+
return str
|
|
287
|
+
.replace(/&/g, '&')
|
|
288
|
+
.replace(/</g, '<')
|
|
289
|
+
.replace(/>/g, '>')
|
|
290
|
+
.replace(/"/g, '"');
|
|
291
|
+
}
|
|
292
|
+
function formatBytes(bytes) {
|
|
293
|
+
if (bytes < 1024)
|
|
294
|
+
return bytes + ' B';
|
|
295
|
+
if (bytes < 1048576)
|
|
296
|
+
return (bytes / 1024).toFixed(1) + ' KB';
|
|
297
|
+
return (bytes / 1048576).toFixed(2) + ' MB';
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=extension-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-loader.js","sourceRoot":"","sources":["../src/extension-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,UAAU,uBAAuB,CACrC,QAA2B;IAE3B,MAAM,IAAI,GAAG;;;;;SAKN,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmDrB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACA,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;yBACvB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE;kBAC/H,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,uEAAuE,CAAC;;;EAGpH,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;;;;;;;;;0BASM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,qBAAqB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC;;;;;;CAM5I,CAAC,CAAC,CAAC,EAAE;EACJ,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;;;;;0BASK,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,qBAAqB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC;;;;;;CAM/I,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2FAgCqF,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW;uFAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;kGAC7C,QAAQ,CAAC,OAAO;;;;;UAKxG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0I1B,CAAC;IAEP,OAAO,yBAAyB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,KAAK,GAAG,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,OAAO;QAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9D,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChunkTech - Extension Uploader
|
|
3
|
+
* Upload Chrome + Firefox builds to Base, create inscription on Ethereum
|
|
4
|
+
*/
|
|
5
|
+
import type { WalletClient, Hash } from 'viem';
|
|
6
|
+
import type { ExtensionManifest } from './extension-loader.js';
|
|
7
|
+
export interface ExtensionUploaderConfig {
|
|
8
|
+
/** Wallet for the inscription (mainnet/sepolia) */
|
|
9
|
+
keyWalletClient: WalletClient;
|
|
10
|
+
/** Wallet for data storage (base/baseSepolia) */
|
|
11
|
+
dataWalletClient: WalletClient;
|
|
12
|
+
/** Chain for inscription */
|
|
13
|
+
keyChain: 'ethereum' | 'sepolia';
|
|
14
|
+
/** Chain for data */
|
|
15
|
+
dataChain: 'base' | 'baseSepolia';
|
|
16
|
+
/** Custom RPC URLs */
|
|
17
|
+
keyRpcUrl?: string;
|
|
18
|
+
dataRpcUrl?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ExtensionUploadInput {
|
|
21
|
+
/** Extension name */
|
|
22
|
+
name: string;
|
|
23
|
+
/** Extension version (e.g., "1.2.0") */
|
|
24
|
+
version: string;
|
|
25
|
+
/** Developer address or ENS */
|
|
26
|
+
developer: string;
|
|
27
|
+
/** Description */
|
|
28
|
+
description?: string;
|
|
29
|
+
/** Homepage URL */
|
|
30
|
+
homepage?: string;
|
|
31
|
+
/** Chrome build (zipped extension folder) */
|
|
32
|
+
chrome?: Uint8Array | ArrayBuffer;
|
|
33
|
+
/** Firefox build (.xpi file) */
|
|
34
|
+
firefox?: Uint8Array | ArrayBuffer;
|
|
35
|
+
}
|
|
36
|
+
export interface ExtensionUploadResult {
|
|
37
|
+
/** Inscription transaction hash (the "installer") */
|
|
38
|
+
inscriptionTxHash: Hash;
|
|
39
|
+
/** Chain ID for inscription */
|
|
40
|
+
inscriptionChainId: number;
|
|
41
|
+
/** Chrome build tx hashes (if uploaded) */
|
|
42
|
+
chromeTxHashes?: Hash[];
|
|
43
|
+
/** Firefox build tx hashes (if uploaded) */
|
|
44
|
+
firefoxTxHashes?: Hash[];
|
|
45
|
+
/** Data chain ID */
|
|
46
|
+
dataChainId: number;
|
|
47
|
+
/** Full manifest */
|
|
48
|
+
manifest: ExtensionManifest;
|
|
49
|
+
}
|
|
50
|
+
export type UploadProgressPhase = 'chrome' | 'firefox' | 'inscription';
|
|
51
|
+
export declare class ExtensionUploader {
|
|
52
|
+
private keyWalletClient;
|
|
53
|
+
private dataWalletClient;
|
|
54
|
+
private keyPublicClient;
|
|
55
|
+
private dataPublicClient;
|
|
56
|
+
private keyChain;
|
|
57
|
+
private dataChain;
|
|
58
|
+
constructor(config: ExtensionUploaderConfig);
|
|
59
|
+
/**
|
|
60
|
+
* Upload extension builds and create inscription
|
|
61
|
+
*/
|
|
62
|
+
upload(input: ExtensionUploadInput, options?: {
|
|
63
|
+
onProgress?: (phase: UploadProgressPhase, sent: number, total: number) => void;
|
|
64
|
+
confirmations?: number;
|
|
65
|
+
}): Promise<ExtensionUploadResult>;
|
|
66
|
+
private uploadBuild;
|
|
67
|
+
private sendInscription;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=extension-uploader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-uploader.d.ts","sourceRoot":"","sources":["../src/extension-uploader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAA0C,MAAM,uBAAuB,CAAC;AAWvG,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,eAAe,EAAE,YAAY,CAAC;IAC9B,iDAAiD;IACjD,gBAAgB,EAAE,YAAY,CAAC;IAC/B,4BAA4B;IAC5B,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,qBAAqB;IACrB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,gCAAgC;IAChC,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,iBAAiB,EAAE,IAAI,CAAC;IACxB,+BAA+B;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;IACxB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC;IACzB,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;AAavE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAyB;gBAE9B,MAAM,EAAE,uBAAuB;IAiB3C;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,oBAAoB,EAC3B,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;KACnB,GACL,OAAO,CAAC,qBAAqB,CAAC;YAgEnB,WAAW;YAgCX,eAAe;CAgB9B"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChunkTech - Extension Uploader
|
|
3
|
+
* Upload Chrome + Firefox builds to Base, create inscription on Ethereum
|
|
4
|
+
*/
|
|
5
|
+
import { createPublicClient, http } from 'viem';
|
|
6
|
+
import { mainnet, base, sepolia, baseSepolia } from 'viem/chains';
|
|
7
|
+
import { generateExtensionLoader } from './extension-loader.js';
|
|
8
|
+
import { chunkData } from './chunker.js';
|
|
9
|
+
import { sendChunks } from './sender.js';
|
|
10
|
+
import { waitForTransactions } from './tracker.js';
|
|
11
|
+
import { SUPPORTED_CHAINS } from './types.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Uploader Class
|
|
14
|
+
// ============================================================================
|
|
15
|
+
const CHAINS = {
|
|
16
|
+
ethereum: mainnet,
|
|
17
|
+
base: base,
|
|
18
|
+
sepolia: sepolia,
|
|
19
|
+
baseSepolia: baseSepolia,
|
|
20
|
+
};
|
|
21
|
+
export class ExtensionUploader {
|
|
22
|
+
keyWalletClient;
|
|
23
|
+
dataWalletClient;
|
|
24
|
+
keyPublicClient;
|
|
25
|
+
dataPublicClient;
|
|
26
|
+
keyChain;
|
|
27
|
+
dataChain;
|
|
28
|
+
constructor(config) {
|
|
29
|
+
this.keyChain = config.keyChain;
|
|
30
|
+
this.dataChain = config.dataChain;
|
|
31
|
+
this.keyWalletClient = config.keyWalletClient;
|
|
32
|
+
this.dataWalletClient = config.dataWalletClient;
|
|
33
|
+
this.keyPublicClient = createPublicClient({
|
|
34
|
+
chain: CHAINS[config.keyChain],
|
|
35
|
+
transport: http(config.keyRpcUrl),
|
|
36
|
+
});
|
|
37
|
+
this.dataPublicClient = createPublicClient({
|
|
38
|
+
chain: CHAINS[config.dataChain],
|
|
39
|
+
transport: http(config.dataRpcUrl),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Upload extension builds and create inscription
|
|
44
|
+
*/
|
|
45
|
+
async upload(input, options = {}) {
|
|
46
|
+
const { onProgress, confirmations = 1 } = options;
|
|
47
|
+
if (!input.chrome && !input.firefox) {
|
|
48
|
+
throw new Error('At least one build (chrome or firefox) is required');
|
|
49
|
+
}
|
|
50
|
+
const manifest = {
|
|
51
|
+
version: 1,
|
|
52
|
+
name: input.name,
|
|
53
|
+
extVersion: input.version,
|
|
54
|
+
developer: input.developer,
|
|
55
|
+
description: input.description,
|
|
56
|
+
homepage: input.homepage,
|
|
57
|
+
dataChainId: SUPPORTED_CHAINS[this.dataChain].id,
|
|
58
|
+
dataChain: this.dataChain,
|
|
59
|
+
timestamp: Date.now(),
|
|
60
|
+
};
|
|
61
|
+
let chromeTxHashes;
|
|
62
|
+
let firefoxTxHashes;
|
|
63
|
+
// Upload Chrome build
|
|
64
|
+
if (input.chrome) {
|
|
65
|
+
const bytes = toUint8Array(input.chrome);
|
|
66
|
+
const build = await this.uploadBuild(bytes, 'chrome', onProgress, confirmations);
|
|
67
|
+
manifest.chrome = build.meta;
|
|
68
|
+
chromeTxHashes = build.txHashes;
|
|
69
|
+
}
|
|
70
|
+
// Upload Firefox build
|
|
71
|
+
if (input.firefox) {
|
|
72
|
+
const bytes = toUint8Array(input.firefox);
|
|
73
|
+
const build = await this.uploadBuild(bytes, 'firefox', onProgress, confirmations);
|
|
74
|
+
manifest.firefox = build.meta;
|
|
75
|
+
firefoxTxHashes = build.txHashes;
|
|
76
|
+
}
|
|
77
|
+
// Generate and upload inscription
|
|
78
|
+
const inscriptionCalldata = generateExtensionLoader(manifest);
|
|
79
|
+
const inscriptionTxHash = await this.sendInscription(inscriptionCalldata);
|
|
80
|
+
if (onProgress) {
|
|
81
|
+
onProgress('inscription', 1, 1);
|
|
82
|
+
}
|
|
83
|
+
// Wait for inscription confirmation
|
|
84
|
+
if (confirmations > 0) {
|
|
85
|
+
await this.keyPublicClient.waitForTransactionReceipt({
|
|
86
|
+
hash: inscriptionTxHash,
|
|
87
|
+
confirmations,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
inscriptionTxHash,
|
|
92
|
+
inscriptionChainId: SUPPORTED_CHAINS[this.keyChain].id,
|
|
93
|
+
chromeTxHashes,
|
|
94
|
+
firefoxTxHashes,
|
|
95
|
+
dataChainId: SUPPORTED_CHAINS[this.dataChain].id,
|
|
96
|
+
manifest,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
async uploadBuild(data, phase, onProgress, confirmations = 1) {
|
|
100
|
+
const sha256 = await computeSha256(data);
|
|
101
|
+
const chunked = chunkData(data);
|
|
102
|
+
const results = await sendChunks(this.dataWalletClient, chunked.chunks, {
|
|
103
|
+
onProgress: onProgress
|
|
104
|
+
? (sent, total) => onProgress(phase, sent, total)
|
|
105
|
+
: undefined,
|
|
106
|
+
});
|
|
107
|
+
const txHashes = results.map((r) => r.hash);
|
|
108
|
+
if (confirmations > 0) {
|
|
109
|
+
await waitForTransactions(this.dataPublicClient, results, { confirmations });
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
meta: {
|
|
113
|
+
txHashes,
|
|
114
|
+
sha256,
|
|
115
|
+
size: data.length,
|
|
116
|
+
chunks: chunked.total,
|
|
117
|
+
},
|
|
118
|
+
txHashes,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
async sendInscription(calldata) {
|
|
122
|
+
const account = this.keyWalletClient.account;
|
|
123
|
+
if (!account) {
|
|
124
|
+
throw new Error('WalletClient must have an account');
|
|
125
|
+
}
|
|
126
|
+
const hexData = stringToHex(calldata);
|
|
127
|
+
return this.keyWalletClient.sendTransaction({
|
|
128
|
+
account,
|
|
129
|
+
chain: this.keyWalletClient.chain,
|
|
130
|
+
to: account.address,
|
|
131
|
+
value: 0n,
|
|
132
|
+
data: hexData,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// ============================================================================
|
|
137
|
+
// Utilities
|
|
138
|
+
// ============================================================================
|
|
139
|
+
function toUint8Array(data) {
|
|
140
|
+
return data instanceof ArrayBuffer ? new Uint8Array(data) : data;
|
|
141
|
+
}
|
|
142
|
+
async function computeSha256(data) {
|
|
143
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', data);
|
|
144
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
145
|
+
return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
146
|
+
}
|
|
147
|
+
function stringToHex(str) {
|
|
148
|
+
const bytes = new TextEncoder().encode(str);
|
|
149
|
+
return '0x' + Array.from(bytes)
|
|
150
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
151
|
+
.join('');
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=extension-uploader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-uploader.js","sourceRoot":"","sources":["../src/extension-uploader.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -57,4 +57,10 @@ export { fetchTransaction, fetchChunk, fetchChunks, fetchChunksParallel, assembl
|
|
|
57
57
|
export type { FetchResult } from './assembler.js';
|
|
58
58
|
export { generateKeyPair, generateEncryptionKeys, deriveKeysFromSignature, encryptForRecipients, decryptForRecipient, toHex, fromHex, bundleToHex, bundleFromHex, } from './crypto.js';
|
|
59
59
|
export { MAX_CHUNK_SIZE, CHUNK_PREFIX, CHUNK_ENCRYPTED_PREFIX, SUPPORTED_CHAINS } from './types.js';
|
|
60
|
+
export { CrossChainUploader, generateHtmlLoader } from './crosschain.js';
|
|
61
|
+
export type { ChainName, CrossChainConfig, CrossChainUploadOptions, CrossChainUploadResult, CrossChainManifest, } from './types.js';
|
|
62
|
+
export { generateExtensionLoader } from './extension-loader.js';
|
|
63
|
+
export type { ExtensionBuild, ExtensionManifest, ExtensionLoaderOptions, } from './extension-loader.js';
|
|
64
|
+
export { ExtensionUploader } from './extension-uploader.js';
|
|
65
|
+
export type { ExtensionUploaderConfig, ExtensionUploadInput, ExtensionUploadResult, UploadProgressPhase, } from './extension-uploader.js';
|
|
60
66
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAgB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAGpE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EAIf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAuB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAsB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAoBxE,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAQ;gBAET,MAAM,EAAE,eAAe;IAYnC,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EACvC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC;IA6CxB;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,IAAI,EAAE,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC;IA6B1B;;OAEG;IACH,qBAAqB,CAAC,OAAO,GAAE,eAAoB,GAAG,kBAAkB;IAIxE;;OAEG;IACH,qBAAqB,CAAC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,kBAAkB;IAI1G;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIxC;;OAEG;IACH,QAAQ,IAAI,KAAK;IAIjB;;OAEG;IACH,eAAe,IAAI,YAAY;CAGhC;AAOD,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,CAAC;AAGhC,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,QAAQ,EACR,cAAc,EACd,SAAS,EACT,KAAK,EACL,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,EACL,OAAO,EACP,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -166,6 +166,11 @@ export { fetchTransaction, fetchChunk, fetchChunks, fetchChunksParallel, assembl
|
|
|
166
166
|
export { generateKeyPair, generateEncryptionKeys, deriveKeysFromSignature, encryptForRecipients, decryptForRecipient, toHex, fromHex, bundleToHex, bundleFromHex, } from './crypto.js';
|
|
167
167
|
// Constants
|
|
168
168
|
export { MAX_CHUNK_SIZE, CHUNK_PREFIX, CHUNK_ENCRYPTED_PREFIX, SUPPORTED_CHAINS } from './types.js';
|
|
169
|
+
// Cross-chain utilities
|
|
170
|
+
export { CrossChainUploader, generateHtmlLoader } from './crosschain.js';
|
|
171
|
+
// Extension utilities
|
|
172
|
+
export { generateExtensionLoader } from './extension-loader.js';
|
|
173
|
+
export { ExtensionUploader } from './extension-uploader.js';
|
|
169
174
|
// ============================================================================
|
|
170
175
|
// Utilities
|
|
171
176
|
// ============================================================================
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAa7F,OAAO,EAAE,SAAS,EAAmB,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAC;AAExE,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,MAAM,GAA0B;IACpC,CAAC,EAAE,OAAO;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,eAAe;CACxB,CAAC;AAEF,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,OAAO,SAAS;IACZ,YAAY,CAAe;IAC3B,YAAY,CAAe;IAC3B,KAAK,CAAQ;IAErB,YAAY,MAAuB;QACjC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhD,IAAI,CAAC,YAAY;YACf,MAAM,CAAC,YAAY;gBACnB,kBAAkB,CAAC;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;iBAC/B,CAAC,CAAC;IACP,CAAC;IAEO,WAAW;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5C,IAAI,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,kBAAkB;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,IAAuC,EACvC,UAAyB,EAAE;QAE3B,8BAA8B;QAC9B,IAAI,KAAiB,CAAC;QACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YACvC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;YAC5C,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YACrF,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACrE,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,iBAAiB;QACjB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnC,cAAc;QACd,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE;YAClE,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS;SACV,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;QACjD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,EAAE;YACnB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpC,WAAW,EAAE,OAAO,CAAC,KAAK;YAC1B,UAAU,EAAE,KAAK,CAAC,MAAM;SACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,UAA2B,EAAE;QAE7B,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,OAAO;YACL,IAAI;YACJ,OAAO;YACP,WAAW,EAAE,QAAQ,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,UAA2B,EAAE;QACjD,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,UAA6D,EAAE;QACnF,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,aAAa;AACb,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,CAAC;AAiBhC,qBAAqB;AACrB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGxE,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,sBAAsB;AACtB,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,8BAA8B;AAC9B,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,EACL,OAAO,EACP,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpG,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AASzE,sBAAsB;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAOhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}
|