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

Vote should be preserved without neo balance #3721

Open
shargon opened this issue Feb 6, 2025 · 7 comments · May be fixed by #3720
Open

Vote should be preserved without neo balance #3721

shargon opened this issue Feb 6, 2025 · 7 comments · May be fixed by #3720

Comments

@shargon
Copy link
Member

shargon commented Feb 6, 2025

Describe the bug
We recently experienced a problem associated with this issue.

If you vote someone and transfer your neos, your vote is removed.
Also, you are able to vote without neo and do nothing.

Expected behavior
Vote must be preserved .

@shargon shargon linked a pull request Feb 6, 2025 that will close this issue
15 tasks
@shargon
Copy link
Member Author

shargon commented Feb 6, 2025

@lock9 move the discussion here

@dusmart
Copy link

dusmart commented Feb 11, 2025

Should be aware that applying this will result in a hard fork.

@shargon
Copy link
Member Author

shargon commented Feb 11, 2025

Should be aware that applying this will result in a hard fork.

It can be included in Echina

@cschuchardt88
Copy link
Member

cschuchardt88 commented Feb 11, 2025

They paid for the storage already. Unless I am getting a refund or not having to pay. I vote keep their balance. All contracts do this, so they don't have to repay for storage or very little storage to just change the balance.

@Jim8y
Copy link
Contributor

Jim8y commented Feb 11, 2025

They paid for the storage already. Unless I am getting a refund or not having to pay. I vote keep their balance. All contracts do this, so they don't have to repay for storage or very little storage to just change the balance.

its not about the storage price, its governance protocol issue.

@cschuchardt88
Copy link
Member

cschuchardt88 commented Feb 11, 2025

If you want my real opinion. All native contracts, should be developed like any other contract on the blockchain. What does you mean? It should be compiled NeoVM assembly code. This would make it easier to update than having all this hard fork code. If interop is a problem. Then expand the vm.

@roman-khimov
Copy link
Contributor

All contracts do this

Why do you think so? We're talking about NEP-17 with additional account data. But it's NEP-17 first of all, so if account has no token it's not obliged to keep any additional data. I think any NEP-17 would make the same decision as NEO wrt associated data, balance goes to zero --- bye-bye, we've never met. Just like they never store "0" balance itself, they just delete the entry.

It should be compiled NeoVM assembly code

That was my thought on native contracts about five years ago as well. But at this stage it's not possible since native contracts do things regular contracts can't. And they're exactly for this purpose, we're not adding native contracts if things they provide can be implemented in a regular contract. NNS is the best example, it's not native.

This would make it easier to update than having all this hard fork code

Well, it's just shuffling the update complexity around. From native contract code to non-native contract code. The complexity itself won't disappear because of that.

Regarding the issue itself, WORKSFORME/NOTABUG, but not critical to me either, both approaches have some rationale, so my preference is to minimize data stored and keep things the way they are. Some statistics as in #3720 (comment) can be helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants