Niveau 19 - Alien codex Flashcards

1
Q

Etant donné le code ci dessous :

uint256 a;
uint256 b;
uint256[] array;

Dans quel slot le premier élément de la variable array sera stocké ?

A

Le premier élément sera stocké au slot keccak256(2)

Les slots 0 et 1 sont utilisés par les variables a et b. Donc au slot 2, il y aura la longueur de la variable array car c’est un tableau dynamique.

Solidity stocke la valeur d’un tableau dynamique en suivant cette règle :
slot = keccak256(k . p) ou p est la position de la variable dynamique et k la clé de la variable. Comme array est un tableau, il n’y a pas de clé, mais on connaît p, qui est 2 (car array est dans le slot 2)
Au final le premier élément est au slot keccack256(2).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Etant donné le code ci dessous :

uint256[] array;

Dans quel slot le deuxième élément de la variable array sera stocké ?

A

Le deuxième élément sera stocké au slot keccak256(0) + 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly