firoorg / firo

The privacy-focused cryptocurrency
https://firo.org
MIT License
720 stars 354 forks source link

Why is this happening? #1215

Closed skironDotNet closed 1 year ago

skironDotNet commented 1 year ago

I find FIRO very user unfriendly, so many things so complicated. I don't mind error, but any explanation would be nice I have more change than fee needed. Are you telling me can't send to 11 addresses as one tx from private balance? is that the problem?

image

I decided to dig into code to see why, looks like limit? image

nMaxValueLelantusSpendPerTransaction

but then can't find numeric limit of tx inputs just some things about amouts, unless this is defined in h files? I'm looking *.cpp only

image

Wait ZC_LELANTUS_VALUE_SPEND_LIMIT_PER_TRANSACTION

you really think every day joe would dig into source code to figure out what the problem is?

Searched *.h files

// Value of lelantus spends allowed per transaction
#define ZC_LELANTUS_VALUE_SPEND_LIMIT_PER_TRANSACTION     (5001 * COIN)

// Amount of lelantus spends allowed per transaction
#define ZC_LELANTUS_INPUT_LIMIT_PER_TRANSACTION            50

So I should be able send to 11 addresses? or input limit is only about inputs not outputs. Now what's COIN? (5001 * COIN)

static const CAmount COIN = 100000000; //assuming satoshi so value is 1 FIRO

The send limit is 5001 FIRO...

It can't be that hard to implement the message to the user, please add it if you have free time. Other than that great tech, but I would increase limit to at least 20000 FIRO. How do exchanges maintain wallets anyway, let say they want to transfer to fresh wallet. Or is this limit only on private balances (and exchanges don't use private)

justanwar commented 1 year ago

The spend limit for Lelantus is currently at 5001 FIRO/transaction. Rationale is here.

This limit is only for private balances.

skironDotNet commented 1 year ago

Rationale makes sense, I just wanted an answer for the error message and I found the answer myself, so this ticket now is the "feature request" of "please provide more details for the user upon error"

skironDotNet commented 1 year ago

@justanwar re: "This limit is only for private balances" I reviewed the commit and it looks like the limit is for both, private and transparent balance.

BTC and Doge doesn't have such limit. This is very bad for FIRO because wealthy people can't move funds easily. At $2.2 per 1 FIRO this means can send only $11,000 this is worse than exchanges without KYC that allow to move 1-2BTC in 24h. Sure you can make 10 transfers to push 110k but that still feels horrible. If the limit was like 50K FIRO transparent then it's somewhat usable, but still I can make half a million write transfer at the bank (not saying I have this kind of money:)) but the point is, FIRO is not appearing for wealthy investors, and I know a few who spent anywhere from 100k to 500k for long term investment

reubenyap commented 1 year ago

BTC and Doge don't have this limit because they don't used advanced ZKP that can break or cause inflation if it's wrong. We've been hurt by stuff before even when we have taken all the appropriate steps.

skironDotNet commented 1 year ago

You misunderstood the intent of this issue. At first I asked the question and answered myself due to impatience I analyzed the code myself. But final intent of this issue was "add more details to the error"

There is 0 benefit to the user to tell "something went went"

There is a difference in "unexpected error" and know business logic a flow or validation were you can tell exactly why faulty state occured.

I just want the wallet to be more user friendly