loopso-bridge-sdk
Version:
Loopso Bridge SDK
2 lines (1 loc) • 27.2 kB
JavaScript
import{ethers as d}from"ethers";var o={LOOPSO_LUKSO_CONTRACT_ADDRESS:"0x9Ef9dDaf6A02f2Ec5813c8746751D07E0c3CBe6c",LOOPSO_MUMBAI_CONTRACT_ADDRESS:"0x882ced5f17c5616eb242c263fefdf4c29b610bc5",LAJOS_TOKEN_ADDRESS_MUMBAI:"0x8cBF42B6590614AbE7AB5ffc89aF153F5d620fC3",LAJOS_NFT_ADDRESS_MUMBAI:"0xdc1C3734165aB9f0336eb6d10feCFD62c9CF28cc",WRAPPED_MATIC_ADDRESS_MUMBAI:"0xBAABeA853DD0BE32Df73083129070c65314cF0Ea",LAJOS_TOKEN_ADDRESS_WRAPPED_LUKSO:"0x4EFCc784eA3E259bdA3c6311D448416959B9bB9C",LAJOS_NFT_ADDRESS_WRAPPED_LUKSO:"0xf60b63DbA61F14647D9a146113548fB341A87d12",WRAPPED_LYX_ADDRESS_LUKSO:"0x5119A7Af90339D645ccdf9332d7813d4940DA19B"},u=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"NativeTokensReleased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"bytes32",name:"attestationID",type:"bytes32"}],name:"NonFungibleTokensBridgedBack",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"}],name:"NonFungibleTokensReleased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"attestationID",type:"bytes32"}],name:"TokenAttested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"transferID",type:"bytes32"},{indexed:!0,internalType:"enum ILoopso.TokenType",name:"tokenType",type:"uint8"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"bytes32",name:"attestationID",type:"bytes32"}],name:"TokensBridgedBack",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"}],name:"TokensReleased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"bytes32",name:"attestationID",type:"bytes32"}],name:"WrappedNonFungibleTokensReleased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"bytes32",name:"attestationID",type:"bytes32"}],name:"WrappedTokensReleased",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"FEE_FUNGIBLE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"FEE_NON_FUNGIBLE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"RELAYER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"tokenChain",type:"uint256"},{internalType:"enum ILoopso.TokenType",name:"tokenType",type:"uint8"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"name",type:"string"},{internalType:"address",name:"wrappedTokenAddress",type:"address"}],internalType:"struct ILoopso.TokenAttestation",name:"attestation",type:"tuple"}],name:"attestToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"attestationIds",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"attestedTokens",outputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"tokenChain",type:"uint256"},{internalType:"enum ILoopso.TokenType",name:"tokenType",type:"uint8"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"name",type:"string"},{internalType:"address",name:"wrappedTokenAddress",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_dstChain",type:"uint256"},{internalType:"address",name:"_dstAddress",type:"address"}],name:"bridgeNativeTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_tokenID",type:"uint256"},{internalType:"string",name:"tokenURI",type:"string"},{internalType:"uint256",name:"_dstChain",type:"uint256"},{internalType:"address",name:"_dstAddress",type:"address"}],name:"bridgeNonFungibleTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"address",name:"_to",type:"address"},{internalType:"bytes32",name:"_attestationID",type:"bytes32"}],name:"bridgeNonFungibleTokensBack",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_dstChain",type:"uint256"},{internalType:"address",name:"_dstAddress",type:"address"}],name:"bridgeTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_to",type:"address"},{internalType:"bytes32",name:"_attestationID",type:"bytes32"}],name:"bridgeTokensBack",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"discountNft",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeReceiver",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getAllSupportedTokens",outputs:[{components:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"tokenChain",type:"uint256"},{internalType:"enum ILoopso.TokenType",name:"tokenType",type:"uint8"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"name",type:"string"},{internalType:"address",name:"wrappedTokenAddress",type:"address"}],internalType:"struct ILoopso.TokenAttestation[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getSupportedTokensLength",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"uint256",name:"_tokenChain",type:"uint256"}],name:"isTokenSupported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"isWrappedToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_to",type:"address"}],name:"releaseNativeTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"address",name:"_to",type:"address"},{internalType:"address",name:"_token",type:"address"}],name:"releaseNonFungibleTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_to",type:"address"},{internalType:"address",name:"_token",type:"address"}],name:"releaseTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"string",name:"_tokenURI",type:"string"},{internalType:"address",name:"_to",type:"address"},{internalType:"bytes32",name:"_attestationID",type:"bytes32"}],name:"releaseWrappedNonFungibleTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_to",type:"address"},{internalType:"bytes32",name:"_attestationID",type:"bytes32"}],name:"releaseWrappedTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_discountNft",type:"address"}],name:"setDiscountNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeReceiver",type:"address"}],name:"setFeeReceiver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_fee",type:"uint256"}],name:"setFungibleFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_fee",type:"uint256"}],name:"setNonFungibleFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ITokenFactory",name:"_tokenFactory",type:"address"}],name:"setTokenFactory",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenFactory",outputs:[{internalType:"contract ITokenFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"tokenTransfers",outputs:[{components:[{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"srcChain",type:"uint256"},{internalType:"address",name:"srcAddress",type:"address"},{internalType:"uint256",name:"dstChain",type:"uint256"},{internalType:"address",name:"dstAddress",type:"address"},{internalType:"address",name:"tokenAddress",type:"address"}],internalType:"struct ILoopso.TokenTransferBase",name:"tokenTransfer",type:"tuple"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"tokenTransfersNonFungible",outputs:[{components:[{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"srcChain",type:"uint256"},{internalType:"address",name:"srcAddress",type:"address"},{internalType:"uint256",name:"dstChain",type:"uint256"},{internalType:"address",name:"dstAddress",type:"address"},{internalType:"address",name:"tokenAddress",type:"address"}],internalType:"struct ILoopso.TokenTransferBase",name:"tokenTransfer",type:"tuple"},{internalType:"uint256",name:"tokenID",type:"uint256"},{internalType:"string",name:"tokenURI",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_wrappedToken",type:"address"}],name:"wrappedTokenInfo",outputs:[{components:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"tokenChain",type:"uint256"},{internalType:"enum ILoopso.TokenType",name:"tokenType",type:"uint8"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"name",type:"string"},{internalType:"address",name:"wrappedTokenAddress",type:"address"}],internalType:"struct ILoopso.TokenAttestation",name:"",type:"tuple"}],stateMutability:"view",type:"function"}],_=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}],x=[{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"mint",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"safeTransferFrom",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"}],b=[{inputs:[{internalType:"string",name:"_name",type:"string"},{internalType:"string",name:"_symbol",type:"string"},{internalType:"uint8",name:"_decimals",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"src",type:"address"},{indexed:!0,internalType:"address",name:"guy",type:"address"},{indexed:!1,internalType:"uint256",name:"wad",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"dst",type:"address"},{indexed:!1,internalType:"uint256",name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"src",type:"address"},{indexed:!0,internalType:"address",name:"dst",type:"address"},{indexed:!1,internalType:"uint256",name:"wad",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"src",type:"address"},{indexed:!1,internalType:"uint256",name:"wad",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"guy",type:"address"},{internalType:"uint256",name:"wad",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"dst",type:"address"},{internalType:"uint256",name:"wad",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"src",type:"address"},{internalType:"address",name:"dst",type:"address"},{internalType:"uint256",name:"wad",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"wad",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],S=["function FEE_NON_FUNGIBLE() external view returns (uint256 memory)","function FEE_FUNGIBLE() external view returns (uint256 memory)"];import{ethers as f}from"ethers";async function M(t,e,n,s){if(await e.allowance(await t.getAddress(),n)<s){let i=await e.approve(n,s);if(i)return await i.wait();throw new Error("Approval transaction failed")}}function k(t,e){return f.solidityPackedKeccak256(["address","uint256"],[t,e])}async function v(t,e,n,s){let a=await e.approve(n,s);return a?await a.wait():null}function O(t,e){let n=null;switch(t){case 4201:n=new f.Contract(o.LOOPSO_LUKSO_CONTRACT_ADDRESS,u,e);break;case 80001:n=new f.Contract(o.LOOPSO_MUMBAI_CONTRACT_ADDRESS,u,e);break;default:break}return n}function g(t,e){let n=null;switch(t){case o.LOOPSO_LUKSO_CONTRACT_ADDRESS:n=new f.Contract(t,u,e);break;case o.LOOPSO_MUMBAI_CONTRACT_ADDRESS:n=new f.Contract(t,u,e);break;default:break}return n}function A(t){let e=null;switch(t){case 4201:e=o.LOOPSO_LUKSO_CONTRACT_ADDRESS;break;case 80001:e=o.LOOPSO_MUMBAI_CONTRACT_ADDRESS;break;default:break}return e||null}async function J(t,e,n,s,a,i){let m=g(t,e),l=new d.Contract(n,_,e),r=A(i);await M(e,l,t,s);try{if(m&&r){let y=await C(t,e,n),c=k(y.tokenAddress,y.srcChain);if(y.name){let p=await m.bridgeTokensBack(s,a,c);if(p)return await p.wait();throw new Error("Bridge transaction failed")}else{let p=await m.bridgeTokens(n,s,i,a);if(p)return await p.wait();throw new Error("Bridge transaction failed")}}else return null}catch(y){return console.error("Error bridging tokens:",y),null}}async function K(t,e,n,s,a,i,m){let l=g(t,e),r=A(a),y=new d.Contract(n,x,e);try{if(await v(e,y,t,i)&&l&&r){let p=await C(t,e,n),w=k(p.tokenAddress,p.srcChain);if(p.name){let T=await l.bridgeNonFungibleTokensBack(i,s,w);if(T)return await T.wait();throw new Error("Bridge transaction failed")}else{let T=await l.bridgeNonFungibleTokens(n,i,m,a,s,{value:0});if(T)return await T.wait();throw new Error("Bridge transaction failed")}}else throw new Error("Missing fields to perform bridge")}catch(c){return console.error("Error bridging tokens:",c),null}}async function G(t,e){return new d.Contract(t,u,e).getAllSupportedTokens()}async function j(t,e,n){let s=new d.Contract(t,u,e);if(n){let a=await s.FEE_FUNGIBLE();return Number(a)/1e4}else{let a=await s.FEE_NON_FUNGIBLE();return Number(a)}}async function Y(t,e,n,s){return await new d.Contract(t,u,e).isTokenSupported(n,s)}async function C(t,e,n){let a=await new d.Contract(t,u,e).wrappedTokenInfo(n);return{tokenAddress:a[0],srcChain:a[1],tokenType:a[2],decimals:a[3],symbol:a[4],name:a[5],wrappedTokenAddress:a[6]}}async function $(t,e,n){let s;switch(n=n*BigInt(10**18),e){case 80001:s=new d.Contract(o.WRAPPED_MATIC_ADDRESS_MUMBAI,b,t);break;case 4201:s=new d.Contract(o.WRAPPED_LYX_ADDRESS_LUKSO,b,t);break;default:return new Error("Invalid ChainId")}let a=await s.deposit({value:n});if(await a.wait(),a)return await a.wait();throw new Error("Wrapping failed")}async function X(t,e,n){let s;switch(n=n*BigInt(10**18),e){case 80001:s=new d.Contract(o.WRAPPED_MATIC_ADDRESS_MUMBAI,b,t);break;case 4201:s=new d.Contract(o.WRAPPED_LYX_ADDRESS_LUKSO,b,t);break;default:return new Error("Invalid ChainId")}let a=await s.withdraw(n);if(a)return await a.wait();throw new Error("Unwrapping failed")}import E from"cross-fetch";var D=async t=>{try{let e=t.map(async a=>{console.log(a,"this is item");let i=await E(`https://api.explorer.execution.testnet.lukso.network/api/v2/tokens/${a.address}/instances`,{method:"GET",headers:{Accept:"application/json"}});if(!i.ok)throw new Error(`Failed to fetch data: ${i.statusText}`);let l=(await i.json()).items.map(r=>{var y,c,p;return{contractAddress:a.address,id:r.id,metadata:{description:(y=r==null?void 0:r.metadata)==null?void 0:y.description,image:(c=r==null?void 0:r.metadata)==null?void 0:c.image,name:(p=r==null?void 0:r.metadata)==null?void 0:p.name}}});return console.log(l,"Extracted Metadata"),l});return(await Promise.all(e)).flat()}catch(e){return console.error("Error fetching data:",e),null}},z=async t=>{try{let e=await E(`https://api.explorer.execution.testnet.lukso.network/api/v2/search?q=${t}`,{method:"GET",headers:{Accept:"application/json"}});if(!e.ok)throw new Error(`Failed to fetch data: ${e.statusText}`);let s=(await e.json()).items.filter(i=>i.type==="token"&&i.token_type==="ERC-721");return await D(s)}catch(e){return console.error("Error fetching data:",e),null}};export{o as ADDRESSES,_ as ERC20_ABI,x as ERC721_ABI,S as FEE_ABI,u as LOOPSO_ABI,b as WRAPPED_ABI,K as bridgeNonFungibleTokens,J as bridgeTokens,v as checkNftApproval,M as checkTokenAllowance,z as fetchLuksoNfts,G as getAllSupportedTokens,k as getAttestationIDHash,A as getContractAddressFromChainId,j as getFee,O as getLoopsoContractFromChainId,g as getLoopsoContractFromContractAddr,D as getLuksoNftMetadata,C as getWrappedTokenInfo,Y as isTokenSupported,X as unwrapNativeToken,$ as wrapNativeToken};