< Kembali ke Berita

SSP Connect menambahkan aksi pay

·4 mnt baca·Oleh SSP Editorial Team
Sampul SSP biru navy dengan ikon QR, dompet, kilat, dan perisai mengumumkan aksi pay SSP Connect

Pada 11 Februari 2024, SSP Connect berubah dari sekadar protokol penampil dan identitas menjadi protokol pembayaran juga. Versi v1.1.0 SSP Wallet menambahkan metode pay ke SSP Connect, memungkinkan dApp atau situs web mana pun meminta pembayaran on-chain nyata dari pengguna SSP tanpa harus mengimplementasikan ulang perpipaan dompet. Bentuk permintaan dibuat sengaja kecil: tiga parameter, salah satunya secara sengaja berupa string.

TL;DR

  • SSP Connect kini memaparkan aksi pay bersama dengan alur identitas yang sudah ada.
  • Permintaan pembayaran menerima tepat tiga parameter: chain, address, dan amount.
  • amount adalah string secara sengaja, demi menjaga presisi desimal sepanjang jalur.
  • Alur penandatanganan tetap berjalan ujung-ke-ujung pada dua perangkat pengguna; dApp tidak pernah melihat kunci.
  • Integrator sebaiknya memformat amount dengan BigNumber.toFixed() (atau setara) sebelum dikirim.

Apa itu SSP Connect

SSP Connect adalah jembatan antara pengguna SSP Wallet dan dunia luar. Ia adalah protokol sesi ringan yang sama yang diperkenalkan bersama peluncuran SSP Wallet, di mana dompetnya sendiri merupakan multisig 2-dari-2 sejati yang dibagi antara ekstensi peramban dan SSP Key yang berada di ponsel. Sebelum versi ini, Connect kebanyakan dipakai untuk permintaan hanya-baca: memasangkan sesi, berbagi alamat, memverifikasi bahwa pengguna tertentu memang mengendalikan akun tertentu. Hal krusial: rahasia tidak pernah meninggalkan dua perangkat pengguna; Connect hanya mengangkut niat dan jawaban di antara mereka dan pihak yang mengandalkan.

Apa yang dilakukan aksi pay

Metode pay memperluas Connect dari "katakan padaku siapa kamu" menjadi "izinkan aku memintamu sebuah pembayaran". Sebuah dApp menyusun permintaan pay, menyerahkannya ke Connect, lalu pengguna diminta di antarmuka dompetnya untuk menyetujui, mengubah, atau menolak permintaan tersebut. Bila pengguna menyetujui, alur penandatanganan multisig berjalan seperti biasa — ekstensi menyiapkan, ponsel ikut menandatangani — dan transaksi yang dihasilkan disiarkan. dApp memperoleh konfirmasi bersih atau penolakan bersih, dan tidak pernah menyentuh kunci pribadi.

Tiga parameter

chain adalah string yang menamai aset dukungan SSP untuk membayar, misalnya 'flux'. Parameter ini wajib. Nilainya cocok dengan pengenal aset yang sudah dipakai SSP secara internal, sehingga integrator tidak perlu mempelajari skema penamaan baru.

address adalah tujuan pembayaran — string biasa dalam format alamat yang diharapkan oleh chain yang dipilih. Parameter ini juga wajib. SSP melakukan validasi format dan checksum yang biasa di sisi penerima sebelum menampilkan permintaan kepada pengguna.

amount adalah nilai yang akan dikirim, dinyatakan dalam unit utama chain tersebut. Misalnya, '4.56' berarti 4,56 FLUX, bukan 4,56 dari unit terkecil yang tak dapat dibagi. Parameter ini wajib dan, yang penting, bertipe string alih-alih angka.

Mengapa "amount" berupa string

Angka di JavaScript adalah double IEEE-754, yang justru representasi salah untuk uang. 0.1 + 0.2 bukan 0.3, dan jumlah token 18 desimal sederhananya tidak muat di sebuah double tanpa pembulatan diam-diam. Memaksa amount menjadi string menyingkirkan seluruh kelas bug presisi itu di batas protokol: apa yang dApp hitung secara internal — biasanya dengan pustaka big-decimal — tiba di dompet tanpa berubah. Catatan rilis menganjurkan memformat nilai dengan BigNumber.toFixed() sebelum dikirim, cara baku untuk menyajikan big-decimal sebagai string yang persis, tanpa notasi ilmiah.

Apa yang harus dilakukan selanjutnya

Jika Anda memelihara dApp atau situs web yang sudah memakai SSP Connect untuk identitas, jalur peningkatan singkat: pertahankan sesi yang ada, tambahkan permintaan pay di tempat yang sebelumnya akan meminta pengguna menyalin alamat. Validasi chain terhadap daftar aset dukungan SSP yang benar-benar ingin Anda terima, validasi address di sisi klien agar pengguna melihat galat sebelum mencapai dompet, dan selalu format amount melalui toFixed() (atau setara) dari pustaka big-decimal Anda, supaya string yang dikirim persis dengan yang Anda hitung. Sisanya — konfirmasi, tanda tangan, penyiaran — ditangani dompet, tanpa pernah memaparkan kunci ke origin Anda.

Source: Catatan rilis SSP Wallet v1.1.0.

Bagikan artikel ini

Artikel terkait