From afa6eae07675f95e859b51193d91ef26201fea83 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Sun, 27 Mar 2022 18:20:26 +0300 Subject: [PATCH 01/14] fix bug - prevent arbitrary increase of delegated VP --- contracts/governance/Staking/Staking.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/governance/Staking/Staking.sol b/contracts/governance/Staking/Staking.sol index 2877ed874..183361fa5 100644 --- a/contracts/governance/Staking/Staking.sol +++ b/contracts/governance/Staking/Staking.sol @@ -135,7 +135,7 @@ contract Staking is IStaking, WeightedStaking, ApprovalReceiver { * */ function extendStakingDuration(uint256 previousLock, uint256 until) public whenNotPaused { until = timestampToLockDate(until); - require(previousLock <= until, "S04"); // cannot reduce staking duration + require(previousLock < until, "S04"); // must increase staking duration /// @dev Do not exceed the max duration, no overflow possible. uint256 latest = timestampToLockDate(block.timestamp + MAX_DURATION); From 75cbfdd2be29dad2b5cc7a9fb5e2537e71bfc3ab Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Sun, 27 Mar 2022 18:45:49 +0300 Subject: [PATCH 02/14] fix ExtendedStakingTest - staking duration change test --- tests/staking/ExtendedStakingTest.js | 31 +++++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/tests/staking/ExtendedStakingTest.js b/tests/staking/ExtendedStakingTest.js index 3e97e6fa9..facae4291 100644 --- a/tests/staking/ExtendedStakingTest.js +++ b/tests/staking/ExtendedStakingTest.js @@ -506,26 +506,41 @@ contract("Staking", (accounts) => { it("shouldn't extendStakingDuration when _getPriorUserStakeByDate == 0", async () => { let duration = new BN(0); let lockedTS = await getTimeFromKickoff(duration); - // console.log("lockedTS: ", lockedTS.toString()); + //console.log("lockedTS: ", lockedTS.toString()); let newTime = await getTimeFromKickoff(TWO_WEEKS); - // console.log("newTime: ", newTime.toString()); + //console.log("newTime: ", newTime.toString()); // Trying to extend the stake when previous stake is 0 await expectRevert(staking.extendStakingDuration(lockedTS, newTime), "S05"); // S05 : no stakes till the prev lock date }); + it("should fail when trying to extendStakingDuration when the new date equals to the previous", async () => { + let amount = "1000"; + const BN_TWO_WEEKS = new BN(TWO_WEEKS); + let duration = BN_TWO_WEEKS.mul(new BN(2)); + let lockedTS = await getTimeFromKickoff(duration); + //console.log("lockedTS: ", lockedTS.toString()); + let newTime = lockedTS; //await getTimeFromKickoff(TWO_WEEKS); + + // Trying to extend the stake when previous stake is 0 + await expectRevert(staking.extendStakingDuration(lockedTS, newTime), "S04"); // S04 : no stakes till the prev lock date + }); + it("extend to a date inside the next 2 weeks granularity bucket", async () => { let amount = "1000"; - let duration = new BN(TWO_WEEKS).mul(new BN(2)); + const BN_TWO_WEEKS = new BN(TWO_WEEKS); + let duration = BN_TWO_WEEKS.mul(new BN(2)); + //console.log("duration: ", duration.toString()); let lockedTS = await getTimeFromKickoff(duration); - // console.log("lockedTS: ", lockedTS.toString()); + //console.log("lockedTS: ", lockedTS.toString()); - // Extending for 13 days - let newDuration = duration.add(new BN(DAY).mul(new BN(13))); + // Extending for 14 days + let newDuration = duration.add(BN_TWO_WEEKS); + //console.log("newDuration: ", newDuration.toString()); let newTime = await getTimeFromKickoff(newDuration); - console.log("newTime: ", newTime.toString()); + //console.log("newTime: ", newTime.toString()); let newTimeLockDate = await staking.timestampToLockDate(newTime); - console.log("newTimeLockDate: ", newTimeLockDate.toString()); + //console.log("newTimeLockDate: ", newTimeLockDate.toString()); // Set delegate as account1 await staking.stake(amount, lockedTS, root, account1); From d1fad2dc1fc6a4bdcf41e27186679915f36f3fd1 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Sun, 27 Mar 2022 19:12:05 +0300 Subject: [PATCH 03/14] add new StakingLogic6 to mainnet_contracts.json --- scripts/contractInteraction/mainnet_contracts.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/contractInteraction/mainnet_contracts.json b/scripts/contractInteraction/mainnet_contracts.json index 1a68bb131..e394fd5b3 100644 --- a/scripts/contractInteraction/mainnet_contracts.json +++ b/scripts/contractInteraction/mainnet_contracts.json @@ -84,7 +84,8 @@ "StakingLogic3": "0xcAB5028619839dbb92a193f59026383973F04008", "StakingLogic4": "0x4BaBb34189a9CDa8213D24DD3984058Fb8A955D2", "StakingLogic5": "0xe31A938F5cf1C41747B5F20f9dD5d509B2ACd49c", - + "StakingLogic6": "0x4769c04F2537C3b951Efa8a330A15716B5913Af6", + "FeeSharingProxyOld": "0x12B1B0C67d9A771EB5Db7726d23fdc6848fd93ef", "FeeSharingProxy": "0x115cAF168c51eD15ec535727F64684D33B7b08D1", "FeeSharingLogic": "0x8289AF920cA3d63245740a20116e13aAe0F978e3", From 5e2eb442c4eb88c398c5dedf9c71900590e285c9 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Sun, 27 Mar 2022 20:20:00 +0300 Subject: [PATCH 04/14] testnet StakingLogic6 --- scripts/contractInteraction/testnet_contracts.json | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/contractInteraction/testnet_contracts.json b/scripts/contractInteraction/testnet_contracts.json index f6c895b53..6da6a48d0 100644 --- a/scripts/contractInteraction/testnet_contracts.json +++ b/scripts/contractInteraction/testnet_contracts.json @@ -74,6 +74,7 @@ "StakingLogic": "0xeAd31Bdc8c777e85f2848B57E498f44839515854", "StakingLogic4": "0x6EE4D162de10Dc83458E9CdeB54151d485df8562", "StakingLogic5": "0xeAd31Bdc8c777e85f2848B57E498f44839515854", + "StakingLogic6": "0x78372F3a1Bdd9F341c819f903038e8aA1FDC3FC6", "OldFeeSharingProxy": "0x740E6f892C0132D659Abcd2B6146D237A4B6b653", "FeeSharingProxy": "0xedD92fb7C556E4A4faf8c4f5A90f471aDCD018f4", From c6f31ead94becffae96b9e53cf4e5bc8f0acd27d Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 10:27:05 +0300 Subject: [PATCH 05/14] add testnet_dev with reskdeployerdev to config.py --- scripts/contractInteraction/config.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/contractInteraction/config.py b/scripts/contractInteraction/config.py index f74f1386e..fbdc86a2a 100644 --- a/scripts/contractInteraction/config.py +++ b/scripts/contractInteraction/config.py @@ -36,7 +36,11 @@ def loadConfig(): acct = accounts.load("rskdeployer") configFile = open( './scripts/contractInteraction/testnet_contracts.json') - elif thisNetwork == "rsk-mainnet": + elif thisNetwork == "testnet-dev": + acct = accounts.load("rskdeployerdev") + configFile = open( + './scripts/contractInteraction/testnet_contracts.json') + elif thisNetwork == "rsk-mainnet" or thisNetwork == "rsk-local-fork": acct = accounts.load("rskdeployer") configFile = open( './scripts/contractInteraction/mainnet_contracts.json') From 0545dd339e2d90213d0403c79967fa7f9c9cc439 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 16:36:12 +0300 Subject: [PATCH 06/14] add sip-0043 to sip_interaction.py --- scripts/sip/sip_interaction.py | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/scripts/sip/sip_interaction.py b/scripts/sip/sip_interaction.py index cf44033a9..02ea87f06 100644 --- a/scripts/sip/sip_interaction.py +++ b/scripts/sip/sip_interaction.py @@ -20,8 +20,7 @@ def main(): # Call the function you want here - # createProposalSIP0038() - createProposalSIP0042() + createProposalSIP0043() balanceAfter = acct.balance() @@ -38,11 +37,14 @@ def loadConfig(): acct = accounts[0] configFile = open('./scripts/contractInteraction/testnet_contracts.json') elif thisNetwork == "testnet": - acct = accounts.load("rskdeployerdev") + acct = accounts.load("rskdeployer") configFile = open('./scripts/contractInteraction/testnet_contracts.json') elif thisNetwork == "rsk-testnet": - acct = accounts.load("rskdeployerdev") + acct = accounts.load("rskdeployer") configFile = open('./scripts/contractInteraction/testnet_contracts.json') + elif thisNetwork == "testnet-dev": + acct = accounts.load("rskdeployerdev") + configFile = open('./scripts/contractInteraction/testnet_contracts.json') elif thisNetwork == "rsk-mainnet": acct = accounts.load("rskdeployer") configFile = open('./scripts/contractInteraction/mainnet_contracts.json') @@ -337,4 +339,25 @@ def createProposalSIP0042(): description = "SIP-0042: Staking Security Update, Details: https://github.com/DistributedCollective/SIPS/blob/7c1a44b/SIP-0042.md, sha256: 522e1e65c49ec028d81c3a1f94a47354c2f6287c2d90c6eec8f06dcc17a1ebcc" # Create Proposal - # createProposal(contracts['GovernorOwner'], targets, values, signatures, datas, description) + print(signatures) + print(datas) + print(description) + createProposal(contracts['GovernorOwner'], targets, values, signatures, datas, description) + +def createProposalSIP0043(): + + staking = Contract.from_abi("StakingProxy", address=contracts['Staking'], abi=StakingProxy.abi, owner=acct) + + # Action + targets = [contracts['Staking']] + values = [0] + signatures = ["setImplementation(address)"] + data = staking.setImplementation.encode_input(contracts['StakingLogic6']) + datas = ["0x" + data[10:]] + description = "SIP-0043 : Critical governance bug fix, Details: https://github.com/DistributedCollective/SIPS/blob/bdd346e/SIP-0043.md, sha256: 7a99f0862208d77e54f30f3c3759ca1d7efe9d1d1ec7df1ef1f83c649aa651a4" + + # Create Proposal + print(signatures) + print(datas) + print(description) + createProposal(contracts['GovernorOwner'], targets, values, signatures, datas, description) From 988bd7f78065ecebc8bdf6c91d8417a78e9d771a Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 16:40:20 +0300 Subject: [PATCH 07/14] sip creation commented out --- scripts/sip/sip_interaction.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/sip/sip_interaction.py b/scripts/sip/sip_interaction.py index 02ea87f06..531671d64 100644 --- a/scripts/sip/sip_interaction.py +++ b/scripts/sip/sip_interaction.py @@ -20,7 +20,7 @@ def main(): # Call the function you want here - createProposalSIP0043() + # createProposalSIP0043() balanceAfter = acct.balance() @@ -360,4 +360,4 @@ def createProposalSIP0043(): print(signatures) print(datas) print(description) - createProposal(contracts['GovernorOwner'], targets, values, signatures, datas, description) + # createProposal(contracts['GovernorOwner'], targets, values, signatures, datas, description) From 525be3a5c4959238f250921c7ab2b8512ca60a45 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 17:23:41 +0300 Subject: [PATCH 08/14] update contract_interaction.py with plan for SIP43 --- .../contract_interaction.py | 60 ++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/scripts/contractInteraction/contract_interaction.py b/scripts/contractInteraction/contract_interaction.py index fa089a60e..d5996a638 100644 --- a/scripts/contractInteraction/contract_interaction.py +++ b/scripts/contractInteraction/contract_interaction.py @@ -27,4 +27,62 @@ def main(): #load the contracts and acct depending on the network conf.loadConfig() - #call the function you want here \ No newline at end of file + #call the function you want here + + # queueProposal(15) + executeProposal(15) + pauseOrUnpauseStaking(False) + + #txId = 862 + #revokeConfirmationMS(txId) + # checkTx(txId) + #executeOnMultisig(txId) + + + + # confirmWithMS(981) + + #SIP-0043 + + # [x] pre - execute SIP-0042 to replace logic and enable pausing/freezing + # executeProposal(14) + # getStakingLogicAddess() #should be 0xe31A938F5cf1C41747B5F20f9dD5d509B2ACd49c + + # [x] 0 - pause Staking contract + # -------------------------- + # txId = 862 + # confirmWithMS(txId) + # isStakingPausedOrUnpaused() + + # [x] 1. Create PR + # [x] 1.1. set the PR link to the SIP text + + + # [x] 2 - deploy the new logic + # [x] 2.1. on the testnet - deploy logic and set new implementation - MS (sign using --network testnet-dev) - SHOULD PUSH TO DEVELOPMENT BRANCH BEFORE!!! + # upgradeStaking() + # confirmWithMS(txId) # to replace logic on the testnet sign using --network testnet-dev + # [x] 2.2. ask Stan to try to extend staking to the same date - see bug + # [x] 2.3. on the mainnet + # deployStakingLogic() # deploy and get staking logic address + # add as StakingLogic6 to mainnet_contracts.json + # ask julio to verify the contract + + # [x] 3. Complete SIP-0043 - set new logic contract address, calc SIP hash, commit, create PR, merge PR + # [x] 3.1. Notify @The Gimp that SIP-0043 is ready to be published to the blog + + # [x] 4. Set SIP-0043 data to the def createProposalSIP0043(): in scripts/sip/sip_interaction.py + + # [x] 5. Launch SIP-0043 on the testnet - uncomment createProposal(...) and brownie run scripts/sip/sip_interaction.py --network testnet + # [x] 5.1. Verify the data is correct on the test governance page + + # [x] 6. Launch voting on the mainnet - brownie run scripts/sip/sip_interaction.py --network rsk-mainnet + # [x] 6.1. Check the proposal data on the mainnet page + + # [x] 7. Set alarm in 24 hours after launching to queue proposal + + # [x] 8. Queue proposal + + # [x] 9. Execute proposal 48 hours after Queueing + + # [ ] 10. Unpause the Staking contract after executed \ No newline at end of file From 3bca5930a7c1814fbcba52c5679562b23b6dc499 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 17:40:41 +0300 Subject: [PATCH 09/14] minor enhansements of multisig.py --- scripts/contractInteraction/multisig.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/contractInteraction/multisig.py b/scripts/contractInteraction/multisig.py index 08b222b9e..a4ed04edf 100644 --- a/scripts/contractInteraction/multisig.py +++ b/scripts/contractInteraction/multisig.py @@ -41,10 +41,16 @@ def replaceOwnerOnMultisig(multisig, oldOwner, newOwner): def confirmWithMS(txId): multisig = Contract.from_abi("MultiSig", address = conf.contracts['multisig'], abi=MultiSigWallet.abi, owner=conf.acct) multisig.confirmTransaction(txId) + checkTx(txId) + +def revokeConfirmationMS(txId): + multisig = Contract.from_abi("MultiSig", address = conf.contracts['multisig'], abi=MultiSigWallet.abi, owner=conf.acct) + multisig.revokeConfirmation(txId) def confirmMultipleTxsWithMS(txIdFrom, txIdTo): for i in range(txIdFrom, txIdTo + 1): # the right boundary processed to the value-1, so adding 1 confirmWithMS(i) + checkTx(i) def checkTx(txId): multisig = Contract.from_abi("MultiSig", address=conf.contracts['multisig'], abi=MultiSigWallet.abi, owner=conf.acct) From 8a717490a84002a3d876b2fb54f60f9b0a847d78 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 18:23:11 +0300 Subject: [PATCH 10/14] brownie set gas price to 0.079 --- brownie-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brownie-config.yaml b/brownie-config.yaml index 5a3096b63..aad39d9b3 100644 --- a/brownie-config.yaml +++ b/brownie-config.yaml @@ -29,7 +29,7 @@ networks: cmd_settings: port: 443 gas_limit: 6800000 - gas_price: 66000010 # 25000000000 25 GWEI + gas_price: 79000010 # 25000000000 25 GWEI reverting_tx_gas_limit: false default_contract_owner: false From 99f07c412aecba7576070ad64645eda756c2312e Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 18:28:40 +0300 Subject: [PATCH 11/14] comment out excessive protocol.py config loading --- scripts/contractInteraction/protocol.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/contractInteraction/protocol.py b/scripts/contractInteraction/protocol.py index f9ceb1521..7e2322129 100644 --- a/scripts/contractInteraction/protocol.py +++ b/scripts/contractInteraction/protocol.py @@ -6,7 +6,7 @@ from scripts.utils import * import scripts.contractInteraction.config as conf -conf.loadConfig() +#conf.loadConfig() def isProtocolPaused(): From d037b74ab2ffb5f9b9a0cd6c01fac54036bbb088 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Tue, 29 Mar 2022 18:31:58 +0300 Subject: [PATCH 12/14] minor enhancement staking_vesting.py --- scripts/contractInteraction/staking_vesting.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/contractInteraction/staking_vesting.py b/scripts/contractInteraction/staking_vesting.py index 632c3591e..b48343c11 100644 --- a/scripts/contractInteraction/staking_vesting.py +++ b/scripts/contractInteraction/staking_vesting.py @@ -250,6 +250,11 @@ def getStakes(address): stakingProxy = Contract.from_abi("Staking", address=conf.contracts['Staking'], abi=Staking.abi, owner=conf.acct) print(stakingProxy.getStakes(address)) +def getStakingLogicAddess(): + # Get the proxy contract instance + stakingProxy = Contract.from_abi("Staking", address=conf.contracts['Staking'], abi=StakingProxy.abi, owner=conf.acct) + print("Staking contract logic address:", stakingProxy.getImplementation()) + def stakeTokens(sovAmount, stakeTime, acctAddress, delegateeAddress): SOVtoken = Contract.from_abi("SOV", address=conf.contracts['SOV'], abi=SOV.abi, owner=acctAddress) staking = Contract.from_abi("Staking", address=conf.contracts['Staking'], abi=Staking.abi, owner=acctAddress) @@ -271,6 +276,11 @@ def pauseOrUnpauseStaking(flag): data = staking.pauseUnpause.encode_input(flag) sendWithMultisig(conf.contracts['multisig'], staking.address, data, conf.acct) +def isStakingPausedOrUnpaused(): + # Get the proxy contract instance + staking = Contract.from_abi("Staking", address=conf.contracts['Staking'], abi=Staking.abi, owner=conf.acct) + print("isStakingPausedOrUnpaused", staking.paused()) + def freezeOrUnfreezeStakingWithdawal(flag): # Get the proxy contract instance staking = Contract.from_abi("Staking", address=conf.contracts['Staking'], abi=Staking.abi, owner=conf.acct) From fcc2363c4bfb26fae58c711f1b0174a9b471baf4 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Thu, 31 Mar 2022 04:56:12 +0300 Subject: [PATCH 13/14] cleanup contract_interaction.py --- .../contract_interaction.py | 60 +------------------ 1 file changed, 1 insertion(+), 59 deletions(-) diff --git a/scripts/contractInteraction/contract_interaction.py b/scripts/contractInteraction/contract_interaction.py index d5996a638..fa089a60e 100644 --- a/scripts/contractInteraction/contract_interaction.py +++ b/scripts/contractInteraction/contract_interaction.py @@ -27,62 +27,4 @@ def main(): #load the contracts and acct depending on the network conf.loadConfig() - #call the function you want here - - # queueProposal(15) - executeProposal(15) - pauseOrUnpauseStaking(False) - - #txId = 862 - #revokeConfirmationMS(txId) - # checkTx(txId) - #executeOnMultisig(txId) - - - - # confirmWithMS(981) - - #SIP-0043 - - # [x] pre - execute SIP-0042 to replace logic and enable pausing/freezing - # executeProposal(14) - # getStakingLogicAddess() #should be 0xe31A938F5cf1C41747B5F20f9dD5d509B2ACd49c - - # [x] 0 - pause Staking contract - # -------------------------- - # txId = 862 - # confirmWithMS(txId) - # isStakingPausedOrUnpaused() - - # [x] 1. Create PR - # [x] 1.1. set the PR link to the SIP text - - - # [x] 2 - deploy the new logic - # [x] 2.1. on the testnet - deploy logic and set new implementation - MS (sign using --network testnet-dev) - SHOULD PUSH TO DEVELOPMENT BRANCH BEFORE!!! - # upgradeStaking() - # confirmWithMS(txId) # to replace logic on the testnet sign using --network testnet-dev - # [x] 2.2. ask Stan to try to extend staking to the same date - see bug - # [x] 2.3. on the mainnet - # deployStakingLogic() # deploy and get staking logic address - # add as StakingLogic6 to mainnet_contracts.json - # ask julio to verify the contract - - # [x] 3. Complete SIP-0043 - set new logic contract address, calc SIP hash, commit, create PR, merge PR - # [x] 3.1. Notify @The Gimp that SIP-0043 is ready to be published to the blog - - # [x] 4. Set SIP-0043 data to the def createProposalSIP0043(): in scripts/sip/sip_interaction.py - - # [x] 5. Launch SIP-0043 on the testnet - uncomment createProposal(...) and brownie run scripts/sip/sip_interaction.py --network testnet - # [x] 5.1. Verify the data is correct on the test governance page - - # [x] 6. Launch voting on the mainnet - brownie run scripts/sip/sip_interaction.py --network rsk-mainnet - # [x] 6.1. Check the proposal data on the mainnet page - - # [x] 7. Set alarm in 24 hours after launching to queue proposal - - # [x] 8. Queue proposal - - # [x] 9. Execute proposal 48 hours after Queueing - - # [ ] 10. Unpause the Staking contract after executed \ No newline at end of file + #call the function you want here \ No newline at end of file From 8a629ba42dfadd7c558049864d5d335ac68e7af5 Mon Sep 17 00:00:00 2001 From: Tyrone Johnson Date: Thu, 31 Mar 2022 04:58:53 +0300 Subject: [PATCH 14/14] cleanup config.py --- scripts/contractInteraction/config.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/scripts/contractInteraction/config.py b/scripts/contractInteraction/config.py index fbdc86a2a..f74f1386e 100644 --- a/scripts/contractInteraction/config.py +++ b/scripts/contractInteraction/config.py @@ -36,11 +36,7 @@ def loadConfig(): acct = accounts.load("rskdeployer") configFile = open( './scripts/contractInteraction/testnet_contracts.json') - elif thisNetwork == "testnet-dev": - acct = accounts.load("rskdeployerdev") - configFile = open( - './scripts/contractInteraction/testnet_contracts.json') - elif thisNetwork == "rsk-mainnet" or thisNetwork == "rsk-local-fork": + elif thisNetwork == "rsk-mainnet": acct = accounts.load("rskdeployer") configFile = open( './scripts/contractInteraction/mainnet_contracts.json')