0xa89f3db4…071asent to0xecb92cc7…1463·#25,067,901·view on Etherscan
<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><style>*{margin:0;padding:0}html,body{width:100%;height:100%;background:#000;display:flex;align-items:center;justify-content:center;font-family:monospace;color:rgba(255,255,255,0.4);font-size:11px}</style></head><body><div id="s">assembling rgb carrier...</div><script>
(async()=>{
const TOKEN=9994,ENTRIES=[21,22,23,24,25],CONTRACT='0xECb92Cc7112b80A2234936315BbB493fb48d1463';
const SEL='0x39c50f01';// vaultToEntry(uint256,uint256)
const RPCS=['https://ethereum-rpc.publicnode.com','https://eth.drpc.org','https://0xrpc.io/eth','https://eth.llamarpc.com'];
const s=document.getElementById('s');
function pad32(n){return n.toString(16).padStart(64,'0');}
function hexToBytes(h){if(h.startsWith('0x'))h=h.slice(2);var off=64;var len=parseInt(h.slice(off,off+64),16);off+=64;var b=new Uint8Array(len);for(var i=0;i<len;i++)b[i]=parseInt(h.substr(off+i*2,2),16);return b;}
var rpcIdx=0;
async function ethCall(data){
var p=[{to:CONTRACT,data:data},'latest'];
if(window.ethereum){try{var r=await window.ethereum.request({method:'eth_call',params:p});if(r&&r!=='0x')return r;}catch(e){}}
for(var a=0;a<RPCS.length;a++){var idx=(rpcIdx+a)%RPCS.length;try{var resp=await fetch(RPCS[idx],{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({jsonrpc:'2.0',method:'eth_call',params:p,id:1})});var j=await resp.json();if(j.result&&j.result!=='0x'){rpcIdx=idx;return j.result;}}catch(e){}}
return null;}
var parts=[];
for(var i=0;i<ENTRIES.length;i++){
s.textContent='reading entry '+(i+1)+'/'+ENTRIES.length+'...';
var data=SEL+pad32(TOKEN)+pad32(ENTRIES[i]);
var r=await ethCall(data);
if(!r||r==='0x'){s.textContent='failed to read entry '+ENTRIES[i];return;}
parts.push(hexToBytes(r));}
var total=0;for(var i=0;i<parts.length;i++)total+=parts[i].length;
var merged=new Uint8Array(total);var off=0;
for(var i=0;i<parts.length;i++){merged.set(parts[i],off);off+=parts[i].length;}
s.textContent='assembled '+total+' bytes, rendering...';
var html=new TextDecoder().decode(merged);
document.open();document.write(html);document.close();
})();
</script></body></html>