Add real slot info to transactions table (#16)
* Add real slot info to transactions table * npm run format:fix
This commit is contained in:
parent
ea705f9147
commit
52f5934c3d
|
@ -138,6 +138,8 @@ const renderTransactionRow = (transaction: Transaction) => {
|
||||||
return assertUnreachable(transaction.status);
|
return assertUnreachable(transaction.status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const slotText = `${transaction.slot || "-"}`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<tr key={transaction.signature}>
|
<tr key={transaction.signature}>
|
||||||
<td>
|
<td>
|
||||||
|
@ -152,7 +154,7 @@ const renderTransactionRow = (transaction: Transaction) => {
|
||||||
<code>{transaction.signature}</code>
|
<code>{transaction.signature}</code>
|
||||||
</td>
|
</td>
|
||||||
<td>-</td>
|
<td>-</td>
|
||||||
<td>-</td>
|
<td>{slotText}</td>
|
||||||
</tr>
|
</tr>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,6 +20,7 @@ export interface Transaction {
|
||||||
id: number;
|
id: number;
|
||||||
status: Status;
|
status: Status;
|
||||||
source: Source;
|
source: Source;
|
||||||
|
slot?: number;
|
||||||
signature: TransactionSignature;
|
signature: TransactionSignature;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +39,7 @@ interface UpdateStatus {
|
||||||
type: ActionType.UpdateStatus;
|
type: ActionType.UpdateStatus;
|
||||||
id: number;
|
id: number;
|
||||||
status: Status;
|
status: Status;
|
||||||
|
slot?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface InputSignature {
|
interface InputSignature {
|
||||||
|
@ -66,7 +68,11 @@ function reducer(state: State, action: Action): State {
|
||||||
case ActionType.UpdateStatus: {
|
case ActionType.UpdateStatus: {
|
||||||
let transaction = state.transactions[action.id];
|
let transaction = state.transactions[action.id];
|
||||||
if (transaction) {
|
if (transaction) {
|
||||||
transaction = { ...transaction, status: action.status };
|
transaction = {
|
||||||
|
...transaction,
|
||||||
|
status: action.status,
|
||||||
|
slot: action.slot
|
||||||
|
};
|
||||||
const transactions = {
|
const transactions = {
|
||||||
...state.transactions,
|
...state.transactions,
|
||||||
[action.id]: transaction
|
[action.id]: transaction
|
||||||
|
@ -136,23 +142,25 @@ export async function checkTransactionStatus(
|
||||||
});
|
});
|
||||||
|
|
||||||
let status;
|
let status;
|
||||||
|
let slot;
|
||||||
try {
|
try {
|
||||||
const signatureStatus = await new Connection(url).getSignatureStatus(
|
const result = await new Connection(url).getSignatureStatus(signature);
|
||||||
signature
|
|
||||||
);
|
|
||||||
|
|
||||||
if (signatureStatus === null) {
|
if (result === null) {
|
||||||
status = Status.Missing;
|
status = Status.Missing;
|
||||||
} else if ("Ok" in signatureStatus.status) {
|
} else {
|
||||||
|
slot = result.slot;
|
||||||
|
if ("Ok" in result.status) {
|
||||||
status = Status.Success;
|
status = Status.Success;
|
||||||
} else {
|
} else {
|
||||||
status = Status.Failure;
|
status = Status.Failure;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to check transaction status", error);
|
console.error("Failed to check transaction status", error);
|
||||||
status = Status.CheckFailed;
|
status = Status.CheckFailed;
|
||||||
}
|
}
|
||||||
dispatch({ type: ActionType.UpdateStatus, status, id });
|
dispatch({ type: ActionType.UpdateStatus, status, slot, id });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useTransactions() {
|
export function useTransactions() {
|
||||||
|
|
Loading…
Reference in New Issue