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
TypeScript
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>;
}