import { Wallet, } from "@project-serum/anchor"; import { Keypair, Signer } from "@solana/web3.js"; import { removeDuplicates } from "./object"; // TODO: this can use some testing... export const removeSignerDuplicates = (signers: Signer[]) => removeDuplicates( signers, (s: Signer) => JSON.stringify([...s.secretKey]), (s: string) => { return Keypair.fromSecretKey(new Uint8Array(JSON.parse(s))); } ); export const conditionallyIncludeSigner = ( signers: Signer[], conditionalSigner: Signer | Wallet ) => { if ((conditionalSigner as Signer).secretKey) { return [...signers, conditionalSigner as Signer]; } return signers; };