import { createPublicClient, http, getAddress } from "viem";
const RPC="https://polygon-bor-rpc.publicnode.com";
const CTF="0x4D97DCd97eC945f40cF65F87097ACe5EA0476045"; // Polymarket ConditionalTokens
const client=createPublicClient({transport:http(RPC)});
const abi=[{name:"balanceOf",type:"function",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"id",type:"uint256"}],outputs:[{type:"uint256"}]}];
// open positions: [id, dw, token_id]
const pos=[
[39291,"0x50a8061e9448eb1e5d5e7af07be4e4f63c6f24ff","25525886838936661349801315808447476243176190100445157889430252006398510133975"],
[86816,"0x50a8061e9448eb1e5d5e7af07be4e4f63c6f24ff","96646254317691918591607218090538891959482888267817137302488372475577859453924"],
[92690,"0x50a8061e9448eb1e5d5e7af07be4e4f63c6f24ff","85137760708636842718186595550702092661788294782897774313083967489451406920737"],
[94005,"0x50a8061e9448eb1e5d5e7af07be4e4f63c6f24ff","20522766937192084824662601926108309046432298740326951844690818334198609998867"],
[94346,"0xa1c283710e2f26bbdc28a8e99c8a03d591456d23","114276506135996380833798532758445027980286434669532528355962776701822124393314"],
[95114,"0xa1c283710e2f26bbdc28a8e99c8a03d591456d23","79813087331431006994002570122772697222439628590877185800146406992595447943800"],
];
for(const [id,dw,tid] of pos){
let bal="?";
try{const b=await client.readContract({address:CTF,abi,functionName:"balanceOf",args:[getAddress(dw),BigInt(tid)]});bal=(Number(b)/1e6).toFixed(4);}catch(e){bal="ERR:"+e.message.slice(0,60);}
console.log("pos",id,"dw",dw.slice(0,8),"CTF_shares="+bal);
}