Open9

Stargate の仕様調査

nekoya | 猫屋nekoya | 猫屋

Stargate Finance の frontend から実行できる bridge は少なくとも以下の 2 種類が確認できる

  1. 送金元・先チェーンの両側に存在する Stargate Pool の流動性を使用して swap (bridge)
  2. LayerZero の OFT(Omnichain Fungible Token) を使用して swap (bridge)

1 の pool base の bridge は Developer Docs にある程度仕様が書いてある

https://stargateprotocol.gitbook.io/stargate/developers/how-to-swap

2 の OFT を使用した bridge はそもそも Stargate というより LayerZero の技術なので、LayerZero の docs に記述されている模様

https://layerzero.gitbook.io/docs/evm-guides/layerzero-omnichain-contracts/oft

nekoya | 猫屋nekoya | 猫屋

Pool base transfer の from , to transaction の関連

Stargate は cross chain message に LayerZero を使用しているので、LayerZero の Packet 系 event log を比較することで、対応する transaction を決定できる

  1. to chain で Stargate Pool contract の SwapRemote event log を取得
  2. SwapRemote event log と同一 transaction の LayerZero contract の PacketReceived event log から srcAddress , nonce を取得
  3. from chain で srcAddress が同一の Stargate Bridge contract の SendMsg event log を取得
  4. SendMsg event log の nonce が PacketReceived event log の nonce と一致する場合は関連付ける
nekoya | 猫屋nekoya | 猫屋

OFT transfer の from, to transaction の関連

  1. to chain で (OFT / OFT Proxy) contract の ReceiveFromChain event log を取得
  2. ReceiveFromChain event log と同一 transaction の LayerZero contract の PacketReceived event log から srcAddress , nonce を取得
  3. from chain で srcAddress が同一の (OFT / OFT Proxy) contract の SendToChain event log を取得
  4. SendToChain event log と同一 transaction の LayerZero contract の Packet event log を取得
  5. Packet event log の nonce が Packet event の nonce (payload の最初の 16byte) が一致する場合は関連付ける
nekoya | 猫屋nekoya | 猫屋

対応 token 一覧

Pool Base の対応トークンは docs にリストがある

https://stargateprotocol.gitbook.io/stargate/developers/official-erc20-addresses

OFT は Stargate 以外の第三者でも作成できるので、Stargate が管理しているトークンリストは docs 系では公開されていなさそう

推測ではあるが、Stargate の frontend で表示されている OFT token list は Stargate が deploy した OFT に限られていて、deployer address は各チェーンに 1,2 個程度なので、履歴を辿って deployer address を特定すれば、deployer の contract createtion transaction history からリスト復元は可能ではありそう

→ Stargate deploy 以外の OFT token も含まれているため、contract 監視とか別の仕組みが必要そう

nekoya | 猫屋nekoya | 猫屋

OFT について

OFT は LayerZero が導入されているチェーンであれば誰でも Omnichain (cross chain) 対応の FT を作成できる技術

新しく OFT を発行する場合は異なる chain 同士の OFT を簡単に bridge できる
この場合流動性提供や deposit/withdraw 等の仕組みは必要なく、両チェーンで OFT が mint/burn されることで bridge が実現される

ただし、OFT の規格に沿っていない既存の FT を bridge したい場合、既存の FT に対して専用の OFT Proxy contract を作成し、その contract に 既存の FT を lock (deposit) することで、lock した量と同じだけの OFT を bridge 先で mint する仕組みを取る

Stargate が発行する $STG トークンは全てのチェーンで OFT として発行されているので、流動性提供や deposit/withdraw の仕組みを必要とせず、 $STG が発行されている全てのチェーンで自由に bridge が可能(LayerZero の message fee は必要)

一方 Fantom chain に (W)ETH を bridge したい場合、既存の Ethereum chain 上の WETH は OFT 規格のトークンでは無いため、OFT Proxy contract が必要になり、Fantom に Bridge する際には、
Ethereum 上の WETH を Proxy contract に lock して、その分の OFT 規格の WETH がFantom 上で mint される形となる