Skip to content

Commit fa71ac6

Browse files
test: A transfers stRIF, B has no delegatee set, voting power is still 0
1 parent f010408 commit fa71ac6

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

test/Governor.test.ts

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
OGFoundersRootstockCollective,
1111
} from '../typechain-types'
1212
import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'
13-
import { ContractTransactionResponse, parseEther, solidityPackedKeccak256 } from 'ethers'
13+
import { ContractTransactionResponse, parseEther, solidityPackedKeccak256, ZeroAddress } from 'ethers'
1414
import { Proposal, ProposalState, OperationState } from '../types'
1515
import { deployContracts } from './deployContracts'
1616
import ogFoundersModule from '../ignition/modules/OGFoundersModule'
@@ -153,7 +153,7 @@ describe('Governor Contact', () => {
153153
describe('Proposal Creation', () => {
154154
it('participants should gain voting power proportional to RIF tokens', async () => {
155155
await Promise.all(
156-
holders.slice(0, holders.length - 1).map(async (voter, i) => {
156+
holders.slice(0, holders.length).map(async (voter, i) => {
157157
const dispenseTx = await rif.transfer(voter.address, dispenseValue)
158158
await dispenseTx.wait()
159159
const rifBalance = await rif.balanceOf(voter.address)
@@ -163,11 +163,15 @@ describe('Governor Contact', () => {
163163
await approvalTx.wait()
164164
const depositTx = await stRIF.connect(voter).depositFor(voter.address, votingPower)
165165
await depositTx.wait()
166-
const delegateTx = await stRIF.connect(voter).delegate(voter.address)
167-
await delegateTx.wait()
168-
const votes = await stRIF.getVotes(voter.address)
169166

170-
expect(votes).to.equal(votingPower)
167+
// prepare for delegation tests
168+
if (i !== holders.length - 1) {
169+
const delegateTx = await stRIF.connect(voter).delegate(voter.address)
170+
await delegateTx.wait()
171+
const votes = await stRIF.getVotes(voter.address)
172+
173+
expect(votes).to.equal(votingPower)
174+
}
171175
}),
172176
)
173177
})
@@ -399,6 +403,34 @@ describe('Governor Contact', () => {
399403
)
400404
})
401405

406+
it('A transfers stRIF, B has no delegatee set, voting power is still 0', async () => {
407+
const testedHolders = holders.slice(holders.length - 2)
408+
409+
const votingPowersBefore = testedHolders.map(async holder => {
410+
return await stRIF.getVotes(holder)
411+
})
412+
413+
expect(await votingPowersBefore[0]).to.equal(dispenseValue - sendAmount)
414+
expect(await stRIF.delegates(testedHolders[0])).to.equal(testedHolders[0].address)
415+
expect(await votingPowersBefore[1]).to.equal(0n)
416+
expect(await stRIF.delegates(testedHolders[1])).to.equal(ZeroAddress)
417+
418+
const balanceOfABefore = await stRIF.balanceOf(testedHolders[0])
419+
const balanceOfBBefore = await stRIF.balanceOf(testedHolders[1])
420+
421+
const transferFromAtoB = await stRIF
422+
.connect(testedHolders[0])
423+
.transfer(testedHolders[1], sendAmount)
424+
425+
await transferFromAtoB.wait()
426+
427+
expect(await stRIF.balanceOf(testedHolders[0])).to.equal(balanceOfABefore - sendAmount)
428+
expect(await stRIF.balanceOf(testedHolders[1])).to.equal(balanceOfBBefore + sendAmount)
429+
430+
expect(await stRIF.getVotes(testedHolders[0])).to.equal(balanceOfABefore - sendAmount)
431+
expect(await stRIF.getVotes(testedHolders[1])).to.equal(0n)
432+
})
433+
402434
it('should be possible to claim back votes', async () => {
403435
const balance1 = await stRIF.balanceOf(holders[1])
404436

0 commit comments

Comments
 (0)