Solidity中文文档有什么内容
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"Solidity中文文档有什么内容",在日常操作中,相信很多人在Solidity中文文档有什么内容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Sol
千家信息网最后更新 2025年12月02日Solidity中文文档有什么内容
这篇文章主要介绍"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中文文档有什么内容"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
内容
文档
中文
学习
对象
更多
意味
条件
版本
编译器
帮助
编译
实用
详尽
接下来
严重性
信息
只有
可能性
合约
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
cmap数据库简介及操作
打印机服务器编程
如何在gis图中加入数据库
互联网时代科技更新变化
关系数据库主要讲啥
数据库的事务管理
青岛金顺杰网络技术
用香港服务器违法吗算翻墙吗
数据库表验证网站
戴尔服务器找不到阵列卡
阿里云 导入数据库
软件开发可接受转行
头条网络安全规定
店铺主账号挂在云端服务器
网络安全知识宣传
铁路网络安全什么时候截止
服务器装显卡好吗
黑客与网络安全书
龙昌网络安全技术有限公司怎么样
杭州培训软件开发报价
潮流软件开发参考价格
流行数据库
服务器隔板
计算机网络安全论文答辩模板
8计算机网络技术
乌鲁木齐安防软件开发
国家坚持和完善网络安全
大话西游服务器出不来
ftp服务器下载及怎么管理
内网GPS定位服务器