Golem Network Token

提供: tezos-wiki
GNTから転送)
移動先: 案内検索

このページはスマートな契約とやりとりするために必要な重要な情報を含んでいるため保護されており、間違いが経済的損失につながる可能性があります。 価値のあるトランザクションを実行する前に契約アドレスとアプリケーションバイナリインターフェイスが正しいことを個別に確認してください。

'[Golem Worldwide Supercomputer]]も参照してください

トークン情報[編集]

ウェブサイト: https://golem.network/ - フォーラム: https://golemproject.slack.com - エクスプローラ: https://etherscan.io/token/Golem - 交換: https://coinmarketcap.com/assets/golem-network-tokens/#markets

< br />

トークン契約情報[編集]

シンボル: GNT - 名前: ゴーレムネットワークトークン - 住所: 0xa74476443119a942de498590fe1f2454d7d4ac0d - 小数点以下の桁数: 18 - 利用可能な供給: 820,000,000 - 総供給量: 1,000,000,000

< br />

Ethereum Wallet / Mistでトークン契約を見る方法[編集]

Ethereum Wallet / Mistで、 CONTRACTS 'タブを選択し、' 'WATCH CONTRACT' をクリックしてWatch契約ウィンドウを開きます。次に:

  • '契約名' の下に 'GNT' を入力してください。
  • 'CONTRACT ADDRESS' の下に 'を入力してください。0xa74476443119a942de498590fe1f2454d7d4ac0d'
  • 以下のアプリケーションバイナリインタフェースをコピーして 'JSON INTERFACE' テキストボックスに貼り付けます

< syntaxhighlight lang = "javascript"> [{"定数":真、 "入力":[]、 "名前": "名前"、 "出力":[{"名前": ""、 "タイプ": "文字列"}]、 "支払う" [{"name": ""、 "type": "入力"、 "名前": "golemFactory"、 "出力" "入力":[]、 "名前": "totalSupply"、 "outputs": "{"} "、" payable ":false、" type " {"" name ":" _ master "}"、 "type": "uint256"}]、 "payable":false、 "type": "function" {"constant":true "、" type ":" address "}"、 "name": "setMigrationMaster"、 "outputs" [{"name": ""、 "type": "uint8"}]、 "payable":偽、 "type": "function" テンプレート:"name": " value"、 "type": "uint256"、 "name": "migrate"、 "outputs":[]、 "payable ":" false "、" type ":" function "}、{" constant ":false、" inputs ":[]、" name ":" finalize "、" outputs ":[]、" payable ":false、" type "、"関数 "}、{"定数 ":偽、"入力 ":[]、"名前 ":"払い戻し "、"出力 ":[]、"支払可能 ":偽、"タイプ " 、{"定数":真、 "入力":[]、 "名前": "migrationM {"" name ":" "、" type ":" address "}"、 "payable":false、 "type": "function"}、{"constant":true、 "inputs" ":" {"name": ""、 "type": "uint256"} "、" payable ":false、" type ":" function "} テンプレート:"name": " owner"、 "type": "address"、 "name": "balanceOf"、 "outputs":{"name": " {{"name": "_ agent"、 ""} "、" type ":" uint256 "}]、" payable ":false、" type " {"constant":true、 "inputs": ""} "、" type ":" function "}、{" [{"name": ""、 "type": "address"}]、 "payable":偽、 "type": "function"}、{"name": "migrationAgent" [{"name": ""、 "type": "uint256"}]、 "payable":偽、 "入力" "入力":[]、 "名前": "totalMigrated"、 "outputs":[{"name": ""、 "type": "uint256" {} "、" payable ":false、" type ":" function "}、{" constant ":true、" inputs ":[]、" name ":" symbol "、" outputs " : ""、 "type": "string"}]、 "payable":false、 {"name": "_"、 "type": "address"}、{"name": "_ value"、 "type" "、"タイプ ":" bool "}]、" payable ":false、" type ":" function ":" uint256 "}]、" name ":" transfer "、" outputs " "{" name ":" "、" type ":" uint256 "}]、" payable "{" constant ":true、" inputs ":[]、" name ":" tokenCreationMin "、" outputs " {{"name": ""、 "type": "function"}、{"constant":true、 "入力":[]、 "名前": "資金調達" "、"入力 ":[]、"名前 ":" tokenCreationRate "、" outputs ":[" bool "}]、" payable ":false、" type " {"定数":真、 "入力":[]、 "名前"、 "名前": " : "fundingStartBlock"、 "outputs":{{"name": ""、 "type": "uint256"} "、" payable ":false、" type ":" function "}、{" constant " [入力]:[名前]: "作成"、 "出力":[]、 "支払う":真、 "タイプ": "機能"}、{"入力": "{" "name": "_ golemFactory "_"、 "type": "address"}、{"name": "_ migrationMaster"、 "type": "address"}、{"name": "_ fundingStartBlock"、 "type": "uint256"}、{"name ":" _ fundingEndBlock "、" type ":" uint256 " {{"indexed":true、 "name": "_ from"、 "type": "address"}、{"}"、 "type": "constructor"}、{"anonymous":false、 "inputs" "name": "_ to"、 "type": "address"}、{"indexed":false、 "name": "_ value"、 "type": "uint256"}] : "タイプ": "イベント"}、{"匿名":偽、 "入力":[{"インデックス":真、 "名前": "_から"、 "タイプ": "アドレス"}、 {"indexed": "_"、 "type": "address"}、{"indexed":false、 "name": "_ value"、 "type": "uint256"}] 「名前」:「_」、「タイプ」、「アドレス」、「タイプ」、「タイプ」、「タイプ」、 「名前」:「_値」、「タイプ」:「uint256」}]、「名前」:「払い戻し」、「タイプ」:「イベント」}] < / syntaxhighlight>

  • 'OK' をクリックしてください。

border

< br />

Ethereum Wallet / Mistでトークンを見る方法[編集]

Ethereum Wallet / Mistで、 'CONTRACTS' タブを選択し、 WATCH TOKEN 'をクリックしてAdd Token Windowを開きます。次に:

  • 'TOKEN CONTRACT ADDRESS' の下に '0xa74476443119a942de498590fe1f2454d7d4ac0d' と入力してください。追加フィールドは自動的に入力されます。
  • 'OK' をクリックしてください。

border

< br />

EtherScan.ioのトークンバランスを確認する[編集]

https://etherscan.io/に移動します。次に:

  • 'TOKEN' - >メニューを選択します。 'トークンを見る'
  • 'GOLEM' を選択
  • '契約書を読む' タブを選択
  • 'balanceOf' フィールドに、トークン残高を確認するアドレスを入力します。
  • 'クエリ' をクリック

border | 800px

トークン残高を確認する簡単な方法はhttps://etherscan.io/に移動することです。次に:

  • 画面の右上にある検索ボックスにあなたの住所を入力してください
  • 'ENTER' を押す
  • 'トークン残高を表示' ドロップダウンをクリックしてください

border | 800px

< br />

Ethereum Wallet / Mistでトークンスマート契約と対話する方法[編集]

Ethereum Wallet / Mistでトークンバランスをチェックする方法[編集]

上記のように[[#Ethereum Wallet / Mist |契約を見る]スマート契約を見るにはどうすればいいですか?]と Tokenを見る方法。次に:

  • 'GNT' 契約を見る
  • 'SHOW CONTRACT INFO' をクリックしてください。
  • READ FROM CONTRACT 'セクションと' の残高:
    • トークン残高を確認する住所を入力してください
    • トークン残高は小数点以下18桁でNatural Unitsに表示されます。たとえば、806451612903225800000は806451612903225800000 / 1e18 = 806.4516129032258トークン単位
border | 600px

< br />

Ethereum Wallet / Mistであなたのトークンを転送する方法[編集]

上記のように[[#Ethereum Wallet / Mist |契約を見る]スマート契約を見るにはどうすればいいですか?]と Tokenを見る方法。次に:

  • 'GNT' 契約を見る
  • 'SHOW CONTRACT INFO' をクリックしてください。
  • WRITE TO CONTRACT 'セクションと' Select function ':
    • 'Transfer' 関数を選択してください
    • '〜'の下に、あなたのトークンを転送するアドレスを入力してください
    • 'の下に、転送するトークンの量を入力します。この金額は小数点以下18桁のNatural Unitsに指定する必要があります。たとえば、1230000000000000000は1230000000000000000 / 1e18 = 1.23 GNTsです
    • 'から実行' の下で、トークンを転送するアカウントを選択します
    • 'Execute' をクリックし、取引を確認してください
国境| 600px

< br />

トークン契約のソースコード[編集]

以下は、0xa74476443119a942de498590fe1f2454d7d4ac0dのソースコードです。

< syntaxhighlight lang = "javascript" line = 'line'> プラグマ硬度は0.4.4;


/// @title Golem Network Token(GNT) - Golem Projectのためのクラウドファンディングコード 契約GolemNetworkToken {     文字列public constant name = "ゴーレムネットワークトークン";     文字列public constant symbol = "GNT";     uint8 public定数decimals = 18; //小数点以下は18桁で、ETHと同じです。

    uint256 public定数tokenCreationRate = 1000;

    // weisの資金調達上限。     uint256 public constant tokenCreationCap = 820000 ether * tokenCreationRate;     uint256 public定数tokenCreationMin = 150000 ether * tokenCreationRate;

    uint256 public fundingStartBlock;     uint256 public fundingEndBlock;

    // GNT契約がFunding状態にあるかどうかを示すフラグです。     ブール公的資金=真;

    // ETHとそれ自身のGNT寄付を受け取る。     アドレスpublic golemFactory;

    //トークンの次のバージョンへのトークン移行を制御します。     アドレスpublic migrationMaster;

    GNTAllocation lockedAllocation;

    //現在の合計トークンの供給。     uint256 totalTokens;

    マッピング(アドレス=> uint256)のバランス。

    アドレスpublic migrationAgent;     uint256 public totalMigrated;

    イベント転送(アドレスインデックス付き_from、アドレスインデックス付き_to、uint256 _value)。     イベントMigrate(アドレスインデックス付き_from、インデックスインデックス付き_to、uint256 _value)。     イベントRefund(住所インデックス付き_from、uint256 _value);

    関数GolemNetworkToken(アドレス_golemFactory、                                アドレス_migrationMaster、                                uint256 _fundingStartBlock、                                uint256 _fundingEndBlock){

        if(_golemFactory == 0)throw;         if(_migrationMaster == 0)throw;         if(_fundingStartBlock< = block.number)throw;         if(_fundingEndBlock< = _fundingStartBlock)throw;

        lockedAllocation =新しいGNTAllocation(_golemFactory);         migrationMaster = _migrationMaster;         golemFactory = _golemFactory;         fundingStartBlock = _fundingStartBlock;         fundingEndBlock = _fundingEndBlock;     }

    /// @notice送信者のアカウントから `_value` GNTトークンを転送します     /// `msg.sender`はアカウントアドレス` _to`を提供します。     /// @noticeこの機能は、資金調達中は無効になっています。     /// @dev必須状態:操作可能     /// @param _toトークン受信者のアドレス     /// @param _value転送されるトークンの量     /// @return転送が成功したかどうか     関数転送(アドレス_to、uint256 _value)は、(bool){         // Operational状態でない場合は中止します。         if(funding)throw;

        var senderBalance =バランス[msg.sender];         if(senderBalance> = _value && _value> 0){             senderBalance - = _value;             バランス[msg.sender] = senderBalance;             バランス[_to] + = _value;             転送(msg.sender、_to、_value);             真を返します。         }         偽を返します。     }

    function totalSupply()外部定数が返される(uint256){         return totalTokens;     }

    function balanceOf(address _owner)外部定数が返る(uint256){         リターン残高[_owner];     }

    //トークン移行のサポート:

  /// @noticeトークンを新しいトークンコントラクトに移行します。

    /// @dev必要な状態:操作マイグレーション     /// @param _value移行するトークンの量     関数migrate(uint256 _value)外部{         // Operational Migration状態でない場合は中止します。         if(funding)throw;         if(migrationAgent == 0)throw;

        //入力値を検証します。         if(_value == 0)throw;         if(_value> balances [msg.sender])throw;

        バランス[msg.sender] - = _value;         totalTokens - = _value;         totalMigrated + = _value;         MigrationAgent(migrationAgent).migrateFrom(msg.sender、_value);         移行する(msg.sender、migrationAgent、_value);     }

    /// @notice移行先契約のアドレスを設定し、移行を有効にする     ///プロセス。     /// @dev必要な状態:操作正常     /// @dev状態遷移: - >運用移行     /// @param _agent MigrationAgentコントラクトのアドレス     関数setMigrationAgent(アドレス_エージェント)外部{         // Operational Normal状態でない場合は中止します。         if(funding)throw;         if(migrationAgent!= 0)throw;         if(msg.sender!= migrationMaster)throw;         migrationAgent = _エージェント。     }

    関数setMigrationMaster(アドレス_master)外部{         if(msg.sender!= migrationMaster)throw;         if(_master == 0)throw;         migrationMaster = _master;     }

    // Crowdfunding:

    /// @notice資金がアクティブなときにトークンを作成します。     /// @dev必要な状態:Funding Active     /// @dev状態遷移: - >資金調達の成功(キャップ​​に達した場合のみ)     関数create()payable external {         // Funding Active状態でない場合は中止します。         //チェックは(演算子または演算子の代わりに)分割されているため、分割されています         //この方法で安くなる。         if(!funding)throw;         if(block.number< fundingStartBlock)throw;         if(block.number> fundingEndBlock)throw;

        //キャップトークンを0個以上作成することはできません。         if(msg.value == 0)throw;         if(msg.value>(tokenCreationCap - totalTokens)/ tokenCreationRate)             スロー;

        var numTokens = msg.value * tokenCreationRate;         totalTokens + = numTokens;

        //送信者に新しいトークンを割り当てる         バランス[msg.sender] + = numTokens;

        //ログトークン作成イベント         転送(0、msg.sender、numTokens);     }

    /// @noticeクラウドファンディングを完了する     /// @dev上限に達するか、crowdfundingが終了した場合:     ///ゴーレム工場と開発者のGNTを作成し、     /// ETHをGolem工場の住所に転送します。     /// @dev必要な状態:資金調達の成功     /// @dev状態遷移: - >操作上の正常     関数finalize()外部{         // Funding Success状態でない場合は中止します。         if(!funding)throw;         if((block.number< = fundingEndBlock ||              totalTokens< tokenCreationMin)&&             totalTokens< tokenCreationCap)throw;

        // Operational状態に切り替えます。これが起こる可能性のある唯一の場所です。         資金調達=偽;

        // Golemファクトリと開発者向けにGNTを追加で作成する         //トークンの総数の18%。         //すべての追加のトークンはアカウントコントローラに転送されます。         // 6ヶ月間GNTAllocationを使用できないGNTAllocation契約。         uint256 percentOfTotal = 18;         uint256 additionalTokens =             totalTokens * percentOfTotal /(100 - percentOfTotal);         totalTokens + = additionalTokens;         バランス[lockedAllocation] + = additionalTokens;         転送(0、lockedAllocation、additionalTokens);

        // ETHをゴーレムファクトリアドレスに転送します。         if(!golemFactory.send(this.balance))throw;     }

    /// @notice資金調達の際に送付されたetherを回収します     ///は最低レベルに達していません。     /// @dev必要な状態:資金不足     関数refund()外部{         // Funding Failure状態でない場合は中止します。         if(!funding)throw;         if(block.number< = fundingEndBlock)throw;         if(totalTokens> = tokenCreationMin)throw;

        var gntValue =バランス[msg.sender];         if(gntValue == 0)throw;         バランス[msg.sender] = 0;         totalTokens - = gntValue;

        var ethValue = gntValue / tokenCreationRate;         払い戻し(msg.sender、ethValue);         if(!msg.sender.send(ethValue))throw;     } }


/// @title移行エージェントのインターフェイス 契約MigrationAgent {     関数migrateFrom(アドレス_from、uint256 _value); }

/// @title GNTの割り当て - 割り当てられたトークンの時間ロックされた格納域 ///開発者とゴーレム工場 契約GNTAllocation {     //追加のトークンを配布するための割り当ての総数     //開発者とゴーレム工場。ゴーレム工場には20000     //割り当て、開発者を10000に割り振る、個別に分割する     //開発者は `allocations`テーブルで指定された番号で開発者を呼び出します。     uint256 constant totalAllocations = 30000;

    //開発者のアドレスとGolem Factoryの割り当てマッピングへのアドレス。     マッピング(アドレス=> uint256)の割り当て。

    GolemNetworkToken gnt;     uint256 unlockedAt;

    uint256 tokensCreated = 0;

    関数GNTAllocation(アドレス_golemFactory)内部{         gnt = GolemNetworkToken(msg.sender);         unlockedAt =今度は+ 6 * 30日。

        //ゴーレム工場の場合:         割り当て[_golemFactory] ​​= 20000; // 30000の割り当ての12/18 pp。

        //開発者向け:         割り当て[0x9d3F257827B17161a098d380822fa2614FF540c8] = 2500; //開発者の割り当ての25.0%(10000)。         割り当て[0xd7406E50b73972Fa4aa533a881af68B623Ba3F66] = 730; //開発者の割り当ての7.3%         割り当て[0xd15356D05A7990dE7eC94304B0fD538e550c09C0] = 730;         割り当て[0x3971D17B62b825b151760E2451F818BfB64489A7] = 730;         割り当て[0x95e337d09f1bc67681b1cab7ed1125ea2bae5ca8] = 730;         割り当て[0x0025C58dB686b8CEce05CB8c50C1858b63Aa396E] = 730;         割り当て[0xB127FC62dE6ca30aAc9D551591daEDdeBB2eFD7A] = 630; //開発者の割り当ての6.3%         割り当て[0x21AF2E2c240a71E9fB84e90d71c2B2AddE0D0e81] = 630;         割り当て[0x682AA1C3b3E102ACB9c97B861d595F9fbfF0f1B8] = 630;         割り当て[0x6edd429c77803606cBd6Bb501CC701a6CAD6be01] = 630;         割り当て[0x5E455624372FE11b39464e93d41D1F6578c3D9f6] = 310; //開発者の割り当ての3.1%。         割り当て[0xB7c7EaD515Ca275d53e30B39D8EBEdb3F19dA244] = 138; //開発者の割り当ての1.38%。         割り当て[0xD513b1c3fe31F3Fe0b1E42aa8F55e903F19f1730] = 135; //開発者の割り当ての1.35%。         割り当て[0x70cac7f8E404EEFce6526823452e428b5Ab09b00] = 100; //開発者の割り当ての1.0%。         割り当て[0xe0d5861e7be0fac6c85ecde6e8bf76b046a96149] = 100;         割り当て[0x17488694D2feE4377Ec718836bb9d4910E81D9Cf] = 100;         割り当て[0xb481372086dEc3ca2FCCD3EB2f462c9C893Ef3C5] = 100;         割り当て[0xFB6D91E69CD7990651f26a3aa9f8d5a89159fC92] = 70; //開発者の割り当ての0.7%。         割り当て[0xE2ABdAe2980a1447F445cb962f9c0bef1B63EE13] = 70;         割り当て[0x729A5c0232712caAf365fDd03c39cb361Bd41b1C] = 70;         割り当て[0x12FBD8fef4903f62e30dD79AC7F439F573E02697] = 70;         割り当て[0x657013005e5cFAF76f75d03b465cE085d402469A] = 42; //開発者の割り当ての0.42%。         割り当て[0xD0AF9f75EA618163944585bF56aCA98204d0AB66] = 25; //開発者の割り当ての0.25%。     }

  /// @notice開発者が割り当てられたトークンの転送をロック解除できるようにする

     /// GNTAllocationから開発者のアドレスに移動します。      function unlock()外部{          if(now< unlockedAt)throw;

         //最初にロックを解除しようとすると、ロックされたトークンの総数を取得します。          if(tokensCreated == 0)              tokensCreated = gnt.balanceOf(これ);

         var allocation = allocations [msg.sender];          割り当て[msg.sender] = 0;          var toTransfer = tokensCreated * allocation / totalAllocations;

         //割り当て(したがってtoTransfer)が0の場合は失敗します。          if(!gnt.transfer(msg.sender、toTransfer))throw;      } } < / syntaxhighlight>

ソース[編集]

http://theethereum.wiki/