在上一篇part 1的文章中簡單的介紹了什麼是Solana Actions & Blinks後,這篇我來詳細一點介紹一下Solana Actions以開發者的角度來看是怎麼樣子的。
Solana Actions 規範使用一組標準的API 用來簽署交易和最後可簽署的訊息,從使用者介面直接傳遞給使用者。它們託管在可公開存取的 URL 上,因此任何使用者都可以透過其 URL 進行存取和互動。
Actions API 包括向 Action 的 URL endpoint發出簡單GET
請求POST
並處理符合 Actions 介面的回應。
GET
發出請求返回metadata,向用戶端提供有關此 URL 上可用和可操作的使用者資訊以及相關操作的可選清單。POST
發出請求傳回可簽署的交易或訊息,然後客戶端提示使用者的錢包在區塊鏈或另一個鏈外服務中簽署並執行。 A GET
response with an HTTP OK
JSON response should include a body payload that follows the interface specification:
export interface ActionGetResponse {
/** image url that represents the source of the action request */
icon: string;
/** describes the source of the action request */
title: string;
/** brief summary of the action to be performed */
description: string;
/** button text rendered to the user */
label: string;
/** UI state for the button being rendered to the user */
disabled?: boolean;
links?: {
/** list of related Actions a user could perform */
actions: LinkedAction[];
};
/** non-fatal error message to be displayed to the user */
error?: ActionError;
}
在上面Response body的各個項目都有一些各自的規範,舉例來說icon就必須是圖示圖像的絕對 HTTP 或 HTTPS URL。圖像的檔案必須是 SVG、PNG 或 WebP 映像,否則客戶端/錢包必須將其拒絕為格式錯誤。礙於篇幅更詳細的可以去Solana的文件查看。
A POST
response with an HTTP OK
JSON response should include a body payload of:
export interface ActionPostResponse {
/** base64 encoded serialized transaction */
transaction: string;
/** describes the nature of the transaction */
message?: string;
}
在POST
的過程中應用程式可能會以部分或完全簽署的交易回應。客戶端和錢包必須驗證交易是否可信。
以上大概就是Solana Actions的API Response body的規範,當然這些東西不是他全部的範圍還有很多細節的東西,但希望透過這篇可以讓不了解Solana Actions的人可以稍微了解一下Actions在運作的時候需要哪些回傳或是提取哪些資料。
Source:
https://solana.com/docs/advanced/actions
下一篇我會來介紹Blinks