//tips
//crypto
dexにて、保有していたコインを売却する際に、大きなポジションや流動性が少ないコインだと需給バランスの悪化が原因で売却コイン単価が値下がり、損してしまわないためにどのような対策を取れるかを考える。
基本的には、取引ボリュームが大きいuniswapを使用し、uniswapで取り扱いがないコインは、適正レートの一括表示ができるanyswap,1inch,curveで調べていく必要がありそう。
各dexの特定コインのロック量を見れるサイトがないか探してみたが、下記のようにdex単位でのボリューム表示が主なよう。トークンベースのdex別保有量みたいなものが作られることを期待。



調べている中で偶然borrowでレバレッジをかけるの意味がやっとわかったので、下記に記載。
Sushiswapのkashiでは、ペアの片方を担保にしてもう片方を借りるだけでなく、レバレッジをかけたポジションを構築することも可能で、レバレッジをかける場合には、「Swap borrowed XXXX for YYYY collateral」のチェックボックスをONにして、倍率を入力。
これにより、借りたトークンを交換してさらに担保にしてまた借りるという操作を自動で繰り返すことができ、レバレッジポジションを作ることができるとのこと。
これは担保の評価の制約があると、1回めよりも2回めの方が借りられる額が小さくなっていくので、最初のロットが重要になる。担保は借りる額の7倍用意する必要があるdexでは難しそう。(預入証を他に持っていき換金などして持ってかえればできないことはないかもしれないが、面倒だし、gas代が勿体無いかもしれない)。
//smart contract
受取人と受取人への送金リクエストを行う管理人アドレスについても記載していく。
Address payable型アドレスはtransferやsendメソッドが利用でき、イーサも受け取れるので受取人はaddress payableにする。
受取人アドレスと管理人アドレスを設定し、パラメータを使って新しい資金調達を作成するように呼び出しを書き終えた後に、ゲッター関数を使って新しいフィールドをテストする。
fundraiser_test.jsを更新。
const beneficiary=accounts[0];
const custodian=accounts[1];//取引所想定
同時にコントラクタ側も更新。
address payable public beneficiary;
address public custodian;
次に管理人のみが受取人アドレスの更新作業ができるようにownable制約をつける。
transferOwnership(_custodian);
気合のフォルダ移動により@openzeppelinをfundraiserフォルダ内に入れることでimportを機能させた。
import "../@openzeppelin/contracts/access/Ownable.sol";
contract Fundraiser is Ownable{
ただ、下記のエラーが発生。
Error: Truffle is currently using solc 0.5.16, but one or more of your contracts specify "pragma solidity ^0.8.0".
Please update your truffle config or pragma statement(s).
ふむ、オライリーは参考書的な位置付けにして実装テストはやめたほうがよさそう。
ついにudemyのコースを始めることにした。全部英語…。