Skip to content

Commit

Permalink
Remove minimum client version set/get/check
Browse files Browse the repository at this point in the history
According to CIP-53: celo-org/celo-proposals#318
  • Loading branch information
karlb committed May 16, 2023
1 parent db1130f commit 6b537c4
Show file tree
Hide file tree
Showing 12 changed files with 14 additions and 190 deletions.
18 changes: 0 additions & 18 deletions packages/celotool/src/e2e-tests/blockchain_parameters_tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,6 @@ describe('Blockchain parameters tests', function (this: any) {
parameters = await kit.contracts.getBlockchainParameters()
}

const setMinimumClientVersion = async (major: number, minor: number, patch: number) => {
await parameters.setMinimumClientVersion(major, minor, patch).send({ from: validatorAddress })
}

describe('when running a node', () => {
before(async () => {
await restartGeth()
Expand All @@ -84,19 +80,5 @@ describe('Blockchain parameters tests', function (this: any) {
const res = await parameters.getBlockGasLimit()
assert.equal(0, res.comparedTo(23000000))
})
it('should exit when minimum version is updated', async () => {
this.timeout(0)
await setMinimumClientVersion(1, 9, 99)
// The client checks every 60 seconds and then waits 10 seconds before quitting, so we
// may have to wait a little over 70 seconds
await sleep(75, true)
try {
// It should have exited by now, call RPC to trigger error
await kit.connection.getBlockNumber()
} catch (_) {
return
}
throw new Error('expected failure')
})
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ ___

*Defined in [connection.ts:327](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L327)*

**`deprecated`** no longer needed since gasPrice is available on minimumClientVersion node rpc
**`deprecated`** no longer needed since gasPrice is available on node rpc

**Parameters:**

Expand Down Expand Up @@ -656,7 +656,7 @@ ___

*Defined in [connection.ts:337](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L337)*

**`deprecated`** no longer needed since gasPrice is available on minimumClientVersion node rpc
**`deprecated`** no longer needed since gasPrice is available on node rpc

**Parameters:**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ ___

*Defined in [packages/sdk/contractkit/src/kit.ts:113](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L113)*

**`deprecated`** no longer needed since gasPrice is available on minimumClientVersion node rpc
**`deprecated`** no longer needed since gasPrice is available on node rpc

___

Expand Down Expand Up @@ -246,7 +246,7 @@ ___

*Defined in [packages/sdk/contractkit/src/kit.ts:285](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L285)*

**`deprecated`** no longer needed since gasPrice is available on minimumClientVersion node rpc
**`deprecated`** no longer needed since gasPrice is available on node rpc

**Parameters:**

Expand Down Expand Up @@ -472,7 +472,7 @@ ___

*Defined in [packages/sdk/contractkit/src/kit.ts:210](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L210)*

**`deprecated`** no longer needed since gasPrice is available on minimumClientVersion node rpc
**`deprecated`** no longer needed since gasPrice is available on node rpc

**Parameters:**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ Network parameters that are configurable by governance.
* [methodIds](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#methodids)
* [setBlockGasLimit](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#setblockgaslimit)
* [setIntrinsicGasForAlternativeFeeCurrency](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#setintrinsicgasforalternativefeecurrency)
* [setMinimumClientVersion](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#setminimumclientversion)
* [setUptimeLookbackWindow](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#setuptimelookbackwindow)

### Accessors
Expand All @@ -42,7 +41,6 @@ Network parameters that are configurable by governance.
* [getEpochSizeNumber](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getepochsizenumber)
* [getFirstBlockNumberForEpoch](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getfirstblocknumberforepoch)
* [getLastBlockNumberForEpoch](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getlastblocknumberforepoch)
* [getMinimumClientVersion](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getminimumclientversion)
* [getPastEvents](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getpastevents)
* [version](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#version)

Expand Down Expand Up @@ -259,28 +257,6 @@ Name | Type |

___

### setMinimumClientVersion

**setMinimumClientVersion**: *function* = proxySend(
this.connection,
this.contract.methods.setMinimumClientVersion
)

*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L63)*

Set minimum client version.

#### Type declaration:

▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›*

**Parameters:**

Name | Type |
------ | ------ |
`...args` | InputArgs |

___

### setUptimeLookbackWindow

Expand Down Expand Up @@ -387,19 +363,6 @@ Name | Type |

**Returns:** *Promise‹number›*

___

### getMinimumClientVersion

**getMinimumClientVersion**(): *Promise‹[ClientVersion](../interfaces/_wrappers_blockchainparameters_.clientversion.md)*

*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L51)*

Get minimum client version.

**Returns:** *Promise‹[ClientVersion](../interfaces/_wrappers_blockchainparameters_.clientversion.md)*

___

### getPastEvents

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@

* [blockGasLimit](_wrappers_blockchainparameters_.blockchainparametersconfig.md#blockgaslimit)
* [intrinsicGasForAlternativeFeeCurrency](_wrappers_blockchainparameters_.blockchainparametersconfig.md#intrinsicgasforalternativefeecurrency)
* [minimumClientVersion](_wrappers_blockchainparameters_.blockchainparametersconfig.md#minimumclientversion)

## Properties

### blockGasLimit
Expand All @@ -29,11 +27,3 @@ ___
**intrinsicGasForAlternativeFeeCurrency**: *BigNumber*

*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L14)*

___

### minimumClientVersion

**minimumClientVersion**: *[ClientVersion](_wrappers_blockchainparameters_.clientversion.md)*

*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L13)*
31 changes: 0 additions & 31 deletions packages/protocol/contracts/governance/BlockchainParameters.sol
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ contract BlockchainParameters is Ownable, Initializable, UsingPrecompiles {
uint256 public intrinsicGasForAlternativeFeeCurrency;
LookbackWindow public uptimeLookbackWindow;

event MinimumClientVersionSet(uint256 major, uint256 minor, uint256 patch);
event IntrinsicGasForAlternativeFeeCurrencySet(uint256 gas);
event BlockGasLimitSet(uint256 limit);
event UptimeLookbackWindowSet(uint256 window, uint256 activationEpoch);
Expand Down Expand Up @@ -60,7 +59,6 @@ contract BlockchainParameters is Ownable, Initializable, UsingPrecompiles {
uint256 lookbackWindow
) external initializer {
_transferOwnership(msg.sender);
setMinimumClientVersion(major, minor, patch);
setBlockGasLimit(gasLimit);
setIntrinsicGasForAlternativeFeeCurrency(_gasForNonGoldCurrencies);
setUptimeLookbackWindow(lookbackWindow);
Expand All @@ -77,21 +75,6 @@ contract BlockchainParameters is Ownable, Initializable, UsingPrecompiles {
return (1, 2, 0, 0);
}

/**
* @notice Sets the minimum client version.
* @param major Major version.
* @param minor Minor version.
* @param patch Patch version.
* @dev For example if the version is 1.9.2, 1 is the major version, 9 is minor,
* and 2 is the patch level.
*/
function setMinimumClientVersion(uint256 major, uint256 minor, uint256 patch) public onlyOwner {
minimumClientVersion.major = major;
minimumClientVersion.minor = minor;
minimumClientVersion.patch = patch;
emit MinimumClientVersionSet(major, minor, patch);
}

/**
* @notice Sets the block gas limit.
* @param gasLimit New block gas limit.
Expand Down Expand Up @@ -149,18 +132,4 @@ contract BlockchainParameters is Ownable, Initializable, UsingPrecompiles {
}
}

/**
* @notice Query minimum client version.
* @return Major version number.
* @return Minor version number.
* @return Patch version number.
*/
function getMinimumClientVersion()
external
view
returns (uint256 major, uint256 minor, uint256 patch)
{
return (minimumClientVersion.major, minimumClientVersion.minor, minimumClientVersion.patch);
}

}
1 change: 0 additions & 1 deletion packages/protocol/governanceConstitution.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ const DefaultConstitution = {
},
BlockchainParameters: {
default: 0.9,
setMinimumClientVersion: 0.9,
setBlockGasLimit: 0.8,
setIntrinsicGasForAlternativeFeeCurrency: 0.8,
},
Expand Down
56 changes: 3 additions & 53 deletions packages/protocol/test/governance/network/blockchainparams.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,44 +32,6 @@ contract('BlockchainParameters', (accounts: string[]) => {
blockchainParameters = await BlockchainParameters.new()
})

describe('#setMinimumClientVersion()', () => {
it('should set the variable', async () => {
await blockchainParameters.setMinimumClientVersion(
version.major,
version.minor,
version.patch
)
const versionQueried = await blockchainParameters.getMinimumClientVersion()
assert.equal(version.major, versionQueried[0].toNumber())
assert.equal(version.minor, versionQueried[1].toNumber())
assert.equal(version.patch, versionQueried[2].toNumber())
})
it('should emit the MinimumClientVersionSet event', async () => {
const resp = await blockchainParameters.setMinimumClientVersion(
version.major,
version.minor,
version.patch
)
assert.equal(resp.logs.length, 1)
const log = resp.logs[0]
assertContainSubset(log, {
event: 'MinimumClientVersionSet',
args: {
major: new BigNumber(version.major),
minor: new BigNumber(version.minor),
patch: new BigNumber(version.patch),
},
})
})
it('only owner should be able to set', async () => {
await assertRevert(
blockchainParameters.setMinimumClientVersion(version.major, version.minor, version.patch, {
from: accounts[1],
})
)
})
})

describe('#setBlockGasLimit()', () => {
it('should set the variable', async () => {
await blockchainParameters.setBlockGasLimit(gasLimit)
Expand Down Expand Up @@ -196,10 +158,6 @@ contract('BlockchainParameters', (accounts: string[]) => {
gasLimit,
lookbackWindow
)
const versionQueried = await blockchainParameters.getMinimumClientVersion()
assert.equal(version.major, versionQueried[0].toNumber())
assert.equal(version.minor, versionQueried[1].toNumber())
assert.equal(version.patch, versionQueried[2].toNumber())
assert.equal((await blockchainParameters.blockGasLimit()).toNumber(), gasLimit)

// need to wait an epoch for uptimeLookbackWindow
Expand All @@ -219,21 +177,13 @@ contract('BlockchainParameters', (accounts: string[]) => {
lookbackWindow
)
assert.equal(resp.logs.length, 5)
assertContainSubset(resp.logs[1], {
event: 'MinimumClientVersionSet',
args: {
major: new BigNumber(version.major),
minor: new BigNumber(version.minor),
patch: new BigNumber(version.patch),
},
})
assertContainSubset(resp.logs[3], {
assertContainSubset(resp.logs[2], {
event: 'IntrinsicGasForAlternativeFeeCurrencySet',
args: {
gas: new BigNumber(gasForNonGoldCurrencies),
},
})
assertContainSubset(resp.logs[2], {
assertContainSubset(resp.logs[1], {
event: 'BlockGasLimitSet',
args: {
limit: new BigNumber(gasLimit),
Expand All @@ -246,7 +196,7 @@ contract('BlockchainParameters', (accounts: string[]) => {
newOwner: accounts[0],
},
})
assertContainSubset(resp.logs[4], {
assertContainSubset(resp.logs[3], {
event: 'UptimeLookbackWindowSet',
args: {
window: new BigNumber(lookbackWindow),
Expand Down
6 changes: 3 additions & 3 deletions packages/sdk/connect/src/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export class Connection {
readonly paramsPopulator: TxParamsNormalizer
rpcCaller!: RpcCaller

/** @deprecated no longer needed since gasPrice is available on minimumClientVersion node rpc */
/** @deprecated no longer needed since gasPrice is available on node rpc */
private currencyGasPrice: Map<Address, string> = new Map<Address, string>()

constructor(readonly web3: Web3, public wallet?: ReadOnlyWallet, handleRevert = true) {
Expand Down Expand Up @@ -341,7 +341,7 @@ export class Connection {
return toTxResult(this.web3.eth.sendSignedTransaction(signedTransactionData))
}

/** @deprecated no longer needed since gasPrice is available on minimumClientVersion node rpc */
/** @deprecated no longer needed since gasPrice is available on node rpc */
fillGasPrice(tx: CeloTx): CeloTx {
if (tx.feeCurrency && tx.gasPrice === '0' && this.currencyGasPrice.has(tx.feeCurrency)) {
return {
Expand All @@ -351,7 +351,7 @@ export class Connection {
}
return tx
}
/** @deprecated no longer needed since gasPrice is available on minimumClientVersion node rpc */
/** @deprecated no longer needed since gasPrice is available on node rpc */
async setGasPriceForCurrency(address: Address, gasPrice: string) {
this.currencyGasPrice.set(address, gasPrice)
}
Expand Down
6 changes: 3 additions & 3 deletions packages/sdk/contractkit/src/kit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ export class ContractKit {
/** helper for interacting with CELO & stable tokens */
readonly celoTokens: CeloTokens

/** @deprecated no longer needed since gasPrice is available on minimumClientVersion node rpc */
/** @deprecated no longer needed since gasPrice is available on node rpc */
gasPriceSuggestionMultiplier = 5

constructor(readonly connection: Connection) {
Expand Down Expand Up @@ -206,7 +206,7 @@ export class ContractKit {
this.connection.defaultFeeCurrency = address
}

/** @deprecated no longer needed since gasPrice is available on minimumClientVersion node rpc */
/** @deprecated no longer needed since gasPrice is available on node rpc */
async updateGasPriceInConnectionLayer(currency: Address) {
const gasPriceMinimum = await this.contracts.getGasPriceMinimum()
const rawGasPrice = await gasPriceMinimum.getGasPriceMinimum(currency)
Expand Down Expand Up @@ -281,7 +281,7 @@ export class ContractKit {
isSyncing(): Promise<boolean> {
return this.connection.isSyncing()
}
/** @deprecated no longer needed since gasPrice is available on minimumClientVersion node rpc */
/** @deprecated no longer needed since gasPrice is available on node rpc */
async fillGasPrice(tx: CeloTx): Promise<CeloTx> {
if (tx.feeCurrency && tx.gasPrice === '0') {
await this.updateGasPriceInConnectionLayer(tx.feeCurrency)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ testWithGanache('BlockChainParametersWrapper', (web3) => {
const config = await blockchainParamsWrapper.getConfig()
expect(config.blockGasLimit).toEqual(new BigNumber('20000000'))
expect(config.intrinsicGasForAlternativeFeeCurrency).toEqual(new BigNumber('50000'))
expect(config.minimumClientVersion).toEqual({ major: 1, minor: 0, patch: 0 })
})
})

Expand Down
Loading

0 comments on commit 6b537c4

Please sign in to comment.