Skip to content

Commit

Permalink
moving all interface or type declarations to type_definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
alexisbatyk committed Aug 15, 2024
1 parent e825094 commit 1247a06
Show file tree
Hide file tree
Showing 8 changed files with 116 additions and 127 deletions.
23 changes: 4 additions & 19 deletions network-monitor/src/contract-detail.tsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
import { useEffect, useState } from "react";
import { createRoot } from "react-dom/client";
import {
TransactionDetailInterface,
TransactionPeerInterface,
TransactionData
TransactionData,
TransactionDetailPeersHistoryInterface,
FilterDictionaryInterface,
ContractHistoryInterface
} from "./type_definitions";
import { PeerId } from "./topology";
import {rust_timestamp_to_utc_string} from "./utils";

interface TransactionDetailPeersHistoryInterface {
tx_peer_list: Array<TransactionData>;
}

interface FilterInterface {
filter_type: string;
filter_value: string;
}

interface FilterDictionaryInterface {
[key: string]: FilterInterface;
}

const ContractPeersHistory = ({
tx_peer_list,
Expand Down Expand Up @@ -249,9 +237,6 @@ const ContractPeersHistory = ({
);
};

interface ContractHistoryInterface {
contract_history: Array<TransactionData>;
}


// TODO: use real types
Expand Down
15 changes: 0 additions & 15 deletions network-monitor/src/react-init.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,3 @@ const ReactContainer = () => {

export const component = <ReactContainer />;


// const localizations = [0.0001, 0.5498, 0.865, 0.988];

// const points = localizations.map((x) => {
// return {
// x: Math.cos(2 * Math.PI * x),
// y: Math.sin(2 * Math.PI * x),
// };
// }
//
//
//
// <circle cx={60} cy={10} r="2.5" />
// <circle cx={20} cy={50} r="2.5" />
// <circle cx={100} cy={50} r="2.5" />
10 changes: 1 addition & 9 deletions network-monitor/src/ring-visualization.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
import { local } from "d3";
import React, {useEffect} from "react";
import {createRoot} from "react-dom/client";
import {RingVisualizationPoint, RingVisualizationProps} from "./type_definitions";

interface RingVisualizationPoint {
peerId: string;
localization: number;
}

interface RingVisualizationProps {
main_peer: RingVisualizationPoint,
other_peers: RingVisualizationPoint[],
}

export const RingVisualization = ({main_peer, other_peers}: RingVisualizationProps) => {
const [peers, setPeers] = React.useState(true);
Expand Down
53 changes: 7 additions & 46 deletions network-monitor/src/topology.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,55 +3,16 @@ import * as d3 from "d3";
import { BaseType } from "d3-selection";
import { createRoot } from "react-dom/client";
import { component } from "./react-init";
import {
ChangeInfo,
Connection,
Peer,
PeerId,
PeerList,
} from "./type_definitions";

export let peers: PeerList = {};

interface PeerList {
[id: string]: Peer;
}

interface Peer {
id: PeerId;
currentLocation: number;
connectionTimestamp: number;
connections: Connection[];
history: ChangeInfo[];
locationHistory: { location: number; timestamp: number }[];
}

interface Connection {
transaction: string | null;
id: PeerId;
location: number;
}

interface ChangeInfo {
type: "Added" | "Removed";
from: Connection;
to: Connection;
timestamp: number;
}

export class PeerId {
private id: string;

constructor(id: string | Uint8Array) {
if (id instanceof Uint8Array) {
this.id = new TextDecoder().decode(id);
} else {
this.id = id;
}
}

get short() {
return this.id.slice(-8);
}

get full() {
return this.id;
}
}

export function handleChange(peerChange: fbTopology.PeerChange) {
const previousPeers = Object.keys(peers).length;
try {
Expand Down
23 changes: 4 additions & 19 deletions network-monitor/src/transaction-detail.tsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
import { useEffect, useState } from "react";
import { createRoot } from "react-dom/client";
import {
TransactionDetailInterface,
TransactionPeerInterface,
TransactionData
TransactionData,
TransactionDetailPeersHistoryInterface,
FilterDictionaryInterface,
TranscationHistoryInterface,
} from "./type_definitions";
import { PeerId } from "./topology";
import {rust_timestamp_to_utc_string} from "./utils";

interface TransactionDetailPeersHistoryInterface {
tx_peer_list: Array<TransactionData>;
}

interface FilterInterface {
filter_type: string;
filter_value: string;
}

interface FilterDictionaryInterface {
[key: string]: FilterInterface;
}

const TransactionPeersHistory = ({
tx_peer_list,
Expand Down Expand Up @@ -256,9 +244,6 @@ const TransactionPeersHistory = ({
);
};

interface TranscationHistoryInterface {
tx_history: Array<TransactionData>;
}

// TODO: use real types
const TransactionHistory = ({ tx_history }: TranscationHistoryInterface) => (
Expand Down
11 changes: 3 additions & 8 deletions network-monitor/src/transactions.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { useEffect, useState } from "react";
import { createRoot } from "react-dom/client";
import TransactionDetail from "./transaction-detail";
import { all_tx} from "./transactions-data";
import {TransactionInterface, TransactionStatus, TransactionType, TransactionData, TxPeersTableInterface, OpState, MessageType, TxTableInterface, TransactionPeerInterface, ChangeType } from "./type_definitions";
import {rust_timestamp_to_utc_string} from "./utils";





import { all_tx } from "./transactions-data";
import { TransactionData, TxTableInterface, TransactionPeerInterface } from "./type_definitions";
import { rust_timestamp_to_utc_string } from "./utils";

const TransactionsTable = ({ open_tx_detail, tx_list }: TxTableInterface) => {
const [inner_tx_list, set_inner_tx_list] = useState<Array<TransactionData>>([]);
Expand Down
96 changes: 96 additions & 0 deletions network-monitor/src/type_definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,99 @@ export enum OpState {
PrepareRequest = "PrepareRequest",
BroadcastOngoing = "BroadcastOngoing",
}

export type PutMsgData = {
transaction: string;
contract_id: string;
target: string;
requester: string;
change_type: ChangeType;
timestamp: number;
contract_location: number;
};

export interface TransactionDetailPeersHistoryInterface {
tx_peer_list: Array<TransactionData>;
}

export interface FilterInterface {
filter_type: string;
filter_value: string;
}

export interface FilterDictionaryInterface {
[key: string]: FilterInterface;
}

export interface ContractHistoryInterface {
contract_history: Array<TransactionData>;
}

export interface RingVisualizationPoint {
peerId: string;
localization: number;
}

export interface RingVisualizationProps {
main_peer: RingVisualizationPoint;
other_peers: RingVisualizationPoint[];
}

export interface PeerList {
[id: string]: Peer;
}

export interface Peer {
id: PeerId;
currentLocation: number;
connectionTimestamp: number;
connections: Connection[];
history: ChangeInfo[];
locationHistory: { location: number; timestamp: number }[];
}

export interface Connection {
transaction: string | null;
id: PeerId;
location: number;
}

export interface ChangeInfo {
type: "Added" | "Removed";
from: Connection;
to: Connection;
timestamp: number;
}

export class PeerId {
private id: string;

constructor(id: string | Uint8Array) {
if (id instanceof Uint8Array) {
this.id = new TextDecoder().decode(id);
} else {
this.id = id;
}
}

get short() {
return this.id.slice(-8);
}

get full() {
return this.id;
}
}

export interface TransactionDetailPeersHistoryInterface {
tx_peer_list: Array<TransactionData>;
}

export interface FilterInterface {
filter_type: string;
filter_value: string;
}

export interface TranscationHistoryInterface {
tx_history: Array<TransactionData>;
}
12 changes: 1 addition & 11 deletions network-monitor/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,7 @@
import { ChangeType } from "./type_definitions";
import { ChangeType, PutMsgData } from "./type_definitions";
import { ContractChange } from "./generated/topology";
import * as fbTopology from "./generated/topology";

type PutMsgData = {
transaction: string;
contract_id: string;
target: string;
requester: string;
change_type: ChangeType;
timestamp: number;
contract_location: string;
};

export const get_change_type = (
change_type_fbs: fbTopology.ContractChangeType
): ChangeType | null => {
Expand Down

0 comments on commit 1247a06

Please sign in to comment.