今天想把已经写好的合约使用UML梳理一下,因为使用到了接囗、库、抽象合约及合约,所以想使用UML梳理一下更清晰。本来想用Viso,但是在其它语言里没有库(library)的概念,所以查了一下如何表示,结果意外发现了一个好功能,Sol2UML,原来Remix插件也支持这个功能,非常简单易用,这真是大大节约了手写生成类图的时间。下面来演示一下:

1、Remix生成UML图

插件 SOLIDITY 2 UML - 生成UML图

(1)编译并部署好合约

(2)使用插件 SOLIDITY 2 UML 生成UML类图

步骤

  1. 在Remix左下方点击 "插件管理" 图标
  2. 在上方搜索框搜索关键字 “sol”
  3. 搜索结果中有SOLIDITY 2 UML插件,点击 “Activate” 按钮

(3)查看生成的UML类图

对应右侧会显示Solidity 2 UML标签,生成合约对应的UML类图,此图是一个.svg文件,可以将其下载保存。

这里有个问题,就是 import 导入文件中的合约、接囗或库不在这个生成的UML中。

插件 SOLHINT LINTER - 警告提示

前提:编译并部署好合约

(1)使用插件 SOLHINT LINTER

在插件中搜索sol时,可以看到SOLHINT LINTER插件

(2)查看警告结果

点击“Activate” 按钮,可以看到左侧出现提示警告条数,可查看具体有哪些警告提示,点击一条警告信息,会定位到相应的代码行。我写的合约警告提示太多了,需要好好优化一下了。

2、以太坊浏览器查看sol2uml

(1)打开开源合约

以太坊浏览器也可以直接查看sol2uml,找到一个开源的合约,点击“Contract”,会看到有个 “More Options” 按钮

(2)选择 “Sol2Uml” 功能

点击“More Options” 按钮,选择下拉列表中的 “Sol2Uml” 选项

(3)查看UML图

弹出一个新的浏览器标签页,显示生成的UML图

3、本地配置Sol2Uml(未成功)

查看文档时,看到可以通过npm 引用sol2uml包生成UML图,想在本地尝试一下,但执行第一条命令就没成功,在此只做个记录。参考地址:Morioh

npm link sol2uml --only=production

错误如下:

此错误目前未解决,后面命令没有继续执行。

Solidity - 使用Remix 插件 SOLIDITY 2 UML 生成UML类图 及 在以太坊浏览器中查看UML类图相关推荐

  1. VSCode插件之View In Browser/Open in Browser‘在浏览器中查看’

    推荐: vscode浏览器打开html vscode修改默认浏览器 一. VSCode插件View InBrowser,在浏览器中查看 当前插件功能类似Atom中的"Run-In-Brows ...

  2. python 生成pdf收据_python如何与以太坊交互并将区块链信息写入SQLite

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

  3. 以太坊 solidity在线实时编译器

    1 通过docker容器启动 下载docker镜像 docker pull remixproject/remix-ide:latest 2 本地启动容器 设置端口号 8545 docker run - ...

  4. 以太坊Solidity之Truffle的使用流程与集成指南

    一.Truffle 简介 ① 什么是 Truffle ? Truffle 是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单. Truffle 有以下特性: 内置的 ...

  5. 以太坊ETH-智能合约开发-solidity源码分析-truffle进阶

    0. 背景 上一篇文章我们从合约编写.编译.部署.交互等几个方面介绍了truffle的大致用法. 本篇主要继续深入地介绍truffle的高级用法 + 合约源码分析 1. 将合约部署到测试网Ropste ...

  6. solidity智能合约[37]-以太坊虚拟机数据存储

    EVM 当调用solidity函数时,都会在以太坊虚拟机当中来执行.因此了解以太坊虚拟机的细节,了解其数据的存储机制变得尤为重要. 以太坊虚拟机中的空间分为3大部分.分别为storage.stack与 ...

  7. 在以太坊生成随机数的几种方式(含代码)

    一.什么是随机数 随机数都是由随机数生成器(Random Number Generator)生成的.随机数分为"真随机数"和"伪随机数"两种. 1. 真随机数 ...

  8. VSCode: 快速生成 html 骨架和在浏览器中打开

    使用vscode快速生成html 骨架 打开vscode新建一个文件然后按照以下步骤进行操作 新建html文件,记住一定要保存然后才能使用快捷键! 然后就生成了html骨架,也可以使用快捷键 !+TA ...

  9. VsCode快速生成html 骨架,使用中文,在浏览器打开

    使用vscode快速生成html 骨架 首先第一步打开vscode新建一个文件然后按照以下步骤进行操作 新建html文件,记住一定要保存然后才能使用快捷键! 然后就生成了html骨架,也可以使用快捷键 ...

最新文章

  1. 组合数函数-快速提取所有可能的组合数
  2. windows使用ssh2远程登陆ubuntu
  3. C#WindowsForm之创建窗体
  4. Java动态代理类使用
  5. 王守仁的学前教育思想
  6. SharePoint 2010 同步用户Services 一直Starting 终极解决方案
  7. 从容器到容器云,什么才是 Kubernetes 的本质?
  8. Android数据存储之SQLite
  9. ASP.NET Ajax编程技术学习
  10. npm install mysql --save-dev
  11. 走进异步编程的世界 - 开始接触 async/await
  12. 前端学习(2793):完成联系我们页面和地图
  13. 1088. [SCOI2005]扫雷Mine【网格DP】
  14. Nacos部署中的一些常见问题汇总
  15. mysql修改字段null为空字符串
  16. 李迟2021年10月知识总结
  17. 指针06:指针和数组
  18. 标准模板库(STL)之 map 列传 (二)
  19. css让文本不会被选中,鼠标变小手
  20. Eclipse护眼背景色图文设置

热门文章

  1. matlab 逆序画图,将行向量元素逆序并输出
  2. c语言课程设计fir滤波器设计,fir滤波器设计c语言
  3. python输入10个数、找出对称数_Python入门100道习题(7)——找对称数
  4. 同一电脑,java应用在win10与centos8启动速度对比
  5. RSA加解密及RSA签名验证
  6. linux支持什么照片格式,linux转换照片格式
  7. python定义数组大小_请问在python数组要先定义长度吗?
  8. MongoDB/Robo3T安装及使用
  9. 【计算机科学速成课】[40集全/文字版] - 20.文件系统
  10. js合并数组相同key值的项