Created
June 22, 2021 16:33
-
-
Save nginnever/946d51c9da83b22e8a092f836bc21300 to your computer and use it in GitHub Desktop.
ProposalStates.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const startERC20HouseDAOFundingGracePeriod = ( | |
daoAddress: string, | |
proposalId: number, | |
provider: Web3Provider, | |
signer: JsonRpcSigner | |
): Promise<number> => | |
new Promise<number>(async (resolve, reject) => { | |
try { | |
let isMined = false | |
const daoContract = new Contract(daoAddress, HouseTokenDAO.abi, signer) | |
daoContract.once("GracePeriodStarted", (endDate: BigNumber) => { | |
const _endDate = Number(endDate.toString()) | |
if (isMined) { | |
resolve(_endDate) | |
} else { | |
endDate = _endDate | |
} | |
}) | |
const tx = await daoContract.startFundingProposalGracePeriod(proposalId) | |
provider.once(tx.hash, () => { | |
if (endDate !== undefined) { | |
resolve(endDate) | |
} else { | |
isMined = true | |
} | |
}) | |
} catch (e) { | |
reject(e) | |
} | |
}) | |
export const startERC20HouseDAORoleChangeGracePeriod = ( | |
daoAddress: string, | |
proposalId: number, | |
provider: Web3Provider, | |
signer: JsonRpcSigner | |
): Promise<number> => | |
new Promise<number>(async (resolve, reject) => { | |
try { | |
let isMined = false | |
const daoContract = new Contract(daoAddress, HouseTokenDAO.abi, signer) | |
daoContract.once("GracePeriodStarted", (endDate: BigNumber) => { | |
const _endDate = Number(endDate.toString()) | |
if (isMined) { | |
resolve(_endDate) | |
} else { | |
endDate = _endDate | |
} | |
}) | |
const tx = await daoContract.startRoleProposalGracePeriod(proposalId) | |
provider.once(tx.hash, () => { | |
if (endDate !== undefined) { | |
resolve(endDate) | |
} else { | |
isMined = true | |
} | |
}) | |
} catch (e) { | |
reject(e) | |
} | |
}) | |
export const executeERC20HouseDAORoleChange = ( | |
daoAddress: string, | |
proposalId: number, | |
provider: Web3Provider, | |
signer: JsonRpcSigner | |
): Promise<number> => | |
new Promise<number>(async (resolve, reject) => { | |
try { | |
let isMined = false | |
const daoContract = new Contract(daoAddress, HouseTokenDAO.abi, signer) | |
const tx = await daoContract.executeChangeRoleProposal(proposalId) | |
provider.once(tx.hash, () => { | |
isMined = true | |
}) | |
} catch (e) { | |
reject(e) | |
} | |
}) | |
export const executeERC20HouseDAOFundingProposal = ( | |
daoAddress: string, | |
proposalId: number, | |
provider: Web3Provider, | |
signer: JsonRpcSigner | |
): Promise<number> => | |
new Promise<number>(async (resolve, reject) => { | |
try { | |
let isMined = false | |
const daoContract = new Contract(daoAddress, HouseTokenDAO.abi, signer) | |
const tx = await daoContract.executeFundingProposal(proposalId) | |
provider.once(tx.hash, () => { | |
isMined = true | |
}) | |
} catch (e) { | |
reject(e) | |
} | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment