import React from "react";
import bs58 from "bs58";
import * as nacl from "tweetnacl";
import { PublicKey, VersionedMessage } from "@solana/web3.js";
import { Signature } from "components/common/Signature";
import { Address } from "components/common/Address";
export function TransactionSignatures({
signatures,
message,
rawMessage,
}: {
signatures: (string | null)[];
message: VersionedMessage;
rawMessage: Uint8Array;
}) {
const signatureRows = React.useMemo(() => {
return signatures.map((signature, index) => {
const publicKey = message.staticAccountKeys[index];
let verified;
if (signature) {
const key = publicKey.toBytes();
const rawSignature = bs58.decode(signature);
verified = verifySignature({
message: rawMessage,
signature: rawSignature,
key,
});
}
const props = {
index,
signature,
signer: publicKey,
verified,
};
return
# | Signature | Signer | Validity | Details |
---|