Niveau 18 : Magic Number Flashcards

Contrat intelligent en OPCODES

1
Q

Que fait l’opcode PUSH1

A

Il pousse dans la pile EVM une valeur sur 8 bits (1octet).
Le bytecode de PUSH1 est 0x60

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

Qu’est ce que le bytecode

A

Le bytecode est le code compilé de ton contrat intelligent écrit en Solidity. Il est souvent représenté sous forme hexadecimale.

Le code Solidity compilé devient un ensemble d’instructions bas niveau, appelés OPCODES. Ces instructions sont ensuite traduites en bytecode qui sera exécuté par l’EVM Ethereum.

La compilation Solidity vers opcodes se fait avec le compilateur solc (par exemple).
La traduction pour passer des opcodes vers le bytecode se fait avec ce tableau de références

Chaque opcode a une longueur de 1 octet (8bits, soit 256 opcodes différents possibles).

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

En bytecode, on peut séparer le contrat intelligent en deux partie.
Quelles sont elles ?

A

Partie 1 : Code pour créer le contrat intelligent (contract creation). C’est la qu’est exécuté le constructeur. Il permet aussi de stocker la partie 2 (runtime code) dans la blockchain

Partie 2 : Runtime code. Cela représente le reste du contrat intelligent qui est stocké sur la blockchain. C’est cette partie qui sera appelée lorsque tu fais une transaction sur la blockchain sur ce contrat.

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