tera/src/interfaces/server.ts

198 lines
4.1 KiB
TypeScript

import CNode from "../core/node";
import { RBTree } from "bintrees";
import * as net from "net"
export interface ContextTask {
RestartGetNextNode?: number;
LastTimeRestartGetNextNode?: number;
time?: number;
StartNum?: number
Count?: number
Time?: number
Node?: CNode
MapSend?: {}
OK?: boolean
}
export interface LoadContext {
Mode?: number;
Node?: CNode;
BlockNum?: number;
BlockNumRest?: number;
WasDelta?: number;
BlockNumProof?: number;
CountProof?: number;
StartTimeHistory?: number;
MaxTimeOut?: number;
LoopSyncRest?: number;
SendGetHeaderCount?: number;
ReceiveHeaderCount?: number;
Foward?: number;
Pause?: number;
DeltaBlockNum?: number;
ArrProof?: any[];
MapSend?: any;
BlockProof?: any;
TxProof?: any;
AccTaskList?: ContextTask[];
AccTaskFinished?: number;
SmartTaskList?: ContextTask[];
SmartTaskFinished?: number;
PrevBlockNum?: number;
time?: number;
FindCheckPoint?: boolean;
WasLoadNum?: boolean;
}
export class TeraSocket extends net.Socket {
ConnectToServer: boolean;
Node: CNode;
ConnectID: string;
WasClose: number;
SocketStatus: number;
Buf: Buffer;
SocketNum: number;
SocketPrioritet: number;
HashRND: Buffer;
}
export interface SocketSendInfo {
TimeNum?: number;
PacketNum?: number;
Prioritet?: number;
TypeData?: number;
ContextID?: Buffer;
NodeTime?: number;
Length?: string;
MethodTiming?: any;
Node?: CNode;
Method: string;
Context?: any;
Data?: any;
Socket?: TeraSocket;
}
export interface TeraPOW {
SumList?: any;
MaxTree?: any;
PowLocalHash?: Buffer;
LocalAddrHash?: Buffer;
LocalSeqHash?: Buffer;
BlockNum?: number;
SeqHash?: Buffer;
AddrHash?: Buffer;
PrevHash?: Buffer;
TreeHash?: Buffer;
Hash?: Buffer;
PowHash?: Buffer;
SumPow?: number;
SumHash?: Buffer;
}
export interface TeraJobTx {
GetCount?: number;
WasSend?: boolean;
Node?: CNode;
TreeLevel?: any;
SendCount?: any;
TransferNodes?: TeraJobTx[];
Time?: number
}
export interface TeraBlock {
NodeNum?: number;
TransferNodesCount?: number;
StartMining?: boolean;
Prepared?: boolean;
LevelsTransfer?: TeraJobTx[];
Active?: boolean;
CheckMaxSum?: boolean;
CheckMaxPow?: boolean;
PowTicketTree?: RBTree<TeraTr>;
PowTxTree?: RBTree<TeraTr>
EndExchangeTime?: number;
JobListTX?: TeraJobTx[];
EndExchange?: boolean;
MapSend?: any;
MaxPOW?: TeraPOW;
MaxSum?: TeraPOW;
Send?: any;
Info?: any;
AddInfo?: any;
FilePos?: number;
VersionDB?: number;
BlockNumber?: number;
SumPow?: any;
SumHash?: Buffer;
arrContent?: any;
arrContentResult?: any;
VersionBody?: number;
TrDataPos?: number;
TrCount?: number;
SeqHash?: Buffer;
TreeHash?: Buffer;
AddrHash?: Buffer;
PrevHash?: Buffer;
PowHash?: Buffer;
Power?: number;
Hash?: Buffer;
Reserv500?: number;
BlockNum?: number;
TrDataLen?: number;
bSave?: boolean;
chain?: TeraChain
Context?: { Block: TeraBlock }
}
export interface TeraTr {
ToAll?: boolean;
addrArr?: Buffer;
nonce?: number;
time?: number;
Level?: any;
NodesList?: CNode[];
SenderNum?: number;
Prioritet?: number;
HASH?: any;
IsTx?: number;
body?: any;
HashPow?: Buffer;
HashTicket?: number[];
num?: number;
power?: number;
TimePow?: number;
TxID?: string;
}
export interface TeraChain {
id?: number;
arr?: any[];
CurNumArrLoad?: number;
LoadDBFinaly?: boolean;
AddToLoad?: boolean;
BlockHead?: TeraChain;
BlockDown?: TeraChain;
Deleted?: boolean;
ParentChain?: TeraChain;
RootChain?: TeraChain;
FindBlockDB?: boolean;
StopSend?: boolean;
IsSum?: boolean;
Hash?: Buffer;
BlockNum?: number;
BlockNumStart?: number;
WriteToDBAfterLoad?: boolean
BodyLoad?: boolean
AddInfo?(arg0: string);
GetFindDB?(): any;
GetRootChain?(): any;
}
export class TeraRBTree<T> extends RBTree<T> {
LastAddNum: number
}