diff --git a/pages/dao/[symbol]/proposal/components/MyProposalsBtn.tsx b/pages/dao/[symbol]/proposal/components/MyProposalsBtn.tsx index 326d408db..052595259 100644 --- a/pages/dao/[symbol]/proposal/components/MyProposalsBtn.tsx +++ b/pages/dao/[symbol]/proposal/components/MyProposalsBtn.tsx @@ -2,6 +2,8 @@ import useRealm from '@hooks/useRealm' import { useCallback, useEffect, useMemo, useState } from 'react' import { getProposalDepositsByDepositPayer, + getTokenOwnerRecord, + getTokenOwnerRecordAddress, getVoteRecord, getVoteRecordAddress, ProgramAccount, @@ -13,7 +15,7 @@ import { withRefundProposalDeposit, withRelinquishVote, } from '@solana/spl-governance' -import { Transaction, TransactionInstruction } from '@solana/web3.js' +import { PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js' import Modal from '@components/Modal' import Button from '@components/Button' import useGovernanceAssets from '@hooks/useGovernanceAssets' @@ -248,6 +250,17 @@ const MyProposalsBn = () => { const governanceAuthority = wallet!.publicKey! const beneficiary = wallet!.publicKey! + if (!voterTokenRecord && realm && wallet?.publicKey) { + const voterTokenOwnerRecordKey = await getTokenOwnerRecordAddress( + realm.owner, + realm.pubkey, + proposal.account.governingTokenMint, + wallet.publicKey + ) + + voterTokenRecord = await getTokenOwnerRecord(connection, voterTokenOwnerRecordKey) + } + let voteRecordPk = await getVoteRecordAddress( realm!.owner, proposal.pubkey,