Synesso / scala-stellar-sdk

Scala SDK for the Stellar network

Home Page:https://synesso.github.io/scala-stellar-sdk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add support for SEP0029

abuiles opened this issue · comments

Add support for SEP 29. This is important to provide a simple way to protect users from forgetting memos when submitting payments to exchanges.

What would you like to see?

  • Add server.checkMemoRequired(tx) with support for SEP0029.
    If any of the operations included in tx are of type payment, pathPaymentStrictReceive, pathPaymentStrictSend, or mergeAccount, then the SDK will load the destination account from Horizon and check if config.memo_required is set to 1 as defined in SEP0029.

    • While you could do the check in parallel, we decided to do a sequential check to avoid getting rate limited by SDF's public horizon which is used by default by many clients (read more here).
  • Change server.SubmitTransaction to always check if memo is required.

  • Allow the the check to be bypassed by setting skipMemoRequiredCheck to true, but default to requiring the check:

    server.SubmitTransaction(tx, {skipMemoRequiredCheck: true})
    
  • The check should be skipped automatically if the transaction includes a memo.

You can use the following implementations as a reference:

Refs: stellar/stellar-protocol#575