【逆引き】コントラクト内でETHを送金する方法
# 目次
# 目的
コントラクトが保有するETHを別のコントラクトまたはユーザーに対して送金したい.
# 実装方法
address型がもつtransferメソッドを実行すると、そのアドレスに対して送金されます.
例えば、A.transfer(100)
なら、Aさんに100送金されます.
コントラクトから支払われます.
残高不足の場合にはエラーとなります.
# サンプルコード
以下のコードはRemixでそのまま試すことができます.
# 自分に送金
まずは一番多いケースからです.
コントラクトを呼び出したユーザー自身に送金するサンプルコードです.
contract Bank {
function withdraw(uint256 amount) public {
require(amount <= address(this).balance);
msg.sender.transfer(amount);
}
}
# 任意のアドレスに送金
次に任意のアドレスに対して送金するサンプルコードです.
contract Bank {
function send(address to, uint256 amount) public {
require(amount <= address(this).balance);
to.transfer(amount);
}
}
以上、コントラクトからETHを送金する方法を紹介しました.