Solana連携
APIはステークや関連操作のリソースを作成し、クライアントはSolanaトランザクションの署名とネットワークへの送信を行います。
フロー概要
ステークを作成して有効化する
POST /v1/solana/stakesとIdempotency-Keyを使用して、ステークリソースを作成します。- 返却されたチャレンジにwithdraw authorityで署名します。
POST /v1/solana/stakes/{stakeId}/stake-transactionsと新しいIdempotency-Keyを使用して、未署名のステークトランザクションを作成します。- 返却されたトランザクションにstake authorityで署名し、Solanaネットワークに送信します。
PUT /v1/solana/stakes/{stakeId}/transactions/{txId}/submissionでネットワークに送信したトランザクションの署名値を報告します。- 再試行可能なレスポンスが返された場合は、
Retry-Afterに従って同じ送信を再試行します。 protocol.statusがACTIVEになるまで、GET /v1/solana/stakes/{stakeId}をポーリングします。
ステークトランザクションを作成する前にチャレンジが期限切れになった場合は、PUT /v1/solana/stakes/{stakeId}/stake-transaction-challengeで新しいチャレンジを取得します。
未署名トランザクションを更新する
未署名トランザクションがネットワークへの送信前に期限切れになった場合は、POST /v1/solana/stakes/{stakeId}/transactions/{txId}/refreshで更新し、返却されたトランザクションに署名してSolanaネットワークに送信します。
ステークを無効化する
POST /v1/solana/stakes/{stakeId}/deactivation-transactionsと新しいIdempotency-Keyを使用して、未署名の無効化トランザクションを作成します。- stake authorityでトランザクションに署名してSolanaネットワークに送信し、
PUT /v1/solana/stakes/{stakeId}/transactions/{txId}/submissionで署名値を報告します。
ステークの無効化はSolanaのcooldown processに従うため、完了までに複数のepochを要する場合があります。
INACTIVEなステークを引き出す
GET /v1/solana/stakes/{stakeId}でprotocol.statusがINACTIVEであることを確認します。POST /v1/solana/stakes/{stakeId}/withdrawal-transactionsと新しいIdempotency-Keyを使用して、未署名の引き出しトランザクションを作成します。- withdraw authorityでトランザクションに署名してSolanaネットワークに送信し、
PUT /v1/solana/stakes/{stakeId}/transactions/{txId}/submissionで署名値を報告します。
論理的に異なるリソースまたはトランザクションの作成操作には、それぞれ別のIdempotency-Keyを使用します。同じキーを再利用するのは、同じ操作を再試行する場合だけです。