From my understanding after reading the code, I think nested/multi-level doesn't work.
Assuming we only use x1 conviction, given 3 accounts: A
, B
and C
, A
delegate to B
, and B
delegate to C
. My operations order is:
- Call
A
delegate toB
. - Call
B
delegate toC
.
And finally C
's voting storage is:
{
Direct: {
votes: []
delegations: {
votes: 1
capital: 1
}
prior: [
0
0
]
}
}
So we can see delegations
value of C
is 1 not 2, which means A
's delegation to B
not apply to C
. So I think nested delegation not work. There is also comment in substrate here which say 2nd level delegating is not supported.
But, from another stackexchange topic here and implementation of polkadot.js here, it seems that nested delegation works.
So I want to confirm:
- Does democracy/conviction-voting pallet support nested/multi-level delegation?
- If so, how does the code work?