sfc-academy-slackin.herokuapp.com/
トークンと送金・売買サイトを作って学ぶDapps開発入門
コントラクト
build/.webpack.dev.conf.js
1+0x17個 100000000000000000 SHN
ERC20Token
コントラクト 00->12
src/ 03まではコントラクトなし
webpack (Parcel 設定なし, Gulp)
webpack-dev-sever
設定だるいので 「typescript vue webpack config」 で検索 MSからパクる Ga webpack.base.conf.js にてそれぞれの拡張子でパッケージ化
node-gyp
Solidity Web IDE http://remix.ethereum.org
Ethereum ERC20 最初の企画
gethのインストール
参加
マイナーの手数料が高い方からマイニング
マイナーはみんなより一段進んだ新しいファイル
送金しい額だけでなく
MetaMask gethのサーバ持ってる
SSTORE GAS:20000 LSTORE GAS:5000
メモリ従量制
GASxGAS代(wei単位)=手数料 8 x 10000 Gas Limit
GAS Fee Ether 0.0026
GasLimit
・VSCodeの拡張 Prettier オートフォーマッタ TSLint Vetur
Vue HTML
Vue HTML Script(JS, TypeScript) CSS
HTMLをpugという言語(元Jade)
HTML要素を配置し終わったら呼ばれる mounted
window.web3 ブロックチェーン Proxy ブラウザのコンソールログにcurrentProvider MetaMaskのgethがある MetamaskInpageProvider
1.0.0が最新 "0.20.3"
プロバイダのURLだけもらって、web3 1.0.0に変更
infra.io 財団のgethを使う レンタル を配っているエントリポイント
https://ropsten.infura.io/B3hd1WhDtDSLkfVBMRtl
json rpc Remote Procedure Call リモートのPCに処理をする そのJSON版
JSON RPC仕様
https://github.com/ethereum/wiki/wiki/JSON-RPC
curl -H 'Content-Type:application/json' -s -X POST --data '{"jsonrpc":"2.0","id":67867379,"method":"eth_blockNumber","params":[]}' https://ropsten.infura.io/XXXXXXX
method 重要 eth_blockNumber
mainの
https://main.infura.io/B3hd1WhDtDSLkfVBMRtl
Send Raw Transaction
https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendrawtransaction
npm install solc
低レイヤー http://shunsuke.me/blog-ja/124/tutorial-for-ethereum-development/#toc5 サインが必要
WebからやるにはWeb3でdapps
ABI.. application binary interface
addressとABI
web3・・・Web3.0っぽくつけたらしい
Vueのルール、親の要素は必ず1つ
・remixのこと 赤のボタン、手数料・・・トランザクト 青いところは、無料で即座・・・コール
gasPrice・・・1ガスの大きさ(1に9個) gas・・・gas Limit 上限値 中断
手数料調査
// 手数料 hw.methods .setMessage('From web!!!') .estimateGas() .then(result => { console.log(result); }); ```` ## コントラクトに送金する
web3.eth
.sendTransaction({
from: this.address,
to: contractInfo.HellloWorld.address,
value: 100000000000000000, // 0.1 ETH
gas: 30000000,
gasPrice: 10000000,
})
.on('transactionHash', hash => {
console.log('マイニング開始');
})
.on('receipt', hash => {
console.log('マイニング開始');
});
コントラクトというSolidity単位・・・今回HelloWorld 状態変数 message 関数 setMessage // public/ external 外部からの呼び出しだけただしpublicよりもやすい view / pure function getMessage() external view returns(string) { return message; } ・青い ・書き換えない view, pure ・・・callだけどただ pure 1+2 view 書き換えはしない ・書き換える payable・・・・送金もする nonpayable・・有料ブロックチェーンの内容 ・ローカル変数 memory, storage memory・・・・マイナーのメモリ storage・・・ブロックチェーン 上の [f:id:shinriyo:20180911094855p:plain] [f:id:shinriyo:20180911094859p:plain]