Remove source tracking for addresses and signatures

This commit is contained in:
Justin Starry 2020-05-12 18:10:48 +08:00 committed by Michael Vines
parent 595f3ebe14
commit 59288117b9
4 changed files with 11 additions and 39 deletions

View File

@ -1,6 +1,5 @@
import React from "react";
import {
Source,
useFetchTransactionStatus,
useTransactionStatus,
useTransactionDetails,
@ -37,7 +36,7 @@ export default function TransactionDetails({ signature }: Props) {
// Fetch transaction on load
React.useEffect(() => {
fetchTransaction(signature, Source.Url);
fetchTransaction(signature);
}, [signature]); // eslint-disable-line react-hooks/exhaustive-deps
const searchInput = (

View File

@ -3,7 +3,6 @@ import { Link } from "react-router-dom";
import {
useTransactions,
TransactionStatus,
Source,
FetchStatus,
useFetchTransactionStatus
} from "../providers/transactions";
@ -33,7 +32,7 @@ function TransactionsCard() {
return;
}
fetchTransaction(signature, Source.Input);
fetchTransaction(signature);
const inputEl = signatureInput.current;
if (inputEl) {
inputEl.value = "";

View File

@ -23,11 +23,6 @@ export type History = Map<
Map<TransactionSignature, TransactionError | null>
>;
enum Source {
Url,
Input
}
export interface Details {
executable: boolean;
owner: PublicKey;
@ -37,7 +32,6 @@ export interface Details {
export interface Account {
id: number;
pubkey: PublicKey;
source: Source;
status: Status;
lamports?: number;
details?: Details;
@ -92,7 +86,6 @@ function reducer(state: State, action: Action): State {
[address]: {
id: idCounter,
status: Status.Checking,
source: Source.Input,
pubkey: action.pubkey
}
};
@ -154,7 +147,6 @@ function initState(): State {
accounts[address] = {
id,
status: Status.Checking,
source: Source.Url,
pubkey
};
} catch (err) {

View File

@ -27,12 +27,6 @@ export enum FetchStatus {
Fetched
}
export enum Source {
Url,
Input,
Test
}
export type Confirmations = number | "max";
export interface TransactionStatusInfo {
@ -43,7 +37,6 @@ export interface TransactionStatusInfo {
export interface TransactionStatus {
id: number;
source: Source;
fetchStatus: FetchStatus;
signature: TransactionSignature;
info?: TransactionStatusInfo;
@ -52,7 +45,6 @@ export interface TransactionStatus {
type Transactions = { [signature: string]: TransactionStatus };
interface State {
idCounter: number;
selected?: TransactionSignature;
transactions: Transactions;
}
@ -71,7 +63,6 @@ interface UpdateStatus {
interface FetchSignature {
type: ActionType.FetchSignature;
signature: TransactionSignature;
source: Source;
}
type Action = UpdateStatus | FetchSignature;
@ -88,7 +79,6 @@ function reducer(state: State, action: Action): State {
...state.transactions,
[action.signature]: {
id: nextId,
source: action.source,
signature: action.signature,
fetchStatus: FetchStatus.Fetching
}
@ -137,8 +127,7 @@ export function TransactionsProvider({ children }: TransactionsProviderProps) {
Object.keys(state.transactions).forEach(signature => {
dispatch({
type: ActionType.FetchSignature,
signature,
source: Source.Url
signature
});
fetchTransactionStatus(dispatch, signature, url, clusterStatus);
});
@ -164,8 +153,7 @@ export function TransactionsProvider({ children }: TransactionsProviderProps) {
.forEach(signature => {
dispatch({
type: ActionType.FetchSignature,
signature,
source: Source.Url
signature
});
fetchTransactionStatus(dispatch, signature, url, clusterStatus);
});
@ -201,8 +189,7 @@ async function createTestTransaction(
);
dispatch({
type: ActionType.FetchSignature,
signature,
source: Source.Test
signature
});
fetchTransactionStatus(dispatch, signature, url, clusterStatus);
accountsDispatch({
@ -224,8 +211,7 @@ async function createTestTransaction(
const signature = await connection.sendTransaction(tx, testAccount);
dispatch({
type: ActionType.FetchSignature,
signature,
source: Source.Test
signature
});
fetchTransactionStatus(dispatch, signature, url, clusterStatus);
} catch (error) {
@ -341,15 +327,11 @@ export function useFetchTransactionStatus() {
}
const { url, status } = useCluster();
return (signature: TransactionSignature, source?: Source) => {
if (source !== undefined) {
dispatch({
type: ActionType.FetchSignature,
signature,
source
});
}
return (signature: TransactionSignature) => {
dispatch({
type: ActionType.FetchSignature,
signature
});
fetchTransactionStatus(dispatch, signature, url, status);
};
}