operator; precedence
assert, block, coinbase, difficulty, number, block;number, timestamp, block;timestamp, msg, data, gas, sender, value, gas price, origin, revert, require, keccak256, ripemd160, sha256, ecrecover, addmod, mulmod, cryptography, this, super, selfdestruct, balance, codehash, send
abi.decode(bytes memory encodedData, (...)) returns (...)
: ABI formatında gönderilen verinin ayrıştırılması sırasında, tipler ikinci argüman olarak parantez içinde verilir. Örneğin:(uint a, uint[2] memory b, bytes memory c) = abi.decode(data, (uint, uint[2], bytes))
abi.encode(...) returns (bytes memory)
: ABI formatında verileri düzenlerabi.encodePacked(...) returns (bytes memory)
: Verilen argümanlarınABI formatında paketlenmiş veri <abi_packed_mode>
işlemini gerçekleştirir. Paketli ABI formatındaki verinin belirsiz olabileceğine dikkat edin!abi.encodeWithSelector(bytes4 selector, ...) returns (bytes memory)
: ABI, verilen bağımsız değişkenleri ikinciden başlayarak ABI olarak formatlar ve verilen dört baytlık seçicinin önüne ekler.abi.encodeWithSignature(string memory signature, ...) returns (bytes memory)
: Şuna eşdeğerdirabi.encodeWithSelector(bytes4(keccak256(bytes(signature))), ...)
abi.encodeCall(function functionPointer, (...)) returns (bytes memory)
: ABI,functionPointer
çağrısını veri grupları içinde bulunan argümanlarla ABI olarak formatlar. Argümanlardaki tüm veri tipleri, fonksiyonun imzasi ile eşleşmesi kontrol edilir. Sonuçabi.encodeWithSelector(functionPointer.selector, (...))
değerine eşittirbytes.concat(...) returns (bytes memory)
:Değişken sayıda bayt ve bytes1, ..., bytes32 argümanlarını bir bayt dizisine birleştirir<bytes-concat>
string.concat(...) returns (string memory)
:Değişken sayıda string argümanını tek bir string dizisinde birleştirir<string-concat>
block.basefee
(uint
): mevcut bloğun baz ücreti (EIP-3198 ve EIP-1559)block.chainid
(uint
): mevcut bloğun zincir kimliğiblock.coinbase
(address payable
): mevcut blok madencisinin adresiblock.difficulty
(uint
): mevcut blok zorluğublock.gaslimit
(uint
): mevcut blok gas sınırıblock.number
(uint
): mevcut blok numarasıblock.timestamp
(uint
): unix bazlı epoch (1/1/1970) gününden bu yana saniye biçiminde formatlanmış mevcut bloğun yaratılış zaman bilgisigasleft() returns (uint256)
: kalan gasmsg.data
(bytes calldata
): bütün calldatamsg.sender
(address
): mesajın göndericisi (mevcut çağırma için)msg.sig
(bytes4
): calldata'nın ilk 4 byte değeri (yani fonksiyon tanımlayıcısı)msg.value
(uint
): mesaj ile birlikte gönderilen wei miktarıtx.gasprice
(uint
): işlemin gas fiyatıtx.origin
(address
): işlemin göndericisi (tam çağrı zinciri)assert(bool condition)
: koşul "yanlış" ise yürütmeyi iptal edilir ve durum değişikliklerini geri alır (dahili hata için kullanın)require(bool condition)
: koşul "yanlış" ise yürütmeyi durdurur ve durum değişikliklerini geri alır (harici bileşende hatalı biçimlendirilmiş giriş veya hata için kullanın)require(bool condition, string memory message)
: koşul "yanlış" ise yürütmeyi iptal eder ve durum değişikliklerini geri alır (harici bileşende hatalı biçimlendirilmiş giriş veya hata için kullanın). Ayrıca hata mesajıda verir.revert()
: yürütmeyi iptal eder ve durum değişikliklerini geri alırrevert(string memory message)
: açıklayıcı bir string geri döndürerek yürütmeyi iptal eder ve durum değişikliklerini geri alırblockhash(uint blockNumber) returns (bytes32)
: verilen bloğun hash'i - yalnızca en son 256 blok için çalışırkeccak256(bytes memory) returns (bytes32)
: girdinin Keccak-256 hash'ini hesaplarsha256(bytes memory) returns (bytes32)
: cgirdinin SHA-256 hash'ini hesaplarripemd160(bytes memory) returns (bytes20)
: girdinin RIPEMD-160 hash'ini hesaplarecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)
: eliptik eğri imzasından açık anahtarla ilişkili adresi kurtarır veya hata durumunda sıfır döndürür.addmod(uint x, uint y, uint k) returns (uint)
: toplama işleminin isteğe bağlı kesinlikte gerçekleştirildiği ve2**256
da kapsamadığı(x + y) % k
değerini hesaplar. Sürüm 0.5.0'den başlayarak "k!= 0" olduğunu iddia eder.mulmod(uint x, uint y, uint k) returns (uint)
: çarpmanın isteğe bağlı kesinlikte gerçekleştirildiği ve2**256
değerinde kapsamadığı(x * y) % k
değerini hesaplar. Sürüm 0.5.0'dan başlayarakk != 0
olduğunu iddia eder.this
(mevcut sözleşme tipi): mevcut sözleşme, açıkça "adres" veya "ödenecek adres"e dönüştürülebilirsuper
: kalıtım(miras) hiyerarşisinde bir seviye daha yüksek sözleşmeselfdestruct(address payable recipient)
: mevcut sözleşmeyi imha edin, fonlarını verilen adrese gönderin<address>.balance
(uint256
): Wei biçimindekiaddress
bakiyesi<address>.code
(bytes memory
): ref:address adresindeki kod (boş olabilir)<address>.codehash
(bytes32
): ref:address kod hash'i<address payable>.send(uint256 amount) returns (bool)
: verilen Wei miktarınıaddress
'ine gönderir, başarısız olması durumundafalse
döndürür<address payable>.transfer(uint256 amount)
: verilen Wei miktarınıaddress
‘ine gönderir, başarısız olması durumunda geri dönertype(C).name
(string
): sözleşmenin ismitype(C).creationCode
(bytes memory
): verilen sözleşmenin bayt kodu oluşturma, bkz.Type Information<meta-type>
.type(C).runtimeCode
(bytes memory
): verilen sözleşmenin çalışma zamanı bayt kodu, bkz.Type Information<meta-type>
.type(I).interfaceId
(bytes4
): verilen arayüzün EIP-165 arayüz tanımlayıcısını içeren değer, bkz.Type Information<meta-type>
.type(T).min
(T
):T
tipi tarafından temsil edilebilen en küçük değer, bkz.Type Information<meta-type>
.type(T).max
(T
):T
tipi tarafından temsil edilebilen en büyük değer, bkz.Type Information<meta-type>
.
visibility, public, private, external, internal
function myFunction() <visibility specifier> returns (bool) {
return true;
}
public
: harici ve dahili olarak görünür (depolama/durum değişkenleri için biralıcı fonksiyon<getter-functions>
oluşturur)private
: sadece mevcut sözleşmede görünürexternal
: yalnızca harici olarak görünür (yalnızca fonksiyonlar için) - yani yalnızca mesajla çağrılabilir (this.func
aracılığıyla)internal
: sadece dahili olarak görünür
modifiers, pure, view, payable, constant, anonymous, indexed
pure
fonksiyonlar için: Durumun değiştirilmesine veya erişime izin vermez.view
fonksiyonlar için: Durum değişikliğine izin vermez.payable
fonksiyonlar için: Bir çağrıyla birlikte Ether almalarını sağlar.constant
durum değişkenleri için: Atamaya izin vermez (başlatma dışında), depolama yuvasını işgal etmez.immutable
durum değişkenleri için: Başlatılma sırasında bir defa atamaya izin verir ve daha sonra sabit bir şekilde kalır. Kodda saklanır.anonymous
event'ler için: Event imzasını başlık olarak saklamazindexed
event parametreleri için: Parametreyi başlık olarak saklarvirtual
fonksiyonlar ve modifier'lar için: Türetilmiş sözleşmelerde modifier'ların fonksiyonlarının değiştirilmesine izin verir.override
: Bu fonksiyon, modifier veya genel durum değişkeninin, bir temel sözleşmedeki bir fonksiyonun veya modifier'ın davranışını değiştirdiğini ifade etmektedir.