0.8.28
Basics
Introduction to Smart Contracts
Solidity by Example
Installing the Solidity Compiler
Language Description
Layout of a Solidity Source File
Structure of a Contract
Types
Units and Globally Available Variables
Expressions and Control Structures
Contracts
Inline Assembly
Cheatsheet
Language Grammar
Compiler
Using the Compiler
Analysing the Compiler Output
Solidity IR-based Codegen Changes
Internals
Layout of State Variables in Storage and Transient Storage
Layout in Memory
Layout of Call Data
Cleaning Up Variables
Source Mappings
The Optimizer
Contract Metadata
Contract ABI Specification
Advisory content
Security Considerations
List of Known Bugs
Solidity v0.5.0 Breaking Changes
Solidity v0.6.0 Breaking Changes
Solidity v0.7.0 Breaking Changes
Solidity v0.8.0 Breaking Changes
Additional Material
NatSpec Format
SMTChecker and Formal Verification
Yul
Import Path Resolution
Resources
Style Guide
Common Patterns
Resources
Contributing
Language Influences
Solidity Brand Guide
Keyword Index
Solidity
Index
Edit on GitHub
Index
Symbols
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
R
|
S
|
T
|
U
|
V
|
W
|
Y
Symbols
--allow-paths
,
[1]
--base-path
,
[1]
,
[2]
--include-path
,
[1]
--libraries
--link
--no-import-callback
--standard-json
,
[1]
<stdin>
A
abi
,
[1]
,
[2]
decode
encode
encodeCall
encodePacked
encodeWithSelector
encodeWithSignature
ABI coder
abstract contract
,
[1]
access
restricting
account
addmod
,
[1]
address
,
[1]
,
[2]
balance
code
codehash
send
transfer
allowed paths
,
[1]
analyse
anonymous
application binary interface
array
,
[1]
,
[2]
allocating
dangling storage references
length
pop
push
slice
array of strings
asm
,
[1]
,
[2]
assembly
,
[1]
assembly-flags (Antlr4 production rule)
assembly-statement (Antlr4 production rule)
assert
,
[1]
,
[2]
assignment
,
[1]
destructuring
auction
blind
open
B
balance
,
[1]
,
[2]
ballot
base
constructor
base class
base path
,
[1]
blind auction
blobhash
block
,
[1]
,
[2]
basefee
,
[1]
blobbasefee
,
[1]
chainid
coinbase
difficulty
gaslimit
number
,
[1]
prevrandao
timestamp
,
[1]
block (Antlr4 production rule)
blockhash
bool
boolean-literal (Antlr4 production rule)
break
break-statement (Antlr4 production rule)
Bugs
byte array
bytes
,
[1]
concat
bytes members
bytes-concat
bytes32
C
C3 linearization
call
,
[1]
call-argument-list (Antlr4 production rule)
callcode
,
[1]
cast
catch-clause (Antlr4 production rule)
checked
cleanup
codehash
coding style
coin
coinbase
commandline compiler
comment
common subexpression elimination
compile target
compiler
commandline
compound operators
constant
,
[1]
constant propagation
constant-variable-declaration (Antlr4 production rule)
constructor
,
[1]
arguments
constructor-definition (Antlr4 production rule)
continue
continue-statement (Antlr4 production rule)
contract
,
[1]
abstract
,
[1]
base
creation
interface
modular
precompiled
contract creation
contract type
contract verification
contract-body-element (Antlr4 production rule)
contract-definition (Antlr4 production rule)
contracts
creating
creationCode
cryptography
,
[1]
custom type
D
data
data-location (Antlr4 production rule)
days
deactivate
decimal-number (Antlr4 production rule)
declarations
default value
delegatecall
,
[1]
,
[2]
,
[3]
delete
denomination
ether
time
deriving
difficulty
direct import
dirty bits
do-while-statement (Antlr4 production rule)
do/while
double-quoted-printable (Antlr4 production rule)
dynamic array
E
ecrecover
,
[1]
elementary-type-name (Antlr4 production rule)
else
emit-statement (Antlr4 production rule)
empty-string-literal (Antlr4 production rule)
encode
encoding
enum
,
[1]
enum-definition (Antlr4 production rule)
error
,
[1]
error-definition (Antlr4 production rule)
error-parameter (Antlr4 production rule)
errors
escape-sequence (Antlr4 production rule)
escrow
ether
ethereum virtual machine
evaluation order
expression
function arguments
event
,
[1]
,
[2]
anonymous
indexed
topic
event-definition (Antlr4 production rule)
event-parameter (Antlr4 production rule)
evm
EVM version
evmasm
,
[1]
exception
expression (Antlr4 production rule)
expression-statement (Antlr4 production rule)
external
,
[1]
F
fallback function
fallback-function-definition (Antlr4 production rule)
false
file://
filesystem path
finney
fixed
fixed point number
fixed-bytes (Antlr4 production rule)
for
for-statement (Antlr4 production rule)
function
call
,
[1]
external
fallback
free
,
[1]
getter
internal
modifier
,
[1]
,
[2]
,
[3]
pure
receive
view
function parameter
function pointers
function type
function-definition (Antlr4 production rule)
function-type-name (Antlr4 production rule)
functions
G
gas
,
[1]
gas price
,
[1]
gasleft
getter
function
goto
gwei
H
hex-number (Antlr4 production rule)
hex-string (Antlr4 production rule)
hex-string-literal (Antlr4 production rule)
Host Filesystem Loader
hours
I
identifier (Antlr4 production rule)
,
[1]
identifier-path (Antlr4 production rule)
if
if-statement (Antlr4 production rule)
import
direct
path
,
[1]
relative
remapping
import callback
,
[1]
import-directive (Antlr4 production rule)
include paths
,
[1]
indexed
inheritance
multiple
inheritance list
inheritance-specifier (Antlr4 production rule)
inline
arrays
inline-array-expression (Antlr4 production rule)
installing
instruction
int
integer
,
[1]
interface contract
interface-definition (Antlr4 production rule)
internal
,
[1]
iterable mappings
iulia
J
julia
K
keccak256
,
[1]
L
length
library
,
[1]
,
[2]
library-definition (Antlr4 production rule)
license
linearization
linker
literal
address
,
[1]
array
conversion
hexadecimal
,
[1]
hexadecimal number
in Yul
rational
,
[1]
string
,
[1]
unicode
literal (Antlr4 production rule)
literal-with-sub-denomination (Antlr4 production rule)
location
log
lvalue
M
mapping
,
[1]
,
[2]
mapping-key-type (Antlr4 production rule)
mapping-type (Antlr4 production rule)
memory
,
[1]
message call
metadata
minutes
modifier-definition (Antlr4 production rule)
modifier-invocation (Antlr4 production rule)
modifiers
modular contract
module
msg
data
sender
sig
value
mulmod
,
[1]
N
natspec
new
,
[1]
non-empty-string-literal (Antlr4 production rule)
number
number-literal (Antlr4 production rule)
O
open auction
operator
precedence
,
[1]
user-defined
optimiser
optimizer
origin
overload
override-specifier (Antlr4 production rule)
overriding
function
modifier
P
packed
parameter
function
input
output
parameter-list (Antlr4 production rule)
path (Antlr4 production rule)
payable
pop
pragma
abicoder
ABIEncoderV2
,
[1]
experimental
SMTChecker
version
pragma-token (Antlr4 production rule)
precompiled contracts
precompiles
prevrandao
private
,
[1]
public
,
[1]
purchase
pure
pure function
push
R
rational number
receive
receive ether function
receive-function-definition (Antlr4 production rule)
reference type
relative import
remapping
context
import
prefix
target
,
[1]
Remix IDE
,
[1]
remote purchase
require
,
[1]
,
[2]
,
[3]
return
,
[1]
return array
return string
return struct
return variable
return-statement (Antlr4 production rule)
revert
,
[1]
,
[2]
,
[3]
revert-statement (Antlr4 production rule)
ripemd160
,
[1]
runtimeCode
S
safe math
safemath
scoping
seconds
selector
of a function
,
[1]
of a library function
of an error
,
[1]
of an event
selfdestruct
,
[1]
,
[2]
send
,
[1]
sender
set
sha256
,
[1]
signed-integer-type (Antlr4 production rule)
single-quoted-printable (Antlr4 production rule)
solc
SolidityLexer (Antlr4 lexer grammar)
SolidityParser (Antlr4 parser grammar)
source file
source mappings
source unit
source unit name
,
[1]
source-unit (Antlr4 production rule)
spdx
stack
standard input
standard JSON
,
[1]
state machine
state variable
,
[1]
state-mutability (Antlr4 production rule)
state-variable-declaration (Antlr4 production rule)
statement (Antlr4 production rule)
staticcall
,
[1]
stdin
storage
,
[1]
,
[2]
,
[3]
string
,
[1]
,
[2]
concat
string members
string-concat
string-literal (Antlr4 production rule)
struct
,
[1]
,
[2]
,
[3]
struct-definition (Antlr4 production rule)
struct-member (Antlr4 production rule)
style
sub-denomination (Antlr4 production rule)
subcurrency
super
,
[1]
switch
symbol-aliases (Antlr4 production rule)
szabo
T
this
,
[1]
throw
timestamp
tload
transaction
,
[1]
transfer
,
[1]
transient
transient storage
,
[1]
,
[2]
true
try-statement (Antlr4 production rule)
tstore
tuple-expression (Antlr4 production rule)
tx
gasprice
origin
type
,
[1]
contract
conversion
creationCode
function
interfaceId
max
min
name
reference
runtimeCode
struct
value
type-name (Antlr4 production rule)
U
ufixed
uint
unchecked
unchecked-block (Antlr4 production rule)
unicode-string-literal (Antlr4 production rule)
,
[1]
unsigned-integer-type (Antlr4 production rule)
UnusedStoreEliminator
user defined value type
user-definable-operator (Antlr4 production rule)
user-defined-value-type-definition (Antlr4 production rule)
using for
,
[1]
using-aliases (Antlr4 production rule)
using-directive (Antlr4 production rule)
V
value
value type
variable
return
variable-declaration (Antlr4 production rule)
variable-declaration-statement (Antlr4 production rule)
variable-declaration-tuple (Antlr4 production rule)
variably sized array
VFS
view
view function
virtual filesystem
,
[1]
visibility
,
[1]
(Antlr4 production rule)
voting
W
weeks
wei
while
while-statement (Antlr4 production rule)
withdrawal
Y
years
yul
yul-assignment (Antlr4 production rule)
yul-block (Antlr4 production rule)
yul-boolean (Antlr4 production rule)
yul-decimal-number (Antlr4 production rule)
yul-evm-builtin (Antlr4 production rule)
yul-expression (Antlr4 production rule)
yul-for-statement (Antlr4 production rule)
yul-function-call (Antlr4 production rule)
yul-function-definition (Antlr4 production rule)
yul-hex-number (Antlr4 production rule)
yul-identifier (Antlr4 production rule)
yul-if-statement (Antlr4 production rule)
yul-literal (Antlr4 production rule)
yul-path (Antlr4 production rule)
yul-statement (Antlr4 production rule)
yul-string-literal (Antlr4 production rule)
yul-switch-statement (Antlr4 production rule)
yul-variable-declaration (Antlr4 production rule)