forked from circlecloud/tera
198 lines
4.1 KiB
TypeScript
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
|
||
|
}
|