tollkit-wallet 0.2.2 → 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.
Files changed (55) hide show
  1. package/dist/actions.d.ts +136 -40
  2. package/dist/ai.d.ts +13 -1
  3. package/dist/ai.js +2 -2
  4. package/dist/ai.js.map +1 -1
  5. package/dist/autopilot.d.ts +7 -0
  6. package/dist/autopilot.js +118 -3
  7. package/dist/autopilot.js.map +1 -1
  8. package/dist/bots.d.ts +92 -0
  9. package/dist/bots.js +183 -0
  10. package/dist/bots.js.map +1 -0
  11. package/dist/bridge.js +3 -2
  12. package/dist/bridge.js.map +1 -1
  13. package/dist/dapp.d.ts +10 -0
  14. package/dist/dapp.js +80 -13
  15. package/dist/dapp.js.map +1 -1
  16. package/dist/dashboard.d.ts +12 -0
  17. package/dist/dashboard.js +127 -14
  18. package/dist/dashboard.js.map +1 -1
  19. package/dist/data/token-list.d.ts +12 -0
  20. package/dist/data/token-list.js +13 -0
  21. package/dist/data/token-list.js.map +1 -0
  22. package/dist/holdings.d.ts +6 -0
  23. package/dist/holdings.js +41 -8
  24. package/dist/holdings.js.map +1 -1
  25. package/dist/mcp.d.ts +1 -1
  26. package/dist/mcp.js +1 -1
  27. package/dist/pay.js +1 -1
  28. package/dist/pay.js.map +1 -1
  29. package/dist/policy.d.ts +2 -2
  30. package/dist/rules.d.ts +59 -8
  31. package/dist/rules.js +45 -3
  32. package/dist/rules.js.map +1 -1
  33. package/dist/seller.js +15 -4
  34. package/dist/seller.js.map +1 -1
  35. package/dist/send.js +3 -2
  36. package/dist/send.js.map +1 -1
  37. package/dist/solconfirm.d.ts +13 -0
  38. package/dist/solconfirm.js +21 -0
  39. package/dist/solconfirm.js.map +1 -0
  40. package/dist/stake.js +3 -2
  41. package/dist/stake.js.map +1 -1
  42. package/dist/swap.d.ts +27 -4
  43. package/dist/swap.js +202 -9
  44. package/dist/swap.js.map +1 -1
  45. package/dist/tokenlist.d.ts +70 -0
  46. package/dist/tokenlist.js +259 -0
  47. package/dist/tokenlist.js.map +1 -0
  48. package/dist/ui.js +98 -10
  49. package/dist/ui.js.map +1 -1
  50. package/dist/wallet.d.ts +3 -1
  51. package/dist/wallet.js +22 -1
  52. package/dist/wallet.js.map +1 -1
  53. package/extension/background.js +1 -1
  54. package/extension/popup.js +1 -1
  55. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenlist.js","sourceRoot":"","sources":["../src/tokenlist.ts"],"names":[],"mappings":"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"}
package/dist/ui.js CHANGED
@@ -230,6 +230,14 @@ input,select{transition:border-color .2s ease,box-shadow .25s ease}input:focus,s
230
230
  .tl{width:100%;height:100%;border-radius:50%;background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;color:var(--mut);letter-spacing:-.02em}
231
231
  .rowc{cursor:pointer}.rowc:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
232
232
  .hfoot{margin-top:8px;font-size:12px;color:var(--mut);text-align:center}
233
+ .botc{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:8px}.botct{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}.botpill{white-space:nowrap}.botpill.ok{background:rgba(60,207,145,.15);color:var(--ok)}.botpill.warn{background:rgba(245,184,74,.15);color:var(--warn)}.botpill.bad{background:rgba(255,107,107,.15);color:var(--bad)}
234
+ .botstats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.botstats div{background:var(--card);border-radius:10px;padding:6px 8px;min-width:0}.botstats small{display:block;color:var(--mut);font-size:11px}.botstats b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
235
+ .botcat{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bottpl{text-align:left;background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:10px;color:var(--tx);font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px}.bottpl small{color:var(--mut);font-size:12px;line-height:1.35}.bottpl.on,.bottpl:hover{border-color:var(--acc)}
236
+ .botgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.botf{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut)}.botf input,.botf select{background:var(--card);border:1px solid var(--line);color:var(--tx);border-radius:10px;padding:8px;font:inherit;font-size:13px;min-width:0}
237
+ .botshare{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--mut);margin-top:14px;line-height:1.4}.botshare input{width:auto;flex:0 0 auto;margin:2px 0 0}.addt .crow2 select{flex:0 0 104px;width:104px}.addt .crow2 input{flex:1 1 auto;min-width:0;width:auto}@media(max-width:420px){.botcat,.botgrid{grid-template-columns:1fr}.botstats{grid-template-columns:1fr 1fr}}
238
+ .tlogo{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.tbadge{font-size:10px;padding:1px 6px;vertical-align:1px;margin-left:4px}
239
+ .atlist{display:flex;flex-direction:column;gap:4px;margin-top:8px;max-height:320px;overflow-y:auto}.atrow{display:flex;align-items:center;gap:10px;text-align:left;background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:8px 10px;color:var(--tx);font:inherit;cursor:pointer}.atrow:hover{border-color:var(--acc)}.atn{min-width:0;display:flex;flex-direction:column}.atn small{color:var(--mut);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
240
+ .atw{margin-top:10px;padding:10px;border-radius:10px;background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.35);color:var(--bad);font-size:13px}.atw ul,.atchk ul{margin:6px 0 0;padding-left:18px}.atw li{margin:3px 0;color:var(--tx)}.atwarn{border-color:rgba(255,107,107,.45)}
233
241
  .crow2{display:flex;gap:6px;margin-top:8px}.crow2 select,.crow2 input{background:var(--card);border:1px solid var(--line);color:var(--tx);border-radius:10px;padding:8px;font:inherit;font-size:13px}.crow2 input{flex:1;min-width:0}.crow2 .b{padding:8px 14px}
234
242
  .chdlg{max-width:560px}
235
243
  .chh{display:flex;align-items:center;gap:10px}.chh h2{margin:0;font-size:18px}
@@ -284,11 +292,12 @@ var COIN=${COIN_JSON};
284
292
  var AIIC=${AI_ICON_JSON},AIO=null,AIPW="",AIMSG={},AIOPEN={},AIBUSY=null;
285
293
  function aiSvg(k){var i=AIIC[k];return '<svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor"'+(i.rule?' fill-rule="'+i.rule+'"':'')+' d="'+i.d+'"/></svg>'}
286
294
  var AIMETA={claude:["claude","Claude"],"claude-code":["claude","Claude Code"],cursor:["cursor","Cursor"],vscode:["copilot","VS Code"],codex:["terminal","Codex"],gemini:["gemini","Gemini CLI"]};
287
- function aiBtn(){var on=((S.connect||{}).apps||[]).filter(function(a){return a.added});
295
+ function aiBtn(){var on=((S.connect||{}).apps||[]).filter(function(a){return a.added}),rm=(S.connect||{}).remote;
296
+ if(rm&&rm.on)on=[{id:"claude"}];
288
297
  if(!on.length)return '<button class="b aib" onclick="openAI()"><span class="aiic">'+aiSvg("claude")+aiSvg("cursor")+aiSvg("gemini")+'</span>Connect your AI</button>';
289
298
  var icons=[],names=[];on.forEach(function(a){var m=AIMETA[a.id];if(!m)return;names.push(m[1]);if(icons.indexOf(m[0])<0)icons.push(m[0])});
290
299
  var wait=(S.rules||[]).filter(function(r){return r.status==="proposed"}).length;
291
- return '<div class="aiconn"><button class="aich" onclick="openAI()" title="Manage connected AI apps"><span class="aistk">'+icons.slice(0,4).map(function(k){return '<i class="ail-'+k+'">'+aiSvg(k)+'</i>'}).join("")+'</span><span class="aichn"><b>'+esc(names.join(" + "))+'</b><small><span class="ok">●</span> Connected</small></span></button>'+
300
+ return '<div class="aiconn"><button class="aich" onclick="openAI()" title="Manage connected AI apps"><span class="aistk">'+icons.slice(0,4).map(function(k){return '<i class="ail-'+k+'">'+aiSvg(k)+'</i>'}).join("")+'</span><span class="aichn"><b>'+esc(rm&&rm.on?"Your AI apps":names.join(" + "))+'</b><small>'+(rm&&rm.on&&!rm.online?'<span class="warn">●</span> Waiting for the wallet':'<span class="ok">●</span> Connected')+'</small></span></button>'+
292
301
  '<button class="b aiap" onclick="goAuto()"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path d="M13 2L4 14h7l-1 8 9-12h-7z" fill="currentColor"/></svg>Autopilot'+(wait?'<span class="aiwt">'+wait+'</span>':'')+'</button></div>'}
293
302
  function goAuto(){go("autopilot");setTimeout(function(){var t=document.getElementById("chin");if(t&&!t.disabled)t.focus()},120)}
294
303
  function aiCfg(){var c=S.connect||{};return c.launch||{command:"npx",args:["-y","tollkit-wallet","mcp"],env:{TOLLKIT_WALLET_PASSWORD_FILE:c.password_file||""}}}
@@ -316,7 +325,34 @@ else if(st.added){line='<span class="warn">Needs an update</span>';btn='<button
316
325
  else{line='Found on this computer';btn='<button class="b aiadd" data-act="add" data-id="'+x.id+'"'+(busy?" disabled":"")+'>'+(busy?"Adding…":"Add")+'</button>'}
317
326
  return '<div class="airow" style="--i:'+i+'"><div class="airt">'+aiSvg(x.icon)+'<div class="ainm"><b>'+esc(x.name)+'</b><small>'+line+'</small></div>'+btn+'</div>'+(m?'<div class="aim '+(m[0]?"ok":"bad")+'">'+esc(m[1])+'</div>':'')+'<button class="aihand" data-hand="'+x.id+'">'+(AIOPEN[x.id]?"Hide steps":"Do it by hand")+'</button>'+(AIOPEN[x.id]?'<div class="aihb">'+x.hand()+'</div>':'')+'</div>'}
318
327
  function svgOk(){return '<svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" style="vertical-align:-2px;margin-right:4px"><path d="M5 13l4 4L19 7" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/></svg>'}
328
+ // Adding a connector by its address. Steps checked against each app's docs on 2026-10-14: support.claude.com/en/articles/11175166,
329
+ // developers.openai.com/api/docs/guides/developer-mode, code.claude.com/docs/en/mcp-quickstart, cursor.com/docs/mcp,
330
+ // code.visualstudio.com/docs/copilot/reference/mcp-configuration, developers.openai.com/codex/mcp, geminicli.com/docs/tools/mcp-server.
331
+ var AIREMOTE=[
332
+ {id:"claude",name:"Claude",sub:"Web, desktop and mobile",icon:"claude",hand:function(u){return '<ol class="aist"><li>Open <a href="https://claude.ai/customize/connectors" target="_blank" rel="noopener">claude.ai/customize/connectors</a>, click <b>+</b>, then <b>Add custom connector</b>.</li><li>Paste your address and click <b>Add</b>.</li></ol><p class="aismall">Free plans can add one custom connector. On Team and Enterprise, an Owner adds it (Add → Custom → Web).</p>'}},
333
+ {id:"chatgpt",name:"ChatGPT",sub:"Developer mode",icon:"terminal",hand:function(u){return '<ol class="aist"><li>In ChatGPT on the web: <b>Settings → Apps → Advanced settings</b>, turn on <b>Developer mode</b>.</li><li>Click <b>Create app</b>, paste your address, choose <b>No authentication</b>, and create it.</li></ol><p class="aismall">Developer mode depends on your ChatGPT plan; OpenAI’s help pages list which.</p>'}},
334
+ {id:"claude-code",name:"Claude Code",sub:"Terminal",icon:"claude",hand:function(u){return '<p class="aip">Paste into your terminal:</p>'+aiCode("ar-cc","claude mcp add --transport http --scope user tollkit-wallet "+shq(u))}},
335
+ {id:"cursor",name:"Cursor",sub:"Code editor",icon:"cursor",hand:function(u){return '<p class="aip">Add this to <span class="kbd">~/.cursor/mcp.json</span>:</p>'+aiCode("ar-cu",JSON.stringify({mcpServers:{"tollkit-wallet":{url:u}}},null,2))}},
336
+ {id:"vscode",name:"VS Code",sub:"With GitHub Copilot",icon:"copilot",hand:function(u){return '<p class="aip">Run <b>MCP: Add Server</b>, choose <b>HTTP</b> and paste your address. Or add to <span class="kbd">mcp.json</span>:</p>'+aiCode("ar-vs",JSON.stringify({servers:{"tollkit-wallet":{type:"http",url:u}}},null,2))}},
337
+ {id:"codex",name:"Codex",sub:"OpenAI’s terminal agent",icon:"terminal",hand:function(u){return '<p class="aip">Add to <span class="kbd">~/.codex/config.toml</span>:</p>'+aiCode("ar-cx",'[mcp_servers.tollkit_wallet]\nurl = "'+u+'"')}},
338
+ {id:"gemini",name:"Gemini CLI",sub:"Terminal",icon:"gemini",hand:function(u){return '<p class="aip">Paste into your terminal:</p>'+aiCode("ar-gm","gemini mcp add -s user --transport http tollkit-wallet "+shq(u))}}
339
+ ];
340
+ function aiRemote(r){var h='<h2>Connect your AI</h2><p class="ailead">Let Claude, ChatGPT, Cursor or another AI app use this wallet. It follows your limits, can’t withdraw or see your keys, and any rules it suggests wait in Autopilot for you.</p>',m=AIMSG.remote;
341
+ if(!r.on)return h+'<label class="ailbl" for="aipw">Wallet password</label><input id="aipw" class="aiin" type="password" autocomplete="current-password" placeholder="Needed to turn this on" value="'+esc(AIPW)+'">'+
342
+ '<button class="b aigoap" data-ract="on"'+(AIBUSY?" disabled":"")+'>'+(AIBUSY?"Making it…":"Make my connector address")+'</button>'+(m?'<div class="aim '+(m[0]?"ok":"bad")+'">'+esc(m[1])+'</div>':'')+
343
+ '<p class="aismall">You get a private web address to add to your AI app. Tollkit’s server passes the app’s requests to this wallet while Chrome is open and the wallet is unlocked. Your keys stay here.</p>';
344
+ h+='<label class="ailbl">Your connector address</label>'+aiCode("ai-url",r.url)+
345
+ '<p class="aismall"><span class="'+(r.online?"ok":"warn")+'">●</span> '+(r.online?"The wallet is reachable.":"Waiting for the wallet to check in…")+' Anyone with this address can use the wallet within your limits, so keep it private.</p>'+
346
+ '<div class="ailist">'+AIREMOTE.map(function(x,i){return '<div class="airow" style="--i:'+i+'"><div class="airt">'+aiSvg(x.icon)+'<div class="ainm"><b>'+esc(x.name)+'</b><small>'+esc(x.sub)+'</small></div></div><button class="aihand" data-hand="r-'+x.id+'">'+(AIOPEN["r-"+x.id]?"Hide steps":"How to add it")+'</button>'+(AIOPEN["r-"+x.id]?'<div class="aihb">'+x.hand(r.url)+'</div>':'')+'</div>'}).join("")+'</div>'+
347
+ '<div class="aidone"><b>Check it worked.</b> Ask your AI: <b>“What’s in my Tollkit wallet?”</b></div>'+
348
+ '<label class="ailbl" for="aipw">Wallet password (for a new address)</label><input id="aipw" class="aiin" type="password" autocomplete="current-password" value="'+esc(AIPW)+'">'+
349
+ '<div class="btns" style="margin-top:10px"><button class="b g" data-ract="new"'+(AIBUSY?" disabled":"")+'>New address</button><button class="b no" data-ract="off"'+(AIBUSY?" disabled":"")+'>Turn off</button></div>'+(m?'<div class="aim '+(m[0]?"ok":"bad")+'">'+esc(m[1])+'</div>':'')+
350
+ '<p class="aismall">A new address stops the old one. Turning off stops every app.</p>';
351
+ return h}
352
+ function aiRemoteDo(act){if(act!=="off"&&!AIPW){AIMSG.remote=[0,"Type your wallet password first."];aiRender();document.getElementById("aipw").focus();return}
353
+ AIBUSY="remote";AIMSG.remote=null;aiRender();api("/connect/remote",{password:AIPW,action:act}).then(function(){AIPW="";AIMSG.remote=act==="off"?[1,"Turned off. No app can reach the wallet now."]:act==="new"?[1,"New address made. Add it to your apps again."]:null;return refresh()}).catch(function(e){AIMSG.remote=[0,e.message]}).then(function(){AIBUSY=null;aiRender()})}
319
354
  function aiRender(){if(!AIO)return;var c=S.connect||{},foc=document.activeElement&&document.activeElement.id==="aipw";
355
+ if(c.remote){var sc0=AIO.querySelector(".aidlg").scrollTop;AIO.querySelector(".aibody").innerHTML=aiRemote(c.remote);AIO.querySelector(".aidlg").scrollTop=sc0;var pw0=document.getElementById("aipw");if(pw0){pw0.oninput=function(){AIPW=pw0.value};if(foc)pw0.focus()}return}
320
356
  var h='<h2>Connect your AI</h2><p class="ailead">Let Claude, Cursor or another AI app use this wallet. It follows your limits, can’t withdraw or see your keys, and any rules it suggests wait in Autopilot for you.</p>'+
321
357
  '<label class="ailbl" for="aipw">Wallet password</label><input id="aipw" class="aiin" type="password" autocomplete="current-password" placeholder="Needed to add an app" value="'+esc(AIPW)+'">'+
322
358
  '<p class="aismall">'+(c.ready?'Your AI apps unlock the wallet with a saved copy of this password, readable only by your account on this computer.':'Adding an app saves a copy of this password on this computer, readable only by your account, so the app can unlock the wallet. Anyone who can read it and your wallet folder could spend within your limits.')+'</p>'+
@@ -327,7 +363,7 @@ function openAI(){if(!AIO){AIO=document.createElement("div");AIO.className="aio"
327
363
  function closeAI(){if(AIO){AIO.remove();AIO=null;AIPW="";AIMSG={}}}
328
364
  function aiDo(act,id){if(act!=="remove"&&!AIPW){AIMSG[id]=[0,"Type your wallet password first."];aiRender();document.getElementById("aipw").focus();return}
329
365
  AIBUSY=id;AIMSG[id]=null;aiRender();api("/connect",{password:AIPW,action:act,app:id}).then(function(r){AIMSG[id]=[1,r.message];return refresh()}).catch(function(e){AIMSG[id]=[0,e.message]}).then(function(){AIBUSY=null;aiRender()})}
330
- function aiClick(e){var t=e.target.closest("button,a");if(!t)return;if(t.classList.contains("aix"))closeAI();else if(t.hasAttribute("data-act"))aiDo(t.getAttribute("data-act"),t.getAttribute("data-id"));else if(t.hasAttribute("data-hand")){var k=t.getAttribute("data-hand");AIOPEN[k]=!AIOPEN[k];aiRender()}else if(t.hasAttribute("data-copy")){var el=document.getElementById(t.getAttribute("data-copy")),v=el?el.textContent:"",done=function(){t.textContent="Copied";setTimeout(function(){t.textContent="Copy"},1500)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(v).then(done,function(){fallback(v);done()});else{fallback(v);done()}}}
366
+ function aiClick(e){var t=e.target.closest("button,a");if(!t)return;if(t.classList.contains("aix"))closeAI();else if(t.hasAttribute("data-ract"))aiRemoteDo(t.getAttribute("data-ract"));else if(t.hasAttribute("data-act"))aiDo(t.getAttribute("data-act"),t.getAttribute("data-id"));else if(t.hasAttribute("data-hand")){var k=t.getAttribute("data-hand");AIOPEN[k]=!AIOPEN[k];aiRender()}else if(t.hasAttribute("data-copy")){var el=document.getElementById(t.getAttribute("data-copy")),v=el?el.textContent:"",done=function(){t.textContent="Copied";setTimeout(function(){t.textContent="Copy"},1500)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(v).then(done,function(){fallback(v);done()});else{fallback(v);done()}}}
331
367
  document.addEventListener("keydown",function(e){if(AIO&&e.key==="Escape")closeAI()});
332
368
  var BUY={o:null,chain:null,asset:"USDC",amt:"50",custom:"",test:false,err:null,busy:false,done:null};
333
369
  var BUYA={base:["USDC","ETH"],ethereum:["USDC","ETH"],solana:["USDC","SOL"]};
@@ -460,11 +496,30 @@ var CHT={o:null,coin:"",sym:"",chain:"",name:"",range:"1D",data:null,loading:fal
460
496
  function coinOf(chain,sym){var c=(S.coins||{})[chain]||{};return c[sym]||c[String(sym).toUpperCase()]||""}
461
497
  function rowAttrs(coin,sym,chain,name){return coin?' rowc" tabindex="0" role="button" aria-label="'+esc((name||sym)+" price chart")+'" data-chart="'+esc(coin)+'" data-sym="'+esc(sym)+'" data-chain="'+esc(chain)+'" data-name="'+esc(name||sym)+'"':'"'}
462
498
  function holdRows(){var H=S.holdings;if(!H)return {rows:"",tot:0,chg:0};var rows="",tot=0,chg=0;(H.tokens||[]).forEach(function(t){var a=Number(t.amount),val=t.usd||0;tot+=val;if(typeof t.change_24h==="number")chg+=val-val/(1+t.change_24h);
463
- rows+='<div class="row'+rowAttrs(t.coin,t.symbol,t.chain,t.name)+'>'+tokIcon(t.symbol,t.chain)+'<div style="min-width:0"><div class="tname">'+esc(t.name||t.symbol)+'</div><div class="sm">'+(typeof t.change_24h==="number"?'<span class="'+(t.change_24h>=0?"ok":"bad")+'">'+(t.change_24h>=0?"+":"")+(t.change_24h*100).toFixed(2)+'%</span><span class="mut"> · '+esc(CHAIN_NAMES[t.chain]||t.chain)+'</span>':'<span class="mut">'+esc(CHAIN_NAMES[t.chain]||t.chain)+'</span>')+'</div></div><div class="r"><div class="usdv">'+fmtUsd(val)+'</div><div class="sm mut">'+esc(fmtAmt(a))+' '+esc(t.symbol)+'</div></div></div>'});
499
+ rows+='<div class="row'+rowAttrs(t.coin,t.symbol,t.chain,t.name)+'>'+tokIcon(t.symbol,t.chain,t.icon)+'<div style="min-width:0"><div class="tname">'+esc(t.name||t.symbol)+(t.trust==="unlisted"?' <span class="chip warn tbadge" title="Not on the wallet’s token list. Check it before you trade it.">Unverified</span>':'')+'</div><div class="sm">'+(typeof t.change_24h==="number"?'<span class="'+(t.change_24h>=0?"ok":"bad")+'">'+(t.change_24h>=0?"+":"")+(t.change_24h*100).toFixed(2)+'%</span><span class="mut"> · '+esc(CHAIN_NAMES[t.chain]||t.chain)+'</span>':'<span class="mut">'+esc(CHAIN_NAMES[t.chain]||t.chain)+'</span>')+'</div></div><div class="r"><div class="usdv">'+fmtUsd(val)+'</div><div class="sm mut">'+esc(fmtAmt(a))+' '+esc(t.symbol)+'</div></div></div>'});
464
500
  return {rows:rows,tot:tot,chg:chg}}
465
- function holdFoot(){var H=S.holdings;if(!H)return "";return '<div class="hfoot">'+(H.hidden?'<span>'+H.hidden+' token'+(H.hidden>1?"s":"")+' without a price hidden</span> · ':'')+'<button class="aihand" style="padding:0" onclick="addTok()">Add a token</button></div>'+(ADDT?'<div class="row addt" style="display:block"><div class="sm mut">Base or Ethereum token not showing? Paste its contract address.</div><div class="crow2"><select id="at_chain"><option value="base">Base</option><option value="ethereum">Ethereum</option></select><input id="at_addr" placeholder="0x…" autocomplete="off" spellcheck="false"><button class="b" onclick="addTokGo()">Add</button></div>'+(ADDM?'<div class="msg '+(ADDM[0]?"okk":"err")+'">'+esc(ADDM[1])+'</div>':'')+'</div>':(ADDM&&ADDM[0]?'<div class="msg okk">'+esc(ADDM[1])+'</div>':''))}
466
- var ADDT=false,ADDM=null;function addTok(){ADDT=!ADDT;ADDM=null;render()}
467
- function addTokGo(){var c=document.getElementById("at_chain").value,a=document.getElementById("at_addr").value.trim();ADDM=[1,"Checking…"];render();var ce=document.getElementById("at_chain"),ae=document.getElementById("at_addr");if(ce)ce.value=c;if(ae)ae.value=a;api("/tokens/add",{chain:c,address:a}).then(function(r){ADDT=false;ADDM=[1,"Added "+r.token.symbol+". It shows here once it has a balance and a price."];refresh()}).catch(function(e){ADDM=[0,e.message];render();var ce2=document.getElementById("at_chain"),ae2=document.getElementById("at_addr");if(ce2)ce2.value=c;if(ae2)ae2.value=a})}
501
+ function holdFoot(){var H=S.holdings;if(!H)return "";return '<div class="hfoot">'+(H.hidden?'<span>'+H.hidden+' token'+(H.hidden>1?"s":"")+' without a price hidden</span> · ':'')+'<button class="aihand" style="padding:0" onclick="addTok()">'+(ADDT?"Close":"Add a token")+'</button></div>'+(ADDT?addTokSheet():(ADDM&&ADDM[0]?'<div class="msg okk">'+esc(ADDM[1])+'</div>':''))}
502
+ var ADDT=false,ADDM=null,AT={chain:"base",q:"",res:null,chk:null,busy:false,timer:null,confirm:false,gen:0};
503
+ function addTok(){ADDT=!ADDT;ADDM=null;AT.res=null;AT.chk=null;AT.q="";AT.confirm=false;render();if(ADDT){setTimeout(function(){var q=document.getElementById("at_q");if(q)q.focus();atSearch()},30)}}
504
+ function addTokSheet(){return '<div class="row addt" style="display:block"><div class="sm mut">Search by name or symbol, or paste a contract or mint address. Every token gets Tollkit’s scam check before it\'s added.</div><div class="crow2"><select id="at_chain" onchange="AT.chain=this.value;AT.chk=null;atSearch()">'+[["base","Base"],["ethereum","Ethereum"],["solana","Solana"]].map(function(o){return '<option value="'+o[0]+'"'+(AT.chain===o[0]?" selected":"")+'>'+o[1]+'</option>'}).join("")+'</select><input id="at_q" placeholder="USDC, Bonk, 0x…" autocomplete="off" spellcheck="false" value="'+esc(AT.q)+'" oninput="AT.q=this.value;clearTimeout(AT.timer);AT.timer=setTimeout(atSearch,300)"></div><div id="at_res">'+atResHtml()+'</div>'+(ADDM?'<div class="msg '+(ADDM[0]?"okk":"err")+'">'+esc(ADDM[1])+'</div>':'')+'</div>'}
505
+ function atBadge(t){return t.trust==="core"?'<span class="chip ok tbadge">Built in</span>':t.trust==="listed"?'<span class="chip tbadge">'+(t.chain==="solana"?"Jupiter verified":"Listed")+'</span>':'<span class="chip warn tbadge">Not verified</span>'}
506
+ function atResHtml(){if(AT.chk)return atCheckHtml(AT.chk);if(AT.busy)return '<div class="sm mut" style="padding:8px 2px">Searching…</div>';if(!AT.res)return "";var q=AT.q.trim(),isAddr=AT.chain==="solana"?/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(q):/^0x[0-9a-fA-F]{40}$/.test(q);
507
+ var h=AT.res.map(function(t,i){return '<button class="atrow" data-ati="'+i+'">'+tokIcon(t.symbol,t.chain,t.logo)+'<span class="atn"><b>'+esc(t.symbol)+'</b> '+atBadge(t)+'<small>'+esc(t.name)+' · '+esc(short(t.address))+'</small></span></button>'}).join("");
508
+ if(isAddr&&!AT.res.some(function(t){return t.address.toLowerCase()===q.toLowerCase()}))h='<button class="atrow" data-atq="1"><div class="ic tok"><span class="tl">?</span></div><span class="atn"><b>Check this address</b><small>'+esc(short(q))+'</small></span></button>'+h;
509
+ if(!h)h='<div class="sm mut" style="padding:8px 2px">No match. Paste the token’s address to check it.</div>';
510
+ return '<div class="atlist">'+h+'</div>'+(AT.chain==="solana"?'<div class="sm mut" style="text-align:right;margin-top:4px">Powered by Jupiter</div>':'<div class="sm mut" style="text-align:right;margin-top:4px">Superchain and Uniswap token lists</div>')}
511
+ function atPaint(){var el=document.getElementById("at_res");if(el)el.innerHTML=atResHtml();else render()}
512
+ function atSearch(){var c=AT.chain,q=AT.q,g=++AT.gen;AT.chk=null;AT.busy=true;atPaint();api("/tokens/search",{chain:c,q:q}).then(function(r){if(g!==AT.gen)return;AT.res=r.tokens||[];AT.busy=false;atPaint()}).catch(function(e){AT.busy=false;AT.res=[];ADDM=[0,e.message];atPaint()})}
513
+ function atCheck(addr){clearTimeout(AT.timer);var g=++AT.gen;AT.busy=false;ADDM=null;AT.confirm=false;AT.chk={loading:true,address:addr};atPaint();api("/tokens/check",{chain:AT.chain,address:addr}).then(function(r){if(g!==AT.gen)return;AT.chk=r.check;atPaint()}).catch(function(e){AT.chk=null;ADDM=[0,e.message];render()})}
514
+ function atCheckHtml(c){if(c.loading)return '<div class="ap" style="margin-top:8px"><div class="sm mut">Running Tollkit’s token check…</div></div>';var w=c.warnings||[],p=c.powers||[],f=c.facts||[];
515
+ return '<div class="ap atchk'+(w.length?" atwarn":"")+'" style="margin-top:8px"><div style="display:flex;align-items:center;gap:10px">'+tokIcon(c.symbol||"?",c.chain,c.logo)+'<div style="min-width:0"><b>'+esc(c.symbol||"Unknown")+'</b> '+atBadge(c)+'<div class="sm mut">'+esc(c.name||"")+' · '+esc(short(c.address))+'</div></div></div>'+
516
+ (w.length?'<div class="atw"><b>'+w.length+' warning'+(w.length>1?"s":"")+'</b><ul>'+w.map(function(x){return '<li>'+esc(x)+'</li>'}).join("")+'</ul></div>':'<div class="sm ok" style="margin-top:8px">No warnings from the check. That doesn’t make a token safe.</div>')+
517
+ (p.length?'<div class="sm" style="margin-top:8px"><b>What the issuer can do</b><ul>'+p.map(function(x){return '<li>'+esc(x)+'</li>'}).join("")+'</ul></div>':'')+
518
+ (f.length?'<div class="sm mut" style="margin-top:6px">'+f.map(esc).join(" ")+'</div>':'')+
519
+ '<div class="btns"><button class="b g" onclick="AT.chk=null;atPaint()">Back</button>'+(w.length?(AT.confirm?'<button class="b no" onclick="atAdd(true)">Yes, add it anyway</button>':'<button class="b no" onclick="AT.confirm=true;atPaint()">Add anyway</button>'):'<button class="b ok" onclick="atAdd(false)">Add</button>')+'</div>'+(w.length&&AT.confirm?'<div class="sm bad" style="margin-top:6px">Only add it if you know where it came from. Many scam tokens copy real names.</div>':'')+'</div>'}
520
+ function atAdd(confirm){var c=AT.chk;api("/tokens/add",{chain:c.chain,address:c.address,confirm:!!confirm}).then(function(r){if(r.needs_confirm){AT.chk=r.check;AT.confirm=true;atPaint();return}ADDT=false;AT.chk=null;ADDM=[1,"Added "+r.token.symbol+"."];refresh().then(function(){render()})}).catch(function(e){ADDM=[0,e.message];render()})}
521
+ document.addEventListener("error",function(e){var t=e.target;if(t&&t.classList&&t.classList.contains("tlogo")){var sp=document.createElement("span");sp.className="tl";sp.textContent=t.getAttribute("data-tl")||"?";t.replaceWith(sp)}},true);
522
+ document.addEventListener("click",function(e){var b=e.target.closest&&e.target.closest("[data-ati],[data-atq]");if(!b)return;if(b.hasAttribute("data-atq"))atCheck(AT.q.trim());else{var t=AT.res[Number(b.getAttribute("data-ati"))];if(t)atCheck(t.address)}});
468
523
  document.addEventListener("click",function(e){var r=e.target.closest&&e.target.closest("[data-chart]");if(r)openChart(r.getAttribute("data-chart"),r.getAttribute("data-sym"),r.getAttribute("data-chain"),r.getAttribute("data-name"))});
469
524
  document.addEventListener("keydown",function(e){if(e.key==="Enter"&&document.activeElement&&document.activeElement.hasAttribute&&document.activeElement.hasAttribute("data-chart")){var r=document.activeElement;openChart(r.getAttribute("data-chart"),r.getAttribute("data-sym"),r.getAttribute("data-chain"),r.getAttribute("data-name"))}if(CHT.o&&e.key==="Escape")closeChart()});
470
525
  function openChart(coin,sym,chain,name){CHT.coin=coin;CHT.sym=sym;CHT.chain=chain;CHT.name=name;CHT.data=null;CHT.err=null;CHT.table=false;CHT.hover=null;if(!CHT.o){CHT.o=document.createElement("div");CHT.o.className="aio";CHT.o.innerHTML='<div class="aidlg chdlg" role="dialog" aria-modal="true" aria-label="Price chart"><button class="aix" aria-label="Close">×</button><div class="aibody"></div></div>';CHT.o.addEventListener("mousedown",function(e){if(e.target===CHT.o)closeChart()});CHT.o.addEventListener("click",function(e){var t=e.target.closest("button");if(!t)return;if(t.classList.contains("aix"))closeChart();else if(t.hasAttribute("data-rg")){CHT.range=t.getAttribute("data-rg");loadChart()}else if(t.hasAttribute("data-tbl")){CHT.table=!CHT.table;drawChart()}});document.body.appendChild(CHT.o)}loadChart()}
@@ -522,7 +577,7 @@ var cards=(m.rules||[]).map(function(id){var r=(S.rules||[]).filter(function(x){
522
577
  return '<div class="tc-cm tc-ai'+nw+(m.error?" tc-err":"")+'"><div class="tc-cav">'+aiSvg("claude")+'</div><div class="tc-cbw">'+(m.checkin?'<div class="tc-ctag">Check-in · '+tm(m.ts)+'</div>':'')+'<div class="tc-cb">'+fmtAi(m.text)+'</div>'+(cards?'<div class="tc-ccards">'+cards+'</div>':'')+'</div></div>'}
523
578
  function svgClock(){return '<svg viewBox="0 0 24 24" width="13" height="13" aria-hidden="true"><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="2"/><path d="M12 7v5l3 2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'}
524
579
  function chatBox(){var A=S.ai;if(!A)return "";var M=A.messages||[],busy=A.busy||CH.sending;
525
- var head='<div class="tc-chd"><div class="tc-chn">'+aiSvg("claude")+'<div><b>'+esc(aiName())+'</b><small>'+(busy?'<span class="ok">Working…</span>':A.provider?'Your Claude, on this computer':'Not set up')+'</small></div></div>'+
580
+ var head='<div class="tc-chd"><div class="tc-chn">'+aiSvg("claude")+'<div><b>'+esc(aiName())+'</b><small>'+(busy?'<span class="ok">Working…</span>':A.provider?esc(A.provider.note||'Your Claude, on this computer'):'Not set up')+'</small></div></div>'+
526
581
  '<div class="tc-chr"><label class="tc-chk" title="Let the AI review your rules on a schedule">'+svgClock()+'<select onchange="setCheckin(this.value)">'+[[0,"Check-ins off"],[1,"Every hour"],[4,"Every 4 hours"],[12,"Every 12 hours"],[24,"Daily"]].map(function(o){return '<option value="'+o[0]+'"'+(A.checkin.every_hours===o[0]?" selected":"")+'>'+o[1]+'</option>'}).join("")+'</select></label>'+(M.length?'<button class="b g tc-chx'+(CH.confirmNew?" tc-warn":"")+'" onclick="newChat()" title="Start over. Your rules stay on.">'+(CH.confirmNew?'Clear chat?':'<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20h4L19 9l-4-4L4 16z M14 6l4 4" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/></svg>New chat')+'</button>':'')+'</div></div>';
527
582
  if(!A.provider)return '<div class="tc-chat">'+head+'<div class="tc-cempty"><b>Chat with your AI here</b><p>Install <b>Claude Code</b> on this computer and sign in once (run <code>claude</code> in Terminal). Then reopen this page. It uses your own Claude plan; the wallet never sees your Claude login.</p></div></div>';
528
583
  var body=M.length?M.map(chatMsg).join(""):'<div class="tc-cempty"><b>What do you want your autopilot to do?</b><p>Say it in your own words. '+esc(aiName())+' checks prices and your balances, then suggests rules you can turn on with one tap.</p><div class="tc-cchips">'+CHIPS.map(function(c,i){return '<button class="tc-cchip" onclick="chatSend(CHIPS['+i+'])">'+esc(c)+'</button>'}).join("")+'</div></div>';
@@ -538,7 +593,7 @@ function chatPw(){api("/ai/password",{password:CH.pw}).then(function(){CH.pw="";
538
593
  function setCheckin(h){api("/ai/checkin",{hours:Number(h)}).then(function(){flash=[1,Number(h)?"Check-ins on. "+aiName()+" will review your rules and suggest changes for you to approve.":"Check-ins off."];refresh()}).catch(function(e){flash=[0,e.message];render()})}
539
594
  function newChat(){if(!CH.confirmNew){CH.confirmNew=true;LASTAP=null;render();clearTimeout(CH.cnT);CH.cnT=setTimeout(function(){CH.confirmNew=false;LASTAP=null;render()},4000);return}
540
595
  clearTimeout(CH.cnT);CH.confirmNew=false;api("/ai/new",{}).then(function(){CH.n=-1;CH.top=null;flash=[1,"New chat started. Your rules are unchanged."];return refresh()}).catch(function(e){flash=[0,e.message];render()})}
541
- function tokIcon(sym,chain){var k=String(sym||"").toUpperCase();if(k==="WETH")k="ETH";var svg=COIN.coin[k];return '<div class="ic tok">'+(svg||'<span class="tl">'+esc(k.slice(0,4))+'</span>')+(chain&&COIN.chain[chain]?'<span class="cb">'+COIN.chain[chain]+'</span>':"")+'</div>'}
596
+ function tokIcon(sym,chain,logo){var k=String(sym||"").toUpperCase();if(k==="WETH")k="ETH";var svg=COIN.coin[k];return '<div class="ic tok">'+(svg||(logo&&logo.indexOf("https:")===0?'<img class="tlogo" src="'+esc(logo)+'" alt="" loading="lazy" referrerpolicy="no-referrer" data-tl="'+esc(k.slice(0,4))+'">':'<span class="tl">'+esc(k.slice(0,4))+'</span>'))+(chain&&COIN.chain[chain]?'<span class="cb">'+COIN.chain[chain]+'</span>':"")+'</div>'}
542
597
  function chainIcon(chain,extra){return '<div class="ic tok">'+(COIN.chain[chain]||esc(String(chain||"?")[0].toUpperCase()))+(extra&&COIN.chain[extra]?'<span class="cb">'+COIN.chain[extra]+'</span>':"")+'</div>'}
543
598
  function kindIcon(e){if(e.kind==="stake")return tokIcon("SOL","solana");var m=/^[\d.,]+ ([A-Za-z]+)/.exec(e.detail||"");if(e.kind!=="payment"&&m)return tokIcon(m[1],e.chain);return '<div class="ic tok"><span class="glyph">'+(e.kind==="payment"?"P":e.kind==="trade"?"S":"W")+'</span>'+(COIN.chain[e.chain]?'<span class="cb">'+COIN.chain[e.chain]+'</span>':"")+'</div>'}
544
599
  function amt(x){var n=Number(x);return isFinite(n)?n.toLocaleString(undefined,{maximumFractionDigits:6}):String(x)}
@@ -558,6 +613,7 @@ var prop=R.filter(function(r){return r.status==="proposed"&&!inChat[r.id]}),act=
558
613
  var pv=PV?'<div class="ap" style="margin-top:10px"><div class="sm mut" style="margin-bottom:6px">Preview: nothing runs until you turn it on</div>'+(PV.rules.length?PV.rules.map(function(r){return '<div style="margin:4px 0">• '+esc(r.description)+(r.problem?' <span class="bad sm">('+esc(r.problem)+')</span>':"")+'</div>'}).join(""):'<div class="bad">No rules understood.</div>')+(PV.unparsed.length?'<div class="sm warn" style="margin-top:6px">Not understood: '+esc(PV.unparsed.join(" · "))+'</div>':"")+'<div class="btns"><button class="b g" onclick="PV=null;render()">Discard</button><button class="b ok"'+(PV.rules.length&&!PV.rules.some(function(r){return r.problem})?"":" disabled")+' onclick="addRules()">Turn on</button></div></div>':"";
559
614
  var manualOpen=CH.manual||!S.ai||!(S.ai||{}).provider;
560
615
  return '<div class="sm">'+st+'</div><div class="sm mut" style="margin-top:3px">Every fill follows your limits and approvals, with the same 0.5% fee as any swap.</div>'+msg()+
616
+ botsHtml()+'<h3>Ask Claude</h3>'+
561
617
  chatBox()+
562
618
  (prop.length?'<h3>Waiting for you</h3>'+prop.map(ruleCard).join(""):"")+
563
619
  '<h3>Your rules</h3>'+(act.length?act.map(ruleCard).join(""):'<div class="mut sm">No rules on yet.</div>')+
@@ -565,6 +621,38 @@ chatBox()+
565
621
  '<details class="mrule"'+(manualOpen?" open":"")+' ontoggle="CH.manual=this.open"><summary>Write a rule yourself</summary><textarea id="stxt" rows="3" placeholder="e.g. Buy $25 of SOL every Monday. Sell half my ETH if it rises 10% and all if it falls 8%." style="width:100%;margin-top:8px;background:var(--surf);border:1px solid var(--line);color:var(--tx);border-radius:10px;padding:10px;font:inherit;resize:vertical"></textarea>'+
566
622
  '<div class="toggles" style="margin-top:6px">'+TEMPL.map(function(t,i){return '<button class="chip" style="border:0;cursor:pointer" onclick="document.getElementById(\'stxt\').value=TEMPL['+i+']">'+esc(t)+'</button>'}).join("")+'</div>'+
567
623
  '<div style="margin-top:10px"><button class="b" onclick="preview()">Preview</button></div>'+pv+'</details>'}
624
+ // ---- Bots: rule-based (no AI) bots, their status and results, and Tollkit's public board ----
625
+ var BOT={open:null,tpl:null,chain:"base",token:"ETH",params:{},pv:null,err:null,busy:false,more:{}};
626
+ function botPill(st){var m={running:["ok","Running"],waiting:["","Waiting for its price"],paused:["warn","Paused"],error:["bad","Stopped by errors"],done:["","Finished"],stopped:["","Stopped"]}[st]||["",st];return '<span class="chip botpill '+m[0]+'">'+m[1]+'</span>'}
627
+ function money(n){return (n<0?"−":"")+fmtUsd(Math.abs(n))}
628
+ function botCard(b){var res=b.result_usd!==null?'<span class="'+(b.result_usd>=0?"ok":"bad")+'">'+(b.result_usd>=0?"+":"")+money(b.result_usd)+(b.result_pct!==null?' ('+(b.result_pct>=0?"+":"")+b.result_pct+'%)':'')+'</span>':'<span class="mut">—</span>';
629
+ var live=b.status==="running"||b.status==="waiting"||b.status==="error",open=BOT.more[b.id];
630
+ return '<div class="botc"><div class="botct"><div style="min-width:0"><b>'+esc(b.name)+'</b><div class="sm mut">'+esc(CHAIN_NAMES[b.chain]||b.chain)+(b.last_trade?' · last trade '+ago(b.last_trade):' · no trades yet')+'</div></div>'+botPill(b.status)+'</div>'+
631
+ '<div class="botstats"><div><small>Trades</small><b>'+b.trades_ok+'</b></div><div><small>Failed</small><b class="'+(b.trades_failed?"bad":"")+'">'+b.trades_failed+'</b></div><div><small>Success</small><b>'+(b.success_rate===null?"—":b.success_rate+"%")+'</b></div><div><small>Result</small><b>'+res+'</b></div></div>'+
632
+ (b.round_trips?'<div class="sm mut" style="margin-top:6px">'+b.round_trips+' buy-and-sell round trip'+(b.round_trips>1?"s":"")+' done</div>':'')+
633
+ '<div class="btns" style="margin-top:8px"><button class="b g" data-botmore="'+esc(b.id)+'">'+(open?"Hide":"Details")+'</button>'+(b.status==="paused"?'<button class="b ok" data-botst="active" data-bot="'+esc(b.id)+'">Resume</button>':live?'<button class="b g" data-botst="paused" data-bot="'+esc(b.id)+'">Pause</button>':'')+(b.status!=="done"&&b.status!=="stopped"?'<button class="b no" data-botst="cancelled" data-bot="'+esc(b.id)+'">Stop</button>':'')+'</div>'+
634
+ (open?'<div class="sm" style="margin-top:8px">'+b.rules.map(function(r){return '<div style="margin:4px 0">• '+esc(r.description)+' <span class="mut">('+esc(r.status)+')</span>'+(r.last_error?'<div class="bad">'+esc(r.last_error)+'</div>':'')+'</div>'}).join("")+'<div class="mut" style="margin-top:4px">Spent '+fmtUsd(b.spent_usd)+' · received '+fmtUsd(b.received_usd)+(b.value_now_usd!==null&&b.units_held?' · holding about '+fmtUsd(b.value_now_usd):'')+'</div></div>':'')+'</div>'}
635
+ function boardFor(id){var B=S.bot_board;if(!B||!B.templates)return null;for(var i=0;i<B.templates.length;i++)if(B.templates[i].template===id)return B.templates[i];return null}
636
+ function boardLine(id){var x=boardFor(id);if(!x||x.bots<3)return '<div class="sm mut">Not enough shared results yet.</div>';return '<div class="sm mut">'+x.bots+' bots shared · median result '+(x.median_result_pct>=0?"+":"")+x.median_result_pct+'% · '+x.success_rate+'% of trades went through</div>'}
637
+ function botsHtml(){var L=S.bots||[],T=S.bot_templates||[];
638
+ var h='<h3>Your bots</h3>'+(L.length?L.map(botCard).join(""):'<div class="mut sm">No bots yet. Start one below; it follows your limits like any trade.</div>');
639
+ h+='<h3>Start a bot</h3><div class="sm mut" style="margin-bottom:6px">Plain rules, no AI. You see every step before it starts.</div><div class="botcat">'+T.map(function(t){return '<button class="bottpl'+(BOT.tpl===t.id?" on":"")+'" data-tpl="'+esc(t.id)+'"><b>'+esc(t.name)+'</b><small>'+esc(t.blurb)+'</small>'+boardLine(t.id)+'</button>'}).join("")+'</div>';
640
+ if(BOT.tpl)h+=botForm();
641
+ h+='<label class="botshare"><input type="checkbox" id="botshare"'+(S.bot_share?" checked":"")+' onchange="botShare(this.checked)"> Share my bots’ results with Tollkit’s public bot board (anonymous: bot type, token, trade counts and result %, no addresses or amounts)</label>';
642
+ return h}
643
+ function botForm(){var t=(S.bot_templates||[]).filter(function(x){return x.id===BOT.tpl})[0];if(!t)return "";
644
+ var f=t.fields.map(function(x){var v=BOT.params[x.key]!==undefined?BOT.params[x.key]:x.default;if(x.kind==="choice")return '<label class="botf"><span>'+esc(x.label)+'</span><select data-bp="'+esc(x.key)+'">'+x.choices.map(function(c){return '<option value="'+esc(c[0])+'"'+(String(v)===c[0]?" selected":"")+'>'+esc(c[1])+'</option>'}).join("")+'</select></label>';return '<label class="botf"><span>'+esc(x.label)+'</span><input type="number" step="any" data-bp="'+esc(x.key)+'" value="'+esc(String(v))+'"></label>'}).join("");
645
+ return '<div class="ap botform" style="white-space:normal"><b>'+esc(t.name)+'</b><div class="sm mut" style="margin:4px 0 8px">Risk: '+esc(t.risk)+'</div><div class="botgrid"><label class="botf"><span>Network</span><select id="bot_chain">'+[["base","Base"],["ethereum","Ethereum"],["solana","Solana"]].map(function(o){return '<option value="'+o[0]+'"'+(BOT.chain===o[0]?" selected":"")+'>'+o[1]+'</option>'}).join("")+'</select></label><label class="botf"><span>Token (symbol or address)</span><input id="bot_token" value="'+esc(BOT.token)+'" autocomplete="off" spellcheck="false"></label>'+f+'</div>'+
646
+ (BOT.err?'<div class="msg err">'+esc(BOT.err)+'</div>':'')+(BOT.pv?'<div class="sm" style="margin-top:8px"><div class="mut">'+(BOT.pv.price?'Today’s price about $'+Number(BOT.pv.price).toLocaleString(undefined,{maximumSignificantDigits:6})+'. ':'')+'It will:</div>'+BOT.pv.rules.map(function(r){return '<div style="margin:4px 0">• '+esc(r.description)+'</div>'}).join("")+'</div>':'')+
647
+ '<div class="btns"><button class="b g" onclick="BOT.tpl=null;BOT.pv=null;BOT.err=null;render()">Cancel</button>'+(BOT.pv?'<button class="b ok" onclick="botGo(\'start\')"'+(BOT.busy?" disabled":"")+'>Start bot</button>':'<button class="b" onclick="botGo(\'preview\')"'+(BOT.busy?" disabled":"")+'>Preview</button>')+'</div></div>'}
648
+ function botRead(){var c=document.getElementById("bot_chain"),t=document.getElementById("bot_token");if(c)BOT.chain=c.value;if(t)BOT.token=t.value.trim();document.querySelectorAll("[data-bp]").forEach(function(el){BOT.params[el.getAttribute("data-bp")]=el.tagName==="SELECT"?el.value:Number(el.value)})}
649
+ function botGo(what){botRead();BOT.busy=true;BOT.err=null;render();api("/bots/"+what,{template:BOT.tpl,chain:BOT.chain,token:BOT.token,params:BOT.params}).then(function(r){BOT.busy=false;if(what==="preview"){BOT.pv=r;render()}else{BOT.tpl=null;BOT.pv=null;flash=[1,"Bot started. It shows under Your bots."];refresh().then(function(){render()})}}).catch(function(e){BOT.busy=false;BOT.err=e.message;render()})}
650
+ function botShare(on){api("/bots/share",{on:on}).then(function(){refresh()}).catch(function(e){flash=[0,e.message];render()})}
651
+ document.addEventListener("click",function(e){var t=e.target.closest&&e.target.closest("[data-tpl],[data-botst],[data-botmore]");if(!t)return;
652
+ if(t.hasAttribute("data-tpl")){var id=t.getAttribute("data-tpl");BOT.tpl=BOT.tpl===id?null:id;BOT.params={};BOT.pv=null;BOT.err=null;if(BOT.chain==="solana"&&BOT.token==="ETH")BOT.token="SOL";render();return}
653
+ if(t.hasAttribute("data-botmore")){var k=t.getAttribute("data-botmore");BOT.more[k]=!BOT.more[k];render();return}
654
+ var st=t.getAttribute("data-botst"),bid=t.getAttribute("data-bot");api("/bots/status",{bot:bid,status:st}).then(function(){flash=[1,st==="paused"?"Paused.":st==="active"?"Resumed.":"Stopped."];refresh().then(function(){render()})}).catch(function(e){flash=[0,e.message];render()})});
655
+ document.addEventListener("change",function(e){if(e.target&&e.target.id==="bot_chain"){BOT.chain=e.target.value;var ti=document.getElementById("bot_token");if(ti&&(ti.value==="ETH"||ti.value==="SOL")){ti.value=BOT.chain==="solana"?"SOL":"ETH";BOT.token=ti.value}BOT.pv=null}else if(e.target&&(e.target.id==="bot_token"||e.target.hasAttribute&&e.target.hasAttribute("data-bp")))BOT.pv=null});
568
656
  function preview(){var t=document.getElementById("stxt").value;api("/rules/preview",{text:t}).then(function(r){PV=r;flash=null;render()}).catch(function(e){flash=[0,e.message];render()})}
569
657
  function addRules(){var rules=PV.rules.map(function(r){var o={};for(var k in r)if(k!=="description"&&k!=="problem")o[k]=r[k];return o});api("/rules",{rules:rules}).then(function(){PV=null;flash=[1,"Turned on. The autopilot is watching prices."];refresh()}).catch(function(e){flash=[0,e.message];render()})}
570
658
  function setRule(id,st){api("/rules/status",{id:id,status:st}).then(function(){flash=[1,st==="active"?"Turned on.":st==="paused"?"Paused.":"Cancelled."];refresh()}).catch(function(e){flash=[0,e.message];render()})}
@@ -592,7 +680,7 @@ function usd(n){n=Number(n)||0;return "$"+n.toLocaleString(undefined,{minimumFra
592
680
  function ago(ts){var s=(Date.now()-Date.parse(ts))/1000;if(s<60)return "just now";if(s<3600)return Math.floor(s/60)+"m ago";if(s<86400)return Math.floor(s/3600)+"h ago";return new Date(ts).toLocaleDateString()}
593
681
  var ICONS={autopilot:'<path d="M13 2L4 14h7l-1 8 9-12h-7z"/>',home:'<path d="M3 11l9-7 9 7v9a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z"/>',activity:'<path d="M3 12h4l3-8 4 16 3-8h4"/>',approvals:'<path d="M5 13l4 4L19 7"/>',settings:'<path d="M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12"/><circle cx="16" cy="6" r="2"/><circle cx="10" cy="12" r="2"/><circle cx="18" cy="18" r="2"/>',withdraw:'<path d="M12 4v12m0 0l-5-5m5 5l5-5M5 20h14"/>'};
594
682
  var TABS=["home","activity","autopilot","approvals","settings","withdraw"],lastBadge=-1,lastAuto=-1;
595
- function nav(){var el=document.getElementById("nav");if(!el.querySelector("button")){el.innerHTML='<div class="ind" id="ind"></div>'+TABS.map(function(k){return '<button data-k="'+k+'" onclick="go(\''+k+'\')"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'+ICONS[k]+'</svg>'+k[0].toUpperCase()+k.slice(1)+'</button>'}).join("")}
683
+ function nav(){var el=document.getElementById("nav");if(!el.querySelector("button")){el.innerHTML='<div class="ind" id="ind"></div>'+TABS.map(function(k){return '<button data-k="'+k+'" onclick="go(\''+k+'\')"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'+ICONS[k]+'</svg>'+(k==="autopilot"?"Bots":k[0].toUpperCase()+k.slice(1))+'</button>'}).join("")}
596
684
  el.querySelectorAll("button").forEach(function(b){b.classList.toggle("on",b.getAttribute("data-k")===tab)});
597
685
  document.getElementById("ind").style.transform="translateX("+(TABS.indexOf(tab)*100)+"%)";
598
686
  var na=S&&S.rules?S.rules.filter(function(r){return r.status==="proposed"}).length:0;if(na!==lastAuto){lastAuto=na;var aa=el.querySelector('[data-k="autopilot"]'),o2=aa.querySelector(".badge");if(o2)o2.remove();if(na){var s2=document.createElement("span");s2.className="badge";s2.textContent=na;aa.appendChild(s2)}}
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAqRnB,SAAS;WACT,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0ZC,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6RnB,SAAS;WACT,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0eC,CAAC"}
package/dist/wallet.d.ts CHANGED
@@ -93,7 +93,7 @@ export declare class TollkitWallet {
93
93
  max_slippage_bps: number;
94
94
  chains: ("base" | "ethereum" | "solana")[];
95
95
  block_seller_warnings: boolean;
96
- agent_rules: "propose" | "auto";
96
+ agent_rules: "auto" | "propose";
97
97
  withdraw_addresses: {
98
98
  address: string;
99
99
  chain: "base" | "ethereum" | "solana";
@@ -121,6 +121,8 @@ export declare class TollkitWallet {
121
121
  valueOf(q: SwapQuote): Promise<number | null>;
122
122
  /** A priced, checked quote. Nothing is signed. */
123
123
  quote(req: SwapRequest): Promise<SwapResult>;
124
+ /** Core, listed (Superchain list on Base/Ethereum, Jupiter-verified on Solana) or added by the owner. */
125
+ private knownToken;
124
126
  private priced;
125
127
  /** Quote, check, approve if needed, reserve, sign, send, record. */
126
128
  swap(req: SwapRequest): Promise<SwapResult>;
package/dist/wallet.js CHANGED
@@ -10,6 +10,7 @@ import { Contract, JsonRpcProvider, formatUnits, parseUnits } from "ethers";
10
10
  import { DEFAULT_RPC, EVM_CHAIN_ID, STABLES, SWAP_FEE_BPS, WSOL, NATIVE_EVM } from "./chains.js";
11
11
  import { addresses, unlock } from "./keystore.js";
12
12
  import { TokenList } from "./holdings.js";
13
+ import { findListed, isCoreToken, loadExtraLists, solanaInfo } from "./tokenlist.js";
13
14
  import { entries, exportCsv, LimitError, record, reserve, settle, spentToday } from "./ledger.js";
14
15
  import { payFetch } from "./pay.js";
15
16
  import { loadPolicy, savePolicy } from "./policy.js";
@@ -216,6 +217,23 @@ export class TollkitWallet {
216
217
  const warning = balanceWarning(r.q);
217
218
  return { ok: true, quote: strip(r.q), ...(warning ? { warning } : {}) };
218
219
  }
220
+ /** Core, listed (Superchain list on Base/Ethereum, Jupiter-verified on Solana) or added by the owner. */
221
+ async knownToken(chain, token) {
222
+ if (token === NATIVE_EVM || token === WSOL || isCoreToken(chain, token))
223
+ return true;
224
+ if ((new TokenList(this.o.dir).list()[chain] ?? []).some((a) => a.toLowerCase() === token.toLowerCase()))
225
+ return true;
226
+ if (chain !== "solana") {
227
+ await loadExtraLists(this.f);
228
+ return !!findListed(chain, token);
229
+ }
230
+ try {
231
+ return (await solanaInfo([token], this.f)).get(token)?.trust === "listed";
232
+ }
233
+ catch {
234
+ return false;
235
+ }
236
+ }
219
237
  async priced(req, forTrade = true) {
220
238
  const refuse = (code, reason) => ({ ok: false, refused: { code, reason } });
221
239
  if (!this.policy.chains.includes(req.chain))
@@ -224,6 +242,9 @@ export class TollkitWallet {
224
242
  return refuse("slippage", `Slippage ${req.slippage_bps / 100}% is over your maximum of ${this.policy.max_slippage_bps / 100}%.`);
225
243
  if (req.sell_token.toLowerCase() === req.buy_token.toLowerCase())
226
244
  return refuse("same_token", "Sell and buy tokens are the same.");
245
+ // Buying a token the wallet doesn't know: only after the owner added it (which runs Tollkit's token check).
246
+ if (forTrade && !(await this.knownToken(req.chain, req.buy_token)))
247
+ return refuse("unchecked_token", `${req.buy_token} isn't on the wallet's token list and you haven't added it. Add it on Home (Add a token) first; that runs Tollkit's scam check.`);
227
248
  let q;
228
249
  try {
229
250
  q = await getQuote(req, this.taker(req.chain), { fetch: this.f, proxy: this.o.proxy ?? DEFAULT_PROXY });
@@ -231,7 +252,7 @@ export class TollkitWallet {
231
252
  catch (e) {
232
253
  return refuse("no_quote", e.message);
233
254
  }
234
- const bad = vetQuote(q, req);
255
+ const bad = vetQuote(q, req, req.chain === "solana" ? undefined : this.taker(req.chain));
235
256
  // A quote without a transaction is still a price; only trading needs one.
236
257
  if (bad && (forTrade || !/no transaction/.test(bad))) {
237
258
  const w = balanceWarning(q);
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ chrome.runtime.onMessage.addListener((m, sender, reply) => {
66
66
  if (m.type === "pair") {
67
67
  const code = String(m.code || "").trim().toUpperCase();
68
68
  const port = Number((/^(\d{2,5})-/.exec(code) || [])[1]);
69
- if (!port) return reply({ error: "Paste the whole code from Tollkit's Settings, like 7420-AB12-CD34." });
69
+ if (!port) return reply({ error: "Paste the whole code shown in Tollkit's Settings (numbers, then two groups of four)." });
70
70
  try {
71
71
  const r = await fetch(`http://127.0.0.1:${port}/api/ext/pair`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ code }) });
72
72
  const j = await r.json().catch(() => ({}));
@@ -6,7 +6,7 @@ const short = (a) => (a && a.length > 14 ? a.slice(0, 6) + "…" + a.slice(-4) :
6
6
  function pairView(err) {
7
7
  main.innerHTML = `<p>Connect this browser to the Tollkit Wallet on this computer.</p>
8
8
  <ol><li>Start Tollkit: <b>tollkit-wallet ui</b></li><li>In Tollkit, open <b>Settings</b> and click <b>Pair a browser</b>.</li><li>Paste the code here.</li></ol>
9
- <input id="code" placeholder="7420-AB12-CD34" autocomplete="off" spellcheck="false">
9
+ <input id="code" placeholder="Paste the code from Tollkit" autocomplete="off" spellcheck="false">
10
10
  <button id="go">Pair</button>${err ? `<div class="msg err">${esc(err)}</div>` : ""}`;
11
11
  const go = async () => {
12
12
  const b = document.getElementById("go"); b.disabled = true; b.textContent = "Pairing…";