
11 Şubat 2024'te SSP Connect, yalnızca görüntüleme ve kimlik protokolü olmaktan çıkıp bir ödeme protokolü hâline geldi. SSP Wallet v1.1.0 sürümü SSP Connect'e bir pay metodu ekliyor; böylece herhangi bir dApp veya web sitesi, cüzdan tesisatını yeniden uygulamak zorunda kalmadan bir SSP kullanıcısından gerçek bir on-chain ödeme talep edebiliyor. Talebin biçimi bilinçli olarak küçüktür: üç parametre, biri kasıtlı olarak bir dizgedir.
TL;DR
- SSP Connect artık mevcut kimlik akışlarının yanında bir
payaksiyonu sunuyor. - Bir ödeme talebi tam olarak üç parametre alır:
chain,addressveamount. amountbilerek bir dizgedir — ondalık hassasiyeti hat üzerinde korumak için.- İmzalama akışı hâlâ kullanıcının iki cihazı üzerinde uçtan uca çalışır; dApp asla anahtarları görmez.
- Entegratörler
amountdeğerini göndermeden önceBigNumber.toFixed()(veya muadiliyle) biçimlendirmelidir.
SSP Connect nedir
SSP Connect, bir SSP Wallet kullanıcısı ile dış dünya arasındaki köprüdür. Cüzdanın kendisinin bir tarayıcı eklentisi ile telefonda yaşayan bir SSP Key arasında bölünmüş gerçek bir 2-of-2 multisig olduğu SSP Wallet lansmanı ile birlikte tanıtılan aynı hafif oturum protokolüdür. Bu sürümden önce Connect çoğunlukla yalnızca okuma istekleri için kullanılıyordu: bir oturumu eşleştirmek, bir adresi paylaşmak, belirli bir kullanıcının belirli bir hesabı kontrol ettiğini doğrulamak. Kritik nokta şu: sırlar kullanıcının iki cihazından asla ayrılmaz; Connect yalnızca niyetleri ve yanıtları bu cihazlarla karşı taraf arasında taşır.
pay aksiyonu ne yapar
pay metodu Connect'i "kim olduğunu söyle" konumundan "senden bir ödeme isteyeyim" konumuna taşır. Bir dApp bir pay isteği oluşturur, bunu Connect'e teslim eder ve kullanıcıdan cüzdan arayüzünde talebi onaylaması, düzenlemesi veya reddetmesi istenir. Kullanıcı onaylarsa, multisig imzalama akışı her zamanki gibi işler — eklenti hazırlar, telefon birlikte imzalar — ve elde edilen işlem yayınlanır. dApp temiz bir onay veya temiz bir ret alır ve hiçbir zaman özel bir anahtara dokunmaz.
Üç parametre
chain ödeme yapılacak SSP tarafından desteklenen varlığı adlandıran bir dizedir, örneğin 'flux'. Zorunludur. Değer, SSP'nin zaten dahilî olarak kullandığı varlık tanımlayıcılarıyla eşleşir, bu yüzden entegratörlerin yeni bir adlandırma şeması öğrenmesi gerekmez.
address ödemenin hedefidir — seçilen chain'in beklediği adres formatında düz bir dize. O da zorunludur. SSP, talebi kullanıcıya göstermeden önce alıcı tarafta her zamanki format ve sağlama doğrulamasını yapar.
amount o chain'in ana biriminde ifade edilen gönderilecek değerdir. Örneğin '4.56', 4,56 FLUX anlamına gelir; en küçük bölünemez birimden 4,56 değil. Zorunludur ve önemli biçimde sayı yerine dize olarak tiplenmiştir.
"amount" neden bir dize
JavaScript sayıları IEEE-754 double'larıdır; para için tam olarak yanlış temsildir. 0.1 + 0.2, 0.3 değildir ve 18 ondalıklı token miktarları sessiz yuvarlama olmadan bir double'a sığmaz. amount'un bir dize olmasını zorunlu kılmak, bu tüm hassasiyet hatası sınıfını protokol sınırında baştan eler: dApp'in dâhilen — tipik olarak büyük ondalık (big-decimal) kütüphanesiyle — hesapladığı her şey cüzdana ulaşana kadar değişmeden kalır. Sürüm notları, değeri göndermeden önce BigNumber.toFixed() ile biçimlendirmeyi önerir; bu, bir big-decimal'ı bilimsel gösterim olmadan kesin bir dize olarak yazmanın standart yoludur.
Sırada ne var
Halihazırda kimlik için SSP Connect kullanan bir dApp veya web sitesi sürdürüyorsanız yükseltme yolu kısadır: mevcut oturumunuzu koruyun, daha önce kullanıcıdan bir adres kopyalamasını isteyeceğiniz yere bir pay isteği ekleyin. chain'i gerçekten kabul etmek istediğiniz SSP destekli varlıklar listesine göre doğrulayın, address'i istemci tarafında doğrulayın ki kullanıcı hataları cüzdana ulaşmadan görsün, ve amount'u her zaman big-decimal kütüphanenizin toFixed() (veya muadili) üzerinden biçimlendirin, böylece gönderdiğiniz dize tam olarak hesapladığınızdır. Gerisini — onay, imzalama, yayın — cüzdan halleder ve anahtarları origin'inize asla maruz bırakmaz.
Source: SSP Wallet v1.1.0 sürüm notları.