Au sein de l'Ethereum transaction, le zéro-le compte est juste un cas particulier utilisé pour indiquer qu'un nouveau contrat est en cours de déploiement. Il est littéralement "0 x 0' à la valeur de l' to
champ dans le brut de la transaction.
Chaque Ethereum transaction, si c'est un transfert entre deux comptes extérieurs, une demande d'exécution d'un contrat de code, ou d'une demande de déployer un nouveau contrat, sont codés de la même manière. Un raw objet de la transaction devrait ressembler à quelque chose comme ceci:
transaction = {
nonce: '0x0',
gasLimit: '0x6acfc0', // 7000000
gasPrice: '0x4a817c800', // 20000000000
to: '0x0',
value: '0x0',
data: '0xfffff'
};
Si to
est réglé sur une valeur autre que "0 x 0", cette demande permettra le transfert de l'éther à l'adresse (si value
est non nul), et de l'exécution de la fonction codée dans l' data
champ. Rappelez-vous, l'adresse peut être soit un contrat ou d'un compte externe.
Lorsque l' to
adresse est le zéro-adresse, un nouveau contrat sera créé par l'exécution du code en data
(c'est ce que l'on entend par "code qui renvoie le code"). L'adresse du nouveau contrat est techniquement connu à l'avance car il est basé sur l'adresse de l'expéditeur et que c'est courant pour l'instant. Cette adresse devient l'adresse officielle du contrat après l'exploitation minière.
Pour une lecture assez bonne sur l'Ethereum transactions, consultez ce billet de blog.
Remarque: Il s'agit aussi de la Solidité code d'instruction address(0)
qui est la valeur initiale d'une variable de type address
. La documentation que vous avez posté, cependant, se réfère plus spécifiquement lorsque l' to
compte adresse dans une transaction est réglée à "0 x 0".