热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于智能合约:Solidity编码规范

防止应用小写的L,大写的I,大写的O应该防止在命名中独自呈现,因为很容易产生混同。合约、库、事件、枚举及构造体命名——大驼峰合约、库、事件及构造体命名

1、命名标准

防止应用
小写的L,大写的I,大写的O 应该防止在命名中独自呈现,因为很容易产生混同。
合约、库、事件、枚举及构造体命名——大驼峰
合约、库、事件及构造体命名应该应用单词首字母大写的形式。
比方:SimpleToken, SmartBank, CertificateHashRepository,Player。
函数、参数、变量及润饰器
函数、参数、变量及润饰器应该应用首单词小写前面单词大写的形式,
如:
l 函数名应该如:getBalance,transfer,verifyOwner,addMember。
l 参数和变量应该如:initialSupply,senderAddress,account,isPreSale。
l 润饰器应该如:onlyAfter,onlyOwner 

常量
常量应该应用全大写及下划线宰割大词的形式,如:MAX_BLOCKS,TOKEN_NAME, CONTRACT_VERSION。
正确应用”_”结尾的命名形式
延用Javascript中的约定俗成的命名标准,对公有函数和公有变量应用”_”结尾的命名形式,不便辨别。

2.代码格局

空行
合约之前、函数之间应该有空行。

左括号
左括号不要换行。

适当空格
在函数、润饰器中定义参数时,参数之前要有一个空格。

3.函数编写标准

依照规定的程序编写函数

明确函数的可见性
所有的函数(包含构造函数)应该在定义的时候明确函数的可见性。
可见性应在修饰符前
函数的可见性应该写在自定义的函数修饰符后面。
辨别函数和事件
为了避免函数和事件(Event)产生混同,申明一个事件名称首字母大写。对于函数, 始终以首字母小写。

Chainpip介绍

Chainpip是一款对于以太坊智能合约开发的网站, chainpip集成solidity开发环境,提供可视化编译、部署、执行合约等性能,而solidity是以太坊官网设计和反对的开发语言,专门用于编写智能合约。用户应用chainpip就能很快上手,开发一款智能合约。用户还能够在Chainpip上看到其余的dapp我的项目,可自在复制这些dapp,学习如何开发智能合约。Chainpip还反对多种以太坊系的链: Ethereum(ETH), BNB Smart Chain(BSC), Polygon PoS Chain(MATIC)等。

  Chainpip地址:www.chainpip.com


推荐阅读
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 在 CentOS 7 系统中安装 Scrapy 时遇到了一些挑战。尽管 Scrapy 在 Ubuntu 上安装简便,但在 CentOS 7 上需要额外的配置和步骤。本文总结了常见问题及其解决方案,帮助用户顺利安装并使用 Scrapy 进行网络爬虫开发。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • Spring注解开发指南:@Resource与@Component详解 ... [详细]
  • 探讨 jBPM 数据库表结构设计的精要与实践
    探讨 jBPM 数据库表结构设计的精要与实践 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • Spring 中获取 Request 的多种方式及其线程安全性的深入解析
    本文深入探讨了在Spring MVC框架下获取HTTP请求对象的多种方法,详细分析了每种方法的实现原理及其线程安全性,为开发者提供了全面的技术参考。 ... [详细]
author-avatar
公民不是百姓2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有