diff --git a/README.md b/README.md
index cc79ddbd5..1abf0e406 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,18 @@ We detail a few of the core contracts in the Compound protocol.
- Comptroller
- The risk model contract, which validates permissible user actions and disallows actions if they do not fit certain risk parameters. For instance, the Comptroller enforces that each borrowing user must maintain a sufficient collateral balance across all cTokens.
+
+ Updating the Comptroller
+ - Follow the existing naming schema (ControllerGX)
+ - Update the scenario runner in scenario/src/Builder/ComptrollerImplBuilder.ts
+ - Create unit tests and fork simulations as necessary
+ - Call
npx saddle deploy Comptroller -n mainnet
to deploy to mainnet and generate new ABI
+
+ - The ABI can also be generated by deploying to mainnet in a fork simulation
+
+ - Call
node script/comptroller-abi
to merge the new Comptroller ABI with the Unitroller ABI
+ - Ensure that commit contains new generated Comptroller ABI
+
diff --git a/script/comptroller-abi b/script/comptroller-abi
index 348a08af5..436bf7b99 100755
--- a/script/comptroller-abi
+++ b/script/comptroller-abi
@@ -16,8 +16,8 @@ function mergeInterface(into, from) {
return into.concat(from)
}
-function mergeComptroller(abi, G) {
- abi.Comptroller = mergeInterface(abi.Unitroller, abi[`StdComptrollerG${G}`])
+function mergeComptroller(abi) {
+ abi.Comptroller = mergeInterface(abi.Unitroller, abi[`Comptroller`])
return abi;
}
@@ -25,9 +25,9 @@ function format(abi) {
return JSON.stringify(abi, null, 4).replace(/^( {4}".*?)$/mg, '\n$1')
}
-function main(path, G) {
+function main(path) {
const abi = JSON.parse(fs.readFileSync(path))
- fs.writeFileSync(path, format(mergeComptroller(abi, G)))
+ fs.writeFileSync(path, format(mergeComptroller(abi)))
}
-main('networks/mainnet-abi.json', 5)
+main('networks/mainnet-abi.json')