typescript - solana web3 confirmTransaction @deprecated usando un ejemplo de TransactionConfirmationConfig
Con este código, VS muestra una advertencia deprecada:
(método) Connection.confirmTransaction(strategy: string, commitment?: Commitment): Promise<RpcResponseAndContext> (+1 sobrecarga) @deprecated — En su lugar, llama a confirmTransaction usando un TransactionConfirmationConfig
La firma '(strategy: string, commitment?: Commitment): Promise
' de 'connection.confirmTransaction' está en desuso
const airDropSol = async () => {
try {
const connection = new Connection(clusterApiUrl("devnet"), "confirmed");
const airdropSignature = await connection.requestAirdrop(
publicKey,
2 * LAMPORTS_PER_SOL
);
await connection.confirmTransaction(airdropSignature);
} catch (error) {
console.error(error);
}
};
¿Alguien podría hacerme un ejemplo con la nueva sintaxis, por favor?
Respuesta #1
La nueva firma del método se ve así
confirmTransaction(
strategy: BlockheightBasedTransactionConfirmationStrategy,
commitment?: Commitment,
): Promise<RpcResponseAndContext<SignatureResult>>;
Así que en lugar del anterior TransactionSignature, ahora espera BlockheightBasedTransactionConfirmationStrategy
dónde
type BlockheightBasedTransactionConfirmationStrategy = {
signature: string;
} & Readonly<{
blockhash: string;
lastValidBlockHeight: number;
}>
Por lo tanto, lo que necesitas es
const airDropSol = async () => {
try {
const connection = new Connection(clusterApiUrl("devnet"), "confirmed");
const airdropSignature = await connection.requestAirdrop(
keypair.publicKey,
2 * LAMPORTS_PER_SOL
);
const latestBlockHash = await connection.getLatestBlockhash();
await connection.confirmTransaction({
blockhash: latestBlockHash.blockhash,
lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,
signature: airdropSignature,
});
} catch (error) {
console.error(error);
}
};
