Commit 5de373ea authored by smartcontracts's avatar smartcontracts Committed by GitHub

feat(ctb): include Semver version function (#2997)

Updates the Semver contract to include a getter function to retrieve the
full version string.
Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
parent e764cbb7
---
'@eth-optimism/contracts-bedrock': patch
---
Semver contract updated to include a getter for the full version string
This diff is collapsed.
This diff is collapsed.
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
// This file is a generated binding and any manual changes will be lost. // This file is a generated binding and any manual changes will be lost.
package bindings package bindings
var L1BlockDeployedBin = "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80638381f58a11610076578063c8b915311161005b578063c8b9153114610185578063e591b282146101ac578063f786becd146101ec57600080fd5b80638381f58a14610151578063b80777ea1461016557600080fd5b80635cf24969116100a75780635cf24969146100f457806364ca23ef146100fd5780636bf2606a1461012a57600080fd5b8063042c2f57146100c357806309bd5a60146100d8575b600080fd5b6100d66100d136600461035c565b610213565b005b6100e160025481565b6040519081526020015b60405180910390f35b6100e160015481565b6003546101119067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100eb565b6100e17f000000000000000000000000000000000000000000000000000000000000000081565b6000546101119067ffffffffffffffff1681565b6000546101119068010000000000000000900467ffffffffffffffff1681565b6100e17f000000000000000000000000000000000000000000000000000000000000000081565b6101c773deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100eb565b6100e17f000000000000000000000000000000000000000000000000000000000000000081565b3373deaddeaddeaddeaddeaddeaddeaddeaddead0001146102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff9687167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090911617680100000000000000009587169590950294909417909355600191909155600255600380547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001691909216179055565b803567ffffffffffffffff8116811461035757600080fd5b919050565b600080600080600060a0868803121561037457600080fd5b61037d8661033f565b945061038b6020870161033f565b935060408601359250606086013591506103a76080870161033f565b9050929550929590935056fea164736f6c634300080a000a" var L1BlockDeployedBin = "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806364ca23ef1161005b57806364ca23ef146100dc5780638381f58a14610109578063b80777ea1461011d578063e591b2821461013d57600080fd5b8063042c2f571461008d57806309bd5a60146100a257806354fd4d50146100be5780635cf24969146100d3575b600080fd5b6100a061009b3660046104a3565b61017d565b005b6100ab60025481565b6040519081526020015b60405180910390f35b6100c66102a9565b6040516100b5919061052a565b6100ab60015481565b6003546100f09067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100b5565b6000546100f09067ffffffffffffffff1681565b6000546100f09068010000000000000000900467ffffffffffffffff1681565b61015873deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff9687167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090911617680100000000000000009587169590950294909417909355600191909155600255600380547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001691909216179055565b60606102d47f000000000000000000000000000000000000000000000000000000000000000061034c565b6102fd7f000000000000000000000000000000000000000000000000000000000000000061034c565b6103267f000000000000000000000000000000000000000000000000000000000000000061034c565b6040516020016103389392919061057b565b604051602081830303815290604052905090565b60608161038c57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156103b657806103a081610620565b91506103af9050600a83610688565b9150610390565b60008167ffffffffffffffff8111156103d1576103d161069c565b6040519080825280601f01601f1916602001820160405280156103fb576020820181803683370190505b5090505b841561047e576104106001836106cb565b915061041d600a866106e2565b6104289060306106f6565b60f81b81838151811061043d5761043d61070e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610477600a86610688565b94506103ff565b949350505050565b803567ffffffffffffffff8116811461049e57600080fd5b919050565b600080600080600060a086880312156104bb57600080fd5b6104c486610486565b94506104d260208701610486565b935060408601359250606086013591506104ee60808701610486565b90509295509295909350565b60005b838110156105155781810151838201526020016104fd565b83811115610524576000848401525b50505050565b60208152600082518060208401526105498160408501602087016104fa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000845161058d8184602089016104fa565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516105c9816001850160208a016104fa565b600192019182015283516105e48160028401602088016104fa565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610652576106526105f1565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261069757610697610659565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000828210156106dd576106dd6105f1565b500390565b6000826106f1576106f1610659565b500690565b60008219821115610709576107096105f1565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c634300080a000a"
This diff is collapsed.
This diff is collapsed.
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
// This file is a generated binding and any manual changes will be lost. // This file is a generated binding and any manual changes will be lost.
package bindings package bindings
var L2ToL1MessagePasserDeployedBin = "0x6080604052600436106100745760003560e01c8063affed0e01161004e578063affed0e014610139578063c2b3e5ac1461014f578063c8b9153114610162578063f786becd1461019657600080fd5b806344df8e701461009d5780636bf2606a146100b257806382e3702d146100f957600080fd5b366100985761009633620186a0604051806020016040528060008152506101ca565b005b600080fd5b3480156100a957600080fd5b50610096610280565b3480156100be57600080fd5b506100e67f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b34801561010557600080fd5b50610129610114366004610332565b60006020819052908152604090205460ff1681565b60405190151581526020016100f0565b34801561014557600080fd5b506100e660015481565b61009661015d36600461037a565b6101ca565b34801561016e57600080fd5b506100e67f000000000000000000000000000000000000000000000000000000000000000081565b3480156101a257600080fd5b506100e67f000000000000000000000000000000000000000000000000000000000000000081565b60006101dc60015433863487876102b8565b6000818152602081905260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915554905191925073ffffffffffffffffffffffffffffffffffffffff8616913391907f87bf7b546c8de873abb0db5b579ec131f8d0cf5b14f39933551cf9ced23a61369061026a903490899089906104e9565b60405180910390a4505060018054810190555050565b4761028a816102f7565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b60008686868686866040516020016102d596959493929190610511565b6040516020818303038152906040528051906020012090509695505050505050565b8060405161030490610326565b6040518091039082f0905080158015610321573d6000803e3d6000fd5b505050565b60088061056983390190565b60006020828403121561034457600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561038f57600080fd5b833573ffffffffffffffffffffffffffffffffffffffff811681146103b357600080fd5b925060208401359150604084013567ffffffffffffffff808211156103d757600080fd5b818601915086601f8301126103eb57600080fd5b8135818111156103fd576103fd61034b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104435761044361034b565b8160405282815289602084870101111561045c57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b818110156104a457602081850181015186830182015201610488565b818111156104b6576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b838152826020820152606060408201526000610508606083018461047e565b95945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261055c60c083018461047e565b9897505050505050505056fe608060405230fffea164736f6c634300080a000a" var L2ToL1MessagePasserDeployedBin = "0x60806040526004361061005e5760003560e01c806382e3702d1161004357806382e3702d146100c7578063affed0e014610107578063c2b3e5ac1461012b57600080fd5b806344df8e701461008757806354fd4d501461009c57600080fd5b366100825761008033620186a060405180602001604052806000815250610139565b005b600080fd5b34801561009357600080fd5b506100806101ef565b3480156100a857600080fd5b506100b1610227565b6040516100be91906104f8565b60405180910390f35b3480156100d357600080fd5b506100f76100e2366004610512565b60006020819052908152604090205460ff1681565b60405190151581526020016100be565b34801561011357600080fd5b5061011d60015481565b6040519081526020016100be565b61008061013936600461055a565b600061014b60015433863487876102ca565b6000818152602081905260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915554905191925073ffffffffffffffffffffffffffffffffffffffff8616913391907f87bf7b546c8de873abb0db5b579ec131f8d0cf5b14f39933551cf9ced23a6136906101d99034908990899061065e565b60405180910390a4505060018054810190555050565b476101f981610309565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b60606102527f0000000000000000000000000000000000000000000000000000000000000000610338565b61027b7f0000000000000000000000000000000000000000000000000000000000000000610338565b6102a47f0000000000000000000000000000000000000000000000000000000000000000610338565b6040516020016102b693929190610686565b604051602081830303815290604052905090565b60008686868686866040516020016102e7969594939291906106fc565b6040516020818303038152906040528051906020012090509695505050505050565b8060405161031690610472565b6040518091039082f0905080158015610333573d6000803e3d6000fd5b505050565b60608161037857505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156103a2578061038c81610782565b915061039b9050600a836107ea565b915061037c565b60008167ffffffffffffffff8111156103bd576103bd61052b565b6040519080825280601f01601f1916602001820160405280156103e7576020820181803683370190505b5090505b841561046a576103fc6001836107fe565b9150610409600a86610815565b610414906030610829565b60f81b81838151811061042957610429610841565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610463600a866107ea565b94506103eb565b949350505050565b60088061087183390190565b60005b83811015610499578181015183820152602001610481565b838111156104a8576000848401525b50505050565b600081518084526104c681602086016020860161047e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061050b60208301846104ae565b9392505050565b60006020828403121561052457600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561056f57600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461059357600080fd5b925060208401359150604084013567ffffffffffffffff808211156105b757600080fd5b818601915086601f8301126105cb57600080fd5b8135818111156105dd576105dd61052b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156106235761062361052b565b8160405282815289602084870101111561063c57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b83815282602082015260606040820152600061067d60608301846104ae565b95945050505050565b6000845161069881846020890161047e565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516106d4816001850160208a0161047e565b600192019182015283516106ef81600284016020880161047e565b0160020195945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261074760c08301846104ae565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156107b4576107b4610753565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826107f9576107f96107bb565b500490565b60008282101561081057610810610753565b500390565b600082610824576108246107bb565b500690565b6000821982111561083c5761083c610753565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfe608060405230fffea164736f6c634300080a000a"
This diff is collapsed.
This diff is collapsed.
...@@ -20,36 +20,16 @@ contract Semver_Test is CommonTest { ...@@ -20,36 +20,16 @@ contract Semver_Test is CommonTest {
* @notice Deploy a Semver contract * @notice Deploy a Semver contract
*/ */
function setUp() external { function setUp() external {
semver = new Semver(7, 8, 9); semver = new Semver(7, 8, 0);
} }
/** /**
* @notice Test the getter of the major version * @notice Test the version getter
*/ */
function test_major() external { function test_version() external {
assertEq( assertEq(
semver.MAJOR_VERSION(), semver.version(),
7 "7.8.0"
);
}
/**
* @notice Test the getter of the minor version
*/
function test_minor() external {
assertEq(
semver.MINOR_VERSION(),
8
);
}
/**
* @notice Test the getter of the patch version
*/
function test_patch() external {
assertEq(
semver.PATCH_VERSION(),
9
); );
} }
...@@ -64,18 +44,8 @@ contract Semver_Test is CommonTest { ...@@ -64,18 +44,8 @@ contract Semver_Test is CommonTest {
proxy.upgradeTo(address(semver)); proxy.upgradeTo(address(semver));
assertEq( assertEq(
Semver(address(proxy)).MAJOR_VERSION(), Semver(address(proxy)).version(),
7 "7.8.0"
);
assertEq(
Semver(address(proxy)).MINOR_VERSION(),
8
);
assertEq(
Semver(address(proxy)).PATCH_VERSION(),
9
); );
} }
} }
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { Strings } from "@openzeppelin/contracts/utils/Strings.sol";
/** /**
* @title Semver * @title Semver
* @notice Semver is a simple contract for managing contract versions. * @notice Semver is a simple contract for managing contract versions.
...@@ -10,19 +12,19 @@ contract Semver { ...@@ -10,19 +12,19 @@ contract Semver {
* @notice Contract version number (major). * @notice Contract version number (major).
*/ */
// solhint-disable-next-line var-name-mixedcase // solhint-disable-next-line var-name-mixedcase
uint256 public immutable MAJOR_VERSION; uint256 private immutable MAJOR_VERSION;
/** /**
* @notice Contract version number (minor). * @notice Contract version number (minor).
*/ */
// solhint-disable-next-line var-name-mixedcase // solhint-disable-next-line var-name-mixedcase
uint256 public immutable MINOR_VERSION; uint256 private immutable MINOR_VERSION;
/** /**
* @notice Contract version number (patch). * @notice Contract version number (patch).
*/ */
// solhint-disable-next-line var-name-mixedcase // solhint-disable-next-line var-name-mixedcase
uint256 public immutable PATCH_VERSION; uint256 private immutable PATCH_VERSION;
/** /**
* @param _major Version number (major). * @param _major Version number (major).
...@@ -38,4 +40,22 @@ contract Semver { ...@@ -38,4 +40,22 @@ contract Semver {
MINOR_VERSION = _minor; MINOR_VERSION = _minor;
PATCH_VERSION = _patch; PATCH_VERSION = _patch;
} }
/**
* @notice Returns the full semver contract version.
*
* @return Semver contract version as a string.
*/
function version() public view returns (string memory) {
return
string(
abi.encodePacked(
Strings.toString(MAJOR_VERSION),
".",
Strings.toString(MINOR_VERSION),
".",
Strings.toString(PATCH_VERSION)
)
);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment