VIPSTARCOIN wiki

- I wanna be a VIPSTAR -

ユーザ用ツール

サイト用ツール


playground:playground

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
playground:playground [2021/01/27 12:19]
非ログインユーザー 以前のリビジョンを復元 (2021/01/10 14:33)
playground:playground [2024/03/09 23:03] (現在)
非ログインユーザー 以前のリビジョンを復元 (2021/03/25 12:11)
行 1: 行 1:
-~~DISCUSSION:off~~ +[[wiki:smartcontract]] 
-[[wiki:news]] + 
-[[playground:playground2|砂場2]] +=======スマートコントラクト開発======= 
-[[wiki:nukumolink]]+======概要====== 
 + 
 + スマートコントラクトは主にsolidityという言語を使用して開発します\\ 
 + 本ページにあるコードは、すべてsolidityです\\ 
 + solidityはブラウザでコンパイルすることが可能です\\ 
 +\\ 
 +\\ 
 + 
 +======コントラクト作成~実行の仕方====== 
 +**コントラクト作成編**\\ 
 + 
 +  - solidityをコンパイルできるサイト「browser-solidity」を開く\\ 
 +  - 画面中央部のエディタにソースコードを書く\\ 
 +  - とりあえず試しに動かすだけならサンプルコードをコピペしましょう\\ 
 +  - 画面右の「Compile」タブにある「Start to compile」をクリック\\ 
 +  - 画面右に緑背景でコンストラクト名が出れば成功\\ 
 +  - 画面右の「Compile」タブにある「Details」をクリック\\ 
 +  - 出てきたウィンドウの「BYTECODE」の"object"の右のダブルクォーテーション内(長い)をコピー\\ 
 +  - ダブルクォーテーション内をダブルクリックすると簡単に全選択できます\\ 
 +  - SIKEN COREの「Smart Contract」の「Create」を開き、「Bytecode」のところに貼り付ける\\ 
 +  - browser-solidity」に戻り、「ABI」をコピー\\ 
 +  - 「ABI」の文字のすぐ右、バインダーに紙のようなマークをクリックするとコピー\\ 
 +  - SIKEN COREに戻り、「Interface (ABI)」のところに貼り付ける\\ 
 +  - ABIは実行するために必要なのでどこかにメモしておきましょう\\ 
 +  - コンストラクトの入力情報がある合は、「Constructor」に入力欄ができるので入力する\\ 
 +  - サンプルコードの場合、入力情報はないため出てきません。\\ 
 +  - 「Create Contract」をクリック\\ 
 +  - リザルト画面の「ContractAddress」は実行するために必要なのでどこかにメモしておきましょう\\ 
 +  - コントラクトが生成されるまで少し待つ\\ 
 +  - 「取引画面」で、「Contract send」が1検証完了(下図の状態)すれば、コントラクトの生成が完了しているはずです\\ 
 + 
 +コントラクト実行編に進んで、もし「Address does not exist (code -5)」と出る場合はもう少し待ちましょう\\ 
 + 
 +\\ 
 +====コントラクト実行編(はじめに)==== 
 + 
 +コントラクトの実行方法には「Call」と「SendTo」の種類あります。\\ 
 +\\ 
 +**Call** 
 +  - Callは、コントラクトに情報を記憶しない関数を呼ぶことができます。 
 +  - 実行が早く、手数料がかかりません。 
 +  - また、戻り値として数値や文字列を返すことができます。\\ 
 + 
 +**SendTo** 
 +  - SendTo、コントラクトに情報を記憶する関数を呼ぶことができます。   
 +  - 例えば、コントラクトに文字列「Hello」を記憶させ、他の人に取得させることも可能です。 
 +  - ブロックを生成するため実行完了まで時間がかかり、手数料が取られます。 
 +  - また、戻り値を返すことはできません。(本当に方法がないか調査中・・・) 
 + 
 + 
 +====コントラクト実行編(Call)==== 
 + 
 +  - SIKEN COREの「Smart Contract」の「Call」を開く 
 +  - 「Contaract Address」にコントラクトを作成したときに表示された「ContractAddress」を入れる 
 +  - 「Interface (ABI)」に、コントラクトを作成したときに使用したABIを入れる 
 +  - 「Function」のプルダウンリストに呼び出せる関数の候補が表示されるので、呼び出したい関数を選ぶ 
 +  - サンプルコードを使用した場合は、「HelloWorld」を選びましょう 
 +  - 引数がある関数を選択した場合、下に入力欄ができるので入力する 
 +  - 「HelloWorld」の場合、引数はないため出てきません。 
 +  - 「Call Contract」をクリック 
 +   - 実行結果が出力されます。 
 +  
 + 
 +====コントラクト実行編(SendTo)==== 
 + 
 +  - SIKEN COREの「Smart Contract」の「SendTo」を開く 
 +  - 「Contaract Address」にコントラクトを作成したときに表示された「ContractAddress」を入れる 
 +  - 「Interface (ABI)」に、コントラクトを作成したときに使用したABIを入れる 
 +  - 「Function」のプルダウンリストに呼び出せる関数の候補が表示されるので、呼び出したい関数を選ぶ 
 +   - サンプルコードを使用した場合は、「SetMessage」を選びましょう 
 +  - 引数がある関数を選択した場合、下に入力値を入れる欄ができるので入力する 
 +  - 「SetMessage」の場合、引数「message」を入力してください。これがコントラクタに記憶されます。 
 +  - 「Send To Contract」をクリック 
 +  - ブロックが生成されるまで少し待つ 
 +  - 「取引画面」で、「Contract send」が1検証完了(下図の状態)すれば、コントラクトの生成が完了しているはずです 
 + 
 +「SetMessage」を使用した場合、「GetMessage」関数を"Call"してみましょう。 
 +ブロックの生成が完了していれば、先ほど設定したメッセージが取得できます。 
 + 
 +---- 
 +======サンプルコード====== 
 +<file> 
 +pragma solidity ^0.4.16;    // solidityのバージョン 
 + 
 +contract sample {           // コントラクト名「sample」 
 +    string private mssg;    // コントラクトに情報を記憶させるための変数 
 +     
 +    // 関数         : HelloWorld 
 +    // 説明         : 文字列"HelloWorld"を返却します。 
 +    // 呼び出し方   : Call 
 +    // 引数         : なし 
 +    // 戻り値       : HelloWorld!! 
 +    function HelloWorld() pure public returns (string message) 
 +    { 
 +        return "HelloWorld"; 
 +    } 
 +     
 +    // 関数         : SetMessage 
 +    // 説明         : コントラクトに引数で渡した文字列を記憶します。 
 +    // 呼び出し方   : SendTo 
 +    // 引数         : message : 記憶する文字列 
 +    // 戻り値       : なし 
 +    function SetMessage(string message) public 
 +    { 
 +        mssg = message; 
 +    } 
 +     
 +    // 関数         : GetMessage 
 +    // 説明         : 関数「SetMessage」で記憶させた文字列を返却します。 
 +    // 呼び出し方   : Call 
 +    // 引数         : なし 
 +    // 戻り値       : 関数「SetMessage」で記憶させた文字列 
 +    function GetMessage() public constant returns (string message) 
 +    { 
 +        return mssg; 
 +    } 
 +     
 +    // 関数         : Sum 
 +    // 説明         : 引数の合計を返却します。 
 +    // 呼び出し方   : Call 
 +    // 引数         : data1 : 足し算する数1 
 +    //              : data2 : 足し算する数2 
 +    // 戻り値       : data1 + data2 の結果 
 +    function Sum(uint128 data1, uint128 data2) public pure returns (uint256 result) 
 +    { 
 +        return data1 + data2; 
 +    } 
 +
 +</file> 
playground/playground.1611717557.txt.gz · 最終更新: 2021/01/27 12:19 by 非ログインユーザー