中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Solidity中文文檔有什么內容

發布時間:2021-12-07 15:32:07 來源:億速云 閱讀:147 作者:iii 欄目:互聯網科技

這篇文章主要介紹“Solidity中文文檔有什么內容”,在日常操作中,相信很多人在Solidity中文文檔有什么內容問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Solidity中文文檔有什么內容”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

下面這份包含已知 bug 的 JSON 文件實際上是一個對象數組,每個對象對應一個 bug,并包含以下的 keys :

name

賦予該 bug 的唯一的名字

summary

對該 bug 的簡要描述

description

對該 bug 的詳細描述

link

包含更多詳盡信息的鏈接,可選

introduced

第一個包含該 bug 的編譯器的發布版本,可選

fixed

第一個不再包含該 bug 的編譯器的發布版本

publish

該 bug 被公開的日期,可選

severity

bug 的嚴重性: very low, low, medium, high。綜合考慮了在合約測試中的可發現性、發生的可能性和被利用后的潛在損害。

conditions

觸發該 bug 所需滿足的條件。當前,這是一個包含了 optimizer 布爾值的對象,這意味著只有打開優化器選項時,才會觸發該 bug。 如果沒有給出任何條件,則意味著此 bug 始終存在。

[
   {
       "name": "OneOfTwoConstructorsSkipped",
       "summary": "If a contract has both a new-style constructor (using the constructor keyword) and an old-style constructor (a function with the same name as the contract) at the same time, one of them will be ignored.",
       "description": "If a contract has both a new-style constructor (using the constructor keyword) and an old-style constructor (a function with the same name as the contract) at the same time, one of them will be ignored. There will be a compiler warning about the old-style constructor, so contracts only using new-style constructors are fine.",
       "introduced": "0.4.22",
       "fixed": "0.4.23",
       "severity": "very low"
   },
   {
       "name": "ZeroFunctionSelector",
       "summary": "It is possible to craft the name of a function such that it is executed instead of the fallback function in very specific circumstances.",
       "description": "If a function has a selector consisting only of zeros, is payable and part of a contract that does not have a fallback function and at most five external functions in total, this function is called instead of the fallback function if Ether is sent to the contract without data.",
       "fixed": "0.4.18",
       "severity": "very low"
   },
   {
       "name": "DelegateCallReturnValue",
       "summary": "The low-level .delegatecall() does not return the execution outcome, but converts the value returned by the functioned called to a boolean instead.",
       "description": "The return value of the low-level .delegatecall() function is taken from a position in memory, where the call data or the return data resides. This value is interpreted as a boolean and put onto the stack. This means if the called function returns at least 32 zero bytes, .delegatecall() returns false even if the call was successuful.",
       "introduced": "0.3.0",
       "fixed": "0.4.15",
       "severity": "low"
   },
   {
       "name": "ECRecoverMalformedInput",
       "summary": "The ecrecover() builtin can return garbage for malformed input.",
       "description": "The ecrecover precompile does not properly signal failure for malformed input (especially in the 'v' argument) and thus the Solidity function can return data that was previously present in the return area in memory.",
       "fixed": "0.4.14",
       "severity": "medium"
   },
   {
       "name": "SkipEmptyStringLiteral",
       "summary": "If \"\" is used in a function call, the following function arguments will not be correctly passed to the function.",
       "description": "If the empty string literal \"\" is used as an argument in a function call, it is skipped by the encoder. This has the effect that the encoding of all arguments following this is shifted left by 32 bytes and thus the function call data is corrupted.",
       "fixed": "0.4.12",
       "severity": "low"
   },
   {
       "name": "ConstantOptimizerSubtraction",
       "summary": "In some situations, the optimizer replaces certain numbers in the code with routines that compute different numbers.",
       "description": "The optimizer tries to represent any number in the bytecode by routines that compute them with less gas. For some special numbers, an incorrect routine is generated. This could allow an attacker to e.g. trick victims about a specific amount of ether, or function calls to call different functions (or none at all).",
       "link": "https://blog.ethereum.org/2017/05/03/solidity-optimizer-bug/",
       "fixed": "0.4.11",
       "severity": "low",
       "conditions": {
           "optimizer": true
       }
   },
   {
       "name": "IdentityPrecompileReturnIgnored",
       "summary": "Failure of the identity precompile was ignored.",
       "description": "Calls to the identity contract, which is used for copying memory, ignored its return value. On the public chain, calls to the identity precompile can be made in a way that they never fail, but this might be different on private chains.",
       "severity": "low",
       "fixed": "0.4.7"
   },
   {
       "name": "OptimizerStateKnowledgeNotResetForJumpdest",
       "summary": "The optimizer did not properly reset its internal state at jump destinations, which could lead to data corruption.",
       "description": "The optimizer performs symbolic execution at certain stages. At jump destinations, multiple code paths join and thus it has to compute a common state from the incoming edges. Computing this common state was simplified to just use the empty state, but this implementation was not done properly. This bug can cause data corruption.",
       "severity": "medium",
       "introduced": "0.4.5",
       "fixed": "0.4.6",
       "conditions": {
           "optimizer": true
       }
   },
   {
       "name": "HighOrderByteCleanStorage",
       "summary": "For short types, the high order bytes were not cleaned properly and could overwrite existing data.",
       "description": "Types shorter than 32 bytes are packed together into the same 32 byte storage slot, but storage writes always write 32 bytes. For some types, the higher order bytes were not cleaned properly, which made it sometimes possible to overwrite a variable in storage when writing to another one.",
       "link": "https://blog.ethereum.org/2016/11/01/security-alert-solidity-variables-can-overwritten-storage/",
       "severity": "high",
       "introduced": "0.1.6",
       "fixed": "0.4.4"
   },
   {
       "name": "OptimizerStaleKnowledgeAboutSHA3",
       "summary": "The optimizer did not properly reset its knowledge about SHA3 operations resulting in some hashes (also used for storage variable positions) not being calculated correctly.",
       "description": "The optimizer performs symbolic execution in order to save re-evaluating expressions whose value is already known. This knowledge was not properly reset across control flow paths and thus the optimizer sometimes thought that the result of a SHA3 operation is already present on the stack. This could result in data corruption by accessing the wrong storage slot.",
       "severity": "medium",
       "fixed": "0.4.3",
       "conditions": {
           "optimizer": true
       }
   },
   {
       "name": "LibrariesNotCallableFromPayableFunctions",
       "summary": "Library functions threw an exception when called from a call that received Ether.",
       "description": "Library functions are protected against sending them Ether through a call. Since the DELEGATECALL opcode forwards the information about how much Ether was sent with a call, the library function incorrectly assumed that Ether was sent to the library and threw an exception.",
       "severity": "low",
       "introduced": "0.4.0",
       "fixed": "0.4.2"
   },
   {
       "name": "SendFailsForZeroEther",
       "summary": "The send function did not provide enough gas to the recipient if no Ether was sent with it.",
       "description": "The recipient of an Ether transfer automatically receives a certain amount of gas from the EVM to handle the transfer. In the case of a zero-transfer, this gas is not provided which causes the recipient to throw an exception.",
       "severity": "low",
       "fixed": "0.4.0"
   },
   {
       "name": "DynamicAllocationInfiniteLoop",
       "summary": "Dynamic allocation of an empty memory array caused an infinite loop and thus an exception.",
       "description": "Memory arrays can be created provided a length. If this length is zero, code was generated that did not terminate and thus consumed all gas.",
       "severity": "low",
       "fixed": "0.3.6"
   },
   {
       "name": "OptimizerClearStateOnCodePathJoin",
       "summary": "The optimizer did not properly reset its internal state at jump destinations, which could lead to data corruption.",
       "description": "The optimizer performs symbolic execution at certain stages. At jump destinations, multiple code paths join and thus it has to compute a common state from the incoming edges. Computing this common state was not done correctly. This bug can cause data corruption, but it is probably quite hard to use for targeted attacks.",
       "severity": "low",
       "fixed": "0.3.6",
       "conditions": {
           "optimizer": true
       }
   },
   {
       "name": "CleanBytesHigherOrderBits",
       "summary": "The higher order bits of short bytesNN types were not cleaned before comparison.",
       "description": "Two variables of type bytesNN were considered different if their higher order bits, which are not part of the actual value, were different. An attacker might use this to reach seemingly unreachable code paths by providing incorrectly formatted input data.",
       "severity": "medium/high",
       "fixed": "0.3.3"
   },
   {
       "name": "ArrayAccessCleanHigherOrderBits",
       "summary": "Access to array elements for arrays of types with less than 32 bytes did not correctly clean the higher order bits, causing corruption in other array elements.",
       "description": "Multiple elements of an array of values that are shorter than 17 bytes are packed into the same storage slot. Writing to a single element of such an array did not properly clean the higher order bytes and thus could lead to data corruption.",
       "severity": "medium/high",
       "fixed": "0.3.1"
   },
   {
       "name": "AncientCompiler",
       "summary": "This compiler version is ancient and might contain several undocumented or undiscovered bugs.",
       "description": "The list of bugs is only kept for compiler versions starting from 0.3.0, so older versions might contain undocumented bugs.",
       "severity": "high",
       "fixed": "0.3.0"
   }

]

到此,關于“Solidity中文文檔有什么內容”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

冕宁县| 安远县| 卓尼县| 临邑县| 琼海市| 婺源县| 东乌珠穆沁旗| 滨州市| 嘉善县| 宝坻区| 武强县| 米林县| 襄城县| 循化| 祥云县| 阿鲁科尔沁旗| 呼伦贝尔市| 西乡县| 屏南县| 通江县| 出国| 南靖县| 云龙县| 葫芦岛市| 车致| 侯马市| 福安市| 常山县| 宿松县| 托克托县| 凤台县| 延吉市| 梓潼县| 武汉市| 莎车县| 张家川| 吉安市| 库车县| 柳江县| 鸡西市| 塔城市|