「Solanaで遊ぶ」シリーズの第3号へようこそ。第1号では、Solanaブロックチェーンの仕組み、アカウントモデル、トランザクション構造について学びました。第2号では、Rustを使って記事を公開・表示するSolanaアプリケーションを書き、TypeScriptスクリプトでテストする方法を学びました。
本連載の最終回として、本記事ではSolanaを使った記事の公開と表示について解説します。この記事では、ファルコンエクスプローラーを使ってシンプルなSolanaトランザクションを分析する方法を説明します。その前に、Solana上でTokenがどのように実装されているかを見てみましょう。
トークンについて
Solana上のトークンは、Native TokenとOther Tokenの2つのカテゴリに分類できます。/p>
ネイティブ・トークンとは、実際にはSolana Token(SOL)のことです。以前の記事で述べたように、SolanaのすべてのアカウントにはLamportsフィールドがあり、これは実際にはSOL Tokenの最小単位(1 SOL = 10億Lamports)であり、現在のアカウントのSolana Tokenの残高を記録します。
そしてもう1つのトークンについては、Solanaはトークンが必要とするすべての機能のために、プログラムアカウント(トークンプログラム)と2つのデータアカウント(ミントアカウントとトークンアカウント)を使用します。
Token Program
Token Programme 構造図
トークン プログラムは、Solana Program Library (SPL) が提供するプログラム アカウントなので、AccountInfo の Executable フィールドは True と表示されます。/p>
最初の記事で説明したように、すべてのプログラム・アカウントはBPFローダーが所有し、Token Programも例外ではありません。また、System Programと同様に、Token ProgramもSolanaチェーン上の固定アドレスにデプロイされます。
プログラムアカウントとして、異なる機能を提供するためにいくつかのディレクティブを実装します。たとえば、新しいトークンを初期化するためのMint Accountや、特定のアドレスが保持するトークン数を追跡するためのToken Accountを作成するために使用される命令もあれば、トークンの数を増やすためのMintTo命令や、アドレスのペア間でトークンを転送するためのTransfer命令など、トークンを使用するために必要なすべての機能を提供する命令もあります。トークンの数を増やすMintTo命令や、アドレスのペア間でトークンを転送するTransfer命令。
トークン・プログラムはミント・アカウントとトークン・アカウントの両方を作成する責任があるため、両方の所有者でもあることに注意してください。
Mint アカウント
ミントアカウントの構造と関係は以下の表のとおりです。Mintアカウントはデータアカウントであり、AccountInfoのExecutableフィールドがFalseであることを意味する。
Solanaでは、トークンの各タイプがMintアカウントに対応し、そのタイプのトークンの総供給量を記録する。ミントアカウントには、トークンの総供給量、ミントトークンにアクセスできるアカウントのアドレス、その他の情報が記録されます。
Token Account
トークン口座は、特定のトークンを保有する個人の数を記録するために使用されます。アカウントは、個人が保有するトークン・アカウントの数を記録するために使用されます。
トークン・アカウント(Token Accounts)は、データの一種である。
造幣局: このトークン口座に対応する造幣局。アカウントのアドレス;
所有者: トークン・アカウントからトークンを転送する権利を持つアカウント、つまりトークンの本当の「所有者」。"
金額:現在のトークン口座が保有するトークンの数。
トークン アカウント 構造図
所有者フィールドのAccountInfoとデータ・フィールドの所有者が同じであることを強調することが重要です。ownerフィールドのOwnerとDataフィールドのOwnerは全く異なるものであることを強調しておきます。前者は、Solanaのすべてのアカウントが持つフィールドであり、現在のアカウントデータを直接修正する権限を持っているアドレスを示します。後者は、トークン・アカウントが実際に誰に属しているかを示し、それ自体がAccountInfo Dataフィールドの一部です。
これらすべてを結びつけると、以下のようなアカウント関係の図が得られます。システムプログラムであれトークンプログラムであれ、それらはブロックチェーン上の一意のアドレスにデプロイされ、ライブラリの形で存在します。ウォレットアカウントは同時に複数のトークンアカウントを保持することができ、それはこれらのトークンアカウントの本当の「所有者」です。ウォレット・アカウントは同時に複数のトークン・アカウントを保持することができ、それはこれらのトークン・アカウントの真の「所有者」である。同じタイプのトークン・アカウントのMintフィールドは、そのタイプのトークンに固有のMintアカウントを指し、そのMintアカウントにはトークンの総供給量などの情報が記録される。/h2>
Solscanを使って、トークンのアカウントの変更を一度に見ることができます:
https://solscan.io/tx/byRn8qtNAYSdvgaGCK4kmZV1m89b7uuFuy1cn96W6femp7WgwymLqJ2MP9hPbegqN9EPe7NvghWpqDFqoCDjKph#tokenBalanceChange
「アドレス」列には、トランザクションに関与するすべてのトークンアカウントが表示されます。
Owner(所有者)列は、トークンの真の「所有者」を特定します。left;">Token列は現在のトークンのMint Accountに対応し、さらに表示するために$SONの最初の行をクリックすることができます:
プロファイルサマリーのオーナープログラムに、ミントアカウントの現在のオーナーがトークンプログラムであることが明記されていることがわかります。ソルスキャン。
しかし、Solscanのプレゼンテーションは誤解を招く可能性があります。たとえば、前の画像の1行目に追加された残高は、アドレスCHS9WajyFfuaAZRk2JC7hRJvPHXmG5fC94gtAPbnLjuYに属するものなのか、それともRaydium Authority V4に属するものなのか?このプレゼンテーションは、間違いなく理解するためのコストを増加させます。
これに加えて、読者はソルスキャンのソラナ・トークンとその他のトークンが2つのセクションに分かれて表示されていることにも気づくかもしれません。この分割は技術的には問題ないが、トークンと同じセクションに表示された方がわかりやすいだろう。
ファルコンエクスプローラーはこの問題を解決するだけでなく、ソルスキャンのために他にもいろいろなことをやってくれるので、ファルコンエクスプローラーを使って同じトランザクションをもう一度見てみましょう。
?
?
?
https://app.blocksec.com/explorer/tx/solana/。byRn8qtNAYSdvgaGCK4kmZV1m89b7uuFuy1cn96W6femp7WgwymLqJ2MP9hPbegqN9EPe7NvghWpqDFqoCDjKph
ファルコン&?取引内容を確認・分析するにはファルコンエクスプローラーをご利用ください
ファルコン・エクスプローラーのトップで、現在の取引がJITO MEV取引として認識されていること、取引シグネチャの横にあるSolanaのロゴをクリックすると、ワンクリックでソルスキャンにジャンプできることがわかります。left;">取引に関する情報は、基本情報、資金フロー、残高変更、呼び出しフローの4つのセクションに分かれており、右上のアイコンをクリックすることで該当するセクションに切り替えることができます。
基本情報
「基本情報」セクションは比較的シンプルで、現在の取引に関するいくつかの重要な情報を提供します。取引署名と同様に、ブロック番号と署名者アドレスをクリックすると、Solscanにジャンプできます。
ファンドフロー
ファンドフローの列は、取引が実行されたときに発生するファンドフローの移動とタイミングに関する情報をアナリストに提供します。
取引の開始者兼署名者である59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2Fは、まず、取引を行った人物に手紙を送ります。Raydium Authority V4;
その後、Raydium Authority V4は、Raydium Authority V4とラベル付けされたアドレスにある種のトークンを一定量転送します;
その後、Raydium Authority V4は、署名者にある種のトークンを一定量転送します。59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F 約6.747Wrapped SOL Token;
最後に、署名者はまた、ジトーに0.000003のSOLトークンを提供した。
下のチャートは、ソルスキャンのお金の流れを示しています。ソルスキャンに比べ、ファルコンエクスプローラーのフローチャートは、アドレスごとに1つのノードに一意であるため、アドレス間のフロー関係を見つけやすく、分析効率が向上しています。
取引の資金の流れをより深く分析したい場合は、画面の右側をクリックすると、より詳細な分析を見ることができます。トレードのマネーフローをより深く分析したい場合は、右上の茶色のロゴをクリックすることで、MetaSleushにアクセスすることもできます。
バランス 変化
残高変更カラムは、現在のトランザクションの終了以降、異なるアカウントにおけるすべてのトークンの変更がどのように変化したかを明確に示してくれます。
残高の変化
たとえば、トランザクション59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2Fの署名者は、3つのトークンを変更しました。61Hh8Udg7zruvG3BhyNiHF4UmULnC8reB9RBFtwi8uKp という名前のトークン、および Wrapped SOL トークンです。
Balance Changes に表示される各アカウントには、次のような変更があります。Balance Changesに表示される各アドレスには、1つ以上のトークン・アカウントがあり、対応するアドレスをクリックすることで、コピーしたり、solscanにリダイレクトしたりすることができます。
このように、ファルコンエクスプローラーはSOLトークンと他のトークンを区別しないため、アカウント内のすべてのトークン口座の変更を直接反映し、トークン口座とそのトークン口座の関係を表示することができます。トークン・アカウントとそのオーナーの関係は、より直感的です。
インボケーション フロー
インボケーションフローは、1つの取引におけるインストラクション実行の流れを記録したもので、各行はソラナ取引実行中の1つのインストラクションに対応しています。
ここでは、トークンの移動を伴う命令2と4に焦点を当てます。
2番目の命令は、トークンを売却するためにレイディウムのAMMのswapBaseInを呼び出します。そして4番目の命令は、署名者がジトーにチップを支払うプロセスです。
下の画像のように、インストラクションの後にある「アカウント」タブをクリックすると、インストラクションに関係するすべてのアカウントを表示することができます。これはSolscanよりもはるかにすっきりとした表示で、アナリストは取引のより重要な情報に集中することができます。strong>
本稿では、まずSolanaにおけるトークン実装の原理を紹介し、次にSolscanを使用して単一のトランザクションにおけるトークン口座の変化を表示した。最後に、ファルコンエクスプローラーを使ってトランザクションをさらに分析し、ファルコンエクスプローラーの機能の革新と最適化の詳細を紹介する。