github.com/rymuff/go-ethereum@v1.9.7/dashboard/assets/types/content.jsx (about)

     1  // @flow
     2  
     3  // Copyright 2017 The go-ethereum Authors
     4  // This file is part of the go-ethereum library.
     5  //
     6  // The go-ethereum library is free software: you can redistribute it and/or modify
     7  // it under the terms of the GNU Lesser General Public License as published by
     8  // the Free Software Foundation, either version 3 of the License, or
     9  // (at your option) any later version.
    10  //
    11  // The go-ethereum library is distributed in the hope that it will be useful,
    12  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    13  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    14  // GNU Lesser General Public License for more details.
    15  //
    16  // You should have received a copy of the GNU Lesser General Public License
    17  // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
    18  
    19  export type Content = {
    20  	general: General,
    21  	home:    Home,
    22  	chain:   Chain,
    23  	txpool:  TxPool,
    24  	network: Network,
    25  	system:  System,
    26  	logs:    Logs,
    27  };
    28  
    29  export type ChartEntries = Array<ChartEntry>;
    30  
    31  export type ChartEntry = {
    32  	value: number,
    33  };
    34  
    35  export type General = {
    36  	version: ?string,
    37  	commit:  ?string,
    38  };
    39  
    40  export type Home = {
    41  	/* TODO (kurkomisi) */
    42  };
    43  
    44  export type Chain = {
    45  	/* TODO (kurkomisi) */
    46  };
    47  
    48  export type TxPool = {
    49  	/* TODO (kurkomisi) */
    50  };
    51  
    52  export type Network = {
    53  	peers: Peers,
    54  	diff:  Array<PeerEvent>
    55  };
    56  
    57  export type PeerEvent = {
    58  	ip:           string,
    59  	id:           string,
    60  	remove:       string,
    61  	location:     GeoLocation,
    62  	connected:    Date,
    63  	disconnected: Date,
    64  	ingress:      ChartEntries,
    65  	egress:       ChartEntries,
    66  	activity:     string,
    67  };
    68  
    69  export type Peers = {
    70  	bundles: {[string]: PeerBundle},
    71  };
    72  
    73  export type PeerBundle = {
    74  	location:     GeoLocation,
    75  	knownPeers:   {[string]: KnownPeer},
    76  	attempts: Array<UnknownPeer>,
    77  };
    78  
    79  export type KnownPeer = {
    80  	connected:    Array<Date>,
    81  	disconnected: Array<Date>,
    82  	ingress:      Array<ChartEntries>,
    83  	egress:       Array<ChartEntries>,
    84  	active:       boolean,
    85  };
    86  
    87  export type UnknownPeer = {
    88  	connected:    Date,
    89  	disconnected: Date,
    90  };
    91  
    92  export type GeoLocation = {
    93  	country:   string,
    94  	city:      string,
    95  	latitude:  number,
    96  	longitude: number,
    97  };
    98  
    99  export type System = {
   100  	activeMemory:   ChartEntries,
   101  	virtualMemory:  ChartEntries,
   102  	networkIngress: ChartEntries,
   103  	networkEgress:  ChartEntries,
   104  	processCPU:     ChartEntries,
   105  	systemCPU:      ChartEntries,
   106  	diskRead:       ChartEntries,
   107  	diskWrite:      ChartEntries,
   108  };
   109  
   110  export type Record = {
   111  	t:   string,
   112  	lvl: Object,
   113  	msg: string,
   114  	ctx: Array<string>
   115  };
   116  
   117  export type Chunk = {
   118  	content: string,
   119  	name:    string,
   120  };
   121  
   122  export type Logs = {
   123  	chunks:        Array<Chunk>,
   124  	endTop:        boolean,
   125  	endBottom:     boolean,
   126  	topChanged:    number,
   127  	bottomChanged: number,
   128  };
   129  
   130  export type LogsMessage = {
   131  	source: ?LogFile,
   132  	chunk:  Array<Record>,
   133  };
   134  
   135  export type LogFile = {
   136  	name: string,
   137  	last: string,
   138  };