explorer: add support for upgrade nonce ix (#26007)
This commit is contained in:
parent
eacb9183d4
commit
8f51c2d985
|
@ -18,6 +18,7 @@ import { NonceAdvanceDetailsCard } from "./NonceAdvanceDetailsCard";
|
|||
import { NonceWithdrawDetailsCard } from "./NonceWithdrawDetailsCard";
|
||||
import { NonceAuthorizeDetailsCard } from "./NonceAuthorizeDetailsCard";
|
||||
import { TransferWithSeedDetailsCard } from "./TransferWithSeedDetailsCard";
|
||||
import { UpgradeNonceDetailsCard } from "./UpgradeNonceDetailsCard";
|
||||
import { ParsedInfo } from "validators";
|
||||
import { create } from "superstruct";
|
||||
import { reportError } from "utils/sentry";
|
||||
|
@ -34,6 +35,7 @@ import {
|
|||
InitializeNonceInfo,
|
||||
WithdrawNonceInfo,
|
||||
TransferWithSeedInfo,
|
||||
UpgradeNonceInfo,
|
||||
} from "./types";
|
||||
|
||||
type DetailsProps = {
|
||||
|
@ -97,6 +99,10 @@ export function SystemDetailsCard(props: DetailsProps) {
|
|||
const info = create(parsed.info, TransferWithSeedInfo);
|
||||
return <TransferWithSeedDetailsCard info={info} {...props} />;
|
||||
}
|
||||
case "upgradeNonce": {
|
||||
const info = create(parsed.info, UpgradeNonceInfo);
|
||||
return <UpgradeNonceDetailsCard info={info} {...props} />;
|
||||
}
|
||||
default:
|
||||
return <UnknownDetailsCard {...props} />;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
import React from "react";
|
||||
import {
|
||||
SystemProgram,
|
||||
SignatureResult,
|
||||
ParsedInstruction,
|
||||
} from "@solana/web3.js";
|
||||
import { InstructionCard } from "../InstructionCard";
|
||||
import { Address } from "components/common/Address";
|
||||
import { UpgradeNonceInfo } from "./types";
|
||||
|
||||
export function UpgradeNonceDetailsCard(props: {
|
||||
ix: ParsedInstruction;
|
||||
index: number;
|
||||
result: SignatureResult;
|
||||
info: UpgradeNonceInfo;
|
||||
innerCards?: JSX.Element[];
|
||||
childIndex?: number;
|
||||
}) {
|
||||
const { ix, index, result, info, innerCards, childIndex } = props;
|
||||
|
||||
return (
|
||||
<InstructionCard
|
||||
ix={ix}
|
||||
index={index}
|
||||
result={result}
|
||||
title="System Program: Upgrade Nonce"
|
||||
innerCards={innerCards}
|
||||
childIndex={childIndex}
|
||||
>
|
||||
<tr>
|
||||
<td>Program</td>
|
||||
<td className="text-lg-end">
|
||||
<Address pubkey={SystemProgram.programId} alignRight link />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Nonce Address</td>
|
||||
<td className="text-lg-end">
|
||||
<Address pubkey={info.nonceAccount} alignRight link />
|
||||
</td>
|
||||
</tr>
|
||||
</InstructionCard>
|
||||
);
|
||||
}
|
|
@ -96,6 +96,11 @@ export const TransferWithSeedInfo = type({
|
|||
sourceOwner: PublicKeyFromString,
|
||||
});
|
||||
|
||||
export type UpgradeNonceInfo = Infer<typeof UpgradeNonceInfo>;
|
||||
export const UpgradeNonceInfo = type({
|
||||
nonceAccount: PublicKeyFromString,
|
||||
});
|
||||
|
||||
export type SystemInstructionType = Infer<typeof SystemInstructionType>;
|
||||
export const SystemInstructionType = enums([
|
||||
"createAccount",
|
||||
|
@ -110,4 +115,5 @@ export const SystemInstructionType = enums([
|
|||
"authorizeNonce",
|
||||
"initializeNonce",
|
||||
"transferWithSeed",
|
||||
"upgradeNonce",
|
||||
]);
|
||||
|
|
Loading…
Reference in New Issue