loopso-bridge-sdk
Version:
Loopso Bridge SDK
268 lines (261 loc) • 8.09 kB
TypeScript
import { ethers, TransactionResponse, Contract } from 'ethers';
type ChainName = "ethereum" | "polygon" | "lukso";
type Token = {
name: string;
symbol: string;
mint: string;
contract: string;
chainId: number;
wChainId?: number;
decimals: number;
logoURI: string;
coingeckoId: string;
realOriginChainId?: number;
realOriginContractAddress?: string;
};
interface ContractInstance {
contract: ethers.Contract;
}
type WrappedTokenInfo = {
tokenAddress: string;
srcChain: number;
tokenType: number;
decimals: number;
symbol: string;
name: string;
wrappedTokenAddress: string;
};
declare function bridgeTokens(contractAddressSrc: string, signer: ethers.Signer, tokenAddress: string, amount: bigint, dstAddress: string, dstChain: number): Promise<TransactionResponse | null>;
declare function bridgeNonFungibleTokens(contractAddressSrc: string, signer: ethers.Signer, tokenAddress: string, dstAddress: string, dstChain: number, tokenId: number, tokenUri: string): Promise<any | null>;
declare function getAllSupportedTokens(contractAddress: string, signerOrProvider: ethers.Signer | ethers.JsonRpcProvider): Promise<any>;
declare function getFee(contractAddress: string, signerOrProvider: ethers.Signer | ethers.JsonRpcProvider, isFungible: boolean): Promise<number>;
declare function isTokenSupported(contractAddressDst: string, signerOrProvider: ethers.Signer | ethers.JsonRpcProvider, tokenAddress: string, srcChain: number): Promise<boolean>;
declare function getWrappedTokenInfo(contractAddressOnSrc: string, signerOrProvider: ethers.Signer | ethers.JsonRpcProvider, wrappedTokenAddress: string): Promise<WrappedTokenInfo>;
declare function wrapNativeToken(signerOrProvider: ethers.Signer | ethers.JsonRpcProvider, chainId: number, amount: bigint): Promise<any>;
declare function unwrapNativeToken(signerOrProvider: ethers.Signer | ethers.JsonRpcProvider, chainId: number, amount: bigint): Promise<any>;
declare const ADDRESSES: {
LOOPSO_LUKSO_CONTRACT_ADDRESS: string;
LOOPSO_MUMBAI_CONTRACT_ADDRESS: string;
LAJOS_TOKEN_ADDRESS_MUMBAI: string;
LAJOS_NFT_ADDRESS_MUMBAI: string;
WRAPPED_MATIC_ADDRESS_MUMBAI: string;
LAJOS_TOKEN_ADDRESS_WRAPPED_LUKSO: string;
LAJOS_NFT_ADDRESS_WRAPPED_LUKSO: string;
WRAPPED_LYX_ADDRESS_LUKSO: string;
};
declare const LOOPSO_ABI: ({
inputs: any[];
stateMutability: string;
type: string;
name?: undefined;
anonymous?: undefined;
outputs?: undefined;
} | {
inputs: {
internalType: string;
name: string;
type: string;
}[];
name: string;
type: string;
stateMutability?: undefined;
anonymous?: undefined;
outputs?: undefined;
} | {
anonymous: boolean;
inputs: {
indexed: boolean;
internalType: string;
name: string;
type: string;
}[];
name: string;
type: string;
stateMutability?: undefined;
outputs?: undefined;
} | {
inputs: {
components: {
internalType: string;
name: string;
type: string;
}[];
internalType: string;
name: string;
type: string;
}[];
name: string;
outputs: any[];
stateMutability: string;
type: string;
anonymous?: undefined;
} | {
inputs: {
internalType: string;
name: string;
type: string;
}[];
name: string;
outputs: ({
components: {
internalType: string;
name: string;
type: string;
}[];
internalType: string;
name: string;
type: string;
} | {
internalType: string;
name: string;
type: string;
components?: undefined;
})[];
stateMutability: string;
type: string;
anonymous?: undefined;
})[];
declare const ERC20_ABI: ({
constant: boolean;
inputs: {
name: string;
type: string;
}[];
name: string;
outputs: {
name: string;
type: string;
}[];
payable: boolean;
stateMutability: string;
type: string;
anonymous?: undefined;
} | {
payable: boolean;
stateMutability: string;
type: string;
constant?: undefined;
inputs?: undefined;
name?: undefined;
outputs?: undefined;
anonymous?: undefined;
} | {
anonymous: boolean;
inputs: {
indexed: boolean;
name: string;
type: string;
}[];
name: string;
type: string;
constant?: undefined;
outputs?: undefined;
payable?: undefined;
stateMutability?: undefined;
})[];
declare const ERC721_ABI: ({
inputs: any[];
payable: boolean;
stateMutability: string;
type: string;
anonymous?: undefined;
name?: undefined;
constant?: undefined;
outputs?: undefined;
} | {
anonymous: boolean;
inputs: {
indexed: boolean;
internalType: string;
name: string;
type: string;
}[];
name: string;
type: string;
payable?: undefined;
stateMutability?: undefined;
constant?: undefined;
outputs?: undefined;
} | {
constant: boolean;
inputs: {
internalType: string;
name: string;
type: string;
}[];
name: string;
outputs: {
internalType: string;
name: string;
type: string;
}[];
payable: boolean;
stateMutability: string;
type: string;
anonymous?: undefined;
})[];
declare const WRAPPED_ABI: ({
inputs: {
internalType: string;
name: string;
type: string;
}[];
stateMutability: string;
type: string;
anonymous?: undefined;
name?: undefined;
outputs?: undefined;
} | {
anonymous: boolean;
inputs: {
indexed: boolean;
internalType: string;
name: string;
type: string;
}[];
name: string;
type: string;
stateMutability?: undefined;
outputs?: undefined;
} | {
inputs: {
internalType: string;
name: string;
type: string;
}[];
name: string;
outputs: {
internalType: string;
name: string;
type: string;
}[];
stateMutability: string;
type: string;
anonymous?: undefined;
} | {
stateMutability: string;
type: string;
inputs?: undefined;
anonymous?: undefined;
name?: undefined;
outputs?: undefined;
})[];
declare const FEE_ABI: string[];
declare function checkTokenAllowance(signer: ethers.Signer, tokenContract: ethers.Contract, contractAddressSrc: string, convertedAmount: bigint): Promise<void>;
declare function getAttestationIDHash(wrappedTokenAddr: string, dstChainId: number): string;
declare function checkNftApproval(signer: ethers.Signer, erc721Contract: ethers.Contract, contractAddressSrc: string, tokenId: number): Promise<string | null>;
declare function getLoopsoContractFromChainId(chainId: number, signerOrProvider: ethers.Signer | ethers.JsonRpcProvider): Contract | null;
declare function getLoopsoContractFromContractAddr(contractAddress: string, signerOrProvider: ethers.Signer | ethers.JsonRpcProvider): Contract | null;
declare function getContractAddressFromChainId(chainId: number): string | null;
interface NftMetadata {
id: string;
contractAddress: string;
metadata: {
description: string;
image: string;
name: string;
};
}
declare const getLuksoNftMetadata: (filteredData: any[]) => Promise<NftMetadata[] | null>;
declare const fetchLuksoNfts: (searchText: string) => Promise<NftMetadata[] | null>;
export { ADDRESSES, ChainName, ContractInstance, ERC20_ABI, ERC721_ABI, FEE_ABI, LOOPSO_ABI, NftMetadata, Token, WRAPPED_ABI, WrappedTokenInfo, bridgeNonFungibleTokens, bridgeTokens, checkNftApproval, checkTokenAllowance, fetchLuksoNfts, getAllSupportedTokens, getAttestationIDHash, getContractAddressFromChainId, getFee, getLoopsoContractFromChainId, getLoopsoContractFromContractAddr, getLuksoNftMetadata, getWrappedTokenInfo, isTokenSupported, unwrapNativeToken, wrapNativeToken };