//tips
//基本情報理解
EDI electronic data interchange 電子データ交換とは、異なる組織間で、取引のためのメッセージを通信回線を介して標準的な規約を用いてコンピュータ間で交換すること。
情報伝達規約:通信プロトコルに関する取り決め
情報表現規約:シンタックスルールといい、メッセージ形式やデータコードに関する取り決め
業務運用規約:データのやり取り方法や障害発生時の対処法などEDIの運用方法に関する取り決め
基本取引規約:企業間のEDI取引の内容に関する契約
上記のような取り決めがある。
ABC分析とは、製品の不良品の数が全体に占める割合によってグループに分け、ランクづけを行い、高ランクに属する製品に重点を置いて不良品の対策を図る方法。
不良品の個数を値の大きい順に並べて、累積値で何%をどの郡にするかによってグループ分けしていく。
//pitch deck
Pitch deckのレジェンドクラスは一通りに見たので、新しく生まれたのも見てみたが追加で得られるものは少なさそう。繰り返し、レジェンドピッチを読み直すのが良さそう。また、良質なpitchに出会ったら取り上げることにする。
//defi基礎情報
仮想通貨を触る中でdefi基礎情報が不足していたのでそちらの拡充を行う。
Rari CapitalのFuseというプロトコルでは、誰でも許可なしの貸し借りプールを作成者がカスタマイズして作れるようになった。AaveやCompoundにもこのような共有プールが存在するようだが、Fuseでは複数プールが互いに独立しており、プールのリスクが他のプールに波及しないように設計されている。
これにより、マイナーなトークンをもっている人が、利回りを得やすくなる。さらに、興味深く感じたのは、時価総額の小さなトークンを持つDAOがそのガバナンストークンを担保にして、DAIなどのステーブルコインを借りることで流動性をロックでき、攻撃的なショートに対抗することができる。
流れが早いのですぐに調べないとわからないことだらけになる。
cryptoの場合、market cap(market capitalization) は時価総額を指し、マイニングされたすべてのコインの総額。流通しているコインの枚数に、コイン1枚あたりの現在の市場価格を掛けて計算されるもの。market capと聞くと6%程度の市場リスクプレミアムを連想してしまうが、これとは別物。
ちなみに、アグリゲーターにも種類があり、
イールドアグリゲーター:イールドファーミングを自動代行システム
DEXアグリゲーター:UniswapやCurve Financeといった複数のDEXを介して最も得をするレートを算出しスワップ可能なシステム。1inch
ポートフォリオアグリゲーター:イールドファーミングの状態をスマホでかんたんにモニタリングができるシステム
などがあるよう。1inchは扱う数量が大きくなってきたら意識して使った方が良さそう。
よくみるスラング、DYORはDo Your Own Researchの略で、「自分で調べなさい」ということ。
//smart contract
ターミナルで返される。
const comp=await ERC20.deployed();
の解決方法を引き続き探していく。
コントラクトをテスト以外の目的で使いたい場合は、テストプロセスの外側で稼働しているネットワークにコントラクトをデプロイする必要がある。
その際にtruffle migrateを使う。
いろいろ調べても解決せず、最後の最後にターミナルを再起動したら治った。
なんでやねん。
複数のソフトの接続は本当に難しいんだなとしみじみ感じた。エンジニアの方に尊敬の念しか感じない。
Linkなどもインスタンスを取得し、ターミナルで関数を実行する。
truffle(develop)> const link=await ERC20.at("0xB5ea70f683dC96080d3F0E3789368b31d30b3327");
undefined
truffle(develop)> link.name()
'Chainlink'
Dexでこれを購入してみると、
await dex.buyToken(link.address,'100','10000',{from:accounts[3],value:'100'});
下記のような結果が返ってくる。
{
tx: '0x1e6ddb4e041c36a5cd58302c607628abe65ed2d9338d2f63e14c6858b521942a',
receipt: {
transactionHash: '0x1e6ddb4e041c36a5cd58302c607628abe65ed2d9338d2f63e14c6858b521942a',
transactionIndex: 0,
blockHash: '0xfaeac3c1564f976f4749c84d55dd1b933a420b328bf081671070b446daef1272',
blockNumber: 11,
from: '0x8115990d649e1ef1cd481577c3ea2d67974f2270',
to: '0x36a2ce67c7bc3fbbbc3726196ec5e9a6d7ad1675',
gasUsed: 62690,
cumulativeGasUsed: 62690,
contractAddress: null,
logs: [ [Object] ],
status: true,
logsBloom: '0x00000008000000000000000000000000000000000000000000000020000000000000000000100000000000000000000040000200000800000000000000000000000000000008000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000004000000000000000000000000000000000000080000000010000000000000000000200000000000000000000000000000000000000000000000000000000000000040000002000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000800000000000000000000000000',
rawLogs: [ [Object], [Object] ]
},
logs: [
{
logIndex: 1,
transactionIndex: 0,
transactionHash: '0x1e6ddb4e041c36a5cd58302c607628abe65ed2d9338d2f63e14c6858b521942a',
blockHash: '0xfaeac3c1564f976f4749c84d55dd1b933a420b328bf081671070b446daef1272',
blockNumber: 11,
address: '0x36a2cE67c7bC3FBbbC3726196Ec5E9a6d7Ad1675',
type: 'mined',
id: 'log_bc425df2',
event: 'buy',
args: [Result]
}
]
}
先に10000ほどlinkを購入しているのでethの残高を確認すると、
web3.eth.getBalance(accounts[3]);
'99999874619999999900'
このように表示される。
ここからganacheのnetworkspaceを開き、workspacenameをdexに変更。
addfileにtruffle-config.jsをあげる。その上でsave workspaceを押す。
そこで表示されているganache画面のRPCサーバーとtruffle-config.jsのdevelopmentの値を合わせる必要がある。
development: {
host: "127.0.0.1", // Localhost (default: none)
port: 7545, // Standard Ethereum port (default: none)8545
network_id: "*", // Any network (default: none)
},
このganacheを設定しておくとアカウント情報を保存していくれるよう。デプロイの手間を省いてくれるものとのこと。匍匐前進。