Featured image of post حدة الغش في اللغة

حدة الغش في اللغة

مقالة Cheatsheet التي تعرض بناء جملة ومفاهيم الصلابة الأساسية.

Cheatsheet

ترتيب أسبقية المشغلين

.. index:: 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 (...): :ref:ABI <ABI>-decodes the provided data. The types are given in parentheses as second argument. Example: (uint a, uint[2] memory b, bytes memory c) = abi.decode(data, (uint, uint[2], bytes))
  • abi.encode(...) returns (bytes memory): :ref:ABI <ABI>-encodes the given arguments
  • abi.encodePacked(...) returns (bytes memory): Performs :ref:packed encoding <abi_packed_mode> of the given arguments. Note that this encoding can be ambiguous!
  • abi.encodeWithSelector(bytes4 selector, ...) returns (bytes memory): :ref:ABI <ABI>-encodes the given arguments starting from the second and prepends the given four-byte selector
  • abi.encodeCall(function functionPointer, (...)) returns (bytes memory): ABI-encodes a call to functionPointer with the arguments found in the tuple. Performs a full type-check, ensuring the types match the function signature. Result equals abi.encodeWithSelector(functionPointer.selector, (...))
  • abi.encodeWithSignature(string memory signature, ...) returns (bytes memory): Equivalent to abi.encodeWithSelector(bytes4(keccak256(bytes(signature)), ...)
  • bytes.concat(...) returns (bytes memory): :ref:Concatenates variable number of arguments to one byte array<bytes-concat>
  • string.concat(...) returns (string memory): :ref:Concatenates variable number of arguments to one string array<string-concat>
  • block.basefee (uint): current block’s base fee (EIP-3198 <https://eips.ethereum.org/EIPS/eip-3198>_ and EIP-1559 <https://eips.ethereum.org/EIPS/eip-1559>_)
  • block.chainid (uint): current chain id
  • block.coinbase (address payable): current block miner’s address
  • block.difficulty (uint): current block difficulty
  • block.gaslimit (uint): current block gaslimit
  • block.number (uint): current block number
  • block.timestamp (uint): current block timestamp in seconds since Unix epoch
  • gasleft() returns (uint256): remaining gas
  • msg.data (bytes): complete calldata
  • msg.sender (address): sender of the message (current call)
  • msg.sig (bytes4): first four bytes of the calldata (i.e. function identifier)
  • msg.value (uint): number of wei sent with the message
  • tx.gasprice (uint): gas price of the transaction
  • tx.origin (address): sender of the transaction (full call chain)
  • assert(bool condition): abort execution and revert state changes if condition is false (use for internal error)
  • require(bool condition): abort execution and revert state changes if condition is false (use for malformed input or error in external component)
  • require(bool condition, string memory message): abort execution and revert state changes if condition is false (use for malformed input or error in external component). Also provide error message.
  • revert(): abort execution and revert state changes
  • revert(string memory message): abort execution and revert state changes providing an explanatory string
  • blockhash(uint blockNumber) returns (bytes32): hash of the given block - only works for 256 most recent blocks
  • keccak256(bytes memory) returns (bytes32): compute the Keccak-256 hash of the input
  • sha256(bytes memory) returns (bytes32): compute the SHA-256 hash of the input
  • ripemd160(bytes memory) returns (bytes20): compute the RIPEMD-160 hash of the input
  • ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address): recover address associated with the public key from elliptic curve signature, return zero on error
  • addmod(uint x, uint y, uint k) returns (uint): compute (x + y) % k where the addition is performed with arbitrary precision and does not wrap around at 2**256. Assert that k != 0 starting from version 0.5.0.
  • mulmod(uint x, uint y, uint k) returns (uint): compute (x * y) % k where the multiplication is performed with arbitrary precision and does not wrap around at 2**256. Assert that k != 0 starting from version 0.5.0.
  • this (current contract’s type): the current contract, explicitly convertible to address or address payable
  • super: the contract one level higher in the inheritance hierarchy
  • selfdestruct(address payable recipient): destroy the current contract, sending its funds to the given address
  • <address>.balance (uint256): balance of the :ref:address in Wei
  • <address>.code (bytes memory): code at the :ref:address (can be empty)
  • <address>.codehash (bytes32): the codehash of the :ref:address
  • <address payable>.send(uint256 amount) returns (bool): send given amount of Wei to :ref:address, returns false on failure
  • <address payable>.transfer(uint256 amount): send given amount of Wei to :ref:address, throws on failure
  • type(C).name (string): the name of the contract
  • type(C).creationCode (bytes memory): creation bytecode of the given contract, see :ref:Type Information<meta-type>.
  • type(C).runtimeCode (bytes memory): runtime bytecode of the given contract, see :ref:Type Information<meta-type>.
  • type(I).interfaceId (bytes4): value containing the EIP-165 interface identifier of the given interface, see :ref:Type Information<meta-type>.
  • type(T).min (T): the minimum value representable by the integer type T, see :ref:Type Information<meta-type>.
  • type(T).max (T): the maximum value representable by the integer type T, see :ref:Type Information<meta-type>.

محددات رؤية الوظيفة

1
2
3
    function myFunction() <visibility specifier> returns (bool) {
        return true;
    }
  • public: مرئي خارجيا وداخلية (creates a :ref:getter function<getter-functions> لمتغيرات التخزين/الحالة)
  • private: مرئي فقط في العقد الحالي
  • external: لا يمكن تسمى الرسائل إلا مرئيًا خارجيًا فقط (فقط للوظائف) - أي فقط (via this.func)
  • internal: مرئي فقط داخليًا

الصفات التعريفية

  • pure for functions: لا يسيطر على التعديل أو الوصول إلى الدولة.
  • view for functions: لا يسيطر تعديل الدولة.
  • payable for functions: يسمح لهم بتلقي الأثير مع مكالمة.
  • constant for state variables: لا تسمح المهمة (باستثناء التهيئة) ، لا تشغل فتحة التخزين.
  • immutable for state variables: يسمح بالضبط بمهمة واحدة في وقت البناء وهي ثابتة بعد ذلك.يتم تخزينه في الكود.
  • anonymous for events: لا تخزن توقيع الحدث كموضوع.
  • indexed for event parameters: يخزن المعلمة كموضوع.
  • virtual for functions and modifiers: يسمح بتغيير سلوك الوظيفة أو المعدل في العقود المشتقة.
  • override: ينص على أن هذه الوظيفة أو المعدل أو متغير الحالة العامة تغير سلوك دالة أو تعديل في قاعدةcontract.

الكلمات الرئيسية المحجوزة

هذه الكلمات الرئيسية مخصصة في صلابة.قد يصبحون جزءًا من بناء الجملة في المستقبل:

after, alias, apply, auto, byte, case, copyof, default, define, final, implements, in, inline, let, macro, match, mutable, null, of, partial, promise, reference, relocatable, sealed, sizeof, static, supports, switch, typedef, typeof, var.

comments powered by Disqus
مبني بستخدام Hugo
قالب Stack مصمم من Jimmy