LoginSignup
0
0

More than 5 years have passed since last update.

自分用のコイン(トークン)を作成して、別のユーザーに渡す(ethereum8)

Last updated at Posted at 2018-01-11

前回はこちら。スマートコントラクト開発で知っておくべきことのメモ

ブロックチェーンでは「トークン(token)」という言葉がよく使われています。トークンとは、証拠、 記念品、代用貨幣、引換券、商品券などの意味を持つ英単語です。ブロックチェーンのトークンとは、基本 ビットコインや Ether と同様に、アカウントに紐づいて管理され、任意の量を任意のアカウントへ転送 的な できるもので、通貨よりも抽象的な概念となります。

pragma solidity ^0.4.8;

contract OreOreCoin {
    //トークンの名前
    string public name;
    //トークンの単位
    string public symbol;
    //小数点以下の桁数
    uint8 public decimals;
    //トークンの総量
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    //イベント通知
    event Transfer(address indexed from, address indexed to, uint256 value);

    //コンストラクタ
    function OreOreCoin(uint256 _supply, string _name, string _symbol, uint8 _decimals){
        balanceOf[msg.sender] = _supply;
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        totalSupply = _supply;
    }
    //送金
    function transfer(address _to, uint256 _value){
        if (balanceOf[msg.sender] < _value) throw;
        if (balanceOf[_to] + _value < balanceOf[_to]) throw;

        balanceOf[msg.sender] -= _value;
        balanceOf[_to] += _value;

        Transfer(msg.sender, _to, _value);
    }
}

ブラウザから作成
コンストラクタに下記の値を入力

10000, "OreOreCoin", "oc", 0

スクリーンショット 2018-01-09 19.26.35.png

balanceOfに、起動時に指定したユーザーAのアドレスを入力してボタンを押下すると、10000という値が表示されます。

スクリーンショット 2018-01-09 19.42.47.png

次に別のユーザーBのアドレスを入力してbalanceOfを入力すると「0」であることが確認できます。

スクリーンショット 2018-01-11 18.49.45.png

起動時に指定したユーザーからユーザーBにお金を移動させます。
この値をtransferに入力しました。addressは自分の環境に書き換えて下さい。

"0x32a39ca8fd074a9c1e49b77b6613ca5287592305", 2000

スクリーンショット 2018-01-11 18.54.13.png

改めてbalanceOfをチェックします。
今回は2000が表示されました。
スクリーンショット 2018-01-11 18.55.26.png

ユーザーAの方は8000になっています。
スクリーンショット 2018-01-11 18.56.51.png

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