/** * @file ERC1155 Multi-Token Helpers * @version 1.0.0 * @lastModified 2024-06-07 * * Helper functions for interacting with ERC1155 multi-tokens */ import { ethers } from 'ethers'; import { EthersService } from '../ethersService.js'; import { ERC1155TokenInfo, NFTMetadata, TokenOperationOptions } from './types.js'; /** * Get token balance for a specific token ID * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param ownerAddress Owner address to check * @param tokenId Token ID to check balance * @param provider Optional provider name or instance * @param chainId Optional chain ID * @returns Promise with token balance as string */ export declare function balanceOf(ethersService: EthersService, contractAddress: string, ownerAddress: string, tokenId: string | number, provider?: string, chainId?: number): Promise; /** * Get token balances for multiple token IDs at once * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param ownerAddresses Array of owner addresses * @param tokenIds Array of token IDs * @param provider Optional provider name or instance * @param chainId Optional chain ID * @returns Promise with array of token balances */ export declare function balanceOfBatch(ethersService: EthersService, contractAddress: string, ownerAddresses: string[], tokenIds: (string | number)[], provider?: string, chainId?: number): Promise; /** * Get the URI for a specific token ID * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param tokenId Token ID to get URI for * @param provider Optional provider name or instance * @param chainId Optional chain ID * @returns Promise with token URI */ export declare function getURI(ethersService: EthersService, contractAddress: string, tokenId: string | number, provider?: string, chainId?: number): Promise; /** * Get metadata for a specific token ID * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param tokenId Token ID to get metadata for * @param provider Optional provider name or instance * @param chainId Optional chain ID * @returns Promise with token metadata */ export declare function getMetadata(ethersService: EthersService, contractAddress: string, tokenId: string | number, provider?: string, chainId?: number): Promise; /** * Check if an operator is approved for all tokens * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param ownerAddress Owner address * @param operatorAddress Operator address to check * @param provider Optional provider name or instance * @param chainId Optional chain ID * @returns Promise with approval status */ export declare function isApprovedForAll(ethersService: EthersService, contractAddress: string, ownerAddress: string, operatorAddress: string, provider?: string, chainId?: number): Promise; /** * Set approval for an operator to manage all tokens * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param operatorAddress Operator address to approve * @param approved Approval status to set * @param provider Optional provider name or instance * @param chainId Optional chain ID * @param options Optional transaction options * @returns Promise with transaction response */ export declare function setApprovalForAll(ethersService: EthersService, contractAddress: string, operatorAddress: string, approved: boolean, provider?: string, chainId?: number, options?: TokenOperationOptions): Promise; /** * Safely transfer tokens to another address * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param fromAddress Sender address * @param toAddress Recipient address * @param tokenId Token ID to transfer * @param amount Amount to transfer * @param data Additional data to include with the transfer * @param provider Optional provider name or instance * @param chainId Optional chain ID * @param options Optional transaction options * @returns Promise with transaction response */ export declare function safeTransferFrom(ethersService: EthersService, contractAddress: string, fromAddress: string, toAddress: string, tokenId: string | number, amount: string, data?: string, provider?: string, chainId?: number, options?: TokenOperationOptions): Promise; /** * Safely transfer multiple tokens in a batch * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param fromAddress Sender address * @param toAddress Recipient address * @param tokenIds Array of token IDs to transfer * @param amounts Array of amounts to transfer * @param data Additional data to include with the transfer * @param provider Optional provider name or instance * @param chainId Optional chain ID * @param options Optional transaction options * @returns Promise with transaction response */ export declare function safeBatchTransferFrom(ethersService: EthersService, contractAddress: string, fromAddress: string, toAddress: string, tokenIds: (string | number)[], amounts: string[], data?: string, provider?: string, chainId?: number, options?: TokenOperationOptions): Promise; /** * Get all tokens owned by an address with balances and optional metadata * * @param ethersService EthersService instance * @param contractAddress ERC1155 contract address * @param ownerAddress Owner address to check * @param tokenIds Optional array of specific token IDs to check (if not provided, will try to discover tokens) * @param includeMetadata Whether to include metadata * @param provider Optional provider name or instance * @param chainId Optional chain ID * @returns Promise with array of token info */ export declare function getUserTokens(ethersService: EthersService, contractAddress: string, ownerAddress: string, tokenIds?: (string | number)[], includeMetadata?: boolean, provider?: string, chainId?: number): Promise;