Smart contracts have two bytecodes: creation_bytecode
and runtime_bytecode
:
creation_bytecode
is the one included in the transaction that deploys the contract.runtime_bytecode
is the one stored at the address of the contract, fetchable by calling the eth_getCode
RCP method.This section is referring to Vyper contracts with version >=0.4.1, below you can find a separate section containing differences for older Vyper versions.
[integrity, runtime_size, data_sizes, immutable_size, compiler]
. You can read more information in the section below.Starting Vyper version 0.4.1 and beyond, auxdata is structured as follows:
168
).[10, 22]
). See Runtime bytecode structure > Data section above.96
). See Runtime bytecode structure > Immutable section above.{"vyper": [0, 4, 1]}
).Availability: Auxdata is included only in the creation runtime bytecode (not in the recompiled runtime bytecode).
A typical Vyper auxdata in version 0.4.1 could look like this:
85582005b754c58b2e540a14aba6f16717ab2c30edc74936c8985d77b152cd97887e07188f8000a1657679706572830004010034
This decodes to:
[0x05B754C58B2E540A14ABA6F16717AB2C30EDC74936C8985D77B152CD97887E07, 143, [], 0, {"vyper": [0, 4, 1]}] + auxdata_length (0x0034 or 52 bytes)
a165767970657283000304
-> {"vyper": [0, 3, 4]}
.a165767970657283000308000b
-> a165767970657283000308|000b
-> {"vyper": [0, 3, 8]}|11
.[runtime_size, data_sizes, immutable_size, compiler]
.84188f8000a16576797065728300030a0012
-> 84188f8000a16576797065728300030a|0012
-> [143, [], 0, {"vyper": [0, 3, 10]}]|18
integrity
check: [integrity, runtime_size, data_sizes, immutable_size, compiler]
. The integrity
check is a fingerprint of a Vyper compilation, you can read more about it here.or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing