25 lines
589 B
Solidity
25 lines
589 B
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity 0.8.10;
|
|
|
|
contract Migrations {
|
|
address public owner = msg.sender;
|
|
uint256 public last_completed_migration;
|
|
|
|
modifier restricted() {
|
|
require(
|
|
msg.sender == owner,
|
|
"This function is restricted to the contract's owner"
|
|
);
|
|
_;
|
|
}
|
|
|
|
function setCompleted(uint256 completed) external restricted {
|
|
last_completed_migration = completed;
|
|
}
|
|
|
|
function upgrade(address new_address) external restricted {
|
|
Migrations upgraded = Migrations(new_address);
|
|
upgraded.setCompleted(last_completed_migration);
|
|
}
|
|
}
|