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 changeVoteButton = '[data-testid="change-vote-button"]';
const proposalDetailsTitle = '[data-testid="proposal-title"]'; const proposalDetailsTitle = '[data-testid="proposal-title"]';
const proposalDetailsDescription = '[data-testid="proposal-description"]'; 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 minVoteButton = '[data-testid="min-vote"]';
const maxVoteButton = '[data-testid="max-vote"]'; const maxVoteButton = '[data-testid="max-vote"]';
const voteButtons = '[data-testid="vote-buttons"]'; const voteButtons = '[data-testid="vote-buttons"]';
@ -61,10 +61,12 @@ context(
cy.verify_page_header('The $VEGA token'); cy.verify_page_header('The $VEGA token');
cy.get_network_parameters().then((network_parameters) => { cy.get_network_parameters().then((network_parameters) => {
cy.wrap( cy.wrap(
network_parameters['governance.proposal.freeform.minProposerBalance'] network_parameters['spam.protection.proposal.min.tokens'] /
1000000000000000000
).as('minProposerBalance'); ).as('minProposerBalance');
cy.wrap( cy.wrap(
network_parameters['governance.proposal.freeform.minVoterBalance'] network_parameters['spam.protection.voting.min.tokens'] /
1000000000000000000
).as('minVoterBalance'); ).as('minVoterBalance');
cy.wrap( cy.wrap(
network_parameters['governance.proposal.freeform.requiredMajority'] * 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 () { it('Able to submit a valid freeform proposal - with minimum required tokens associated - but also staked', function () {
cy.ensure_specified_unstaked_tokens_are_associated( cy.ensure_specified_unstaked_tokens_are_associated('2');
this.minProposerBalance
);
cy.navigate_to_page_if_not_already_loaded('governance'); cy.navigate_to_page_if_not_already_loaded('governance');
cy.get(vegaWalletUnstakedBalance, txTimeout).should( cy.get(vegaWalletUnstakedBalance, txTimeout).should('contain', '2');
'contain',
this.minProposerBalance
);
cy.navigate_to('staking'); cy.navigate_to('staking');
cy.wait_for_spinner(); cy.wait_for_spinner();
cy.click_on_validator_from_list(0); 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( cy.get(vegaWalletStakedBalances, txTimeout).should('contain', '2');
'contain',
this.minProposerBalance
);
cy.navigate_to('governance'); cy.navigate_to('governance');
cy.wait_for_spinner(); cy.wait_for_spinner();
@ -355,8 +349,7 @@ context(
}); });
}); });
// Skipping test due to bug - should be solved when #1223 released it('Newly created raw proposal details - shows proposal title and full description', function () {
it.skip('Newly created freeform proposal details - shows proposal title and full description', function () {
createRawProposal(this.minProposerBalance); createRawProposal(this.minProposerBalance);
cy.wait('@proposalSubmissionCompletion') cy.wait('@proposalSubmissionCompletion')
.its(proposalResponseProposalIdPath) .its(proposalResponseProposalIdPath)
@ -366,38 +359,13 @@ context(
cy.get(viewProposalButton).should('be.visible').click(); cy.get(viewProposalButton).should('be.visible').click();
}); });
}); });
cy.get('@rawProposal').then((freeformProposal) => { cy.get('@rawProposal').then((rawProposal) => {
// 3001-VOTE-054 // 3001-VOTE-054
cy.get(proposalDetailsTitle) cy.get(proposalDetailsTitle)
.should('contain', freeformProposal.rationale.title) .should('contain', rawProposal.rationale.title)
.and('be.visible'); .and('be.visible');
cy.get(proposalDetailsDescription) cy.get(proposalDetailsDescription)
.should('contain', freeformProposal.rationale.description) .should('contain', rawProposal.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'
)
.and('be.visible'); .and('be.visible');
}); });
}); });
@ -623,13 +591,16 @@ context(
); );
}); });
// No longer able to submit a rejected freeform proposal it('Creating a proposal - proposal rejected - able to access rejected proposals', function () {
it.skip('Creating a proposal - proposal rejected - able to access rejected proposals', function () {
cy.ensure_specified_unstaked_tokens_are_associated( cy.ensure_specified_unstaked_tokens_are_associated(
this.minProposerBalance this.minProposerBalance
); );
cy.go_to_make_new_proposal(governanceProposalType.FREEFORM); cy.go_to_make_new_proposal(governanceProposalType.RAW);
cy.enter_unique_freeform_proposal_body('500000000'); 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.get(newProposalSubmitButton).should('be.visible').click();
cy.contains('Awaiting network confirmation', epochTimeout).should( cy.contains('Awaiting network confirmation', epochTimeout).should(
'be.visible' 'be.visible'
@ -663,14 +634,17 @@ context(
txTimeout txTimeout
); );
cy.go_to_make_new_proposal(governanceProposalType.RAW); 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.contains('Transaction failed', proposalTimeout).should('be.visible');
cy.get(feedbackError) cy.get(feedbackError).should(
.contains( 'have.text',
'Party has insufficient associated governance tokens in their staking account to submit proposal request' 'party has insufficient associated governance tokens in their staking account to submit proposal request'
) );
.should('be.visible');
}); });
it('Unable to create a proposal - when some but not enough tokens are associated', function () { it('Unable to create a proposal - when some but not enough tokens are associated', function () {
@ -678,78 +652,74 @@ context(
this.minProposerBalance - 0.000001 this.minProposerBalance - 0.000001
); );
cy.go_to_make_new_proposal(governanceProposalType.RAW); 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.contains('Transaction failed', proposalTimeout).should('be.visible');
cy.get(feedbackError) cy.get(feedbackError).should(
.contains( 'have.text',
'Party has insufficient associated governance tokens in their staking account to submit proposal request' 'party has insufficient associated governance tokens in their staking account to submit proposal request'
) );
.should('be.visible');
}); });
// Json containing unexpected field no longer fails submission it('Unable to create a freeform proposal - when json parent section contains unexpected field', function () {
it.skip('Unable to create a freeform proposal - when json parent section contains unexpected field', function () {
// 3001-VOTE-038 // 3001-VOTE-038
cy.ensure_specified_unstaked_tokens_are_associated( cy.ensure_specified_unstaked_tokens_are_associated(
this.minProposerBalance this.minProposerBalance
); );
cy.go_to_make_new_proposal(governanceProposalType.FREEFORM); 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) => { (closingDateTimestamp) => {
cy.fixture('/proposals/freeform.json').then((freeformProposal) => { cy.fixture('/proposals/raw.json').then((freeformProposal) => {
freeformProposal.terms.closingTimestamp = closingDateTimestamp; freeformProposal.terms.closingTimestamp = closingDateTimestamp;
freeformProposal.unexpected = `i shouldn't be here`; freeformProposal.unexpected = `i shouldn't be here`;
let proposalPayload = JSON.stringify(freeformProposal); let proposalPayload = JSON.stringify(freeformProposal);
cy.get(rawProposalData).type(proposalPayload, {
cy.get(proposalDetailsTitle).type(
freeformProposal.rationale.title
);
cy.get(proposalDetailsDescription).type(proposalPayload, {
parseSpecialCharSequences: false, parseSpecialCharSequences: false,
delay: 2, delay: 2,
}); });
cy.get(proposalVoteDeadline).clear().click().type('50');
}); });
} }
); );
cy.get(newProposalSubmitButton).should('be.visible').click(); cy.get(newProposalSubmitButton).should('be.visible').click();
cy.contains('Transaction failed', proposalTimeout).should('be.visible'); cy.contains('Transaction failed', proposalTimeout).should('be.visible');
cy.get(feedbackError) cy.get(feedbackError).should(
.contains('Unknown field unexpected in vega proposal terms') 'have.text',
.should('be.visible'); '*: unknown field "unexpected" in vega.commands.v1.ProposalSubmission'
);
}); });
// Json containing unexpected field no longer fails submission it('Unable to create a freeform proposal - when json terms section contains unexpected field', function () {
it.skip('Unable to create a freeform proposal - when json terms section contains unexpected field', function () {
// 3001-VOTE-038 // 3001-VOTE-038
cy.ensure_specified_unstaked_tokens_are_associated( cy.ensure_specified_unstaked_tokens_are_associated(
this.minProposerBalance this.minProposerBalance
); );
cy.go_to_make_new_proposal(governanceProposalType.RAW); 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) => { (closingDateTimestamp) => {
cy.fixture('/proposals/raw.json').then((rawProposal) => { cy.fixture('/proposals/raw.json').then((rawProposal) => {
rawProposal.terms.closingTimestamp = closingDateTimestamp; rawProposal.terms.closingTimestamp = closingDateTimestamp;
rawProposal.terms.unexpectedField = `i shouldn't be here`; rawProposal.terms.unexpectedField = `i shouldn't be here`;
let proposalPayload = JSON.stringify(rawProposal); let proposalPayload = JSON.stringify(rawProposal);
cy.get(proposalDetailsTitle).type(rawProposal.rationale.title); cy.get(rawProposalData).type(proposalPayload, {
cy.get(proposalDetailsDescription).type(proposalPayload, {
parseSpecialCharSequences: false, parseSpecialCharSequences: false,
delay: 2, delay: 2,
}); });
cy.get(proposalVoteDeadline).clear().click().type('50');
}); });
} }
); );
cy.get(newProposalSubmitButton).should('be.visible').click(); cy.get(newProposalSubmitButton).should('be.visible').click();
cy.contains('Transaction failed', proposalTimeout).should('be.visible'); cy.contains('Transaction failed', proposalTimeout).should('be.visible');
cy.get(feedbackError) cy.get(feedbackError).should(
.contains('Unknown field unexpected in vega proposal terms') 'have.text',
.should('be.visible'); '*: unknown field "unexpectedField" in vega.ProposalTerms'
);
}); });
// Have to skip because #1326 bug doesn't handle below scenario // Have to skip because #1326 bug doesn't handle below scenario
@ -815,7 +785,7 @@ context(
function createRawProposal(proposerBalance) { function createRawProposal(proposerBalance) {
if (proposerBalance) if (proposerBalance)
cy.ensure_specified_unstaked_tokens_are_associated(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( cy.create_ten_digit_unix_timestamp_for_specified_days('8').then(
(closingDateTimestamp) => { (closingDateTimestamp) => {
cy.enter_raw_proposal_body(closingDateTimestamp).as('rawProposal'); 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 proposalVoteDeadline = '[data-testid="proposal-vote-deadline"]';
const proposalValidationDeadline = const proposalValidationDeadline =
'[data-testid="proposal-validation-deadline"]'; '[data-testid="proposal-validation-deadline"]';
const proposalEnactmentDeadline = '[data-testid="proposal-enactment-deadline"]';
const proposalParameterSelect = '[data-testid="proposal-parameter-select"]'; const proposalParameterSelect = '[data-testid="proposal-parameter-select"]';
const proposalMarketSelect = '[data-testid="proposal-market-select"]'; const proposalMarketSelect = '[data-testid="proposal-market-select"]';
const newProposalTitle = '[data-testid="proposal-title"]'; const newProposalTitle = '[data-testid="proposal-title"]';
@ -13,6 +14,7 @@ const newProposedParameterValue =
'[data-testid="selected-proposal-param-new-value"]'; '[data-testid="selected-proposal-param-new-value"]';
const dialogCloseButton = '[data-testid="dialog-close"]'; const dialogCloseButton = '[data-testid="dialog-close"]';
const inputError = '[data-testid="input-error-text"]'; const inputError = '[data-testid="input-error-text"]';
const feedbackError = '[data-testid="Error"]';
const epochTimeout = Cypress.env('epochTimeout'); const epochTimeout = Cypress.env('epochTimeout');
const proposalTimeout = { timeout: 14000 }; const proposalTimeout = { timeout: 14000 };
@ -21,6 +23,7 @@ const governanceProposalType = {
NEW_MARKET: 'New market', NEW_MARKET: 'New market',
UPDATE_MARKET: 'Update market', UPDATE_MARKET: 'Update market',
NEW_ASSET: 'New asset', NEW_ASSET: 'New asset',
UPDATE_ASSET: 'Update asset',
FREEFORM: 'Freeform', FREEFORM: 'Freeform',
RAW: 'raw proposal', RAW: 'raw proposal',
}; };
@ -97,8 +100,9 @@ context(
); );
}); });
// 3003-PMAN-001 // Skipping because unclear what the required json is yet for new market proposal, will update once docs have been updated
it('Able to submit valid new market proposal', function () { // 3003-todo-PMAN-001
it.skip('Able to submit valid new market proposal', function () {
cy.go_to_make_new_proposal(governanceProposalType.NEW_MARKET); cy.go_to_make_new_proposal(governanceProposalType.NEW_MARKET);
cy.get(newProposalTitle).type('Test new market proposal'); cy.get(newProposalTitle).type('Test new market proposal');
cy.get(newProposalDescription).type('E2E test for proposals'); cy.get(newProposalDescription).type('E2E test for proposals');
@ -117,9 +121,24 @@ context(
cy.go_to_make_new_proposal(governanceProposalType.NEW_MARKET); cy.go_to_make_new_proposal(governanceProposalType.NEW_MARKET);
cy.get(newProposalSubmitButton).should('be.visible').click(); cy.get(newProposalSubmitButton).should('be.visible').click();
cy.get(inputError).should('have.length', 3); 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 () { it.skip('Able to submit update market proposal', function () {
const marketId = const marketId =
'315a8e48db0a292c92b617264728048c82c20efc922c75fd292fc54e5c727c81'; '315a8e48db0a292c92b617264728048c82c20efc922c75fd292fc54e5c727c81';
@ -163,6 +182,15 @@ context(
'be.visible' 'be.visible'
); );
cy.get(dialogCloseButton).click(); 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 () { it('Unable to submit new asset proposal with missing/invalid fields', function () {
@ -177,5 +205,28 @@ context(
'not.exist' '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('with wallets disconnected', { tags: '@smoke' }, function () {
describe('description section', function () { describe('description section', function () {
it('should have staking tab highlighted', function () { it('Should have staking tab highlighted', function () {
cy.verify_tab_highlighted('staking'); 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'); cy.verify_page_header('Staking');
}); });
it('should have Staking Guide link visible', function () { it('Should have Staking Guide link visible', function () {
// 2001-STKE-003 // 2001-STKE-003
cy.get(guideLink) cy.get(guideLink)
.should('be.visible') .should('be.visible')
@ -124,6 +124,10 @@ context('Staking Page - verify elements on page', function () {
cy.wrap($votingPower).should('not.be.empty'); 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 // 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 epochTitle = 'h3';
const nextEpochInfo = 'p'; const nextEpochInfo = 'p';

View File

@ -24,6 +24,7 @@ Level = "info"
TokenExpiry = "168h0m0s" TokenExpiry = "168h0m0s"
Port = 1789 Port = 1789
Host = "0.0.0.0" Host = "0.0.0.0"
[API] [API]
[API.GRPC] [API.GRPC]
Hosts = [{{range $i, $v := .Validators}}{{if ne $i 0}},{{end}}"127.0.0.1:30{{$i}}2"{{end}}] Hosts = [{{range $i, $v := .Validators}}{{if ne $i 0}},{{end}}"127.0.0.1:30{{$i}}2"{{end}}]
@ -57,8 +58,22 @@ EOT
env = { env = {
POSTGRES_USER="vega" POSTGRES_USER="vega"
POSTGRES_PASSWORD="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 { static_port {
value = 5232 value = 5232
to = 5432 to = 5432
@ -94,10 +109,17 @@ EOT
mode = "full" mode = "full"
use_data_node = true 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 { config_templates {
vega_file = "./node_set_templates/default/vega_full.tmpl" vega_file = "./node_set_templates/default/vega_full.tmpl"
tendermint_file = "./node_set_templates/default/tendermint_full.tmpl" tendermint_file = "./node_set_templates/default/tendermint_full.tmpl"
data_node_file = "./node_set_templates/default/data_node_full_external_postgres.tmpl" data_node_file = "./node_set_templates/default/data_node_full_external_postgres.tmpl"
} }
} }
} }

View File

@ -153,7 +153,7 @@
"total_supply": "0", "total_supply": "0",
"source": { "source": {
"erc20": { "erc20": {
"contract_address": "{{.GetEthContractAddr "tUSDC"}}" "contract_address": "{{.GetEthContractAddr "tUSDC"}}"
} }
} }
}, },
@ -175,114 +175,40 @@
}, },
"network_parameters": { "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 }}", "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.minClose": "2s",
"governance.proposal.asset.maxEnact":"8760h0m0s", "governance.proposal.asset.minEnact": "2s",
"governance.proposal.asset.minClose":"2s", "governance.proposal.asset.requiredParticipation": "0.00000000000000000000000015",
"governance.proposal.asset.minEnact":"2s", "governance.proposal.market.minClose": "2s",
"governance.proposal.asset.minProposerBalance":"0", "governance.proposal.market.minEnact": "2s",
"governance.proposal.asset.minVoterBalance":"0", "governance.proposal.market.requiredParticipation": "0.00000000000000000000000015",
"governance.proposal.asset.requiredMajority":"0.66", "governance.proposal.updateMarket.minClose": "2s",
"governance.proposal.asset.requiredParticipation":"0.00000000000000000000000015", "governance.proposal.updateMarket.minEnact": "2s",
"governance.proposal.freeform.maxClose":"8760h0m0s", "governance.proposal.updateMarket.requiredParticipation": "0.00000000000000000000000015",
"governance.proposal.freeform.minClose":"48h0m0s", "governance.proposal.updateNetParam.minClose": "2s",
"governance.proposal.freeform.minProposerBalance":"1", "governance.proposal.updateNetParam.minEnact": "2s",
"governance.proposal.freeform.minVoterBalance":"1", "governance.proposal.updateNetParam.requiredParticipation": "0.00000000000000000000000015",
"governance.proposal.freeform.requiredMajority":"0.66", "market.auction.minimumDuration": "3s",
"governance.proposal.freeform.requiredParticipation":"0.00001", "market.fee.factors.infrastructureFee": "0.001",
"governance.proposal.market.maxClose":"8760h0m0s", "market.fee.factors.makerFee": "0.004",
"governance.proposal.market.maxEnact":"8760h0m0s", "market.liquidity.stakeToCcySiskas": "0.3",
"governance.proposal.market.minClose":"2s", "market.liquidity.targetstake.triggering.ratio": "0.7",
"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",
"network.checkpoint.timeElapsedBetweenCheckpoints": "10s", "network.checkpoint.timeElapsedBetweenCheckpoints": "10s",
"reward.asset":"{{.GetVegaContractID "VEGA"}}", "reward.asset": "{{.GetVegaContractID "VEGA"}}",
"reward.staking.delegation.competitionLevel":"3.1", "reward.staking.delegation.competitionLevel": "3.1",
"reward.staking.delegation.delegatorShare":"0.883", "reward.staking.delegation.delegatorShare": "0.883",
"reward.staking.delegation.maxPayoutPerEpoch":"7000000000000000000000", "reward.staking.delegation.maxPayoutPerParticipant": "700000000000000000000",
"reward.staking.delegation.maxPayoutPerParticipant":"700000000000000000000", "reward.staking.delegation.minimumValidatorStake": "3000000000000000000000",
"reward.staking.delegation.minValidators":"5", "reward.staking.delegation.payoutDelay": "5m",
"reward.staking.delegation.minimumValidatorStake":"3000000000000000000000", "reward.staking.delegation.payoutFraction": "0.007",
"reward.staking.delegation.optimalStakeMultiplier":"3.0", "spam.protection.delegation.min.tokens": "1000000000000000000",
"reward.staking.delegation.payoutDelay":"5m", "spam.protection.max.delegations": "390",
"reward.staking.delegation.payoutFraction":"0.007", "spam.protection.max.proposals": "100",
"rewards.marketCreationQuantumMultiple":"10000000", "spam.protection.max.votes": "100",
"snapshot.interval.length":"1000", "spam.protection.proposal.min.tokens": "1000000000000000000",
"spam.pow.difficulty":"15", "spam.protection.voting.min.tokens": "1000000000000000000",
"spam.pow.hashFunction":"sha3_24_rounds", "validators.delegation.minAmount": "100000000000000000",
"spam.pow.increaseDifficulty":"0", "validators.epoch.length": "5s",
"spam.pow.numberOfPastBlocks":"100", "validators.vote.required": "0.67"
"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"
}, },
"network_limits": { "network_limits": {
"propose_asset_enabled": true, "propose_asset_enabled": true,
@ -296,4 +222,4 @@
"time_iota_ms": "1" "time_iota_ms": "1"
} }
} }
} }

View File

@ -6,7 +6,7 @@ GatewayEnabled = true
Port = 5232 Port = 5232
UseTransactions = true UseTransactions = true
Database = "vega{{.NodeNumber}}" Database = "vega{{.NodeNumber}}"
[API] [API]
Level = "Info" Level = "Info"
@ -27,7 +27,7 @@ GatewayEnabled = true
Port = 30{{.NodeNumber}}8 Port = 30{{.NodeNumber}}8
[Gateway.REST] [Gateway.REST]
Port = 30{{.NodeNumber}}9 Port = 30{{.NodeNumber}}9
[Metrics] [Metrics]
Level = "Info" Level = "Info"
Timeout = "5s" Timeout = "5s"
@ -37,4 +37,4 @@ GatewayEnabled = true
Level = "Info" Level = "Info"
UseEventFile = false UseEventFile = false
[Broker.SocketConfig] [Broker.SocketConfig]
Port = 30{{.NodeNumber}}5 Port = 30{{.NodeNumber}}5

View File

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

View File

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