12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.0;
- abstract contract Impl {
- function version() public pure virtual returns (string memory);
- }
- contract DummyImplementation {
- uint256 public value;
- string public text;
- uint256[] public values;
- function initializeNonPayable() public {
- value = 10;
- }
- function initializePayable() public payable {
- value = 100;
- }
- function initializeNonPayableWithValue(uint256 _value) public {
- value = _value;
- }
- function initializePayableWithValue(uint256 _value) public payable {
- value = _value;
- }
- function initialize(
- uint256 _value,
- string memory _text,
- uint256[] memory _values
- ) public {
- value = _value;
- text = _text;
- values = _values;
- }
- function get() public pure returns (bool) {
- return true;
- }
- function version() public pure virtual returns (string memory) {
- return "V1";
- }
- function reverts() public pure {
- require(false, "DummyImplementation reverted");
- }
- }
- contract DummyImplementationV2 is DummyImplementation {
- function migrate(uint256 newVal) public payable {
- value = newVal;
- }
- function version() public pure override returns (string memory) {
- return "V2";
- }
- }
|