@1inch/solidity-utils 4.0.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/README.md +9 -208
  2. package/contracts/interfaces/ICreate3Deployer.sol +16 -0
  3. package/contracts/interfaces/IDaiLikePermit.sol +13 -0
  4. package/contracts/interfaces/IERC20MetadataUppercase.sol +12 -0
  5. package/contracts/interfaces/IERC7597Permit.sol +13 -0
  6. package/contracts/interfaces/IPermit2.sol +45 -12
  7. package/contracts/interfaces/IWETH.sol +17 -0
  8. package/contracts/libraries/AddressArray.sol +73 -25
  9. package/contracts/libraries/AddressLib.sol +2 -1
  10. package/contracts/libraries/AddressSet.sol +52 -14
  11. package/contracts/libraries/BySigTraits.sol +37 -5
  12. package/contracts/libraries/BytesMemory.sol +2 -1
  13. package/contracts/libraries/BytesStorage.sol +2 -1
  14. package/contracts/libraries/ECDSA.sol +111 -0
  15. package/contracts/libraries/RevertReasonForwarder.sol +13 -3
  16. package/contracts/libraries/RevertReasonParser.sol +11 -2
  17. package/contracts/libraries/SafeERC20.sol +1 -1
  18. package/contracts/libraries/StringUtil.sol +21 -3
  19. package/contracts/libraries/UniERC20.sol +57 -12
  20. package/contracts/mixins/BySig.sol +220 -0
  21. package/contracts/mixins/EthReceiver.sol +27 -0
  22. package/contracts/mixins/OnlyWethReceiver.sol +31 -0
  23. package/contracts/mixins/PermitAndCall.sol +39 -0
  24. package/contracts/mixins/SelfdestructEthSender.sol +32 -0
  25. package/contracts/mocks/ERC20PermitMock.sol +12 -0
  26. package/contracts/mocks/SelfdestructEthSenderMock.sol +27 -0
  27. package/contracts/mocks/TokenCustomDecimalsMock.sol +25 -4
  28. package/contracts/mocks/TokenMock.sol +19 -0
  29. package/dist/docgen/index.d.ts +2 -0
  30. package/dist/docgen/index.js +7 -0
  31. package/dist/docgen/index.js.map +1 -0
  32. package/dist/docgen/templates.d.ts +6 -0
  33. package/dist/docgen/templates.js +15 -0
  34. package/dist/docgen/templates.js.map +1 -0
  35. package/dist/hardhat-setup/networks.d.ts +23 -0
  36. package/dist/hardhat-setup/networks.js +22 -0
  37. package/dist/hardhat-setup/networks.js.map +1 -1
  38. package/dist/src/expect.d.ts +12 -0
  39. package/dist/src/expect.js +12 -0
  40. package/dist/src/expect.js.map +1 -1
  41. package/dist/src/permit.d.ts +131 -2
  42. package/dist/src/permit.js +126 -9
  43. package/dist/src/permit.js.map +1 -1
  44. package/dist/src/prelude.d.ts +6 -0
  45. package/dist/src/prelude.js +6 -0
  46. package/dist/src/prelude.js.map +1 -1
  47. package/dist/src/profileEVM.d.ts +26 -0
  48. package/dist/src/profileEVM.js +30 -3
  49. package/dist/src/profileEVM.js.map +1 -1
  50. package/dist/src/utils.d.ts +79 -0
  51. package/dist/src/utils.js +92 -1
  52. package/dist/src/utils.js.map +1 -1
  53. package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.d.ts +29 -0
  54. package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.js +3 -0
  55. package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.js.map +1 -0
  56. package/dist/typechain-types/contracts/mixins/index.d.ts +1 -0
  57. package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.d.ts +37 -0
  58. package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.js +3 -0
  59. package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.js.map +1 -0
  60. package/dist/typechain-types/contracts/mocks/TokenCustomDecimalsMock.d.ts +1 -5
  61. package/dist/typechain-types/contracts/mocks/index.d.ts +1 -0
  62. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +1 -1
  63. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js +1 -1
  64. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +1 -1
  65. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.js +1 -1
  66. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +1 -1
  67. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.js +1 -1
  68. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +1 -1
  69. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +1 -1
  70. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.d.ts +1 -1
  71. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.js +1 -1
  72. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.d.ts +1 -1
  73. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.js +1 -1
  74. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.d.ts +1 -1
  75. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js +1 -1
  76. package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.d.ts +1 -1
  77. package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.js +1 -1
  78. package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.d.ts +1 -1
  79. package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.js +1 -1
  80. package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.d.ts +1 -1
  81. package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.js +1 -1
  82. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.d.ts +1 -1
  83. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.js +1 -1
  84. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.d.ts +1 -1
  85. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.js +1 -1
  86. package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.d.ts +17 -0
  87. package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.js +33 -0
  88. package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.js.map +1 -0
  89. package/dist/typechain-types/factories/contracts/mixins/index.d.ts +1 -0
  90. package/dist/typechain-types/factories/contracts/mixins/index.js +3 -1
  91. package/dist/typechain-types/factories/contracts/mixins/index.js.map +1 -1
  92. package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.d.ts +1 -1
  93. package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js +1 -1
  94. package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js.map +1 -1
  95. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.d.ts +49 -0
  96. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js +75 -0
  97. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js.map +1 -0
  98. package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.d.ts +1 -11
  99. package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js +1 -14
  100. package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js.map +1 -1
  101. package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.d.ts +1 -1
  102. package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js +1 -1
  103. package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js.map +1 -1
  104. package/dist/typechain-types/factories/contracts/mocks/index.d.ts +1 -0
  105. package/dist/typechain-types/factories/contracts/mocks/index.js +3 -1
  106. package/dist/typechain-types/factories/contracts/mocks/index.js.map +1 -1
  107. package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.d.ts +1 -1
  108. package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js +1 -1
  109. package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js.map +1 -1
  110. package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.d.ts +1 -1
  111. package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js +1 -1
  112. package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js.map +1 -1
  113. package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.d.ts +1 -1
  114. package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js +1 -1
  115. package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js.map +1 -1
  116. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.d.ts +1 -1
  117. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js +1 -1
  118. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js.map +1 -1
  119. package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.d.ts +1 -1
  120. package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.js +1 -1
  121. package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.js.map +1 -1
  122. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.d.ts +1 -1
  123. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js +1 -1
  124. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js.map +1 -1
  125. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.d.ts +1 -1
  126. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js +1 -1
  127. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js.map +1 -1
  128. package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.d.ts +1 -1
  129. package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js +1 -1
  130. package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js.map +1 -1
  131. package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.d.ts +1 -1
  132. package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js +1 -1
  133. package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js.map +1 -1
  134. package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.d.ts +1 -1
  135. package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js +1 -1
  136. package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js.map +1 -1
  137. package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.d.ts +1 -1
  138. package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js +1 -1
  139. package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js.map +1 -1
  140. package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.d.ts +1 -1
  141. package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.js +1 -1
  142. package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.d.ts +1 -1
  143. package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js +1 -1
  144. package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js.map +1 -1
  145. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.d.ts +1 -1
  146. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js +1 -1
  147. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js.map +1 -1
  148. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.d.ts +1 -1
  149. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js +1 -1
  150. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js.map +1 -1
  151. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.d.ts +1 -1
  152. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js +1 -1
  153. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js.map +1 -1
  154. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.d.ts +1 -1
  155. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js +1 -1
  156. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js.map +1 -1
  157. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.d.ts +1 -1
  158. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js +1 -1
  159. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js.map +1 -1
  160. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.d.ts +1 -1
  161. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js +1 -1
  162. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js.map +1 -1
  163. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.d.ts +1 -1
  164. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js +1 -1
  165. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js.map +1 -1
  166. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.d.ts +1 -1
  167. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js +1 -1
  168. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js.map +1 -1
  169. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.d.ts +1 -1
  170. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js +1 -1
  171. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js.map +1 -1
  172. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.d.ts +1 -1
  173. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js +1 -1
  174. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js.map +1 -1
  175. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.d.ts +1 -1
  176. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js +1 -1
  177. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js.map +1 -1
  178. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.d.ts +1 -1
  179. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js +1 -1
  180. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js.map +1 -1
  181. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.d.ts +1 -1
  182. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js +1 -1
  183. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js.map +1 -1
  184. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.d.ts +1 -1
  185. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js +1 -1
  186. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js.map +1 -1
  187. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.d.ts +1 -1
  188. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js +1 -1
  189. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js.map +1 -1
  190. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.d.ts +1 -1
  191. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js +1 -1
  192. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js.map +1 -1
  193. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.d.ts +1 -1
  194. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js +1 -1
  195. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js.map +1 -1
  196. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.d.ts +1 -1
  197. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js +1 -1
  198. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js.map +1 -1
  199. package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.d.ts +1 -1
  200. package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js +1 -1
  201. package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js.map +1 -1
  202. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.d.ts +1 -1
  203. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js +1 -1
  204. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js.map +1 -1
  205. package/dist/typechain-types/index.d.ts +4 -0
  206. package/dist/typechain-types/index.js +6 -2
  207. package/dist/typechain-types/index.js.map +1 -1
  208. package/package.json +29 -21
  209. package/utils/README.md +198 -0
  210. package/utils/docify.utils.js +3 -34
  211. package/utils/file-dependencies.js +0 -0
  212. package/utils/test-docgen.js +0 -0
  213. package/utils/contract.hbs +0 -69
@@ -0,0 +1,198 @@
1
+ ### UTILS
2
+
3
+ #### Docify
4
+
5
+ Generates documentation in markdown format from natspec docs
6
+
7
+ ##### Usage
8
+ Add to `package.json` file solidity compiler version (add version you use), solidity-docgen 0.6 util and shortcut to run command
9
+
10
+ `devDependencies` section
11
+
12
+ ```
13
+ "solc": "0.8.23",
14
+ "solidity-docgen": "0.6.0-beta.36",
15
+ ```
16
+
17
+ `scripts` section
18
+ ```
19
+ "docify": "yarn hardhat docgen; npx solidity-utils-docify"
20
+ ```
21
+
22
+ You can set output directory with ENV variable:
23
+ ```
24
+ "docify": "DOCGEN_OUTPUT_DIR=./docs npx solidity-utils-docify"
25
+ ```
26
+
27
+ Then set appopriate settings for docgen in `hardhat.config.js` file
28
+
29
+ ```JavaScript
30
+ require('solidity-docgen');
31
+
32
+ // You can use 1inch templates built-in templates
33
+ const { oneInchTemplates } = require('@1inch/solidity-utils/docgen');
34
+
35
+ module.exports = {
36
+ ...
37
+ docgen: {
38
+ outputDir: "docs", // Can be omitted, docs used by default
39
+ templates: oneInchTemplates(), // 1inch templates
40
+ pages: 'files', // Doc output format for 1inch templates
41
+ exclude: ['mocks', 'test'], // Directories to exclude from generation
42
+ }
43
+ }
44
+
45
+ ```
46
+
47
+ #### Dependencies list (imports-list)
48
+
49
+ Lists all imports recursively for the given solidity contract file.
50
+
51
+ ##### Usage
52
+ ```
53
+ npx imports-list -i <solidity file> [-a <alias list>]
54
+ ```
55
+
56
+ Available parameters
57
+ ```
58
+ Options:
59
+ -i, --input <input> file to get dependencies for
60
+ -a, --alias [alias...] projects alias list
61
+ -h, --help display help for command
62
+ ```
63
+ Aliases are used to provide source code for third-party projects.
64
+ For example, your contract uses imports from your other project and import is defined as
65
+ ```
66
+ import "@1inch/otherproject/contracts/dependency.sol";
67
+ ```
68
+ and you've got source code for `@1inch/otherproject` locally. Then you provide local path for the project to rip dependencies from `dependency.sol` as well.
69
+ If there are several dependencies they should be provided using space as separator.
70
+
71
+ ##### Example
72
+ File imports
73
+ ```Solidity
74
+ #rootFile.sol
75
+ import '@1inch/otherproject/contracts/dependency.sol'
76
+
77
+ #@1inch/otherproject/contracts/dependency.sol
78
+ import 'helpers/helper.sol'
79
+ ```
80
+ File and folder structure
81
+ ```
82
+ rootFolder/
83
+
84
+ -- mainProject/
85
+ ---- contracts/
86
+ ------ rootFile.sol
87
+
88
+ -- dependencyProject/
89
+ ---- helpers/
90
+ ------ helper.sol
91
+ ---- dependency.sol
92
+ ```
93
+ Command
94
+ ```
95
+ rootFolder/mainProject % npx imports-list -i './contracts/rootFile.sol' -a '@1inch/otherproject' '../dependencyProject'
96
+ ```
97
+ Output
98
+ ```
99
+ Project => root
100
+ not set
101
+
102
+ Project => @1inch/otherproject
103
+ ../otherproject/contracts/dependency.sol
104
+ ../otherproject/contracts/helpers/helper.sol
105
+ ```
106
+
107
+ #### Test documentation generator (test-docgen)
108
+ Script generates documentation for tests in markdown format.
109
+ Give descriptions for `describe` and `it` sections and build documentation using these descriptions.
110
+
111
+ ##### Example
112
+ Test described as shown below
113
+
114
+ ```JavaScript
115
+ // Test suite
116
+ describe('My feature', function() {
117
+ // Nested test suite
118
+ describe("My subfeature", function() {
119
+ /*
120
+ **Test case 1**
121
+ Test case should work
122
+ */
123
+ it("My case", function() {
124
+ // code here
125
+ })
126
+ })
127
+ })
128
+ ```
129
+ will generated the following output
130
+ ```Markdown
131
+
132
+ # My feature
133
+
134
+ Test suite
135
+
136
+ ## My subfeature
137
+
138
+ Nested test suite
139
+
140
+ ### My case
141
+
142
+ **Test case 1**
143
+ Test case should work
144
+ ```
145
+
146
+ ##### Installation
147
+ - Before use install documentation parser
148
+ ```
149
+ yarn add acquit --dev
150
+ ```
151
+ - Optionally configure script for default usage. Add to `script` section in `package.json`
152
+ ```
153
+ "test:docs": "npx test-docgen"
154
+ ```
155
+ - Optionally configure script for generating test list only. Add to `script` section in `package.json`
156
+ ```
157
+ "test:docs": "npx test-docgen -l"
158
+ ```
159
+
160
+ ##### Usage
161
+ If script configured
162
+ ```
163
+ yarn test:docs
164
+ ```
165
+ or
166
+ ```
167
+ npx test-docgen
168
+ ```
169
+
170
+ Available parameters
171
+ ```
172
+ Options:
173
+ -i, --input <input> tests directory (default: "test")
174
+ -x, --exclude [exclude] exclude directories and files. omit argument to exclude all subdirectories (default: false)
175
+ -o, --output <output> file to write output (default: "TESTS.md")
176
+ -c, --code include code (default: false)
177
+ -l, --list list tests only, do not include description (default: false)
178
+ -d, --debug debug mode (default: false)
179
+ -h, --help display help for command
180
+ ```
181
+ ##### Examples
182
+ Generate docs with default input and output
183
+ ```
184
+ npx test-docgen
185
+ ```
186
+
187
+ Generate docs for files in folders `tests/mocks` and `tests/utils`
188
+ ```
189
+ npx test-docgen -i "tests/mocks;tests/utils"
190
+ ```
191
+ Exclude from docs file `test/mock-exclude.js` and `test/utils folder`
192
+ ```
193
+ npx test-docgen -x "tests/mock-exclude.js;tests/utils"
194
+ ```
195
+ Generate list of tests only
196
+ ```
197
+ npx test-docgen -l
198
+ ```
@@ -1,27 +1,14 @@
1
1
  #!/usr/bin/env node
2
- const SOLC_NPM_NAME = 'solc';
3
- const BASE_DIR = 'docgen';
4
- const SCRIPT_DIR = __dirname;
5
- const INPUT_DIR = 'contracts';
6
- const OUTPUT_DIR = process.env.DOCGEN_OUTPUT_DIR || `${BASE_DIR}/docs`;
7
- const HELPERS_PATH = `${SCRIPT_DIR}/solidity-docgen-helpers.js`;
2
+ const BASE_DIR = 'docs';
3
+ const OUTPUT_DIR = process.env.DOCGEN_OUTPUT_DIR || `${BASE_DIR}`;
8
4
 
9
5
  const fs = require('fs');
10
6
  const path = require('path');
11
- const spawn = require('cross-spawn');
12
7
 
13
8
  function getFileNameWithoutExtension (fileName) {
14
9
  return fileName.substr(0, fileName.lastIndexOf('.'));
15
10
  }
16
11
 
17
- function runProcess (name, args) {
18
- console.log(`running ${name} with args ${JSON.stringify(args)}`);
19
- const result = spawn.sync(name, args, { stdio: ['inherit', 'inherit', 'pipe'] });
20
- if (result.stderr.length > 0) {
21
- throw new Error(result.stderr);
22
- }
23
- }
24
-
25
12
  function getReadmes (targetPath) {
26
13
  let result = [];
27
14
  const readmePath = path.join(targetPath, 'README.md');
@@ -93,7 +80,7 @@ function generateGitbookFiles () {
93
80
  if (fs.existsSync(path.join(BASE_DIR, 'README.md'))){
94
81
  fs.copyFileSync(path.join(BASE_DIR, 'README.md'), path.join(OUTPUT_DIR, 'README.md'));
95
82
  }
96
-
83
+
97
84
  const readmesToGenerate = getReadmes(OUTPUT_DIR);
98
85
  const summary = getSummary(OUTPUT_DIR);
99
86
 
@@ -108,23 +95,5 @@ function removeUnwantedDocs () {
108
95
  }
109
96
  }
110
97
 
111
- const solidityDocgenArgs = [
112
- 'solidity-docgen',
113
- '-i',
114
- INPUT_DIR,
115
- '-o',
116
- OUTPUT_DIR,
117
- '--solc-module',
118
- SOLC_NPM_NAME,
119
- '--solc-settings',
120
- JSON.stringify({ optimizer: { enabled: false } }),
121
- '--templates',
122
- SCRIPT_DIR,
123
- '--helpers',
124
- HELPERS_PATH,
125
- ];
126
-
127
- fs.rmSync(OUTPUT_DIR, { force: true, recursive: true });
128
- runProcess('npx', solidityDocgenArgs);
129
98
  generateGitbookFiles();
130
99
  removeUnwantedDocs();
File without changes
File without changes
@@ -1,69 +0,0 @@
1
- # {{{name}}}
2
-
3
-
4
- {{{natspec.title}}}
5
- {{{natspec.userdoc}}}
6
- {{{natspec.devdoc}}}
7
-
8
- {{#if (withoutFirstElement inheritance)}}
9
- ## Derives
10
- {{/if}}
11
- {{#each (withoutFirstElement inheritance)}}
12
- {{#if (getRelativeDocPath name source.contractsDir source.solcOutput.sources)}}
13
- - [{{name}}]({{getRelativeDocPath name source.contractsDir source.solcOutput.sources}})
14
- {{else}}
15
- - {{name}}
16
- {{/if}}
17
- {{/each}}
18
-
19
- {{#if ownFunctions}}
20
- ## Functions
21
- {{/if}}
22
- {{#ownFunctions}}
23
- ### {{name}}
24
- ```solidity
25
- function {{name}}(
26
- {{#args}}
27
- {{type}} {{name}}{{#if @last}}{{else}},{{/if}}
28
- {{/args}}
29
- ) {{visibility}}{{#if outputs}} returns ({{outputs}}){{/if}}
30
- ```
31
- {{#if natspec.userdoc}}{{natspec.userdoc}}{{/if}}
32
- {{#if natspec.devdoc}}{{natspec.devdoc}}{{/if}}
33
- {{#if args}}
34
- #### Parameters:
35
- | Name | Type | Description |
36
- | :--- | :--- | :------------------------------------------------------------------- |
37
- {{#args}}
38
- |`{{name}}` | {{type}} | {{#with (lookup ../natspec.params @index)~}} {{ removeNewlines description }} {{/with}}
39
- {{/args}}{{/if}}
40
- {{#if natspec.returns}}
41
- #### Return Values:
42
- | Name | Type | Description |
43
- | :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
44
- {{#natspec.returns}}
45
- |`{{param}}`| {{#lookup ../outputs.types @index}}{{/lookup}} | {{{removeNewlines description}}}
46
- {{/natspec.returns}}{{/if}}
47
- {{/ownFunctions}}
48
- {{#if ownEvents}}
49
- ## Events
50
- {{/if}}
51
- {{#ownEvents}}
52
- ### {{name}}
53
- ```solidity
54
- event {{name}}(
55
- {{#args}}
56
- {{type}} {{name}}{{#if @last}}{{else}},{{/if}}
57
- {{/args}}
58
- )
59
- ```
60
- {{#if natspec.userdoc}}{{natspec.userdoc}}{{/if}}
61
- {{#if natspec.devdoc}}{{natspec.devdoc}}{{/if}}
62
- {{#if args}}
63
- #### Parameters:
64
- | Name | Type | Description |
65
- | :--- | :--- | :------------------------------------------------------------------- |
66
- {{#args}}
67
- |`{{name}}` | {{type}} | {{#with (lookup ../natspec.params @index)~}} {{ removeNewlines description }} {{/with}}
68
- {{/args}}{{/if}}
69
- {{/ownEvents}}