@idosgames/wallet 0.4.0 → 0.5.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.
@@ -1 +0,0 @@
1
- import {e,g,b as b$1,a,h as h$1,c}from'./chunk-OZXERZ5Q.js';import {encodeAbiParameters,parseUnits}from'viem';import {normalizeBlockchainCategory}from'@idosgames/core';var b=[{type:"function",name:"depositERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"amount",type:"uint256"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"withdrawERC20",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"amount",type:"uint256"},{name:"burnAmount",type:"uint256"},{name:"splits",type:"tuple[]",components:[{name:"to",type:"address"},{name:"amount",type:"uint256"}]},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC1155",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"splits",type:"tuple[]",components:[{name:"to",type:"address"},{name:"amount",type:"uint256"}]},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],C=[{type:"function",name:"withdrawERC1155Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"splits",type:"tuple[]",components:[{name:"to",type:"address"},{name:"amount",type:"uint256"}]},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]},{type:"function",name:"withdrawERC721Mint",stateMutability:"nonpayable",inputs:[{name:"collection",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"nonce",type:"uint256"},{name:"signature",type:"bytes"},{name:"userID",type:"string"},{name:"titleID",type:"string"},{name:"category",type:"string"},{name:"deadline",type:"uint256"}],outputs:[]}],v=[{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]}],I=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]},{type:"function",name:"isApprovedForAll",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"operator",type:"address"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"setApprovalForAll",stateMutability:"nonpayable",inputs:[{name:"operator",type:"address"},{name:"approved",type:"bool"}],outputs:[]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"},{name:"id",type:"uint256"}],outputs:[{name:"",type:"uint256"}]}],E=[{type:"function",name:"safeTransferFrom",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function D(e,t,n){return encodeAbiParameters([{type:"string"},{type:"string"},{type:"string"}],[e,t,normalizeBlockchainCategory(n)])}async function h(e,t){let{walletClient:n,publicClient:i,account:s}=e,o=await n.writeContract({address:t.address,abi:t.abi,functionName:t.functionName,args:t.args,account:s,chain:n.chain,value:t.value});if((await i.waitForTransactionReceipt({hash:o})).status==="reverted")throw new Error(`On-chain transaction reverted (${o}).`);return o}function x(e){let t=e.RewardPoolAddress;return t||null}async function T(e,t,n,i){return await e.publicClient.readContract({address:t,abi:v,functionName:"allowance",args:[e.account,n]})>=i?null:h(e,{address:t,abi:v,functionName:"approve",args:[n,i]})}async function N(e$1){let{client:t,clients:n,network:i,tokenAddress:s,amount:o,titleID:u,category:c}=e$1;if(e())return g("approve");let r=t.auth.context?.userID;if(!r)return b$1("approve","Not logged in.");let l=x(i);if(!l)return b$1("approve","Network has no RewardPoolAddress.");if(o<=0n)return b$1("approve","Amount must be positive.");try{await T(n,s,l,o);}catch(d){return b$1("approve",a(d))}let p;try{p=await h(n,{address:l,abi:b,functionName:"depositERC20",args:[s,o,r,u,c??""]});}catch(d){return b$1("deposit-onchain",a(d))}let m=await t.blockchain.depositToken(i.NetworkID??"",p);return m.ok?{ok:true,onChainTxHash:p,data:m.data}:b$1("report",m.error,{onChainTxHash:p})}async function S(e$1){let{clients:t,poolAddress:n,tokenAddress:i,amount:s,userID:o,titleID:u,category:c}=e$1;if(e())return g("approve");if(!o)return b$1("approve","userID is required.");if(s<=0n)return b$1("approve","Amount must be positive.");try{await T(t,i,n,s);}catch(r){return b$1("approve",a(r))}try{let r=await h(t,{address:n,abi:b,functionName:"depositERC20",args:[i,s,o,u,c??""]});return {ok:!0,onChainTxHash:r,data:{txHash:r}}}catch(r){return b$1("deposit-onchain",a(r))}}async function O(e$1){let{client:t,clients:n,network:i,nftContractAddress:s,tokenId:o,amount:u,titleID:c,category:r}=e$1;if(e())return g("deposit-onchain");let l=t.auth.context?.userID;if(!l)return b$1("deposit-onchain","Not logged in.");let p=x(i);if(!p)return b$1("deposit-onchain","Network has no RewardPoolAddress.");if(u<=0n)return b$1("deposit-onchain","Amount must be positive.");let m=D(l,c,r),d;try{d=await h(n,{address:s,abi:I,functionName:"safeTransferFrom",args:[n.account,p,o,u,m]});}catch(A){return b$1("deposit-onchain",a(A))}let y=await t.blockchain.depositNFT(i.NetworkID??"",d);return y.ok?{ok:true,onChainTxHash:d,data:y.data}:b$1("report",y.error,{onChainTxHash:d})}async function q(e$1){let{client:t,clients:n,network:i,nftContractAddress:s,tokenId:o,titleID:u,category:c}=e$1;if(e())return g("deposit-onchain");let r=t.auth.context?.userID;if(!r)return b$1("deposit-onchain","Not logged in.");let l=x(i);if(!l)return b$1("deposit-onchain","Network has no RewardPoolAddress.");let p=D(r,u,c),m;try{m=await h(n,{address:s,abi:E,functionName:"safeTransferFrom",args:[n.account,l,o,p]});}catch(y){return b$1("deposit-onchain",a(y))}let d=await t.blockchain.depositNFT(i.NetworkID??"",m);return d.ok?{ok:true,onChainTxHash:m,data:d.data}:b$1("report",d.error,{onChainTxHash:m})}function P(e){return (e.Splits??[]).map(t=>({to:t.To,amount:BigInt(t.Amount??"0")}))}async function B(e,t){return h(e,{address:t.ContractAddress,abi:b,functionName:"withdrawERC20",args:[t.TokenAddress,t.WalletAddress,BigInt(t.Amount??"0"),BigInt(t.BurnAmount??"0"),P(t),BigInt(t.Nonce??"0"),t.Signature??"0x",t.UserID??"",t.TitleID??"",t.Category??"",BigInt(t.Deadline??"0")]})}async function R(e,t){return h(e,{address:t.ContractAddress,abi:C,functionName:"withdrawERC1155Mint",args:[t.TokenAddress,t.WalletAddress,BigInt(t.TokenId??"0"),BigInt(t.Amount??"0"),P(t),BigInt(t.Nonce??"0"),t.Signature??"0x",t.UserID??"",t.TitleID??"",t.Category??"",BigInt(t.Deadline??"0")]})}async function L(e,t){return h(e,{address:t.ContractAddress,abi:C,functionName:"withdrawERC721Mint",args:[t.TokenAddress,t.WalletAddress,BigInt(t.TokenId??"0"),BigInt(t.Nonce??"0"),t.Signature??"0x",t.UserID??"",t.TitleID??"",t.Category??"",BigInt(t.Deadline??"0")]})}async function U(e$1){let{client:t,clients:n,currencyID:i,networkID:s,walletAddress:o,amount:u,category:c}=e$1;if(e())return g("request");let r=await t.blockchain.requestTokenWithdrawal(i,s,o,u,c);if(!r.ok)return b$1("request",r.error);let l=r.data.EvmSignature,p=r.data.TitleTransactionID??void 0;if(!l)return b$1("request","Withdrawal response carried no EVM signature.",{titleTransactionID:p});let m;try{m=await B(n,l);}catch(y){return b$1("withdraw-onchain",a(y),{titleTransactionID:p})}let d=await H(t,p,m);return d.ok?{ok:true,onChainTxHash:m,data:r.data}:d}async function $(e$1){let{client:t,clients:n,itemID:i,networkID:s,walletAddress:o,amount:u,category:c}=e$1;if(e())return g("request");let r=await t.blockchain.requestNFTWithdrawal(i,s,o,u,c);if(!r.ok)return b$1("request",r.error);let l=r.data.EvmSignature,p=r.data.TitleTransactionID??void 0;if(!l)return b$1("request","Withdrawal response carried no EVM signature.",{titleTransactionID:p});let m;try{m=await R(n,l);}catch(y){return b$1("withdraw-onchain",a(y),{titleTransactionID:p})}let d=await H(t,p,m);return d.ok?{ok:true,onChainTxHash:m,data:r.data}:d}async function H(e,t,n){if(!t)return b$1("confirm","Missing TitleTransactionID.",{onChainTxHash:n});let i=await e.blockchain.confirmWithdrawal(t,n);return i.ok?{ok:true,onChainTxHash:n,data:i.data}:b$1("confirm",i.error,{onChainTxHash:n,titleTransactionID:t})}async function V(e$1){let{client:t,clients:n,networkID:i}=e$1;if(e())return h$1("challenge");let s=e$1.walletAddress??n.account,o=await t.auth.requestWalletChallenge(s,i);if(!o.ok)return c("challenge",o.error);let u;try{u=await n.walletClient.signMessage({account:n.account,message:o.data.Message});}catch(r){return c("sign",a(r))}let c$1=await t.auth.loginWithWallet(s,i,u);return c$1.ok?{ok:true,data:c$1.data}:c("login",c$1.error)}async function j(e$1){let{client:t,clients:n,network:i,tokenAddress:s,decimals:o,titleID:u,shortfall:c,completePurchase:r,bufferRatio:l=0,category:p}=e$1;if(e())return g("approve");if(c.missing<=0)return b$1("approve","Nothing to deposit.");let m=c.missing*(1+Math.max(0,l)),d;try{d=parseUnits(J(m,o),o);}catch(F){return b$1("approve",a(F))}let y=await N({client:t,clients:n,network:i,tokenAddress:s,amount:d,titleID:u,category:p});if(!y.ok)return y;let A=await r();return A.ok?{ok:true,onChainTxHash:y.onChainTxHash,data:A.data}:b$1("report",A.error,{onChainTxHash:y.onChainTxHash})}function J(e,t){return e.toFixed(Math.min(t,18)).replace(/0+$/,"").replace(/\.$/,"")||"0"}export{b as a,v as b,I as c,E as d,D as e,h as f,T as g,N as h,S as i,O as j,q as k,B as l,R as m,L as n,U as o,$ as p,V as q,j as r};
@@ -1,2 +0,0 @@
1
- import {BaseError}from'viem';function E(e){return e instanceof BaseError?e.shortMessage:e instanceof Error?e.message:String(e)}function a(e,t,n){return {ok:false,stage:e,error:t,...n}}function r(e,t){return {ok:false,stage:e,error:t}}var o="WALLET_USE_SITE_PANEL";function w(){if(typeof window>"u")return false;try{return window.self!==window.top}catch{return true}}function S(){if(typeof window>"u")return false;try{return window.parent!==window.top}catch{return true}}function k(e){return a(e,o)}function C(e){return r(e,o)}var s=["https://idosgames.com","https://www.idosgames.com"];function L(e){if(typeof window>"u")return ()=>{};let t=n=>{s.includes(n.origin)&&n.data?.type==="IDOS_WALLET_BALANCE_CHANGED"&&e();};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}var l={id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.llamarpc.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io"}}},p={id:56,name:"BNB Smart Chain",nativeCurrency:{name:"BNB",symbol:"BNB",decimals:18},rpcUrls:{default:{http:["https://bsc-dataseed.binance.org"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com"}}},c={id:137,name:"Polygon",nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://polygonscan.com"}}},u={id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"BaseScan",url:"https://basescan.org"}}},d={id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io"}}},m={id:10,name:"OP Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},blockExplorers:{default:{name:"Optimistic Etherscan",url:"https://optimistic.etherscan.io"}}},g={id:11155111,name:"Sepolia",testnet:true,nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.sepolia.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io"}}},h={id:80002,name:"Polygon Amoy",testnet:true,nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://rpc-amoy.polygon.technology"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://amoy.polygonscan.com"}}},f={mainnet:l,bsc:p,polygon:c,base:u,arbitrum:d,optimism:m,sepolia:g,polygonAmoy:h};function B(e){return Object.values(f).find(t=>t.id===e)}function N(e){return {...e,chainNamespace:"eip155",caipNetworkId:`eip155:${e.id}`}}var T={id:"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",name:"Solana",network:"solana-mainnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://api.mainnet-beta.solana.com"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:false,chainNamespace:"solana",caipNetworkId:"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"},A={id:"EtWTRABZaYq6iMfeYKouRu166VU2xqa1",name:"Solana Devnet",network:"solana-devnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://api.devnet.solana.com"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:true,chainNamespace:"solana",caipNetworkId:"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"};
2
- export{E as a,a as b,r as c,o as d,w as e,S as f,k as g,C as h,L as i,l as j,p as k,c as l,u as m,d as n,m as o,g as p,h as q,f as r,B as s,N as t,T as u,A as v};