-
install
maple-toolseither globally (executable vianpx maple-tools) or cloned locally beside this directory (executable vianode ../maple-tools/bin/index.js) -
run
make buildin each relevant module directory -
from here, run:
node ../maple-tools/bin/index.js merge-abi --in ./modules/fixed-term-loan/out --out ./artifacts --outName="FixedTermLoan" --name "MapleLoan" --filter="IMapleLoan" --filter="IMapleLoanEvents" --filter="MapleLoan" --filter="IMapleProxied" --filter="IProxied"
node ../maple-tools/bin/index.js merge-abi --in ./modules/fixed-term-loan/out --out ./artifacts --outName="FixedTermLoanInitializer" --name "MapleLoanInitializer" --filter="IMapleLoanInitializer" --filter="MapleLoanInitializer"
node ../maple-tools/bin/index.js merge-abi --in ./modules/fixed-term-loan/out --out ./artifacts --outName="FixedTermRefinancer" --name "Refinancer" --filter="IRefinancer" --filter="Refinancer"
node ../maple-tools/bin/index.js merge-abi --in ./modules/fixed-term-loan-manager/out --out ./artifacts --outName="FixedTermLoanManager" --name "LoanManager" --filter="ILoanManager" --filter="LoanManager" --filter="IMapleProxied" --filter="IProxied"
node ../maple-tools/bin/index.js merge-abi --in ./modules/fixed-term-loan-manager/out --out ./artifacts --outName="FixedTermLoanManagerInitializer" --name "LoanManagerInitializer" --filter="ILoanManagerInitializer" --filter="LoanManagerInitializer"
node ../maple-tools/bin/index.js merge-abi --in ./modules/globals/out --out ./artifacts --outName="Globals" --name "MapleGlobals" --filter="IMapleGlobals" --filter="MapleGlobals" --filter="INonTransparentProxied" --filter="NonTransparentProxied" --filter="INonTransparentProxy" --filter="NonTransparentProxy"
node ../maple-tools/bin/index.js merge-abi --in ./modules/open-term-loan/out --out ./artifacts --outName="OpenTermLoan" --name "MapleLoan" --filter="IMapleLoan" --filter="IMapleLoanEvents" --filter="MapleLoan" --filter="IMapleProxied" --filter="IProxied"
node ../maple-tools/bin/index.js merge-abi --in ./modules/open-term-loan/out --out ./artifacts --outName="OpenTermLoanInitializer" --name "MapleLoanInitializer" --filter="IMapleLoanInitializer" --filter="MapleLoanInitializer"
node ../maple-tools/bin/index.js merge-abi --in ./modules/open-term-loan/out --out ./artifacts --outName="OpenTermLoanRefinancer" --name "MapleRefinancer" --filter="IMapleRefinancer" --filter="MapleRefinancer"
node ../maple-tools/bin/index.js merge-abi --in ./modules/open-term-loan/out --out ./artifacts --outName="OpenTermLoanFactory" --name "MapleLoanFactory" --filter="IMapleLoanFactory" --filter="MapleLoanFactory" --filter="IMapleProxyFactory" --filter="MapleProxyFactory"
node ../maple-tools/bin/index.js merge-abi --in ./modules/open-term-loan-manager/out --out ./artifacts --outName="OpenTermLoanManager" --name "LoanManager" --filter="ILoanManager" --filter="LoanManager" --filter="IMapleProxied" --filter="IProxied"
node ../maple-tools/bin/index.js merge-abi --in ./modules/open-term-loan-manager/out --out ./artifacts --outName="OpenTermLoanManagerInitializer" --name "LoanManagerInitializer" --filter="ILoanManagerInitializer" --filter="LoanManagerInitializer"
node ../maple-tools/bin/index.js merge-abi --in ./modules/open-term-loan-manager/out --out ./artifacts --outName="OpenTermLoanManagerFactory" --name "LoanManagerFactory" --filter="ILoanManagerFactory" --filter="LoanManagerFactory" --filter="IMapleProxyFactory" --filter="MapleProxyFactory"
node ../maple-tools/bin/index.js merge-abi --in ./modules/pool/out --out ./artifacts --name "PoolManager" --filter="IPoolManager" --filter="PoolManager" --filter="IMapleProxied" --filter="IProxied"
node ../maple-tools/bin/index.js merge-abi --in ./modules/pool/out --out ./artifacts --name "PoolDeployer" --filter="IPoolDeployer" --filter="PoolDeployer"The above will generate artifacts in the ./artifacts directory, for all relevant contracts. These artifacts each contain the merged ABI across all their dependencies (as listed via the various filter), as well as the natspec for each ABI element. Notice the --outName usage for some command, to handle renaming the resulting artifact file to avoid collisions.
- run
node ../maple-tools/bin/index.js build-docs --in ./artifacts --out ./docs --templates ./templates`To generate a formatted documents in ./docs for each artifact in ./artifacts using the contract.hbs template in ./templates.
- Open each document and rename and edit as needed before publishing.