Paymaster API Özelliği
Geniş çapta benimsemeyi kolaylaştırmak ve çeşitli cüzdan uygulamaları arasında birlikte çalışabilirliği sağlamak için, paymasterlar için standart bir arayüz spesifikasyonu seti oluşturmak kritik öneme sahiptir. Bu standartlaştırma, cüzdan geliştiricilerinin, kullandıkları belirli paymaster servisine bakılmaksızın, gaz sponsorluğu özelliklerini verimli ve tutarlı bir şekilde entegre etmelerini sağlayacaktır.
API Özelliği
Paymaster, cüzdanlara sponsor ve politika bilgilerini dönebilmesi için pm_isSponsorable
adlı bir JSON-RPC API'si uygulamak zorundadır. Ayrıca, eth_sendRawTransaction
JSON-RPC API'sini de uygulaması gerekmektedir. Detaylı API Özellikleri aşağıda belirtilmiştir:
pm_isSponsorable
İstek Parametreleri
jsonrpc
: JSON-RPC protokol versiyonu ("2.0").id
: İstek için benzersiz bir tanımlayıcı (bu örnekte 1).method
: Çağrılacak yöntem adı ("pm_isSponsorable").params
: Aşağıdaki alanları içeren tek bir nesne içeren bir dizi:to
: İşlemin alıcı adresi.from
: İşlemin gönderici adresi.value
: İşlemin onaltılık değeri.data
: İşlem için ek veriler (onaltılık).gas
: İşlemin gaz limiti (onaltılık).
Örnek:
{
"jsonrpc": "2.0",
"id": 1,
"method": "pm_isSponsorable",
"params": [
{
"to": "0x...", // bir adres
"from": "0x...", // bir adres
"value": "0xa1",
"data": "0x",
"value": "0x1b4",
"gas" : "0x101b4"
}
]
}
Yanıt Alanları
jsonrpc
: JSON-RPC protokol versiyonu ("2.0").id
: İstek için benzersiz tanımlayıcı (bu örnekte 1).result
: Sponsorluk politikası detaylarını içeren bir nesne:- (Gerekli)
Sponsorable
: İşlemin sponsor edilebilir olup olmadığını belirten bir boolean (doğru veya yanlış). - (Gerekli)
SponsorPolicy
: Sponsor politikası adı.
- (Gerekli)
Örnek:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"Sponsorable": true,
"SponsorPolicy": "örnek bir politika adı"
}
}
eth_sendrawtransaction
Paymaster tarafından uygulanmış olan eth_sendRawTransaction
API'si, Ethereum API özelliklerine uyumlu olmalıdır.
İstemci, eth_sendRawTransaction
API'si aracılığıyla imzalı işlemler için yeni bir mesaj çağrısı işlemi veya sözleşme oluşturabilir.
İstek Parametreleri
params
, imzalı işlem verilerini içermelidir.
Örnek:
{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_sendRawTransaction",
"params": [
"0x02f86a6102850df8475800850df84758000a94cd9c02358c223a3e788c0b9d94b98d434c7aa0f18080c080a0bcb0e8ffa344e4b855c6e13ee9e4e5d22cff6ad8bd1145a93b93c5d332100c2ca03765236eba5fbb357e35014fd19ba4b3c6b87f3793bd14dddf7913fc8dcc88bf"
]
}
Yanıt Alanları
VERİ, 32 Bayt - işlem hash'i.
Örnek:
{
"id":1,
"jsonrpc": "2.0",
"result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}