yugure.sol

Orca の Developer Advocate です 🐬 主に Orca と So…

yugure.sol

Orca の Developer Advocate です 🐬 主に Orca と Solana の技術情報を投稿しています。記事は個人の見解です。また、何かを推奨・保証するものではありません。

最近の記事

  • 固定された記事

Concentrated Liquidity の理解 Part 1

Uniswap v3 や Orca の Whirlpool は集中流動性AMM (Concentrated Liquidity Automated Market Maker) です。 下記の Uniswap v3 の Whitepaper が原典となりますが、私自身は読んで難しく感じました。おそらく、私はもう少し図として何が起きているのかとらえたい人なのだと思います。 Whitepaper: https://uniswap.org/whitepaper-v3.pdf U

    • 流動性提供の手数料発生のしくみ Part 3

      Part 1 および Part 2 からの続きです。 流動性の集中で資本効率を高める集中流動性のメリットである「資本効率」を確認します。 前章では流動性を提供しているレンジをすべてカバーする $${100 \rightarrow 108 \rightarrow 92 \rightarrow 100}$$ という都合が良い動きを想定しました。 同じ 50 サイクルが $${100 \rightarrow 104 \rightarrow 96 \rightarrow 100

      • 流動性提供の手数料発生のしくみ Part 2

        Part 1 からの続きです。 Path Independence価格変動による変化を確認 価格が変動した場合の変化を確認します。 100 USDC/SOL から 102 USDC/SOL に値上がりした場合、流動性から SOL を払い出し、USDC を受け取ります。 そして、受け取った USDC は価格が下落した時に SOL を買うための流動性となります。 この動きは AMM が AMM (Automated Market Maker) であることを思い出させてく

        • 流動性提供の手数料発生のしくみ Part 1

          DeFi に触れ始めた時に、流動性提供が何をしているのか理解するのはややハードルがあると思います。 価格がレンジの外に出たらどうなる? 価格がレンジの外に出たら精算されてしまう? 価格のレンジはどのように設定する? 当初より一方のトークンが少なくなったのはなぜ? 流動性提供は稼げるのか? 思ったほど手数料が稼げていないのはなぜ? インパーマネント・ロスで損しない? そもそも流動性提供とは何をしている? ステーキングと同じものか? こういった疑問が投げかけら

        • 固定された記事

        Concentrated Liquidity の理解 Part 1

          PubkeySollet の使い方

          PubkeySollet は公開鍵のみを入力し、その公開鍵のウォレットとしてアプリケーションに接続できるウォレットです。 公開鍵のみを入力するため、署名はできません。「俺俺ウォレット」や「読み取り専用ウォレット」という名前でも呼べるものです。 クリプトで資産を毀損する事故は誤って署名してしまうことに起因することが多いと思います。 注意していても、ふいに表示されたものをクリックしてしまったとか、別のものだと勘違いしていたとか。 PubkeySollet は絶対に署名でき

          PubkeySollet の使い方

          Solana の RPC プロバイダ比較

          こちらは Solana Advent Calendar 2023 12/23の記事です。 https://adventar.org/calendars/8810 こんにちは、yugure というハンドルネームで Orca の DeveloperAdvocate として活動しています。 このポストでは、Solana でプロダクトを作る上で不可欠な RPC サーバを比較してみます。適切な RPC サーバを選択することで、RPC サーバに起因するトラブルを避けることができます。

          Solana の RPC プロバイダ比較

          🆕 Orca でトレードする時の Tips

          🆕 Orca がリリースされ、トレード画面が刷新されました。 ぜひ試してみてください 🙂 これまでなかった以下の機能が追加されていることに、画面から気がついていただけると思います。 価格チャート Orca 上でのトレード履歴 Jupiter との比較 短時間での見積アップデート トレードを実行しないと発見しにくい機能もあります。 トランザクションを投げた後、長時間待つことを避けるため、早めにタイムアウトするようになっています。待ち時間もおおよそわかります。

          🆕 Orca でトレードする時の Tips

          Solana関連のよもやま話(2月4日)

          まとまった技術記事を書こうとするとハードルが高いものの、日々事件や発見があるので、書いてみます。 こういう話に興味がある方は Orca の Discord の dev 関連チャネルへ! 🏃 日本語コミュニティチャネルもあるので活用ください👍 Solana 関連ATAのCreateIdempotent モード 少し前にようやく気がついたネタですが、AssociatedTokenProgram に CreateIdempotent という命令があります。 ATA があっ

          Solana関連のよもやま話(2月4日)

          Solana のスナップショットのあれこれ

          調査のために Solana の過去の状態を取得する必要があり、スナップショットからのアカウントデータ抽出を行いました。 スナップショットからバリデータを起動できる環境をもっていればバリデータに取り込む方法があるはずです。ただ、Solana のバリデータを起動するリソースはなかなか用意するのが大変です。ローカル環境やほどほどのスペックの EC2 で作業できる方法を探しました。 スナップショットの入手方法Solana のスナップショットにはすべてのアカウントの情報が含まれてお

          Solana のスナップショットのあれこれ

          Semver とパッケージのメモ

          semver package.json の semver 範囲指定 (^ とか) そうそう、いつも忘れるのよね・・・ 本家 0.x.y のときは breaking change をいつでも作ってよい。開発初期のモラトリアム期間。minor でも patch でもあり。1.0.0 以降は breaking change がある場合は major を上げなければならない。 package-lock.json や yarn.lock がある理由 package.json

          Semver とパッケージのメモ

          test-validator で USDC をミントする

          Solana の test-validator ではメインネットからアカウントやプログラムをコピーして使うことができます。 Solana ではアクセスするアカウントがトランザクションで明示されているため、トランザクションで使われるアカウントさえコピーしてしまえば、実行環境を再現することが容易です。 USDCのミントアカウントである EPjF…Dt1v を test-validator で使用するには、メインネットからアカウントのデータを JSON に保存し、それを tes

          test-validator で USDC をミントする

          borsh js の使い方

          Solana のデータのシリアライズ・デシリアライズで標準的に使われているのが Borsh です。 この javascript 版が、borsh js です。 ドキュメントが見当たらず、サンプルも弱々なのでこういうサンプルがほしいんだよ、というのを作っておきました。 i32 とか符号付きは標準でついてくる Writer/Reader では使えない。 ソースコードを読み解く他にテストコードを見る方法もあり。 interface とクラスの作り方はこちらを参考にさせて頂

          borsh js の使い方

          ts-nodeのデバッグ方法

          プロファイリングもできる。 ts-nodeの起動方法 node --inspect -r ts-node/register script.ts scriptargs --inspect のかわりに --inspect-brk を使うと初期状態でブレイクする ts-node/register が見つからない場合は devDependencies に ts-node を入れる。 Google Developer Tools chrome://inspect にアクセス

          ts-nodeのデバッグ方法

          ある時点のトークン量を知る方法

          特定の条件で発生するエラーを調査するために、とある時点のトークン量を知る必要がありました。 やってみるとこれが意外に面倒だったのでメモしておきます。 ポイントは Dune を使って特定日時より後に生成された最初のブロックのブロック番号を取得するということです。 もっといい方法があれば教えて頂けるとありがたいです😄 調査対象Orca の ORCA/USDC プールを調べます。 ターゲットの日時は 2022/08/08 05:23:24 とします。この時点で、このプールの

          ある時点のトークン量を知る方法

          Whirlpool mathematics

          Whirlpool (や Uniswap v3) の価格と $${tick}$$ の変換についてのメモです。 なお、Whirlpool の SDK ではこれらの処理をやってくれるヘルパークラスがあるので、実装の詳細を知らずとも変換は可能です。 tick から価格 P数学的背景 $$ \begin{array}{} P &=& 1.0001^{tick} \\ \sqrt{P} &=& \sqrt{1.0001^{tick}} \\ &=& \sqrt{1.0001}^{

          Whirlpool mathematics

          ネストしたATAからのトークン救出

          ついに自分も GOX してしまったか、と焦った事象が発生しました。あがいた結果、なんとかトークンを回収できたので、対応方法を記録します。 発生事象Solana のウォレットは、ウォレットの公開アドレスとなるシステムアカウント1つと、トークンごとの残高を扱う複数のトークンアカウントの集合体として実装されています。 そのトークンアカウントのオーナーはシステムアカウントになるのですが、紆余曲折があって、トークンアカウントがオーナーになるトークンアカウントが作成され、そこに着金し

          ネストしたATAからのトークン救出