import { BigNumber } from 'ethers'; interface RawTokenResponse { token_address: string; token_id: string; contract_type: string; owner_of: string; block_number: string; block_number_minted: string; token_uri: string; metadata: string; synced_at: string; amount: string; name: string; symbol: string; } export interface ITokenDefinition extends TokenData { rawIpfsUrl?: string; imageUrl?: string; collectionId: string | null; // if empty then user is not owner } export interface TokensResponse { tokens: Array; chainId?: string; } export interface MoralisTokensResponse { status: 'SYNCING'; total: number; page: number; page_size: number; result: Array; } export interface OmniteTokenResponse { [address: string]: Array<{ tokenId: string; //'2'; collectionAddress: string; // '0xe25b6b0e5e5b5aa62ede328cfb09f98395eaf61c'; blockNumber: number; // 9884238; ownerAddress: string; //'0X000000000000000000000000D7124309832DCFEB5EA18BB2E2B7802595079C85'; // 0X000000000000000000000000D7124309832DCFEB5EA18BB2E2B7802595079C85 metadata: { image: string; // 'https://tibia-dragons.herokuapp.com/dragons/dragon_lord.gif'; imageData: string; // null; externalUrl: string; // null; name: string; // 'Dragon Lord'; description: string; // 'Tibia dragons'; attributes: Array; backgroundColor: string | null; animationUrl: string | null; youtubeUrl: string | null; rawMetadata: string | null; } | null; tokenUri: string | null; }>; } export interface AlchemyTokenResponse { contract: { address: string; }; id: { tokenId: string; tokenMetadata: { tokenType: string; }; }; title: string; description: string; tokenUri: { raw: string; }; } export interface AlchemyTokensResponse { ownedNfts: Array; } export interface TokenData { tokenAddress: string; tokenId: string; amount: number; name: string; tokenUri: string; chainId: string; tokenName: string; tokenSymbol: string; metadata: string; } export interface AddEthereumChainParameter { chainId: string; blockExplorerUrls?: string[]; chainName?: string; iconUrls?: string[]; nativeCurrency?: { name: string; symbol: string; decimals: number; }; rpcUrls?: string[]; } export interface CollectionDefinition { chainId: string; collectionId: string; availableChainIds: Array; address: string; name: string; isNative: boolean; contractName: DeployBlueprintName; } export interface DeployData { collectionName: string; collectionTicker: string; userAddress: string; } export interface ITokenDefinition extends TokenData { rawIpfsUrl?: string; imageUrl?: string; collectionId: string | null; // if empty then user is not owner } export interface NetworkDistributionWithIds extends NetworkDistribution { startId: number; lastId: number; } export interface NetworkDistribution { chainId: string; amount: number; } export enum DeployBlueprintName { NonNativeWrapper = 'NonNativeWrapper', ERC721NonNative = 'ERC721NonNative', ERC721Native = 'ERC721Native', SimpleNftCrowdsale = 'SimpleNftCrowdsale', } export enum DeployType { native = 'native', notNative = 'notNative', notNativeNewChains = 'notNativeNewChains', } export enum WalletType { WalletConnect = 'walletconnect', MetaMask = 'metamask', } export interface ErrorWithCode { code: number | string; } export interface MetamaskError { reason: string; code: string | number; error: JsonRpcError; method: string; transaction: { from: string; to: string; value: BigNumber; data: string; accessList: null; }; } export interface JsonRpcError { code: number; message: string; data: { code: number; message: string; data: string; }; stack: string; } export interface EthersError extends Error { error: Error; code: number | string; } export enum BridgeBroker { Axelar = 'axelar', LayerZero = 'layerZero', }