import { ethers } from "ethers"; import { AUTH_CONNECTION_TYPE, CUSTOM_AUTH_CONNECTION_TYPE } from "@web3auth/auth"; export interface BaseConstructorParams { hallidayPublicApiKey: string; blockchainType: string; } export interface MPConstructorParams extends BaseConstructorParams { verifierClientId: string; } export interface CustomJwtConstructorParams extends BaseConstructorParams { verifierClientId: string; verifierName: string; verifierIdField: string; } export interface ViaSignerConstructorParams extends BaseConstructorParams { signer: ethers.JsonRpcSigner | ethers.BaseWallet; } export declare enum BlockchainType { POLYGON = "POLYGON", MUMBAI = "MUMBAI", AVALANCHE = "AVALANCHE", GOERLI = "GOERLI", DFK_TESTNET = "DFK_TESTNET", DFK = "DFK", AVALANCHE_CCHAIN = "AVALANCHE_CCHAIN", ARBITRUM = "ARBITRUM", ARBITRUM_GOERLI = "ARBITRUM_GOERLI", ARBITRUM_SEPOLIA = "ARBITRUM_SEPOLIA", OPTIMISM = "OPTIMISM", OPTIMISM_GOERLI = "OPTIMISM_GOERLI", OPTIMISM_SEPOLIA = "OPTIMISM_SEPOLIA", BASE = "BASE", BASE_GOERLI = "BASE_GOERLI", BASE_SEPOLIA = "BASE_SEPOLIA", KLAYTN_CYPRESS = "KLAYTN_CYPRESS", KLAYTN_BAOBAB = "KLAYTN_BAOBAB", ANCIENT8_TESTNET = "ANCIENT8_TESTNET", MIRAI_TESTNET = "MIRAI_TESTNET", SEPOLIA = "SEPOLIA", AVALANCHE_FUJI = "AVALANCHE_FUJI", SHRAPNEL_TESTNET = "SHRAPNEL_TESTNET", MIRAI = "MIRAI", SHRAPNEL = "SHRAPNEL", ANCIENT8 = "ANCIENT8", POLYGON_AMOY = "POLYGON_AMOY", TILTYARD = "TILTYARD", DFK_STAGING = "DFK_STAGING" } export declare enum ErrorCode { INVALID_PARAMETER = "INVALID_PARAMETER", INTERNAL_ERROR = "INTERNAL_ERROR", INCOMPLETE_CONFIG = "INCOMPLETE_CONFIG", USER_TOKEN_MISSING = "USER_TOKEN_MISSING", USER_TOKEN_INVALID = "USER_TOKEN_INVALID", USER_ALREADY_EXISTS = "USER_ALREADY_EXISTS", USER_DOES_NOT_EXIST = "USER_DOES_NOT_EXIST", USER_NO_PHONE_NUMBER = "USER_NO_PHONE_NUMBER", USER_NO_EMAIL = "USER_NO_EMAIL", USER_NO_NAME = "USER_NO_NAME", USER_EMAIL_NOT_VERIFIED = "USER_EMAIL_NOT_VERIFIED", AUTH_FAILED = "AUTH_FAILED", AUTH_MISSING = "AUTH_MISSING", USER_BANNED = "USER_BANNED", USER_DEFAULTED = "USER_DEFAULTED", USER_UNDER_REVIEW = "USER_UNDER_REVIEW", USER_NOT_SETUP_FOR_SUI_GAS_STATION = "USER_NOT_SETUP_FOR_SUI_GAS_STATION", TXHASH_MISSING = "TXHASH_MISSING", TOKEN_TYPE_MISSING = "TOKEN_TYPE_MISSING", AMOUNT_TOKEN_MISSING = "AMOUNT_TOKEN_MISSING", NOT_SUPPORTED = "NOT_SUPPORTED", LOCATION_NOT_SUPPORTED = "LOCATION_NOT_SUPPORTED", OBJECT_DOES_NOT_EXIST = "OBJECT_DOES_NOT_EXIST", MULTIPLE_OBJECTS_FOR_SAME_ID = "MULTIPLE_OBJECTS_FOR_SAME_ID", COLLECTION_NOT_ON_MARKETPLACE = "COLLECTION_NOT_ON_MARKETPLACE", COLLECTION_NOT_ALLOWED = "COLLECTION_NOT_ALLOWED", ITEM_NOT_FOR_SALE = "ITEM_NOT_FOR_SALE", PRICE_OR_CURRENCY_NOT_SUPPORTED = "PRICE_OR_CURRENCY_NOT_SUPPORTED", NOT_A_BUSINESS_ACCOUNT = "NOT_A_BUSINESS_ACCOUNT", BLOCKCHAIN_TYPE_MISSING = "BLOCKCHAIN_TYPE_MISSING", AA_SUBMIT_RATE_LIMIT_EXCEEDED = "AA_SUBMIT_RATE_LIMIT_EXCEEDED" } export interface GetWalletResponse { /** The name of the blockchain (e.g. MUMBAI, AVALANCHE_CCHAIN, etc.) */ blockchain_type: string; /** Your in-game aliases for this user */ aliases: string[]; /** How much gas you have sponsored for this user */ gas_sponsored: string; /** The upper limit for how much gas you have chosen to sponsor for this user */ sponsorship_limit: string; /** The Halliday wallet address corresponding to this user */ account_address: string; } export interface GetWalletByInGamePlayerIdResponse { /** The name of the blockchain (e.g. MUMBAI, AVALANCHE_CCHAIN, etc.) */ blockchain_type: string; /** Your in-game user ID for this user */ in_game_player_id: string; /** How much gas you have sponsored for this user */ gas_sponsored: string; /** The upper limit for how much gas you have chosen to sponsor for this user */ sponsorship_limit: string; /** The Halliday wallet address corresponding to this user */ account_address: string; } export interface GetAssetsResponse { num_assets: number; assets: Array<{ blockchain_type: string; collection_address: string; token_id: string; }>; } export interface GetBalancesResponse { num_erc20_tokens: number; erc20_tokens: Array<{ blockchain_type: string; token_address: string; balance: string; decimals: number; }>; num_native_tokens: number; native_tokens: Array<{ blockchain_type: string; balance: string; decimals: number; }>; } export interface CallContractRequest { target_address: string; value: string; calldata: string; sponsor_gas: boolean; on_rate_limit?: Function; use_retry?: boolean; gas_fee_overrides?: { max_fee_per_gas: string; max_priority_fee_per_gas: string; }; fallback_to_user_funds?: boolean; use_erc20_paymaster?: boolean; } export declare enum TransactionType { CALL_CONTRACT = "contract" } export interface GetTransactionResponse { /** The blockchain on which this transaction occurred (e.g. ETHEREUM, IMMUTABLE_PROD) */ blockchain_type: string; /** The ID of the transaction */ tx_id: string; /** The status of the transaction (e.g. PENDING, COMPLETE, FAILED) */ status: string; /** The number of times we've retried sending this transaction */ retry_count: number; /** The blockchain transaction id if the transaction succeeded */ on_chain_id?: string; /** The user operation receipt if available */ user_op_receipt?: any; /** The error message if the transaction failed */ error_message?: string; } export interface GetUserInfoResponse { name: string; email: string; signer: ethers.JsonRpcSigner; authConnection: AUTH_CONNECTION_TYPE | CUSTOM_AUTH_CONNECTION_TYPE; } export interface SubmitUserOpRequest { owner_address: string; signed_tx: any; blockchain_type: string; tx_id: string; on_rate_limit?: Function; use_retry?: boolean; }