loopso-bridge-sdk
Version:
Loopso Bridge SDK
2 lines (1 loc) • 28.3 kB
JavaScript
var R=Object.create;var w=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var N=(t,e)=>{for(var n in e)w(t,n,{get:e[n],enumerable:!0})},D=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of O(e))!L.call(t,a)&&a!==n&&w(t,a,{get:()=>e[a],enumerable:!(s=F(e,a))||s.enumerable});return t};var P=(t,e,n)=>(n=t!=null?R(B(t)):{},D(e||!t||!t.__esModule?w(n,"default",{value:t,enumerable:!0}):n,t)),U=t=>D(w({},"__esModule",{value:!0}),t);var z={};N(z,{ADDRESSES:()=>p,ERC20_ABI:()=>x,ERC721_ABI:()=>M,FEE_ABI:()=>W,LOOPSO_ABI:()=>y,WRAPPED_ABI:()=>T,bridgeNonFungibleTokens:()=>G,bridgeTokens:()=>K,checkNftApproval:()=>C,checkTokenAllowance:()=>v,fetchLuksoNfts:()=>q,getAllSupportedTokens:()=>j,getAttestationIDHash:()=>k,getContractAddressFromChainId:()=>A,getFee:()=>Y,getLoopsoContractFromChainId:()=>J,getLoopsoContractFromContractAddr:()=>g,getLuksoNftMetadata:()=>S,getWrappedTokenInfo:()=>E,isTokenSupported:()=>$,unwrapNativeToken:()=>H,wrapNativeToken:()=>X});module.exports=U(z);var u=require("ethers");var p={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"},y=[{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"}],x=[{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"}],M=[{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"}],T=[{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"}],W=["function FEE_NON_FUNGIBLE() external view returns (uint256 memory)","function FEE_FUNGIBLE() external view returns (uint256 memory)"];var b=require("ethers");async function v(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 b.ethers.solidityPackedKeccak256(["address","uint256"],[t,e])}async function C(t,e,n,s){let a=await e.approve(n,s);return a?await a.wait():null}function J(t,e){let n=null;switch(t){case 4201:n=new b.ethers.Contract(p.LOOPSO_LUKSO_CONTRACT_ADDRESS,y,e);break;case 80001:n=new b.ethers.Contract(p.LOOPSO_MUMBAI_CONTRACT_ADDRESS,y,e);break;default:break}return n}function g(t,e){let n=null;switch(t){case p.LOOPSO_LUKSO_CONTRACT_ADDRESS:n=new b.ethers.Contract(t,y,e);break;case p.LOOPSO_MUMBAI_CONTRACT_ADDRESS:n=new b.ethers.Contract(t,y,e);break;default:break}return n}function A(t){let e=null;switch(t){case 4201:e=p.LOOPSO_LUKSO_CONTRACT_ADDRESS;break;case 80001:e=p.LOOPSO_MUMBAI_CONTRACT_ADDRESS;break;default:break}return e||null}async function K(t,e,n,s,a,i){let m=g(t,e),l=new u.ethers.Contract(n,x,e),r=A(i);await v(e,l,t,s);try{if(m&&r){let d=await E(t,e,n),c=k(d.tokenAddress,d.srcChain);if(d.name){let o=await m.bridgeTokensBack(s,a,c);if(o)return await o.wait();throw new Error("Bridge transaction failed")}else{let o=await m.bridgeTokens(n,s,i,a);if(o)return await o.wait();throw new Error("Bridge transaction failed")}}else return null}catch(d){return console.error("Error bridging tokens:",d),null}}async function G(t,e,n,s,a,i,m){let l=g(t,e),r=A(a),d=new u.ethers.Contract(n,M,e);try{if(await C(e,d,t,i)&&l&&r){let o=await E(t,e,n),_=k(o.tokenAddress,o.srcChain);if(o.name){let f=await l.bridgeNonFungibleTokensBack(i,s,_);if(f)return await f.wait();throw new Error("Bridge transaction failed")}else{let f=await l.bridgeNonFungibleTokens(n,i,m,a,s,{value:0});if(f)return await f.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 j(t,e){return new u.ethers.Contract(t,y,e).getAllSupportedTokens()}async function Y(t,e,n){let s=new u.ethers.Contract(t,y,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 $(t,e,n,s){return await new u.ethers.Contract(t,y,e).isTokenSupported(n,s)}async function E(t,e,n){let a=await new u.ethers.Contract(t,y,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 X(t,e,n){let s;switch(n=n*BigInt(10**18),e){case 80001:s=new u.ethers.Contract(p.WRAPPED_MATIC_ADDRESS_MUMBAI,T,t);break;case 4201:s=new u.ethers.Contract(p.WRAPPED_LYX_ADDRESS_LUKSO,T,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 H(t,e,n){let s;switch(n=n*BigInt(10**18),e){case 80001:s=new u.ethers.Contract(p.WRAPPED_MATIC_ADDRESS_MUMBAI,T,t);break;case 4201:s=new u.ethers.Contract(p.WRAPPED_LYX_ADDRESS_LUKSO,T,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")}var h=P(require("cross-fetch")),S=async t=>{try{let e=t.map(async a=>{console.log(a,"this is item");let i=await(0,h.default)(`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 d,c,o;return{contractAddress:a.address,id:r.id,metadata:{description:(d=r==null?void 0:r.metadata)==null?void 0:d.description,image:(c=r==null?void 0:r.metadata)==null?void 0:c.image,name:(o=r==null?void 0:r.metadata)==null?void 0:o.name}}});return console.log(l,"Extracted Metadata"),l});return(await Promise.all(e)).flat()}catch(e){return console.error("Error fetching data:",e),null}},q=async t=>{try{let e=await(0,h.default)(`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 S(s)}catch(e){return console.error("Error fetching data:",e),null}};0&&(module.exports={ADDRESSES,ERC20_ABI,ERC721_ABI,FEE_ABI,LOOPSO_ABI,WRAPPED_ABI,bridgeNonFungibleTokens,bridgeTokens,checkNftApproval,checkTokenAllowance,fetchLuksoNfts,getAllSupportedTokens,getAttestationIDHash,getContractAddressFromChainId,getFee,getLoopsoContractFromChainId,getLoopsoContractFromContractAddr,getLuksoNftMetadata,getWrappedTokenInfo,isTokenSupported,unwrapNativeToken,wrapNativeToken});