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
This commit is contained in:
Joe Tsang 2022-10-14 16:54:27 +01:00 committed by GitHub
parent 37a6217169
commit b1c15d5711
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 193 additions and 210 deletions

View File

@ -0,0 +1,10 @@
{
"assetId": "ebcd94151ae1f0d39a4bde3b21a9c7ae81a80ea4352fb075a92e07608d9c953d",
"changes": {
"quantum": "1",
"erc20": {
"withdrawThreshold": "10",
"lifetimeLimit": "10"
}
}
}

View File

@ -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');

View File

@ -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);
});
}
);

View File

@ -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';

View File

@ -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"
}
}
}
}

View File

@ -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"
}
}
}
}

View File

@ -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
Port = 30{{.NodeNumber}}5

View File

@ -29,4 +29,4 @@
[Broker]
[Broker.Socket]
Port = 30{{.NodeNumber}}5
Enabled = true
Enabled = true

View File

@ -27,4 +27,4 @@
[Processor]
[Processor.Ratelimit]
Requests = 10000
PerNBlocks = 1
PerNBlocks = 1