[Proposal] Verification: Add generic scheme for ENS Public Resolver and ENS contract

Hey guys!

Luckily an anonymous user created two proposals to add a generic scheme for the ENS Public Resolver and the main ENS contract. With that, the dxdao will get a connection to the Ethereum Name Service (ENS). Our job is now to go through the proposals and the technical side of things to make sure that there is no issue with the proposed generic schemes. I will start by going through those two generic schemes and their initialisation function.

Generic Scheme - ENS Public Resolver

Deployment --> Initialisation --> Contract Address

Initialisation function:

Function: initialize(address _avatar, address _votingMachine, bytes32 _voteParams, address _contractToCall) ***

MethodID: 0xa31ee5b0
[0]:  000000000000000000000000519b70055af55a007110b4ff99b0ea33071c720a
[1]:  000000000000000000000000332b8c9734b4097de50f302f7d9f273ffdb45b84
[2]:  29ddbf85a0d14e08084cd9764c66ff2799d05355edf7f546c5af1c847a2d9734
[3]:  000000000000000000000000226159d592e2b063810a10ebf6dcbada94ed68b8

Parameter [0] :white_check_mark:

000000000000000000000000519b70055af55a007110b4ff99b0ea33071c720a
= 0x519b70055af55A007110B4Ff99b0eA33071c720a
= Dxdao avatar contract address

Parameter [1] :white_check_mark:

000000000000000000000000332b8c9734b4097de50f302f7d9f273ffdb45b84
= 0x332B8C9734b4097dE50f302F7D9F273FFdB45B84
= Genesis Protocol

Parameter [2] :white_check_mark:

29ddbf85a0d14e08084cd9764c66ff2799d05355edf7f546c5af1c847a2d9734

I´ve used seth, to verify the parameters which have been set for the votingMachine because etherscan´s read contract functions do not work.

for that I´ve defined:

for line in $(seth call 0x332B8C9734b4097dE50f302F7D9F273FFdB45B84 "parameters(bytes32)(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)" 29ddbf85a0d14e08084cd9764c66ff2799d05355edf7f546c5af1c847a2d9734); do echo $(seth --to-dec $line); done

output:

50 = 50% <-- Queued Vote Required
3888000 = 45d <-- Queued Vote Period Limit
604800 = 7d <-- Boosted Vote Period Limit
86400 = 1d <--Pre-Boosted Vote Period Limit
1319413953331 <-- Threshold Constant	
172 <-- limitExponentValue
172800 seconds = 2d <-- Quiet Ending Period
500000000000000000000 = 500 REP <-- Proposal Reputation Reward
4 = 4% <-- Voters Reputation Loss
250000000000000000000 = 250 GEN <-- Minimum DAO Bounty
10 <-- DAO Bounty Constant
1579780800 <-- activationTime
0 <-- voteOnBehalf address

Parameter [3] :white_check_mark:

000000000000000000000000226159d592e2b063810a10ebf6dcbada94ed68b8
= 0x226159d592E2b063810a10Ebf6dcbADA94Ed68b8
= ENS Public Resolver

We know now that the Generic scheme for the ENS Public Resolver will use the same VotingMachine as the contribution reward scheme. Check here

Boosted Vote Period Limit:	7d (604800 seconds)
DAO Bounty Constant:	10
Proposal Reputation Reward:	500 REP
Minimum DAO Bounty:	250 GEN
Pre-Boosted Vote Period Limit:	1d (86400 seconds)
Queued Vote Period Limit:	45d (3888000 seconds)
Queued Vote Required:	50%
Quiet Ending Period:	2d (172800 seconds)
Threshold Constant	1.2
Voters Reputation Loss:	4%
1 Like

Generic Scheme - ENS contract

Deployment --> Initialisation --> Contract Address

Initialisation function:

Function: initialize(address _avatar, address _votingMachine, bytes32 _voteParams, address _contractToCall)

MethodID: 0xa31ee5b0
[0]:  000000000000000000000000519b70055af55a007110b4ff99b0ea33071c720a
[1]:  000000000000000000000000332b8c9734b4097de50f302f7d9f273ffdb45b84
[2]:  29ddbf85a0d14e08084cd9764c66ff2799d05355edf7f546c5af1c847a2d9734
[3]:  000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b

Parameter [0] :white_check_mark:

000000000000000000000000519b70055af55a007110b4ff99b0ea33071c720a
= 0x519b70055af55a007110b4ff99b0ea33071c720a
= Dxdao avatar contract address

Parameter [1] :white_check_mark:

000000000000000000000000332b8c9734b4097de50f302f7d9f273ffdb45b84
= 0x332b8c9734b4097de50f302f7d9f273ffdb45b84
= Genesis Protocol

Parameter [2] :white_check_mark:

29ddbf85a0d14e08084cd9764c66ff2799d05355edf7f546c5af1c847a2d9734 

seth call:

for line in $(seth call 0x332B8C9734b4097dE50f302F7D9F273FFdB45B84 "parameters(bytes32)(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)" 29ddbf85a0d14e08084cd9764c66ff2799d05355edf7f546c5af1c847a2d9734); do echo $(seth --to-dec $line); done

Output:

50
3888000
604800
86400
1319413953331
172
172800
500000000000000000000
4
250000000000000000000
10
1579780800
0

The output is identical which means this generic scheme has the same voting parameters as the contribution reward scheme of the dxdao.

Parameter [3] :white_check_mark:

000000000000000000000000314159265dd8dbb310642f98f50c066173c1259b
= 0x314159265dD8dbb310642f98f50C066173C1259b
= ENS contract address

We know now that the Generic scheme for the ENS Public Resolver will use the same VotingMachine as the contribution reward scheme. Check here

Boosted Vote Period Limit:	7d (604800 seconds)
DAO Bounty Constant:	10
Proposal Reputation Reward:	500 REP
Minimum DAO Bounty:	250 GEN
Pre-Boosted Vote Period Limit:	1d (86400 seconds)
Queued Vote Period Limit:	45d (3888000 seconds)
Queued Vote Required:	50%
Quiet Ending Period:	2d (172800 seconds)
Threshold Constant	1.2
Voters Reputation Loss:	4%
1 Like

Alright guys!
Based on my verification it seems like the proposals are good to be voted on.

Both generic schemes will have the same voting parameters as the contribution reward scheme. It also looks like the wiring from the dxdao to the generic scheme and to the ENS contracts are correctly setup!

Happy voting!

1 Like