Skip to content

Commit 9bc5266

Browse files
committed
i18n(french): sync Anchor Flash Loan challenge
1 parent cb2712b commit 9bc5266

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

src/app/content/challenges/anchor-flash-loan/fr/challenge.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { ArticleSection } from "../../../../components/ArticleSection/ArticleSec
22

33
# Prêt Flash avec Anchor
44

5+
![Anchor Flash Loan](/graphics/challenge-banners/anchor-flash-loan.png)
6+
57
L'introspection des instructions est une fonctionnalité puissante qui permet à un programme d'examiner et d'analyser d'autres instructions au sein de la même transactions. Cela inclut les instructions qui n'ont pas encore été exécutées, donnant à votre programme la possibilité de "regarder dans le futur" et de prendre des décisions basées sur ce qui se passera plus tard dans la transaction.
68

79
C'est un peu comme si vous aviez une vision à rayons X pour les transactions : votre programme peut voir l'ensemble de la transaction pour comprendre la séquence complète des opérations avant de décider de la marche à suivre.

src/app/content/challenges/anchor-flash-loan/fr/pages/borrow.mdx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ Vient maintenant la partie critique de la sécurité : l'utilisation de l'intros
4242

4343
Nous commençons par accéder au sysvar `instructions` qui contient les informations sur toutes les instructions de la transaction actuelle :
4444

45-
4645
```rust
4746
/*
4847
Instruction Introspection
@@ -56,6 +55,7 @@ let ixs = ctx.accounts.instructions.to_account_info();
5655

5756
Enfin, nous effectuons la vérification la plus critique : nous nous assurons que la dernière instruction de la transaction est une instruction de remboursement valide :
5857
- Nous commençons par vérifier le nombre d'instructions et nous nous assurons que nous chargeons la dernière instruction de la transaction
58+
- Ensuite, nous vérifions le nombre d'instructions et nous assurons que nous chargeons la dernière instruction de la transaction
5959
- TNous vérifions ensuite qu'il s'agit bien de l'instruction de remboursement en vérifiant l'ID du programme et le discriminateur de l'instruction
6060
- Nous terminons en vérifiant que les ATAs passés dans l'instruction de remboursement sont les mêmes que ceux que nous passons dans notre instruction `Borrow`
6161

@@ -66,6 +66,10 @@ Enfin, nous effectuons la vérification la plus critique : nous nous assurons qu
6666
Make sure that the last instruction of this transaction is a repay instruction
6767
*/
6868

69+
// Check if this is the first instruction in the transaction.
70+
let current_index = load_current_index_checked(&ctx.accounts.sysvar_instructions)?;
71+
require_eq!(current_index, 0, ProtocolError::InvalidIx);
72+
6973
// Check how many instruction we have in this transaction
7074
let instruction_sysvar = ixs.try_borrow_data()?;
7175
let len = u16::from_le_bytes(instruction_sysvar[0..2].try_into().unwrap());

src/app/content/challenges/anchor-flash-loan/fr/verify.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,3 @@ Maintenant, mettez en pratique ce que vous avez appris. Créez un programme de p
1515
Votre programme doit vérifier le `borrowed_amount` à la fin de la transaction et rembourser le protocole avec le montant correct.
1616
</Requirement>
1717
</RequirementList>
18-

0 commit comments

Comments
 (0)