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

Failing to delegate #110

Open
martinvol opened this issue Dec 2, 2024 · 13 comments · May be fixed by #135
Open

Failing to delegate #110

martinvol opened this issue Dec 2, 2024 · 13 comments · May be fixed by #135
Assignees
Labels
bug Something isn't working

Comments

@martinvol
Copy link
Contributor

Description

image
@aaronmboyd
Copy link

Same issue here. Trying to use Wallet Connect to delegate via Celo Teminal for a validator group / validator.

@aaronmgdr aaronmgdr added the bug Something isn't working label Jan 6, 2025
@aaronmgdr aaronmgdr added this to the 5 - Celo MVP Mainnet milestone Jan 7, 2025
@aaronmgdr
Copy link
Member

hmm initial test i was able to delegate (with metamask) so will continue to figure out what causes failures.

@aaronmgdr
Copy link
Member

aaronmgdr commented Jan 7, 2025

check fallback/ retry is working

@martinvol
Copy link
Contributor Author

I think the problem is that Celo Mondo didn't know validators can't delegate, or that it doesn't realize that the signer can voting delegate on behalf of accounts

@shazarre
Copy link
Contributor

shazarre commented Jan 9, 2025

Same issue here. Trying to use Wallet Connect to delegate via Celo Teminal for a validator group / validator.

@aaronmboyd so for my own understanding: you were logged with a validator (group?) account and trying to delegate from that address or you were trying to delegate votes from a "regular" account to a validator (group?) account?

@aaronmboyd
Copy link

Trying to delegate votes from a validator group (Celo derivation path) to a standard EOA (which is registered as a delegate).

I open Celo Terminal and connect on Celo Mondo using Wallet Connect which appears to correctly form a connection. Then when I continue to the delegate dialog, select the percentage of locked CELO to delegate and click the button to execute the transaction I get the identical error messages in this issue.

@shazarre
Copy link
Contributor

shazarre commented Jan 9, 2025

Thanks for the explanation! This is actually not allowed by LockedGold contract:

    require(!validators.isValidator(delegatorAccount), "Validators cannot delegate votes.");
    require(
      !validators.isValidatorGroup(delegatorAccount),
      "Validator groups cannot delegate votes."
    );

we're adding a check for this on UI level and a word of explanation.

@aaronmboyd
Copy link

Thanks for the explanation! This is actually not allowed by LockedGold contract:

    require(!validators.isValidator(delegatorAccount), "Validators cannot delegate votes.");
    require(
      !validators.isValidatorGroup(delegatorAccount),
      "Validator groups cannot delegate votes."
    );

we're adding a check for this on UI level and a word of explanation.

Oh, that's a pain. Why can't groups and validators delegate? Seems like a good way for them to hand off voting duties to a trusted delegate.

@aaronmgdr
Copy link
Member

@aaronmboyd one thing they can do is authorize a vote signer althought that also authorizes to vote for validators.

@martinvol might be able to answer why that requiment exists

@aaronmboyd
Copy link

@aaronmboyd one thing they can do is authorize a vote signer althought that also authorizes to vote for validators.

@martinvol might be able to answer why that requiment exists

Ahhh, so the vote signer has to be the one to perform the delegation? I'll try this

@shazarre
Copy link
Contributor

@aaronmboyd I think it won't work as well because this line will first map vote signer to the validator account if I understand it correctly

@aaronmboyd
Copy link

@aaronmboyd I think it won't work as well because this line will first map vote signer to the validator account if I understand it correctly

Yes you're right. I can see the hard rule there in the Solidity code. Is there a technical reason for this rule? The majority of locked CELO tokens are locked in validator groups, so it seems an odd limitation to put on delegating governance votes.

@martinvol
Copy link
Contributor Author

martinvol commented Jan 13, 2025

the protocol keeps a 1:1 account <> signer relationship, so a validator can not be a signer. Validators and groups can not delegate, even if there's no signer. The protocol actually holds little Celo in the validator and groups (10K * 110 *2, about 3% of the supply ), some have more, but the excess is not locked, so it can be moved to any other address

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants