UNPKG

@soundsright/sdk

Version:

soundsright chain sdk

54 lines (53 loc) 4.13 kB
import { PayType } from '@soundsright/types'; import { NftBuyByCurrencyOptions, NftBuyByErc20Options, NftBuyOptions, NftBuyByETHOptions } from '../types'; import Base from './base'; export declare class NftMarket extends Base { /** * * @param payType - 支付类型枚举:enum PayType { ETH = 'ETH', Erc20 = 'Erc20', Currency = 'Currency' } * @param options - 支付选项:NftBuyOptions * ```ts * NftBuyOptions = NftBuyByETHOptions | NftBuyByErc20Options | NftBuyByCurrencyOptions * // 当payType为PayType.ETH时: * type NftBuyByETHOptions = { * skuId: string; * beforeSwitchChain?: (e: SwitchChainData) => Promise<void> | void; // 钩子函数 - 切换链之前;SwitchChainData = { targetChainId: number, oldChainId: number } * switchChainSuccess?: (e: SwitchChainData) => void; // 钩子函数 - 切换链成功;SwitchChainData = { targetChainId: number, oldChainId: number } * switchChainFailed?: (e: Error & SwitchChainData) => void; // 钩子函数 - 切换链失败;SwitchChainData = { targetChainId: number, oldChainId: number } * beforeOrder?: () => Promise<void> | void; // 钩子函数 - 创建订单前 * afterOrder?: (apiData: any) => Promise<void> | void; // 钩子函数 - 创建订单后 * beforeExchange?: () => Promise<void> | void; // 钩子函数 - 交易合约前 * }; * // 当payType为PayType.Erc20时: * type NftBuyByErc20Options = { * skuId: string; * beforeSwitchChain?: (e: SwitchChainData) => Promise<void> | void; // 钩子函数 - 切换链之前;SwitchChainData = { targetChainId: number, oldChainId: number } * switchChainSuccess?: (e: SwitchChainData) => void; // 钩子函数 - 切换链成功;SwitchChainData = { targetChainId: number, oldChainId: number } * switchChainFailed?: (e: Error & SwitchChainData) => void; // 钩子函数 - 切换链失败;SwitchChainData = { targetChainId: number, oldChainId: number } * beforeOrder?: () => Promise<void> | void; // 钩子函数 - 创建订单前 * afterOrder?: (apiData: any) => Promise<void> | void; // 钩子函数 - 创建订单后 * beforeQueryBalance?: () => Promise<void> | void; // 钩子函数 - 查询余额前。如果sku价格为0,不会执行 * afterQueryBalance?: (balance: string) => Promise<void> | void; // 钩子函数 - 查询余额后。如果sku价格为0,不会执行 * beforeApprove?: () => Promise<void> | void; // 钩子函数 - Approval合约之前。如果sku价格为0,不会执行 * beforeExchange?: () => Promise<void> | void; // 钩子函数 - 交易合约前 * checkBalance?: boolean; // 默认为true,执行购买前优先检查erc余额。如果sku价格为0,无效 * }; * // 当payType为PayType.Currency时: * type NftBuyByCurrencyOptions = { * skuId: string; * payChannel: PayChannel; // enum PayChannel { Checkout = 1 } * channelOptions?: object; // 支付渠道要求的参数。对于checkout,需要{ payType: 1, countryCode: int型国家编码, userAddress: 国家代码 } 国家代码可选值:GB 英国、US 美国、JP 日本、KR 韩国、SG 新加坡、PH 菲律宾、AE 迪拜、IO 印度 * beforeOrder?: () => Promise<void> | void; // 钩子函数 - 创建订单前 * beforePay?: (order: any) => Promise<void> | void; // 钩子函数 - 支付前 * paySuccess?: () => Promise<void> | void; // 钩子函数 - 支付成功 * payCancel?: () => void; // 钩子函数 - 支付取消 * }; * ``` * @returns Promise<void>,若异常会抛出相应的Error */ buyAndMint(payType: PayType, options: NftBuyOptions): Promise<void>; buyAndMintByETH(options: NftBuyByETHOptions): Promise<void>; buyAndMintByErc20(options: NftBuyByErc20Options): Promise<void>; buyAndMintByCurrency(options: NftBuyByCurrencyOptions): Promise<void>; queryCurrencyOrderStatus(orderNo: number): Promise<any>; }