sologenic / sologenic-xrpl-stream-js

Persistent transaction handling for the XRP Ledger
MIT License
18 stars 11 forks source link

Integrate XUMM signing (BOUNTY: 6500 SOLO) #18

Open sologenic opened 4 years ago

sologenic commented 4 years ago

This feature enables signing of a transaction through the XUMM platform (https://xumm.readme.io/). Currently there are two ways to sign a transaction. a) Through account secret b) Through providing public/private keys These two methods use ripple-lib's signing functionality to sign the transactions and dispatch. With the introduction of signing with XUMM, the user must provide their API keys instead of secret or public/private keys. (In clients such as SOLO Wallet, this API key is going to be encrypted with the users password, also it is possible to integrate obtaining new keys through the UI for new users) Once the client who uses xrpl-stream requests to sign a transaction when having XUMM enabled, the library, instead of using ripple-lib for signing will send the constructed raw transaction to XUMM. this triggers XUMM platform to notify the API holder to sign the transaction. Upon signing, XUMM will use a callback hook to allow xrpl-stream client (wether client side or server side) and sends the TXBLOB. Using this TXBLOB, xrpl-stream carries on as usual and dispatches the request. Once transaction is validated, the tx.promise must resolve as usual. It is important to note that maxLedgerSequence should be increased when using XUMM, as 3 ledgers (~10-12 seconds) might not be enough for the client to respond with XUMM. The process might even take minutes.

WietseWind commented 4 years ago

Regarding the maxLedgerSequence:

XUMM may help here, with a relative max ledger number. If you send a int < 32570 in the tx template, it will be handled as a relative value from the ledger index at the moment the user taps the Accept (sign) button in XUMM.

Azarsky commented 4 years ago

This is not a financial advice but I wish to state categorical that within the next 5years solo will be trading at $500-$1000.