playground

The world is a playground.

Ethereum の生トランザクションを作って Etherscan から push

Ethereum の生のトランザクションを作って、 Etherscan から push したときのメモです。

 

Web3 でアドレス A から アドレス B に 0.001 Ether を送るトランザクションを作り、トランザクション自体は、Etherscan の pushTx からブロードキャストします。

 

node.js で生トランザクションを取得するコード例

gist.github.com

 

得られた生のトランザクション

gist.github.com

 

Etherscan の pushTx でトランザクションを投げる

Etherscan の pushTx でトランザクションをブロードキャストします。

今回は、Ropsten のものを使用: https://ropsten.etherscan.io/pushTx

 

f:id:plygnd:20180307235009p:plain

 

Send Transaction ボタンを押したら、しばらくした後にトランザクションがブロックに取り込まれ、トランザクションが完了しました。

 

実際に実行されたトランザクション
https://ropsten.etherscan.io/tx/0xe0edff2576225259751445b8ce03dbe978a35ee40d345f032e2f8e697a1a21d4

 

 

Ropsten とMainnet 

後でちゃんと調べないと行けないけど、Ropsten と Mainnet では、作成できる tx は異なるという理解でいいのかな?そうしないと Ropsten で実行されたトランザクションを、トランザクションを実行した本人が望まなくても Mainnet に投げることができてしまうので。(リプレイアタック?)

 

とりあえず、Ropsten と同じトランザクションを Mainnet に投げてみよう。

 

次のようなエラーが表示されました。

 

Error! Unable to broadcast Tx : {"id":"1","jsonrpc":"2.0","error":"One or more errors occurred."}

 

そもそもトランザクションを作るときに、ネットワークの ID を入れるのかな?

トランザクションを作る手順の詳細を理解しておきたいです。