Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

send_all_MP method - send all owned omni assets in 1 transaction #153

Closed
nixoid opened this issue Jul 29, 2015 · 10 comments
Closed

send_all_MP method - send all owned omni assets in 1 transaction #153

nixoid opened this issue Jul 29, 2015 · 10 comments

Comments

@nixoid
Copy link

nixoid commented Jul 29, 2015

Hi there.

This is a high priority protocol feature request.

Some users have more than one omni-based asset on their address. Specifically users of Tether(http://wallet.tether.to/) already got 3 currencies + bitcoin and there are much more in plans.

We often have a need to transfer all assets from one account to another. Specifically:

  1. when recovering multisig account with lost key
  2. when merging 2 cold storage accounts
  3. user wants to send all his money to his new account

It is inconvenient and expensive from technical and financial standpoint to broadcast separate transaction for each asset, especially given that wallet may support hundreds of them (holytransaction.com)

So, speaking on behalf of Tether, Holytransaction and other companies i can tell that we'd like to see this feature soon :)

Important: it has to be a protocol method(as opposed to wallet rpc command) since we build transactions with own code.

Thank you.

@dexX7 dexX7 added the feature label Jul 29, 2015
@CraigSellars
Copy link
Member

I have asked @nixoid to do a pull request against the spec so that it can be added

@dexX7
Copy link
Member

dexX7 commented Jul 29, 2015

Interesting idea.

The core implementation and RPC call should be easy.

ACK from my side.

@nixoid
Copy link
Author

nixoid commented Jul 29, 2015

Protocol spec pull request created:
OmniLayer/spec#313

@zathras-crypto
Copy link

ACK. As per @dexX7 should be straight forward.

@dexX7 to avoid duplication of work, I'm happy to take this on as it should be a quick job but didn't want to double up if you were already on it.

@zathras-crypto
Copy link

@dexX7 to avoid duplication of work

Scratch that, just saw your PR :)

@dexX7
Copy link
Member

dexX7 commented Jul 30, 2015

@zathras-crypto: I'm going offline for now, but I pushed #155 as starting point. There are two items I'm not really sure about, so input/contribution would be welcomed. :)

@zathras-crypto
Copy link

What should the behaviour be for reserved balances? Eg:

  • I list some of my tokens for property id n on the MetaDEx or DEx
  • I broadcast a send all

Should my trades & sell offers be automatically cancelled and the reserved tokens returned to my balance, followed by sending to the recipient, or should a send all only apply to "available" balances?

@nixoid
Copy link
Author

nixoid commented Jul 30, 2015

For menit's ok to simply reject send all transaction if some tokens are
locked

On Wed, Jul 29, 2015 at 6:46 PM zathras-crypto notifications@github.com
wrote:

What should the behaviour be for reserved balances? Eg:

  • I list some of my tokens for property id n on the MetaDEx or DEx
  • I broadcast a send all

Should my trades & sell offers be automatically cancelled and the reserved
tokens returned to my balance, followed by sending to the recipient, or
should a send all only apply to "available" balances?


Reply to this email directly or view it on GitHub
#153 (comment).

@zathras-crypto
Copy link

@nixoid I tend to look at rejecting a transaction as a last resort, so would prefer to define the behaviour and then allow a transaction to proceed in the case of reserved balances. It's not too much trouble either way, we can either leave reserved balances in place at the original address or auto-cancel trades and then transfer reserved tokens along with the rest. Input welcomed of course :)

Also FYI the implementation is taking place in #155, feel free to add any commentary/feedback.

@dexX7
Copy link
Member

dexX7 commented Jul 30, 2015

  • "Send All" should only touch the available balance. This is the behavior we have everywhere else, too.
  • While thinking about it, I noticed: with "send all" (and others) we must enforce that the first payload of a transaction is processed. Consider a "simple send" transaction, which Alice creates, where Bob appends a reference output (e.g. in the atomic swap scheme in Atomic swaps between BTC/Omni #11). What we don't want is to give Bob the opportunity to sweep all tokens Alice has (or do something other than the initial "simple send"). This isn't new behavior, and already done, so it's more like a side note in this context.

@dexX7 dexX7 added this to the 0.0.10 milestone Aug 28, 2015
@dexX7 dexX7 closed this as completed in #155 Sep 8, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants