ICreatePlanParams
type ICreatePlanParams = {
item: {
amount: number;
tokenId: string;
contractAddress: string;
cyanVaultAddress: string;
itemType: ItemType;
};
plan: {
amount: BigNumber;
downPaymentPercent: number;
interestRate: number;
serviceFeeRate: number;
term: number;
totalNumberOfPayments: number;
counterPaidPayments: number;
autoRepayStatus: AutoRepayStatus;
};
planId: number;
blockNum: number;
signature: string;
};
IOption
export type IOption = {
term: number;
duration: number;
loanRate: number;
totalNumberOfPayments: number;
interestRate: number;
serviceFeeRate: number;
downpaymentRate: number;
counterPaidPayments: number;
downpaymentAmount: BigNumber;
monthlyAmount: BigNumber;
};
IItem & IItemWithPrice
type IItem = {
address: string;
tokenId: string;
itemType: ItemType;
amount: number;
};
type IItemWithPrice = IItem & {
price: BigNumber;
};
IPlan
const statusType = {
Pending: 0,
Funded: 1,
Activated: 2,
};
export interface IPlanStatus = typeof statusType[keyof typeof statusType];
interface IPlan {
planId: number;
owner: string;
totalNumOfPayments: number;
currentNumOfPayments: number;
status: IPlanStatus;
type: 'bnpl' | 'pawn';
paymentPlanContractAddress: string;
collectionAddress: string;
autoRepayStatus: AutoRepayStatus;
tokenId: string;
}
IOffer
export type IOffer = {
hash: string;
contract: string;
price: {
currency: {
contract: string;
decimals: number;
symbol: string;
name: string;
};
amount: {
raw: string;
decimal: number;
};
netAmount: {
raw: string;
decimal: number;
};
};
validUntil: number;
}