From b1c15d57115320b78848f89ea6f39e17bb11ddaf Mon Sep 17 00:00:00 2001 From: Joe Tsang <30622993+jtsang586@users.noreply.github.com> Date: Fri, 14 Oct 2022 16:54:27 +0100 Subject: [PATCH] Test/1723 update asset proposal (#1753) * test: test for update asset proposal * test: added test for hiding validator list * chore: update vegacapsule config files * fix: lint * chore: add reason to skipped test --- .../src/fixtures/proposals/update-asset.json | 10 ++ .../integration/flow/governance-flow.cy.js | 144 +++++++----------- .../flow/governance-forms-flow.cy.js | 57 ++++++- .../src/integration/view/staking.cy.js | 12 +- vegacapsule/config.hcl | 26 +++- vegacapsule/genesis.tmpl | 144 +++++------------- .../data_node_full_external_postgres.tmpl | 6 +- .../node_set_templates/default/vega_full.tmpl | 2 +- .../default/vega_validators.tmpl | 2 +- 9 files changed, 193 insertions(+), 210 deletions(-) create mode 100644 apps/token-e2e/src/fixtures/proposals/update-asset.json diff --git a/apps/token-e2e/src/fixtures/proposals/update-asset.json b/apps/token-e2e/src/fixtures/proposals/update-asset.json new file mode 100644 index 000000000..fa429acbd --- /dev/null +++ b/apps/token-e2e/src/fixtures/proposals/update-asset.json @@ -0,0 +1,10 @@ +{ + "assetId": "ebcd94151ae1f0d39a4bde3b21a9c7ae81a80ea4352fb075a92e07608d9c953d", + "changes": { + "quantum": "1", + "erc20": { + "withdrawThreshold": "10", + "lifetimeLimit": "10" + } + } +} diff --git a/apps/token-e2e/src/integration/flow/governance-flow.cy.js b/apps/token-e2e/src/integration/flow/governance-flow.cy.js index 7a79d706a..88a708880 100644 --- a/apps/token-e2e/src/integration/flow/governance-flow.cy.js +++ b/apps/token-e2e/src/integration/flow/governance-flow.cy.js @@ -26,7 +26,7 @@ const proposalVoteProgressAgainstTokens = const changeVoteButton = '[data-testid="change-vote-button"]'; const proposalDetailsTitle = '[data-testid="proposal-title"]'; const proposalDetailsDescription = '[data-testid="proposal-description"]'; -const proposalVoteDeadline = '[data-testid="proposal-vote-deadline"]'; +const rawProposalData = '[data-testid="proposal-data"]'; const minVoteButton = '[data-testid="min-vote"]'; const maxVoteButton = '[data-testid="max-vote"]'; const voteButtons = '[data-testid="vote-buttons"]'; @@ -61,10 +61,12 @@ context( cy.verify_page_header('The $VEGA token'); cy.get_network_parameters().then((network_parameters) => { cy.wrap( - network_parameters['governance.proposal.freeform.minProposerBalance'] + network_parameters['spam.protection.proposal.min.tokens'] / + 1000000000000000000 ).as('minProposerBalance'); cy.wrap( - network_parameters['governance.proposal.freeform.minVoterBalance'] + network_parameters['spam.protection.voting.min.tokens'] / + 1000000000000000000 ).as('minVoterBalance'); cy.wrap( network_parameters['governance.proposal.freeform.requiredMajority'] * @@ -191,23 +193,15 @@ context( ); it('Able to submit a valid freeform proposal - with minimum required tokens associated - but also staked', function () { - cy.ensure_specified_unstaked_tokens_are_associated( - this.minProposerBalance - ); + cy.ensure_specified_unstaked_tokens_are_associated('2'); cy.navigate_to_page_if_not_already_loaded('governance'); - cy.get(vegaWalletUnstakedBalance, txTimeout).should( - 'contain', - this.minProposerBalance - ); + cy.get(vegaWalletUnstakedBalance, txTimeout).should('contain', '2'); cy.navigate_to('staking'); cy.wait_for_spinner(); cy.click_on_validator_from_list(0); - cy.staking_validator_page_add_stake(this.minProposerBalance); + cy.staking_validator_page_add_stake('2'); - cy.get(vegaWalletStakedBalances, txTimeout).should( - 'contain', - this.minProposerBalance - ); + cy.get(vegaWalletStakedBalances, txTimeout).should('contain', '2'); cy.navigate_to('governance'); cy.wait_for_spinner(); @@ -355,8 +349,7 @@ context( }); }); - // Skipping test due to bug - should be solved when #1223 released - it.skip('Newly created freeform proposal details - shows proposal title and full description', function () { + it('Newly created raw proposal details - shows proposal title and full description', function () { createRawProposal(this.minProposerBalance); cy.wait('@proposalSubmissionCompletion') .its(proposalResponseProposalIdPath) @@ -366,38 +359,13 @@ context( cy.get(viewProposalButton).should('be.visible').click(); }); }); - cy.get('@rawProposal').then((freeformProposal) => { + cy.get('@rawProposal').then((rawProposal) => { // 3001-VOTE-054 cy.get(proposalDetailsTitle) - .should('contain', freeformProposal.rationale.title) + .should('contain', rawProposal.rationale.title) .and('be.visible'); cy.get(proposalDetailsDescription) - .should('contain', freeformProposal.rationale.description) - .and('be.visible'); - }); - }); - }); - - // 1005-todo-PROP-019 - // Skipping test due to bug - should be solved when #1223 released - it.skip('Newly created raw proposal details - shows full link included in description', function () { - createRawProposal(this.minProposerBalance); - cy.wait('@proposalSubmissionCompletion') - .its(proposalResponseProposalIdPath) - .then((proposalId) => { - cy.get(openProposals).within(() => { - cy.get(`#${proposalId}`).within(() => { - cy.get(viewProposalButton).should('be.visible').click(); - }); - }); - cy.get('@rawProposal').then(() => { - // 3001-VOTE-055 - cy.get(proposalDetailsDescription) - .should('have.attr', 'href') - .and( - 'equal', - 'https://dweb.link/ipfs/bafybeigwwctpv37xdcwacqxvekr6e4kaemqsrv34em6glkbiceo3fcy4si' - ) + .should('contain', rawProposal.rationale.description) .and('be.visible'); }); }); @@ -623,13 +591,16 @@ context( ); }); - // No longer able to submit a rejected freeform proposal - it.skip('Creating a proposal - proposal rejected - able to access rejected proposals', function () { + it('Creating a proposal - proposal rejected - able to access rejected proposals', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.go_to_make_new_proposal(governanceProposalType.FREEFORM); - cy.enter_unique_freeform_proposal_body('500000000'); + cy.go_to_make_new_proposal(governanceProposalType.RAW); + cy.create_ten_digit_unix_timestamp_for_specified_days('1000').then( + (closingDateTimestamp) => { + cy.enter_raw_proposal_body(closingDateTimestamp).as('rawProposal'); + } + ); cy.get(newProposalSubmitButton).should('be.visible').click(); cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' @@ -663,14 +634,17 @@ context( txTimeout ); cy.go_to_make_new_proposal(governanceProposalType.RAW); - createRawProposal(); - + cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( + (closingDateTimestamp) => { + cy.enter_raw_proposal_body(closingDateTimestamp).as; + } + ); + cy.get(newProposalSubmitButton).should('be.visible').click(); cy.contains('Transaction failed', proposalTimeout).should('be.visible'); - cy.get(feedbackError) - .contains( - 'Party has insufficient associated governance tokens in their staking account to submit proposal request' - ) - .should('be.visible'); + cy.get(feedbackError).should( + 'have.text', + 'party has insufficient associated governance tokens in their staking account to submit proposal request' + ); }); it('Unable to create a proposal - when some but not enough tokens are associated', function () { @@ -678,78 +652,74 @@ context( this.minProposerBalance - 0.000001 ); cy.go_to_make_new_proposal(governanceProposalType.RAW); - createRawProposal(this.minProposerBalance); - + cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( + (closingDateTimestamp) => { + cy.enter_raw_proposal_body(closingDateTimestamp); + } + ); + cy.get(newProposalSubmitButton).should('be.visible').click(); cy.contains('Transaction failed', proposalTimeout).should('be.visible'); - cy.get(feedbackError) - .contains( - 'Party has insufficient associated governance tokens in their staking account to submit proposal request' - ) - .should('be.visible'); + cy.get(feedbackError).should( + 'have.text', + 'party has insufficient associated governance tokens in their staking account to submit proposal request' + ); }); - // Json containing unexpected field no longer fails submission - it.skip('Unable to create a freeform proposal - when json parent section contains unexpected field', function () { + it('Unable to create a freeform proposal - when json parent section contains unexpected field', function () { // 3001-VOTE-038 cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.go_to_make_new_proposal(governanceProposalType.FREEFORM); - cy.create_ten_digit_unix_timestamp_for_specified_days('1').then( + cy.go_to_make_new_proposal(governanceProposalType.RAW); + cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { - cy.fixture('/proposals/freeform.json').then((freeformProposal) => { + cy.fixture('/proposals/raw.json').then((freeformProposal) => { freeformProposal.terms.closingTimestamp = closingDateTimestamp; freeformProposal.unexpected = `i shouldn't be here`; let proposalPayload = JSON.stringify(freeformProposal); - - cy.get(proposalDetailsTitle).type( - freeformProposal.rationale.title - ); - cy.get(proposalDetailsDescription).type(proposalPayload, { + cy.get(rawProposalData).type(proposalPayload, { parseSpecialCharSequences: false, delay: 2, }); - cy.get(proposalVoteDeadline).clear().click().type('50'); }); } ); cy.get(newProposalSubmitButton).should('be.visible').click(); cy.contains('Transaction failed', proposalTimeout).should('be.visible'); - cy.get(feedbackError) - .contains('Unknown field unexpected in vega proposal terms') - .should('be.visible'); + cy.get(feedbackError).should( + 'have.text', + '*: unknown field "unexpected" in vega.commands.v1.ProposalSubmission' + ); }); - // Json containing unexpected field no longer fails submission - it.skip('Unable to create a freeform proposal - when json terms section contains unexpected field', function () { + it('Unable to create a freeform proposal - when json terms section contains unexpected field', function () { // 3001-VOTE-038 cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); cy.go_to_make_new_proposal(governanceProposalType.RAW); - cy.create_ten_digit_unix_timestamp_for_specified_days('1').then( + cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { cy.fixture('/proposals/raw.json').then((rawProposal) => { rawProposal.terms.closingTimestamp = closingDateTimestamp; rawProposal.terms.unexpectedField = `i shouldn't be here`; let proposalPayload = JSON.stringify(rawProposal); - cy.get(proposalDetailsTitle).type(rawProposal.rationale.title); - cy.get(proposalDetailsDescription).type(proposalPayload, { + cy.get(rawProposalData).type(proposalPayload, { parseSpecialCharSequences: false, delay: 2, }); - cy.get(proposalVoteDeadline).clear().click().type('50'); }); } ); cy.get(newProposalSubmitButton).should('be.visible').click(); cy.contains('Transaction failed', proposalTimeout).should('be.visible'); - cy.get(feedbackError) - .contains('Unknown field unexpected in vega proposal terms') - .should('be.visible'); + cy.get(feedbackError).should( + 'have.text', + '*: unknown field "unexpectedField" in vega.ProposalTerms' + ); }); // Have to skip because #1326 bug doesn't handle below scenario @@ -815,7 +785,7 @@ context( function createRawProposal(proposerBalance) { if (proposerBalance) cy.ensure_specified_unstaked_tokens_are_associated(proposerBalance); - cy.go_to_make_new_proposal('raw proposal'); + cy.go_to_make_new_proposal(governanceProposalType.RAW); cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { cy.enter_raw_proposal_body(closingDateTimestamp).as('rawProposal'); diff --git a/apps/token-e2e/src/integration/flow/governance-forms-flow.cy.js b/apps/token-e2e/src/integration/flow/governance-forms-flow.cy.js index 2472102a7..0e651fd66 100644 --- a/apps/token-e2e/src/integration/flow/governance-forms-flow.cy.js +++ b/apps/token-e2e/src/integration/flow/governance-forms-flow.cy.js @@ -2,6 +2,7 @@ const newProposalSubmitButton = '[data-testid="proposal-submit"]'; const proposalVoteDeadline = '[data-testid="proposal-vote-deadline"]'; const proposalValidationDeadline = '[data-testid="proposal-validation-deadline"]'; +const proposalEnactmentDeadline = '[data-testid="proposal-enactment-deadline"]'; const proposalParameterSelect = '[data-testid="proposal-parameter-select"]'; const proposalMarketSelect = '[data-testid="proposal-market-select"]'; const newProposalTitle = '[data-testid="proposal-title"]'; @@ -13,6 +14,7 @@ const newProposedParameterValue = '[data-testid="selected-proposal-param-new-value"]'; const dialogCloseButton = '[data-testid="dialog-close"]'; const inputError = '[data-testid="input-error-text"]'; +const feedbackError = '[data-testid="Error"]'; const epochTimeout = Cypress.env('epochTimeout'); const proposalTimeout = { timeout: 14000 }; @@ -21,6 +23,7 @@ const governanceProposalType = { NEW_MARKET: 'New market', UPDATE_MARKET: 'Update market', NEW_ASSET: 'New asset', + UPDATE_ASSET: 'Update asset', FREEFORM: 'Freeform', RAW: 'raw proposal', }; @@ -97,8 +100,9 @@ context( ); }); - // 3003-PMAN-001 - it('Able to submit valid new market proposal', function () { + // Skipping because unclear what the required json is yet for new market proposal, will update once docs have been updated + // 3003-todo-PMAN-001 + it.skip('Able to submit valid new market proposal', function () { cy.go_to_make_new_proposal(governanceProposalType.NEW_MARKET); cy.get(newProposalTitle).type('Test new market proposal'); cy.get(newProposalDescription).type('E2E test for proposals'); @@ -117,9 +121,24 @@ context( cy.go_to_make_new_proposal(governanceProposalType.NEW_MARKET); cy.get(newProposalSubmitButton).should('be.visible').click(); cy.get(inputError).should('have.length', 3); + cy.get(newProposalTitle).type('Test new market proposal'); + cy.get(newProposalDescription).type('E2E test for proposals'); + cy.fixture('/proposals/new-market').then((newMarketProposal) => { + let newMarketPayload = JSON.stringify(newMarketProposal); + cy.get(newProposalTerms).type(newMarketPayload, { + parseSpecialCharSequences: false, + delay: 2, + }); + }); + cy.get(newProposalSubmitButton).should('be.visible').click(); + cy.contains('Transaction failed', proposalTimeout).should('be.visible'); + cy.get(feedbackError).should( + 'have.text', + '*: unknown field "settlementPriceProperty" in vega.OracleSpecToFutureBinding' + ); }); - // skipped because of bug #1605 + // skipped because no markets available to select in capsule it.skip('Able to submit update market proposal', function () { const marketId = '315a8e48db0a292c92b617264728048c82c20efc922c75fd292fc54e5c727c81'; @@ -163,6 +182,15 @@ context( 'be.visible' ); cy.get(dialogCloseButton).click(); + cy.get(newProposalSubmitButton).should('be.visible').click(); + // cannot submit a proposal with ERC20 address already in use + cy.contains('Proposal rejected', proposalTimeout).should('be.visible'); + cy.getByTestId('dialog-content').within(() => { + cy.get('p').should( + 'have.text', + 'PROPOSAL_ERROR_ERC20_ADDRESS_ALREADY_IN_USE' + ); + }); }); it('Unable to submit new asset proposal with missing/invalid fields', function () { @@ -177,5 +205,28 @@ context( 'not.exist' ); }); + + it('Able to submit update asset proposal', function () { + cy.go_to_make_new_proposal(governanceProposalType.UPDATE_ASSET); + cy.get(newProposalTitle).type('Test update asset proposal'); + cy.get(newProposalDescription).type('E2E test for proposals'); + cy.fixture('/proposals/update-asset').then((newAssetProposal) => { + let newAssetPayload = JSON.stringify(newAssetProposal); + cy.get(newProposalTerms).type(newAssetPayload, { + parseSpecialCharSequences: false, + delay: 2, + }); + }); + cy.get(proposalVoteDeadline).clear().click().type('50'); + cy.get(proposalEnactmentDeadline).clear().click().type('50'); + cy.get(newProposalSubmitButton).should('be.visible').click(); + cy.wait_for_proposal_submitted(); + }); + + it('Unable to submit edit asset proposal with missing/invalid fields', function () { + cy.go_to_make_new_proposal(governanceProposalType.UPDATE_ASSET); + cy.get(newProposalSubmitButton).should('be.visible').click(); + cy.get(inputError).should('have.length', 3); + }); } ); diff --git a/apps/token-e2e/src/integration/view/staking.cy.js b/apps/token-e2e/src/integration/view/staking.cy.js index 75a0d7666..11792d8bd 100644 --- a/apps/token-e2e/src/integration/view/staking.cy.js +++ b/apps/token-e2e/src/integration/view/staking.cy.js @@ -21,15 +21,15 @@ context('Staking Page - verify elements on page', function () { describe('with wallets disconnected', { tags: '@smoke' }, function () { describe('description section', function () { - it('should have staking tab highlighted', function () { + it('Should have staking tab highlighted', function () { cy.verify_tab_highlighted('staking'); }); - it('should have STAKING ON VEGA header visible', function () { + it('Should have STAKING ON VEGA header visible', function () { cy.verify_page_header('Staking'); }); - it('should have Staking Guide link visible', function () { + it('Should have Staking Guide link visible', function () { // 2001-STKE-003 cy.get(guideLink) .should('be.visible') @@ -124,6 +124,10 @@ context('Staking Page - verify elements on page', function () { cy.wrap($votingPower).should('not.be.empty'); }); }); + + it('Should be able to see button to unhide top validators', function () { + cy.get('[data-testid="show-all-validators"]').should('be.visible'); + }); } ); @@ -205,7 +209,7 @@ context('Staking Page - verify elements on page', function () { }); // 2001-STKE-011 2002-SINC-001 2002-SINC-002 - it('should be able to see epoch information', function () { + it('Should be able to see epoch information', function () { const epochTitle = 'h3'; const nextEpochInfo = 'p'; diff --git a/vegacapsule/config.hcl b/vegacapsule/config.hcl index a6ceb9c7b..52f28ebca 100644 --- a/vegacapsule/config.hcl +++ b/vegacapsule/config.hcl @@ -24,6 +24,7 @@ Level = "info" TokenExpiry = "168h0m0s" Port = 1789 Host = "0.0.0.0" + [API] [API.GRPC] Hosts = [{{range $i, $v := .Validators}}{{if ne $i 0}},{{end}}"127.0.0.1:30{{$i}}2"{{end}}] @@ -57,8 +58,22 @@ EOT env = { POSTGRES_USER="vega" POSTGRES_PASSWORD="vega" - POSTGRES_DBS="vega0,vega1,vega2,vega3,vega4,vega5,vega6" + POSTGRES_DBS="vega0,vega1,vega2,vega3,vega4,vega5,vega6,vega7,vega8" } + + volume_mounts = concat( + [ + for ns in generated.node_sets: + "${ns.data_node.service.home_dir}/dehistory/snapshotsCopyTo:/snapshotsCopyTo${ns.index}" + if ns.data_node != null + ], + [ + for ns in generated.node_sets: + "${ns.data_node.service.home_dir}/dehistory/snapshotsCopyFrom:/snapshotsCopyFrom${ns.index}" + if ns.data_node != null + ] + ) + static_port { value = 5232 to = 5432 @@ -94,10 +109,17 @@ EOT mode = "full" use_data_node = true + pre_start_probe { + postgres { + connection = "user=vega dbname=vega{{ .NodeNumber }} password=vega port=5232 sslmode=disable" + query = "select 10 + 10" + } + } + config_templates { vega_file = "./node_set_templates/default/vega_full.tmpl" tendermint_file = "./node_set_templates/default/tendermint_full.tmpl" data_node_file = "./node_set_templates/default/data_node_full_external_postgres.tmpl" } } -} \ No newline at end of file +} diff --git a/vegacapsule/genesis.tmpl b/vegacapsule/genesis.tmpl index f3028d3dc..cc2f1ccbc 100644 --- a/vegacapsule/genesis.tmpl +++ b/vegacapsule/genesis.tmpl @@ -153,7 +153,7 @@ "total_supply": "0", "source": { "erc20": { - "contract_address": "{{.GetEthContractAddr "tUSDC"}}" + "contract_address": "{{.GetEthContractAddr "tUSDC"}}" } } }, @@ -175,114 +175,40 @@ }, "network_parameters": { "blockchains.ethereumConfig": "{\"network_id\": \"{{ .NetworkID }}\", \"chain_id\": \"{{ .ChainID }}\", \"collateral_bridge_contract\": { \"address\": \"{{.GetEthContractAddr "erc20_bridge_1"}}\" }, \"confirmations\": 3, \"staking_bridge_contract\": { \"address\": \"{{.GetEthContractAddr "staking_bridge"}}\", \"deployment_block_height\": 0}, \"token_vesting_contract\": { \"address\": \"{{.GetEthContractAddr "erc20_vesting"}}\", \"deployment_block_height\": 0 }, \"multisig_control_contract\": { \"address\": \"{{.GetEthContractAddr "MultisigControl"}}\", \"deployment_block_height\": 0 }}", - "governance.proposal.asset.maxClose":"8760h0m0s", - "governance.proposal.asset.maxEnact":"8760h0m0s", - "governance.proposal.asset.minClose":"2s", - "governance.proposal.asset.minEnact":"2s", - "governance.proposal.asset.minProposerBalance":"0", - "governance.proposal.asset.minVoterBalance":"0", - "governance.proposal.asset.requiredMajority":"0.66", - "governance.proposal.asset.requiredParticipation":"0.00000000000000000000000015", - "governance.proposal.freeform.maxClose":"8760h0m0s", - "governance.proposal.freeform.minClose":"48h0m0s", - "governance.proposal.freeform.minProposerBalance":"1", - "governance.proposal.freeform.minVoterBalance":"1", - "governance.proposal.freeform.requiredMajority":"0.66", - "governance.proposal.freeform.requiredParticipation":"0.00001", - "governance.proposal.market.maxClose":"8760h0m0s", - "governance.proposal.market.maxEnact":"8760h0m0s", - "governance.proposal.market.minClose":"2s", - "governance.proposal.market.minEnact":"2s", - "governance.proposal.market.minProposerBalance":"0", - "governance.proposal.market.minVoterBalance":"0", - "governance.proposal.market.requiredMajority":"0.66", - "governance.proposal.market.requiredParticipation":"0.00000000000000000000000015", - "governance.proposal.updateAsset.maxClose":"8760h0m0s", - "governance.proposal.updateAsset.maxEnact":"8760h0m0s", - "governance.proposal.updateAsset.minClose":"48h0m0s", - "governance.proposal.updateAsset.minEnact":"48h0m0s", - "governance.proposal.updateAsset.minProposerBalance":"0", - "governance.proposal.updateAsset.minVoterBalance":"0", - "governance.proposal.updateAsset.requiredMajority":"0.66", - "governance.proposal.updateAsset.requiredParticipation":"0.00001", - "governance.proposal.updateMarket.maxClose":"8760h0m0s", - "governance.proposal.updateMarket.maxEnact":"8760h0m0s", - "governance.proposal.updateMarket.minClose":"2s", - "governance.proposal.updateMarket.minEnact":"2s", - "governance.proposal.updateMarket.minProposerBalance":"0", - "governance.proposal.updateMarket.minProposerEquityLikeShare":"0.66", - "governance.proposal.updateMarket.minVoterBalance":"0", - "governance.proposal.updateMarket.requiredMajority":"0.66", - "governance.proposal.updateMarket.requiredMajorityLP":"0.66", - "governance.proposal.updateMarket.requiredParticipation":"0.00000000000000000000000015", - "governance.proposal.updateMarket.requiredParticipationLP":"0.00001", - "governance.proposal.updateNetParam.maxClose":"8760h0m0s", - "governance.proposal.updateNetParam.maxEnact":"8760h0m0s", - "governance.proposal.updateNetParam.minClose":"2s", - "governance.proposal.updateNetParam.minEnact":"2s", - "governance.proposal.updateNetParam.minProposerBalance":"0", - "governance.proposal.updateNetParam.minVoterBalance":"0", - "governance.proposal.updateNetParam.requiredMajority":"0.66", - "governance.proposal.updateNetParam.requiredParticipation":"0.00000000000000000000000015", - "limits.assets.proposeEnabledFrom":"2100-12-30T00:00:00Z", - "limits.markets.proposeEnabledFrom":"2100-12-30T00:00:00Z", - "market.auction.maximumDuration":"168h0m0s", - "market.auction.minimumDuration":"3s", - "market.fee.factors.infrastructureFee":"0.001", - "market.fee.factors.makerFee":"0.004", - "market.liquidity.bondPenaltyParameter":"1", - "market.liquidity.maximumLiquidityFeeFactorLevel":"1", - "market.liquidity.minimum.probabilityOfTrading.lpOrders":"1e-8", - "market.liquidity.probabilityOfTrading.tau.scaling":"1", - "market.liquidity.providers.fee.distributionTimeStep":"0s", - "market.liquidity.stakeToCcySiskas":"0.3", - "market.liquidity.targetstake.triggering.ratio":"0.7", - "market.liquidityProvision.minLpStakeQuantumMultiple":"1", - "market.liquidityProvision.shapes.maxSize":"100", - "market.margin.scalingFactors":"{\"search_level\": 1.1, \"initial_margin\": 1.2, \"collateral_release\": 1.4}", - "market.monitor.price.defaultParameters":"{\"triggers\": []}", - "market.stake.target.scalingFactor":"10", - "market.stake.target.timeWindow":"1h0m0s", - "market.value.windowLength":"168h0m0s", - "network.checkpoint.timeElapsedBetweenCheckpoints":"10s", - "network.floatingPointUpdates.delay":"5m", - "network.validators.ersatz.multipleOfTendermintValidators":"0.5", - "network.validators.ersatz.rewardFactor":"0.5", - "network.validators.incumbentBonus":"1", - "network.validators.minimumEthereumEventsForNewValidator":"3", - "network.validators.multisig.numberOfSigners":"13", - "network.validators.tendermint.number":"30", + "governance.proposal.asset.minClose": "2s", + "governance.proposal.asset.minEnact": "2s", + "governance.proposal.asset.requiredParticipation": "0.00000000000000000000000015", + "governance.proposal.market.minClose": "2s", + "governance.proposal.market.minEnact": "2s", + "governance.proposal.market.requiredParticipation": "0.00000000000000000000000015", + "governance.proposal.updateMarket.minClose": "2s", + "governance.proposal.updateMarket.minEnact": "2s", + "governance.proposal.updateMarket.requiredParticipation": "0.00000000000000000000000015", + "governance.proposal.updateNetParam.minClose": "2s", + "governance.proposal.updateNetParam.minEnact": "2s", + "governance.proposal.updateNetParam.requiredParticipation": "0.00000000000000000000000015", + "market.auction.minimumDuration": "3s", + "market.fee.factors.infrastructureFee": "0.001", + "market.fee.factors.makerFee": "0.004", + "market.liquidity.stakeToCcySiskas": "0.3", + "market.liquidity.targetstake.triggering.ratio": "0.7", "network.checkpoint.timeElapsedBetweenCheckpoints": "10s", - "reward.asset":"{{.GetVegaContractID "VEGA"}}", - "reward.staking.delegation.competitionLevel":"3.1", - "reward.staking.delegation.delegatorShare":"0.883", - "reward.staking.delegation.maxPayoutPerEpoch":"7000000000000000000000", - "reward.staking.delegation.maxPayoutPerParticipant":"700000000000000000000", - "reward.staking.delegation.minValidators":"5", - "reward.staking.delegation.minimumValidatorStake":"3000000000000000000000", - "reward.staking.delegation.optimalStakeMultiplier":"3.0", - "reward.staking.delegation.payoutDelay":"5m", - "reward.staking.delegation.payoutFraction":"0.007", - "rewards.marketCreationQuantumMultiple":"10000000", - "snapshot.interval.length":"1000", - "spam.pow.difficulty":"15", - "spam.pow.hashFunction":"sha3_24_rounds", - "spam.pow.increaseDifficulty":"0", - "spam.pow.numberOfPastBlocks":"100", - "spam.pow.numberOfTxPerBlock":"2", - "spam.protection.delegation.min.tokens":"2000000000000000000", - "spam.protection.max.batchSize":"15", - "spam.protection.max.delegations":"390", - "spam.protection.max.proposals":"100", - "spam.protection.max.votes":"100", - "spam.protection.maxUserTransfersPerEpoch":"20", - "spam.protection.proposal.min.tokens":"1000000000000000000", - "spam.protection.voting.min.tokens":"1000000000000000000", - "transfer.fee.factor":"0.001", - "transfer.minTransferQuantumMultiple":"0.1", - "validators.delegation.minAmount":"100000000000000000", - "validators.epoch.length":"5s", - "validators.vote.required":"0.67" + "reward.asset": "{{.GetVegaContractID "VEGA"}}", + "reward.staking.delegation.competitionLevel": "3.1", + "reward.staking.delegation.delegatorShare": "0.883", + "reward.staking.delegation.maxPayoutPerParticipant": "700000000000000000000", + "reward.staking.delegation.minimumValidatorStake": "3000000000000000000000", + "reward.staking.delegation.payoutDelay": "5m", + "reward.staking.delegation.payoutFraction": "0.007", + "spam.protection.delegation.min.tokens": "1000000000000000000", + "spam.protection.max.delegations": "390", + "spam.protection.max.proposals": "100", + "spam.protection.max.votes": "100", + "spam.protection.proposal.min.tokens": "1000000000000000000", + "spam.protection.voting.min.tokens": "1000000000000000000", + "validators.delegation.minAmount": "100000000000000000", + "validators.epoch.length": "5s", + "validators.vote.required": "0.67" }, "network_limits": { "propose_asset_enabled": true, @@ -296,4 +222,4 @@ "time_iota_ms": "1" } } -} \ No newline at end of file +} diff --git a/vegacapsule/node_set_templates/default/data_node_full_external_postgres.tmpl b/vegacapsule/node_set_templates/default/data_node_full_external_postgres.tmpl index 3e5a51626..40d5e2e5d 100644 --- a/vegacapsule/node_set_templates/default/data_node_full_external_postgres.tmpl +++ b/vegacapsule/node_set_templates/default/data_node_full_external_postgres.tmpl @@ -6,7 +6,7 @@ GatewayEnabled = true Port = 5232 UseTransactions = true Database = "vega{{.NodeNumber}}" - + [API] Level = "Info" @@ -27,7 +27,7 @@ GatewayEnabled = true Port = 30{{.NodeNumber}}8 [Gateway.REST] Port = 30{{.NodeNumber}}9 - + [Metrics] Level = "Info" Timeout = "5s" @@ -37,4 +37,4 @@ GatewayEnabled = true Level = "Info" UseEventFile = false [Broker.SocketConfig] - Port = 30{{.NodeNumber}}5 \ No newline at end of file + Port = 30{{.NodeNumber}}5 diff --git a/vegacapsule/node_set_templates/default/vega_full.tmpl b/vegacapsule/node_set_templates/default/vega_full.tmpl index 11f703f78..571aae6a2 100644 --- a/vegacapsule/node_set_templates/default/vega_full.tmpl +++ b/vegacapsule/node_set_templates/default/vega_full.tmpl @@ -29,4 +29,4 @@ [Broker] [Broker.Socket] Port = 30{{.NodeNumber}}5 - Enabled = true \ No newline at end of file + Enabled = true diff --git a/vegacapsule/node_set_templates/default/vega_validators.tmpl b/vegacapsule/node_set_templates/default/vega_validators.tmpl index e1fad7dff..6d25a06fb 100644 --- a/vegacapsule/node_set_templates/default/vega_validators.tmpl +++ b/vegacapsule/node_set_templates/default/vega_validators.tmpl @@ -27,4 +27,4 @@ [Processor] [Processor.Ratelimit] Requests = 10000 - PerNBlocks = 1 \ No newline at end of file + PerNBlocks = 1