Ethereum環境へのContractのデプロイ+実行(from Console)

同様の処理をweb3コンソールから実行してみます。

Deploy Image

Deployノード経由でのデプロイ

  1. PortForward(tunneling)設定

    PortForwad の方法でDeployノードと接続します。

  2. Unlock

    デプロイするユーザのアカウントをアンロックします。

    (以降のチュートリアルはアンロックされた状態である前提で説明しますので、必要に応じてアンロックを行ってください。)

  3. Browser-Solidityからデプロイソースのコピー

    Browser-Solidityにweb3デプロイ用のソースコードが載っているので、これをweb3コンソールから流します。

    deploy

    コピー内容のイメージ

    var helloworldContract = web3.eth.contract([{"constant":false,"inputs":...}]);
    var helloworld = helloworldContract.new(
    {
        from: web3.eth.accounts[0], 
        data: '0x606060405234610000575b61026f...', 
        gas: '4700000'
    }, function (e, contract){
        console.log(e, contract);
        if (typeof contract.address !== 'undefined') {
            console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
        }
    });
    
  4. fromユーザの確認

    もし、コントラクトをデプロイするユーザが、DeployNode上の

    eth.accounts[ 0 ]

    のユーザでない場合は、'0x0000....'という形式に差し替えます。

    from: '0x0000....',
    
  5. Consoleから処理の実行

    web3コンソールにコピーした内容を貼り付けます。

    > var helloworldContract = web3.eth.contract([{"constant":false,"inputs":...]);
    undefined
    > var helloworld = helloworldContract.new(
    {
        from: web3.eth.accounts[0],
        data: '0x606060405234610000575b61026f806100186000396000f3606060405...',
        gas: '4700000'
    }, function (e, contract){
        console.log(e, contract);
        if (typeof contract.address !== 'undefined') {
            console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
        }
    });
    null [object Object]
    undefined
    > null [object Object]
    Contract mined! address: 0x90fb8bd1944043d9f36f63b738e5d1ff760d38ca transactionHash: 0x83c6a00aa76ea4c83c401ea41c6e55a3dbf4565ea04cda03481a49da836ec839
    

    これにより、

    address : "0x90fb8bd1944043d9f36f63b738e5d1ff760d38ca"
    transactionHash : "0x83c6a00aa76ea4c83c401ea41c6e55a3dbf4565ea04cda03481a49da836ec839"
    

    でコントラクトがデプロイされたことが分かります。

    ただ最後の一行の、

    Contract mined! ...
    

    が表示されるにはマイニングされる必要があるので、時間がかかることに注意が必要です。

results matching ""

    No results matching ""