Skip to content

Commit

Permalink
feat: add commands to template (bgd-labs#202)
Browse files Browse the repository at this point in the history
  • Loading branch information
sakulstra authored Jul 5, 2023
1 parent 02029b6 commit 641473a
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 19 deletions.
16 changes: 1 addition & 15 deletions generator/generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,24 +103,10 @@ if (fs.existsSync(baseFolder) && !options.force) {

fs.writeFileSync(
path.join(baseFolder, `${baseName}.s.sol`),
generateScript(options)
generateScript(options, baseName)
);
fs.writeFileSync(
path.join(baseFolder, `${options.name}.md`),
generateAIP(options)
);

// print instructions
console.log("Here is a list of commands for testing and deployment");
console.log(`test: make test-contract filter=${options.name}`);
options.chains.map((chain) =>
console.log(
`deploy payloads: make deploy-ledger contract=src/${baseName}/${baseName}.s.sol:Deploy${chain} chain=${getAlias(
chain
)}`
)
);
console.log(
`deploy payloads: make deploy-ledger contract=src/${baseName}/${baseName}.s.sol:CreateProposal chain=mainnet`
);
}
18 changes: 14 additions & 4 deletions generator/templates.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { generateChainName, generateName } from "./common.js";
import { generateChainName, generateName, getAlias } from "./common.js";

const pragma = `// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;\n\n`;

export function generateScript(options) {
export function generateScript(options, baseName) {
let template = pragma;
// generate imports
template += `import {GovHelpers} from 'aave-helpers/GovHelpers.sol';\n`;
Expand All @@ -23,7 +23,13 @@ export function generateScript(options) {
.map((chain) => {
const name = generateChainName(options, chain);

return `contract Deploy${chain} is ${chain}Script {
return `/**
* @dev Deploy ${name}
* command: make deploy-ledger contract=src/${baseName}/${baseName}.s.sol:Deploy${chain} chain=${getAlias(
chain
)}
*/
contract Deploy${chain} is ${chain}Script {
function run() external broadcast {
new ${name}();
}
Expand All @@ -33,7 +39,11 @@ export function generateScript(options) {
template += "\n\n";

// generate proposal creation script
template += `contract CreateProposal is EthereumScript {
template += `/**
* @dev Create Proposal
* command: make deploy-ledger contract=src/${baseName}/${baseName}.s.sol:CreateProposal chain=mainnet
*/
contract CreateProposal is EthereumScript {
function run() external broadcast {
GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](${
options.chains.length
Expand Down
4 changes: 4 additions & 0 deletions generator/templates/test.template.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ import {Aave${protocolVersion}${chain}, Aave${protocolVersion}${chain}Assets} fr
import {Protocol${protocolVersion}TestBase, ReserveConfig} from 'aave-helpers/Protocol${protocolVersion}TestBase.sol';
import {${contractName}} from './${contractName}.sol';
/**
* @dev Test for ${contractName}
* command: make test-contract filter=${contractName}
*/
contract ${contractName}_Test is Protocol${protocolVersion}TestBase {
function setUp() public {
vm.createSelectFork(vm.rpcUrl('${getAlias(chain)}'), ${await getBlock(
Expand Down

0 comments on commit 641473a

Please sign in to comment.