【逆引き】コントラクト内でETHを送金する方法

Calendar Clock iconCalendar Clock icon

イーサリアム

# 目次

# 目的

コントラクトが保有する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を送金する方法を紹介しました.


リモートフリーランス。ウェブサービス、スマホアプリエンジニア。
東アジアを拠点に世界を移動しながら活動してます!

お仕事のご依頼・お問い合わせはこちら

コメント