Skip to content

Release 2.0.0

Compare
Choose a tag to compare
@naddison36 naddison36 released this 24 Jul 10:50
· 122 commits to master since this release
b2f3a80

Changes to the command line interface

  • Class diagrams are now under a class subcommand. sol2uml class
  • New storage subcommand to draw the storage slots of a contract. sol2uml storage
  • New flatten subcommand that downloads the verified source code from Etherscan to a local Solidity file. sol2uml flatten

Renamed command line options

  • -d --depthLimit to -sf --subfolders
  • -a --hideAttributes to -hv --hideVariables
  • -p --hideOperations to -hf --hideFunctions
  • -e, --hideEnums to -he, --hideEnums
  • -s, --hideStructs to -hs, --hideStructs
  • -l, --hideLibraries to -hl, --hideLibraries
  • -t, --hideInterfaces to -hi, --hideInterfaces
  • -r, --hideInternals to -hp, --hidePrivates

New command line options

  • Added -d --depth to limit the depth of contracts connected to the base contracts.
  • Added -ha --hideAbstract to hide all abstract contracts.
  • Added -hn, --hideFilename to hide the relative filename of a contract.

Dependencies

  • Only support node 14 and above as TypeScript target is now ES2020
  • Replaced vis.js with the maintained @aduh95/viz.js which supports Graphviz 5.0.0
  • Replaced svg-to-png with the maintained convert-svg-to-png.

Fixes

  • Improved linkages of classes when there are duplicate contract names, explicit imports and import aliases.
  • If a contract or library contains a struct, it is marked as an aggregate association. A separate dependency line is used to link a contract to a struct. This can be a storage (solid line) or memory (dashed line) dependency.
  • Structs in libraries are now linked to their dependent contract.
  • Fixed the diamond inheritance problem.
  • Association from an array of a user-defined type.