UNPKG

anchor-sdk

Version:

TypeScript SDK for interacting with Anchor ecosystem - badge minting, payment processing, and ERC1155 token management

277 lines (276 loc) 9.83 kB
import { BadgeCheckRequest, BadgeClaimSignatureRequest, BadgeSingleCheckRequest, BadgesCheckRequest, BatchMintRequestVO, CheckEventRequest, MintResponse, NFTMintRequestVO, PurchaseRequest, QueryAssetsRequest, UserOpHashProcessRequest, WebResultAssetsBadgeResponse, WebResultBadgeAssetsResponse, WebResultBadgeCheckResponse, WebResultBadgeClaimSignatureResponse, WebResultBadgeClaimableListResponse, WebResultBadgeDetailResponse, WebResultBadgeResponse, WebResultBadgeSeriesDetailResponse, WebResultBadgeSeriesResponse, WebResultBadgeVerifiersResponse, WebResultBadgesCheckResponse, WebResultCheckEventResponse, WebResultCheckResponse, WebResultCheckResultResponse, WebResultGrantBadgeRequestVO, WebResultGrantBadgeResponseVO, WebResultListSeasonConfigVO, WebResultNftSeriesDetailResponse, WebResultNftSeriesResponse, WebResultPurchaseResponse, WebResultTransactionHashProcess, WebResultUserOpHashProcess } from "./generated/Api"; import { Chain } from "viem"; /** * Anchor API V2 客户端配置 */ export interface AnchorApiClientV2Config { /** API 基础 URL */ apiBaseUrl: string; /** 认证令牌 */ authToken?: string; /** 项目 ID */ projectId?: string; /** 网络配置 */ network: Chain; /** Token 过期回调函数 */ onTokenExpired?: (error: Error) => void; } /** * Anchor API V2 客户端 * 基于生成的 API 类型和端点,提供完整的 Anchor API 功能 * * 这个客户端使用生成的 API 类型和端点,同时提供 * 自动 header 注入和配置管理功能。 */ export declare class AnchorApiClientV2 { private generatedApi; private network; private authToken?; private projectId?; private chainId; private onTokenExpired?; /** * 创建 Anchor API V2 客户端 * @param config 客户端配置 */ constructor(config: AnchorApiClientV2Config); /** * 设置认证令牌 * @param token 认证令牌 */ setAuthToken(token: string): void; /** * 设置 Token 过期回调 * @param callback Token 过期回调函数 */ setTokenExpiredCallback(callback: (error: Error) => void): void; /** * 设置项目 ID * @param projectId 项目 ID */ setProjectId(projectId: string): void; /** * 设置链 ID * @param chainId 链 ID */ setChainId(chainId: string): void; /** * 创建请求头 * @returns 请求头对象 */ private createHeaders; /** * 获取请求参数(包含 headers) * @returns 请求参数对象 */ private getRequestParams; /** * 处理 API 调用的错误和 token 过期 * @param apiCall API 调用函数 * @returns API 调用结果 */ private handleApiCall; /** * 检查响应是否为 token 过期错误 * @param response API 响应 * @returns 是否为 token 过期错误 */ private isTokenExpiredResponse; /** * 获取徽章验证器 * @param platform 平台标识符 * @param type 条件类型 * @returns 徽章验证器响应 */ getBadgeVerifiers(platform: string, type: string): Promise<WebResultBadgeVerifiersResponse>; /** * 获取用户可领取徽章 * @param params 查询参数 * @param params.series 徽章系列过滤器 * @param params.limit 每页项目数 * @param params.nextToken 分页令牌 * @returns 徽章可领取列表响应 */ getUserClaimableBadges(params?: { series?: string; limit?: number; nextToken?: string; }): Promise<WebResultBadgeClaimableListResponse>; /** * 获取用户徽章资产 * @param params 查询参数 * @param params.status 徽章状态过滤器 pending/claimable/claimed * @param params.strategy 返回策略 BADGE_ALL/BADGE_MAX/BADGE_REWARD * @param params.series 徽章系列过滤器 * @param params.limit 每页项目数 * @param params.nextToken 分页令牌 * @returns 徽章资产响应 */ getUserBadgeAssets(params?: { status?: string; strategy?: string; series?: string; limit?: number; nextToken?: string; }): Promise<WebResultBadgeAssetsResponse>; /** * 获取徽章系列详情 * @param seriesId 系列标识符 * @param params 查询参数 * @param params.status 状态过滤器 * @param params.businessType 业务类型过滤器 * @returns 徽章系列详情响应 */ getBadgeSeriesDetail(seriesId: string, params?: { status?: string; businessType?: string; }): Promise<WebResultBadgeSeriesDetailResponse>; /** * 获取徽章详情 * @param badgeId 徽章标识符 * @returns 徽章详情响应 */ getBadgeDetail(badgeId: string): Promise<WebResultBadgeDetailResponse>; /** * 检查单个徽章可领取状态 * @param badgeId 徽章标识符 * @param data 徽章检查请求数据 * @returns 徽章可领取响应 */ checkSingleBadgeClaimable(badgeId: string, data: BadgeSingleCheckRequest): Promise<WebResultBadgeClaimSignatureResponse>; /** * 检查用户可领取徽章 * @param data 徽章检查请求 * @returns 徽章检查响应 */ checkUserClaimableBadges(data: BadgeCheckRequest): Promise<WebResultBadgeCheckResponse>; /** * 获取徽章领取签名 * @param data 徽章领取签名请求 * @returns 徽章领取签名响应 */ getBadgeClaimSignatures(data: BadgeClaimSignatureRequest): Promise<WebResultBadgeClaimSignatureResponse>; /** * 获取徽章系列列表 * @param params 查询参数 * @param params.includeBadges 是否包含徽章 * @param params.status 状态过滤器 * @param params.businessType 业务类型过滤器 * @param params.limit 每页数量 * @returns 徽章系列响应 */ getBadgeSeries(params?: { includeBadges?: boolean; status?: string; businessType?: string; limit?: number; }): Promise<WebResultBadgeSeriesResponse>; /** * Anchor 铸造 * @param type 铸造类型 * @param data 铸造请求数据 * @returns 铸造响应 */ mint(type: string, data: NFTMintRequestVO): Promise<MintResponse>; /** * Anchor 批量铸造 * @param type 铸造类型 * @param data 批量铸造请求数据 * @returns 批量铸造响应 */ batchMint(type: string, data: BatchMintRequestVO): Promise<MintResponse>; /** * 根据 ID 获取 NFT 系列 * @param type NFT 类型 * @param series 系列标识符 * @param customerId 客户 ID * @returns NFT 系列详情响应 */ getNftSeriesById(type: string, series: string, customerId?: string): Promise<WebResultNftSeriesDetailResponse>; /** * 获取 NFT 系列 * @param type NFT 类型 * @returns NFT 系列响应 */ nftSeries(type: string): Promise<WebResultNftSeriesResponse>; /** * Anchor 检查 * @param type 检查类型 * @returns 检查响应 */ check(type: string): Promise<WebResultCheckResponse>; /** * 获取检查结果 * @param type 检查类型 * @returns 检查结果响应 */ getCheckResult(type: string): Promise<WebResultCheckResultResponse>; /** * 获取赛季配置列表 * @returns 赛季配置列表响应 */ listSeasonConfig(): Promise<WebResultListSeasonConfigVO>; /** * 查询用户可领取或已领取的徽章 * @param customerId 客户 ID * @param status 徽章状态 * @param strategy 返回策略 * @param series 徽章系列 * @param limit 每页条数 * @param nextToken 分页参数 * @returns 徽章响应 */ badgeAssets(customerId?: string, status?: string, strategy?: string, series?: string, limit?: number, nextToken?: string): Promise<WebResultBadgeResponse>; /** * 处理用户操作哈希 * @param data 用户操作哈希处理请求 * @returns 用户操作哈希处理响应 */ userOpHashProcess(data: UserOpHashProcessRequest): Promise<WebResultUserOpHashProcess>; /** * 处理交易哈希(加速交易处理) * @param txHash 交易哈希 * @returns 交易哈希处理响应 */ transactionHashProcess(txHash: string): Promise<WebResultTransactionHashProcess>; /** * 授予徽章 * @param data 授予徽章请求 * @returns 授予徽章响应 */ grantBadge(data: WebResultGrantBadgeRequestVO): Promise<WebResultGrantBadgeResponseVO>; /** * 购买铸造(带签名) * @param type 购买类型 * @param data 购买请求数据 * @returns 购买响应 */ purchaseMint(type: string, data: PurchaseRequest): Promise<WebResultPurchaseResponse>; /** * 查询资产 * @param type 资产类型 * @param data 查询请求数据 * @returns 资产响应 */ queryAssets(type: string, data: QueryAssetsRequest): Promise<WebResultAssetsBadgeResponse>; /** * 根据 ID 获取 NFT 系列详情 * @param type NFT 类型 * @param series 系列标识符 * @param customerId 客户 ID * @returns NFT 系列详情响应 */ getNftSeriesDetail(type: string, series: string, customerId?: string): Promise<WebResultNftSeriesDetailResponse>; /** * 根据事件检查 * @param data 检查事件请求 * @returns 检查事件响应 */ checkByEvent(data: CheckEventRequest): Promise<WebResultCheckEventResponse>; /** * 徽章检查 * @param data 徽章检查请求 * @returns 徽章检查响应 */ badgesCheck(data: BadgesCheckRequest): Promise<WebResultBadgesCheckResponse>; }