@@ -8,6 +8,7 @@ import { createMinipool, getMinipoolMinimumRPLStake } from '../_helpers/minipool
88import { mintRPL } from '../_helpers/tokens' ;
99import { userDeposit } from '../_helpers/deposit' ;
1010import * as assert from 'assert' ;
11+ import { shouldRevert } from '../_utils/testing' ;
1112
1213export default function ( ) {
1314 contract ( 'RocketUpgradeOneDotThreeDotOne' , async ( accounts ) => {
@@ -99,28 +100,39 @@ export default function() {
99100 }
100101 } ) ;
101102
102- it ( printTitle ( 'upgrade' , 'updates addresses correctly' ) , async ( ) => {
103+ async function executeUpgrade ( ) {
104+ const rocketStorage = await RocketStorage . deployed ( ) ;
105+
106+ // Lock contract and execute upgrade
103107 await rocketUpgradeOneDotThreeDotOne . lock ( ) ;
104108 await setDaoNodeTrustedBootstrapUpgrade ( 'addContract' , 'rocketUpgradeOneDotThreeDotOne' , contracts . rocketUpgradeOneDotThreeDotOne . abi , rocketUpgradeOneDotThreeDotOne . address , { from : owner } ) ;
105109 await rocketUpgradeOneDotThreeDotOne . execute ( ) ;
106110
111+ // Confirm version string updated
112+ const versionString = await rocketStorage . getString ( hre . web3 . utils . soliditySha3 ( 'protocol.version' ) ) ;
113+ assert . equal ( versionString , '1.3.1' ) ;
114+ }
115+
116+ it ( printTitle ( 'upgrade' , 'cannot execute twice' ) , async ( ) => {
117+ await executeUpgrade ( ) ;
118+ await shouldRevert ( rocketUpgradeOneDotThreeDotOne . execute ( ) , 'Was able to execute twice' , 'Already executed' ) ;
119+ } ) ;
120+
121+ it ( printTitle ( 'upgrade' , 'updates addresses correctly' ) , async ( ) => {
107122 const rocketStorage = await RocketStorage . deployed ( ) ;
108123
124+ await executeUpgrade ( ) ;
125+
109126 for ( let contract in addresses ) {
110127 const key = hre . web3 . utils . soliditySha3 ( 'contract.address' , contract ) ;
111128 const address = await rocketStorage . getAddress ( key ) ;
112129
113130 assert . equal ( address , addresses [ contract ] ) ;
114131 }
115-
116- const versionString = await rocketStorage . getString ( hre . web3 . utils . soliditySha3 ( 'protocol.version' ) ) ;
117- assert . equal ( versionString , '1.3.1' ) ;
118132 } ) ;
119133
120134 it ( printTitle ( 'upgrade' , 'adjusts quorum parameter correctly' ) , async ( ) => {
121- await rocketUpgradeOneDotThreeDotOne . lock ( ) ;
122- await setDaoNodeTrustedBootstrapUpgrade ( 'addContract' , 'rocketUpgradeOneDotThreeDotOne' , contracts . rocketUpgradeOneDotThreeDotOne . abi , rocketUpgradeOneDotThreeDotOne . address , { from : owner } ) ;
123- await rocketUpgradeOneDotThreeDotOne . execute ( ) ;
135+ await executeUpgrade ( ) ;
124136
125137 const rocketDAOProtocolSettingsProposal = await RocketDAOProtocolSettingsProposals . deployed ( ) ;
126138 const proposalQuorum = await rocketDAOProtocolSettingsProposal . getProposalQuorum . call ( ) ;
@@ -174,9 +186,7 @@ export default function() {
174186 }
175187
176188 // Execute upgrade
177- await rocketUpgradeOneDotThreeDotOne . lock ( ) ;
178- await setDaoNodeTrustedBootstrapUpgrade ( 'addContract' , 'rocketUpgradeOneDotThreeDotOne' , contracts . rocketUpgradeOneDotThreeDotOne . abi , rocketUpgradeOneDotThreeDotOne . address , { from : owner } ) ;
179- await rocketUpgradeOneDotThreeDotOne . execute ( ) ;
189+ await executeUpgrade ( ) ;
180190
181191 // Confirm changes
182192 for ( let i = 0 ; i < nodes . length ; i ++ ) {
0 commit comments