diff --git a/packages/synthetic-chain/src/lib/commonUpgradeHelpers.js b/packages/synthetic-chain/src/lib/commonUpgradeHelpers.js index c1bf17f4..dc77cda8 100644 --- a/packages/synthetic-chain/src/lib/commonUpgradeHelpers.js +++ b/packages/synthetic-chain/src/lib/commonUpgradeHelpers.js @@ -150,24 +150,35 @@ export const addUser = async user => { export const voteLatestProposalAndWait = async () => { await waitForBlock(); const proposalsData = await agd.query('gov', 'proposals'); - const lastProposalId = proposalsData.proposals.at(-1).proposal_id; + let lastProposal = proposalsData.proposals.at(-1); + + lastProposal || Fail`No proposal found`; + + const lastProposalId = lastProposal.proposal_id || lastProposal.id; + + lastProposalId || Fail`Invalid proposal ${lastProposal}`; + + if (lastProposal.status === 'PROPOSAL_STATUS_DEPOSIT_PERIOD') { + await agd.tx( + 'gov', + 'deposit', + lastProposalId, + '50000000ubld', + '--from', + VALIDATORADDR, + `--chain-id=${CHAINID}`, + '--yes', + '--keyring-backend', + 'test', + ); - await waitForBlock(); + await waitForBlock(); - await agd.tx( - 'gov', - 'deposit', - lastProposalId, - '50000000ubld', - '--from', - VALIDATORADDR, - `--chain-id=${CHAINID}`, - '--yes', - '--keyring-backend', - 'test', - ); + lastProposal = await agd.query('gov', 'proposal', lastProposalId); + } - await waitForBlock(); + lastProposal.status === 'PROPOSAL_STATUS_VOTING_PERIOD' || + Fail`Latest proposal ${lastProposalId} not in voting period (status=${lastProposal.status})`; await agd.tx( 'gov', @@ -182,19 +193,19 @@ export const voteLatestProposalAndWait = async () => { 'test', ); - let info = {}; for ( ; - info.status !== 'PROPOSAL_STATUS_REJECTED' && - info.status !== 'PROPOSAL_STATUS_PASSED'; + lastProposal.status !== 'PROPOSAL_STATUS_PASSED' && + lastProposal.status !== 'PROPOSAL_STATUS_REJECTED' && + lastProposal.status !== 'PROPOSAL_STATUS_FAILED'; await waitForBlock() ) { - info = await agd.query('gov', 'proposal', lastProposalId); + lastProposal = await agd.query('gov', 'proposal', lastProposalId); console.log( - `Waiting for proposal ${lastProposalId} to pass (status=${info.status})`, + `Waiting for proposal ${lastProposalId} to pass (status=${lastProposal.status})`, ); } - return info; + return { proposal_id: lastProposalId, ...lastProposal }; }; const Fail = (template, ...args) => { diff --git a/packages/synthetic-chain/upgrade-test-scripts/env_setup.sh b/packages/synthetic-chain/upgrade-test-scripts/env_setup.sh index 40584d72..25f74614 100755 --- a/packages/synthetic-chain/upgrade-test-scripts/env_setup.sh +++ b/packages/synthetic-chain/upgrade-test-scripts/env_setup.sh @@ -172,7 +172,7 @@ test_not_val() { voteLatestProposalAndWait() { waitForBlock - proposal=$($binary q gov proposals -o json | jq -r '.proposals[-1].proposal_id') + proposal=$($binary q gov proposals -o json | jq -r '.proposals | last | if .proposal_id == null then .id else .proposal_id end') waitForBlock $binary tx -bblock gov deposit $proposal 50000000ubld --from=validator --chain-id="$CHAINID" --yes --keyring-backend test waitForBlock