0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Remixで簡単な送金をしてみる

Posted at

最近solidityの勉強を始めました。
https://cryptozombies.io/jp/course でなんとなくSolidityの書き方が身についてきて、そろそろ自分のスマートコントラクトを作ってみたくなったということで、Remixで簡単な送金ができるコントラクトを作ります。

Remix

RemixはEthereumのスマートコントラクトを開発するための統合開発環境です。ブラウザで動きます。
同じ名前のwebフレームワークがありますが関係ありません。

solidityファイルを作成

remixにアクセスしてファイルを作成します。

contracts/ManagementEth.sol
// SPDX-License-Identifier: GPL-3.0

import "contracts/2_Owner.sol";

pragma solidity >=0.7.0 <0.9.0;

contract ManagementEth {

    function send(address payable _target) external payable {
        (bool res, ) = _target.call{
            value: msg.value
        }("");
        require(res, "failed");
    }

    function showMyBalance() external view returns(uint){
        return msg.sender.balance;
    }

}

デプロイ

ブロックチェーン上にデプロイします。

  • 再生ボタン(cmd + S)でコンパイル
  • サイバーから「DEPLOY & RUN TRANSACTIONS」パネルを開く
  • Deployを押す

image.png


creation of ManagementEth pending...
[vm]from: 0xAb8...35cb2to: ManagementEth.(constructor)value: 0 weidata: 0x608...a0033logs: 0hash: 0xed5...9224e
status	0x1 Transaction mined and execution succeed
transaction hash	0xed58f7596617921c0670c96feb3802206f0422d89c399f35d1c167a93f59224e
block hash	0x3d2b57755af153fa73142490787264474d465396058ff298612e2fb04f244aeb
block number	22
contract address	0x417Bf7C9dc415FEEb693B6FE313d1186C692600F
from	0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2
to	ManagementEth.(constructor)
gas	244831 gas
transaction cost	212896 gas 
execution cost	148394 gas 
input	0x608...a0033
output	0x608060405260043610610028575f3560e01c80633e58c58c1461002c57806352796d4214610048575b5f80fd5b6100466004803603810190610041919061019a565b610072565b005b348015610053575f80fd5b5061005c61011e565b60405161006991906101dd565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff163460405161009790610223565b5f6040518083038185875af1925050503d805f81146100d1576040519150601f19603f3d011682016040523d82523d5f602084013e6100d6565b606091505b505090508061011a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190610291565b60405180910390fd5b5050565b5f3373ffffffffffffffffffffffffffffffffffffffff1631905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016982610140565b9050919050565b6101798161015f565b8114610183575f80fd5b50565b5f8135905061019481610170565b92915050565b5f602082840312156101af576101ae61013c565b5b5f6101bc84828501610186565b91505092915050565b5f819050919050565b6101d7816101c5565b82525050565b5f6020820190506101f05f8301846101ce565b92915050565b5f81905092915050565b50565b5f61020e5f836101f6565b915061021982610200565b5f82019050919050565b5f61022d82610203565b9150819050919050565b5f82825260208201905092915050565b7f6661696c656400000000000000000000000000000000000000000000000000005f82015250565b5f61027b600683610237565b915061028682610247565b602082019050919050565b5f6020820190508181035f8301526102a88161026f565b905091905056fea2646970667358221220de3b5346c61e6f73badeb61ec8dbb025f541ac42c1134fc2cd68745e739835a664736f6c634300081a0033
decoded input	{}
decoded output	 - 
logs	[]
raw logs	[]
  • アドレス 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2 がデプロイ
  • 「DEPLOY & RUN TRANSACTIONS」メニューのACCOUTで「0xAb8…35cb2(99.999999999993574208 ether)」
  • 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2さんは最初に100ether持ってたうちの6425792 wei 使ってデプロイした
    • サイドパネルからshowBalanceをクリックすると関数を実行し残高を確認できる
      image.png

送金

0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2さんに別のアカウントから6425792 wget返してあげます。

  • サイドパネルからACCOUNTを0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02dbさんに変更

  • VALUEを6425792 Weiに設定し Deployed Contractsから sendに0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2を入れて押します。

image.png

まとめ

image.png

100より増えてます.call()関数は追加のガスを含めて送金するらしいです。ちょうどにするにはtransfer()かgasを差し引いた額を送金する必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?