@soundsright/sdk
Version:
soundsright chain sdk
54 lines (53 loc) • 4.13 kB
TypeScript
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>;
}