based-auth
Version:
A Next.js/Node.js authentication and wallet API kit for Ethereum and Solana, with utilities for serialization and contract interaction, designed for serverless and API route usage.
94 lines (93 loc) • 2.65 kB
TypeScript
import { Schema, Model, ObjectId } from 'mongoose';
export interface IRouter {
_id: ObjectId;
baseTokenForPair: string;
router: string;
positionManager: string;
version: number;
fee: Schema.Types.Decimal128;
per: Schema.Types.Decimal128;
pair: string;
lpAmount: Schema.Types.Decimal128;
isLPBurn: boolean;
lpLockUp: number;
}
export interface IMemeTokenMetaInfo {
seo: string;
logo: string;
banner: string;
twitter: string;
telegram: string;
website: string;
protocol: string;
subOwner: string;
seed: string;
description: string;
}
export interface ITokenInfo {
name: string;
symbol: string;
decimals: number;
totalSupply: Schema.Types.Decimal128;
}
export interface IMemeToken extends Document {
id: string;
_id?: ObjectId;
__v?: number;
chainId: number;
address: string;
packageIndex: number;
owner: string;
ownerName: string;
volume: Schema.Types.Decimal128;
reserveToken: Schema.Types.Decimal128;
reserveETH: Schema.Types.Decimal128;
currentPrice: Schema.Types.Decimal128;
currentUSDPrice: bigint;
initialETH: Schema.Types.Decimal128;
initialToken: Schema.Types.Decimal128;
initialPrice: Schema.Types.Decimal128;
initialBuyAmount: Schema.Types.Decimal128;
isListed: boolean;
isListedAt: number;
isCancelled: boolean;
isCancelledAt: number;
isHot: boolean;
isHardCapReached: boolean;
isHardCapReachedAt: number;
isUniswapV3Compatible: boolean;
buyRefFee: Schema.Types.Decimal128;
sellFee: Schema.Types.Decimal128;
buyFee: Schema.Types.Decimal128;
hardCap: Schema.Types.Decimal128;
softCap: Schema.Types.Decimal128;
initialMarketCap: Schema.Types.Decimal128;
currentMarketCap: Schema.Types.Decimal128;
liqHardCap: Schema.Types.Decimal128;
liqSoftCap: Schema.Types.Decimal128;
softPercent: Schema.Types.Decimal128;
hardPercent: Schema.Types.Decimal128;
maxAllocationPerUser: Schema.Types.Decimal128;
routers: IRouter[];
metaUri: string;
metaInfo: IMemeTokenMetaInfo;
metaInfoUpdatedAt: number;
isWhitelist: boolean;
whitelistId: string;
whitelist: string[];
whitelistMerkleRoot: string;
maxAllocationPerWhitelistedUser: Schema.Types.Decimal128;
whitelistUpdatedAt: number;
tokenInfo: ITokenInfo;
isXSale: boolean;
keyForXSale: string;
startTime: Date;
endTime: Date;
likedBy: {
network: string;
address: string;
}[];
txCount: number;
cntComments: number;
}
export declare const MemeTokenModel: Model<IMemeToken>;