@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.
- package/README.md +9 -208
- package/contracts/interfaces/ICreate3Deployer.sol +16 -0
- package/contracts/interfaces/IDaiLikePermit.sol +13 -0
- package/contracts/interfaces/IERC20MetadataUppercase.sol +12 -0
- package/contracts/interfaces/IERC7597Permit.sol +13 -0
- package/contracts/interfaces/IPermit2.sol +45 -12
- package/contracts/interfaces/IWETH.sol +17 -0
- package/contracts/libraries/AddressArray.sol +73 -25
- package/contracts/libraries/AddressLib.sol +2 -1
- package/contracts/libraries/AddressSet.sol +52 -14
- package/contracts/libraries/BySigTraits.sol +37 -5
- package/contracts/libraries/BytesMemory.sol +2 -1
- package/contracts/libraries/BytesStorage.sol +2 -1
- package/contracts/libraries/ECDSA.sol +111 -0
- package/contracts/libraries/RevertReasonForwarder.sol +13 -3
- package/contracts/libraries/RevertReasonParser.sol +11 -2
- package/contracts/libraries/SafeERC20.sol +1 -1
- package/contracts/libraries/StringUtil.sol +21 -3
- package/contracts/libraries/UniERC20.sol +57 -12
- package/contracts/mixins/BySig.sol +220 -0
- package/contracts/mixins/EthReceiver.sol +27 -0
- package/contracts/mixins/OnlyWethReceiver.sol +31 -0
- package/contracts/mixins/PermitAndCall.sol +39 -0
- package/contracts/mixins/SelfdestructEthSender.sol +32 -0
- package/contracts/mocks/ERC20PermitMock.sol +12 -0
- package/contracts/mocks/SelfdestructEthSenderMock.sol +27 -0
- package/contracts/mocks/TokenCustomDecimalsMock.sol +25 -4
- package/contracts/mocks/TokenMock.sol +19 -0
- package/dist/docgen/index.d.ts +2 -0
- package/dist/docgen/index.js +7 -0
- package/dist/docgen/index.js.map +1 -0
- package/dist/docgen/templates.d.ts +6 -0
- package/dist/docgen/templates.js +15 -0
- package/dist/docgen/templates.js.map +1 -0
- package/dist/hardhat-setup/networks.d.ts +23 -0
- package/dist/hardhat-setup/networks.js +22 -0
- package/dist/hardhat-setup/networks.js.map +1 -1
- package/dist/src/expect.d.ts +12 -0
- package/dist/src/expect.js +12 -0
- package/dist/src/expect.js.map +1 -1
- package/dist/src/permit.d.ts +131 -2
- package/dist/src/permit.js +126 -9
- package/dist/src/permit.js.map +1 -1
- package/dist/src/prelude.d.ts +6 -0
- package/dist/src/prelude.js +6 -0
- package/dist/src/prelude.js.map +1 -1
- package/dist/src/profileEVM.d.ts +26 -0
- package/dist/src/profileEVM.js +30 -3
- package/dist/src/profileEVM.js.map +1 -1
- package/dist/src/utils.d.ts +79 -0
- package/dist/src/utils.js +92 -1
- package/dist/src/utils.js.map +1 -1
- package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.d.ts +29 -0
- package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.js +3 -0
- package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.js.map +1 -0
- package/dist/typechain-types/contracts/mixins/index.d.ts +1 -0
- package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.d.ts +37 -0
- package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.js +3 -0
- package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.js.map +1 -0
- package/dist/typechain-types/contracts/mocks/TokenCustomDecimalsMock.d.ts +1 -5
- package/dist/typechain-types/contracts/mocks/index.d.ts +1 -0
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.d.ts +1 -1
- package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.d.ts +17 -0
- package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.js +33 -0
- package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/mixins/index.d.ts +1 -0
- package/dist/typechain-types/factories/contracts/mixins/index.js +3 -1
- package/dist/typechain-types/factories/contracts/mixins/index.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.d.ts +49 -0
- package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js +75 -0
- package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js.map +1 -0
- package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.d.ts +1 -11
- package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js +1 -14
- package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/mocks/index.d.ts +1 -0
- package/dist/typechain-types/factories/contracts/mocks/index.js +3 -1
- package/dist/typechain-types/factories/contracts/mocks/index.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js.map +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.d.ts +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js +1 -1
- package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js.map +1 -1
- package/dist/typechain-types/index.d.ts +4 -0
- package/dist/typechain-types/index.js +6 -2
- package/dist/typechain-types/index.js.map +1 -1
- package/package.json +29 -21
- package/utils/README.md +198 -0
- package/utils/docify.utils.js +3 -34
- package/utils/file-dependencies.js +0 -0
- package/utils/test-docgen.js +0 -0
- package/utils/contract.hbs +0 -69
package/utils/README.md
ADDED
|
@@ -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
|
+
```
|
package/utils/docify.utils.js
CHANGED
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
3
|
-
const
|
|
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
|
package/utils/test-docgen.js
CHANGED
|
File without changes
|
package/utils/contract.hbs
DELETED
|
@@ -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}}
|