@abcpros/bitcore-wallet-service
Version:
A service for Mutisig HD Bitcoin Wallets
118 lines (113 loc) • 3.15 kB
text/typescript
export enum PaymentType {
SEND,
BURN
}
export interface IQpayInfoForEmail {
payee: string;
paymentReason: string;
paymentReasonValue: number;
paymentDescription: string;
accountNumber?: string;
street?: string;
unitNumber?: string;
formattedAmount: string;
amountPay: number;
amountToken: number;
dateFormatted: string;
date: Date;
}
export interface IMerchantOrder {
status: string;
coin: string;
tokenId: string;
txIdFromUser: string;
txMerchantPayment?: string;
merchantCode: string;
userAddress: string;
amount: number;
listEmailContent: string[];
listSubject: string[];
error?: string;
pendingReason?: string;
createdOn: Date;
lastModified: Date;
signature?: string;
isPaidByUser: boolean;
paymentType: number;
userEmailAddress: string;
qpayInfoForEmail: IQpayInfoForEmail;
isToken: boolean;
}
export class MerchantOrder implements IMerchantOrder {
txMerchantPayment?: string;
qpayInfoForEmail: IQpayInfoForEmail;
status: string;
coin: string;
tokenId: string;
userAddress: string;
txIdFromUser: string;
txIdMerchantPayment?: string;
merchantCode: string;
amount: number;
paymentType: number;
listEmailContent: string[];
listSubject: string[];
error?: string;
pendingReason?: string;
createdOn: Date;
lastModified: Date;
signature?: string;
isPaidByUser: boolean;
userEmailAddress: string;
isToken: boolean;
static create(opts) {
opts = opts || {};
const x = new MerchantOrder();
const now = new Date();
x.status = 'waiting';
x.coin = opts.coin;
x.tokenId = opts.tokenId;
x.userAddress = opts.userAddress;
x.txIdFromUser = opts.txIdFromUser;
x.txIdMerchantPayment = opts.txIdMerchantPayment || null;
x.merchantCode = opts.merchantCode;
x.amount = opts.amount;
x.listEmailContent = opts.listEmailContent;
x.listSubject = opts.listSubject;
x.createdOn = now;
x.lastModified = now;
x.error = opts.error || null;
x.pendingReason = opts.pendingReason || null;
x.signature = opts.signature || null;
x.isPaidByUser = opts.isPaidByUser;
x.paymentType = opts.paymentType;
x.userEmailAddress = opts.userEmailAddress;
x.qpayInfoForEmail = opts.qpayInfoForEmail;
x.isToken = opts.isToken;
return x;
}
static fromObj(obj) {
const x = new MerchantOrder();
x.status = obj.status;
x.coin = obj.coin;
x.tokenId = obj.tokenId || null;
x.userAddress = obj.userAddress;
x.txIdFromUser = obj.txIdFromUser;
x.txIdMerchantPayment = obj.txIdMerchantPayment || null;
x.merchantCode = obj.merchantCode;
x.amount = obj.amount;
x.listEmailContent = obj.listEmailContent;
x.listSubject = obj.listSubject;
x.createdOn = obj.createdOn;
x.lastModified = obj.lastModified;
x.error = obj.error || null;
x.pendingReason = obj.pendingReason || null;
x.signature = obj.signature || null;
x.isPaidByUser = obj.isPaidByUser;
x.paymentType = obj.paymentType;
x.userEmailAddress = obj.userEmailAddress;
x.qpayInfoForEmail = obj.qpayInfoForEmail;
x.isToken = obj.isToken;
return x;
}
}