import { TsSecondOrderType, TsTokenId, TsTxType } from './ts-types'; export type TsApiResponsePayload = { status: number; data: T; error?: string; }; export type TsSignatureRequestType = { R8: [string, string]; S: string; }; export interface ITxRequest { reqType: TsTxType; } export type TsTxPureRequest = Omit; export interface TsTxSignaturePayload { eddsaSig: TsSignatureRequestType; ecdsaSig?: string; } /** Client Request Types */ /** Register */ export interface TsTxRegisterRequest extends ITxRequest { tokenId: TsTokenId; amount: string; nonce: string; receiverId: string; tsAddr: string; } /** Deposit */ export interface TsTxDepositNonSignatureRequest extends ITxRequest { tokenId: TsTokenId; amount: string; nonce: string; receiverId: string; } export type TsTxDepositRequest = TsTxDepositNonSignatureRequest; /** Transfer */ export interface TsTxTransferNonSignatureRequest extends ITxRequest { senderId: string; tokenId: TsTokenId; amount: string; nonce: string; receiverId: string; feeTokenId: string; feeAmount: string; } export interface TsTxTransferRequest extends TsTxTransferNonSignatureRequest, TsTxSignaturePayload { } /** Withdraw */ export interface TsTxWithdrawNonSignatureRequest extends ITxRequest { senderId: string; tokenId: TsTokenId; amount: string; nonce: string; feeTokenId: string; feeAmount: string; } export interface TsTxWithdrawRequest extends TsTxWithdrawNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxAuctionLendNonSignatureRequest extends ITxRequest { senderId: string; lendTokenId: TsTokenId; lendAmt: string; orderNonce: string; lendFeeRate: string; feeTokenId: string; feeAmount: string; maturityTime: string; expiredTime: string; interest: string; epoch: string; defaultMatchedInterest: string; lendMinFeeAmt: string; } export interface TsTxAuctionLendRequest extends TsTxAuctionLendNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxAuctionBorrowNonSignatureRequest extends ITxRequest { senderId: string; collateralTokenId: TsTokenId; collateralAmt: string; orderNonce: string; borrowFeeRate: string; feeTokenId: TsTokenId; feeAmount: string; maturityTime: string; expiredTime: string; interest: string; borrowTokenId: TsTokenId; borrowAmt: string; epoch: string; borrowMinFeeAmt: string; } export interface TsTxAuctionBorrowRequest extends TsTxAuctionBorrowNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxCancelOrderNonSignatureRequest extends ITxRequest { senderId: string; orderHash: string; feeTokenId: string; feeAmount: string; } export interface TsTxCancelOrderRequest extends TsTxCancelOrderNonSignatureRequest, TsTxSignaturePayload { } export type TxTxSetEpochNonSignatureRequest = ITxRequest; export interface TxTxSetEpochRequest extends TxTxSetEpochNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxAuctionStartNonSignatureRequest extends ITxRequest { interest: string; orderNum: string; } export interface TsTxAuctionStartRequest extends TsTxAuctionStartNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxAuctionMatchNonSignatureRequest extends ITxRequest { orderNum: string; } export interface TsTxAuctionMatchRequest extends TsTxAuctionMatchNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxAuctionEndNonSignatureRequest extends ITxRequest { orderNum: string; } export interface TsTxAuctionEndRequest extends TsTxAuctionEndNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxSecondLimitOrderNonSignatureRequest extends ITxRequest { senderId: string; sellTokenId: TsTokenId; sellAmt: string; orderNonce: string; takerFee: string; makerFee: string; feeTokenId: string; feeAmount: string; expiredTime: string; buyTokenId: TsTokenId; buyAmt: string; epoch: string; side: TsSecondOrderType; takerMinFeeAmt: string; makerMinFeeAmt: string; } export interface TsTxSecondLimitOrderRequest extends TsTxSecondLimitOrderNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxSecondLimitStartNonSignatureRequest extends ITxRequest { orderNum: string; } export interface TsTxSecondLimitStartRequest extends TsTxSecondLimitStartNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxSecondLimitExchangeNonSignatureRequest extends ITxRequest { orderNum: string; } export interface TsTxSecondLimitExchangeRequest extends TsTxSecondLimitExchangeNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxSecondLimitEndNonSignatureRequest extends ITxRequest { orderNum: string; } export interface TsTxSecondLimitEndRequest extends TsTxSecondLimitEndNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxSecondMarketOrderNonSignatureRequest extends ITxRequest { senderId: string; sellTokenId: TsTokenId; sellAmt: string; orderNonce: string; takerFee: string; feeTokenId: string; feeAmount: string; expiredTime: string; buyTokenId: TsTokenId; buyAmt: string; epoch: string; side: TsSecondOrderType; takerMinFeeAmt: string; } export interface TsTxSecondMarketOrderRequest extends TsTxSecondMarketOrderNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxSecondMarketExchangeNonSignatureRequest extends ITxRequest { orderNum: string; } export interface TsTxSecondMarketExchangeRequest extends TsTxSecondMarketExchangeNonSignatureRequest, TsTxSignaturePayload { } export type TsTxSecondMarketEndNonSignatureRequest = ITxRequest; export interface TsTxSecondMarketEndRequest extends TsTxSecondMarketEndNonSignatureRequest, TsTxSignaturePayload { } export interface TsTxRedeemNonSignatureRequest extends ITxRequest { senderId: string; tokenId: TsTokenId; amount: string; nonce: string; feeTokenId: string; feeAmount: string; } export interface TsTxRedeemRequest extends TsTxRedeemNonSignatureRequest, TsTxSignaturePayload { } export type TsTxNonSignatureRequest = TsTxTransferNonSignatureRequest | TsTxWithdrawNonSignatureRequest | TsTxAuctionLendNonSignatureRequest | TsTxAuctionBorrowNonSignatureRequest | TsTxCancelOrderNonSignatureRequest | TsTxSecondLimitOrderNonSignatureRequest | TsTxSecondMarketOrderNonSignatureRequest | TsTxRedeemNonSignatureRequest;