gnosis / dao

Repo containing descriptions and setting files for various components of the GnosisDAO.
GNU General Public License v3.0
0 stars 2 forks source link

Transitive delegation #9

Open auryn-macmillan opened 1 year ago

auryn-macmillan commented 1 year ago

As part of GIP-77, we would like to allow for transitive delegation; If A delegates to B and B delegates to C, C inherits A’s vote weight.

There are some cases we need to account for:

  1. If A delegates to B, B delegates to C, and C is the only one to vote, the C's vote weight is the sum of A, B, and C.
  2. If A delegates to B, B delegates to C, B votes and C votes, B's vote weight is the sum of A & B, while C's vote weight is the sum of C.
  3. If A delegates to B, B delegates to C, C delegates to A, and B casts a vote, B's vote weight is the sum of A, B, and C.
  4. If A delegates to C, B delegates to C, A casts a vote, and C casts a vote, A's vote weight is the sum of A and C's vote weight is the sum of B and C.

Worth noting that the chains of transitive delegation could be arbitrarily deep and complex.