تايب سكريبت - سولانا ويب 3 تأكيد المعاملة @تم إيقاف الاستخدام باستخدام مثال TransactionConfirmationConfig
باستخدام هذا الكود، يعرض VS تحذيراً بأن الوظيفة قديمة:
(طريقة) Connection.confirmTransaction(strategy: string, commitment?: Commitment): Promise<RpcResponseAndContext> (+1 تحميل زائد) @مهمل — بدلاً من ذلك، استدعِ confirmTransaction باستخدام TransactionConfirmationConfig
التوقيع '(strategy: string, commitment?: Commitment): Promise
' الخاص بـ 'connection.confirmTransaction' أصبح قديماً
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);
}
};
هل يمكن لأي شخص أن يجعل لي مثالاً باستخدام الصياغة الجديدة، من فضلك؟
الإجابة رقم 1
تبدو توقيعات الطريقة الجديدة كالآتي
confirmTransaction(
strategy: BlockheightBasedTransactionConfirmationStrategy,
commitment?: Commitment,
): Promise<RpcResponseAndContext<SignatureResult>>;
لذا بدلاً من TransactionSignature السابقة، فإنه يتوقع الآن BlockheightBasedTransactionConfirmationStrategy
أين
type BlockheightBasedTransactionConfirmationStrategy = {
signature: string;
} & Readonly<{
blockhash: string;
lastValidBlockHeight: number;
}>
لذا ما تحتاجه هو
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);
}
};
