Skip to content
Merged
2 changes: 0 additions & 2 deletions test/.prettierignore

This file was deleted.

15 changes: 12 additions & 3 deletions test/src/e2e.dynval/1/doubleVote.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ describe("Double vote detection", function() {
target: 2,
termPeriods: 0.5
});
const banned = await stake.getBanned(aliceNode.testFramework);
const banned = await stake.getBanned(
aliceNode.rpc,
aliceNode.testFramework
);
expect(banned.map(b => b.toString())).to.include(
betty.platformAddress.toString()
);
Expand All @@ -90,7 +93,10 @@ describe("Double vote detection", function() {
target: 2,
termPeriods: 0.5
});
const banned = await stake.getBanned(aliceNode.testFramework);
const banned = await stake.getBanned(
aliceNode.rpc,
aliceNode.testFramework
);
expect(banned.map(b => b.toString())).to.include(
betty.platformAddress.toString()
);
Expand All @@ -112,7 +118,10 @@ describe("Double vote detection", function() {
target: 2,
termPeriods: 0.5
});
const banned = await stake.getBanned(aliceNode.testFramework);
const banned = await stake.getBanned(
aliceNode.rpc,
aliceNode.testFramework
);
expect(banned.map(b => b.toString())).to.include(
betty.platformAddress.toString()
);
Expand Down
176 changes: 100 additions & 76 deletions test/src/e2e.dynval/1/dv.changeParams.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@
import * as chai from "chai";
import { expect } from "chai";
import * as chaiAsPromised from "chai-as-promised";
import RPC from "foundry-rpc";
import "mocha";
import { SDK } from "../../sdk/src";
import * as stake from "../../stakeholder/src";

import { H256 } from "codechain-primitives/lib";
import { validators } from "../../../tendermint.dynval/constants";
import { faucetAddress, faucetSecret } from "../../helper/constants";
import { PromiseExpect } from "../../helper/promise";
import { changeParams, setTermTestTimeout, withNodes } from "../setup";
import { ERROR } from "../../helper/error";

chai.use(chaiAsPromised);

Expand All @@ -43,13 +45,13 @@ describe("Change commonParams that affects validator set", function() {
}))
});

async function checkValidators(sdk: SDK, term: number, target: string[]) {
const blockNumber = await sdk.rpc.chain.getBestBlockNumber();
const termMetadata = (await stake.getTermMetadata(sdk, blockNumber))!;
async function checkValidators(rpc: RPC, term: number, target: string[]) {
const blockNumber = await rpc.chain.getBestBlockNumber();
const termMetadata = (await stake.getTermMetadata(rpc, blockNumber))!;
const currentTermInitialBlockNumber =
termMetadata.lastTermFinishedBlockNumber + 1;
const validatorsAfter = (await stake.getPossibleAuthors(
sdk,
rpc,
currentTermInitialBlockNumber
))!.map(platformAddr => platformAddr.toString());

Expand All @@ -74,9 +76,9 @@ describe("Change commonParams that affects validator set", function() {

await checkingNode.waitForTx(changeTxHash);

const faucetSeq = await checkingNode.testFramework.rpc.chain.getSeq(
faucetAddress
);
const faucetSeq = (await checkingNode.rpc.chain.getSeq({
address: faucetAddress.toString()
}))!;

const revoked = validators.slice(0, 3);
const untouched = validators.slice(3, 5);
Expand All @@ -96,12 +98,12 @@ describe("Change commonParams that affects validator set", function() {

const revokeTxHashes = await Promise.all(
revokeTxs.map(tx =>
checkingNode.testFramework.rpc.chain.sendSignedTransaction(
tx
)
checkingNode.rpc.mempool.sendSignedTransaction({
tx: `${tx.rlpBytes().toString("hex")}`
})
)
);
await checkingNode.waitForTx(revokeTxHashes);
await checkingNode.waitForTx(new H256(revokeTxHashes[0]));
await termWaiter.waitNodeUntilTerm(checkingNode, {
target: 2,
termPeriods: 1
Expand All @@ -111,11 +113,7 @@ describe("Change commonParams that affects validator set", function() {
...revoked.slice(0, 2),
...untouched
].map(signer => signer.platformAddress.toString());
await checkValidators(
checkingNode.testFramework,
2,
expectedValidators
);
await checkValidators(checkingNode.rpc, 2, expectedValidators);
});
});

Expand All @@ -128,7 +126,7 @@ describe("Change commonParams that affects validator set", function() {
const checkingNode = nodes[0];

await checkValidators(
checkingNode.testFramework,
checkingNode.rpc,
1,
validators
.slice(0, 5)
Expand All @@ -146,7 +144,7 @@ describe("Change commonParams that affects validator set", function() {
termPeriods: 1
});
await checkValidators(
checkingNode.testFramework,
checkingNode.rpc,
2,
validators
.slice(0, 3)
Expand All @@ -164,7 +162,7 @@ describe("Change commonParams that affects validator set", function() {
termPeriods: 1
});
await checkValidators(
checkingNode.testFramework,
checkingNode.rpc,
3,
validators
.slice(0, 4)
Expand Down Expand Up @@ -203,9 +201,7 @@ describe("Change commonParams that doesn't affects validator set", function() {
this.slow((initialTermSeconds + newTermSeconds) * 1000 * margin);
this.timeout((initialTermSeconds + newTermSeconds) * 1000 * 2);

const term1Metadata = (await stake.getTermMetadata(
nodes[0].testFramework
))!;
const term1Metadata = (await stake.getTermMetadata(nodes[0].rpc))!;
{
expect(term1Metadata.currentTermId).to.be.equal(1);
}
Expand All @@ -218,26 +214,24 @@ describe("Change commonParams that doesn't affects validator set", function() {

await nodes[0].waitForTermChange(2, initialTermSeconds * margin);

const term2Metadata = (await stake.getTermMetadata(
nodes[0].testFramework
))!;
const term2Metadata = (await stake.getTermMetadata(nodes[0].rpc))!;
{
expect(term2Metadata.currentTermId).to.be.equal(2);
}

await nodes[0].waitForTermChange(3, newTermSeconds * margin);

const term3Metadata = (await stake.getTermMetadata(
nodes[0].testFramework
))!;
const term3Metadata = (await stake.getTermMetadata(nodes[0].rpc))!;
{
expect(term2Metadata.currentTermId).to.be.equal(2);
}

const [ts1, ts2, ts3] = await Promise.all(
[term1Metadata, term2Metadata, term3Metadata].map(m =>
nodes[0].testFramework.rpc.chain
.getBlock(m.lastTermFinishedBlockNumber)
nodes[0].rpc.chain
.getBlockByNumber({
blockNumber: m.lastTermFinishedBlockNumber
})
.then(block => block!.timestamp)
)
);
Expand Down Expand Up @@ -276,14 +270,19 @@ describe("Change commonParams that doesn't affects validator set", function() {
})
.sign({
secret: faucetSecret,
seq: await checkingNode.testFramework.rpc.chain.getSeq(
faucetAddress
),
seq: (await checkingNode.rpc.chain.getSeq({
address: faucetAddress.toString()
}))!,
fee: 10
});
await expect(
checkingNode.testFramework.rpc.chain.sendSignedTransaction(tx)
).rejectedWith(/Too Low Fee/);
try {
await checkingNode.rpc.mempool.sendSignedTransaction({
tx: tx.rlpBytes().toString("hex")
});
expect.fail();
} catch (e) {
expect(e.toString()).is.include(ERROR.TOO_LOW_FEE);
}
});
});

Expand All @@ -308,29 +307,41 @@ describe("Change commonParams that doesn't affects validator set", function() {
});
await checkingNode.waitForTx(changeTxHash);
const normalNomination = nominationWithMetadata(129);
const seq = await checkingNode.testFramework.rpc.chain.getSeq(
alice.platformAddress
);
const normalHash = await checkingNode.testFramework.rpc.chain.sendSignedTransaction(
normalNomination.sign({
secret: alice.privateKey,
seq,
fee: 10
})
const seq = (await checkingNode.rpc.chain.getSeq({
address: alice.platformAddress.toString()
}))!;
const normalHash = await checkingNode.rpc.mempool.sendSignedTransaction(
{
tx: normalNomination
.sign({
secret: alice.privateKey,
seq,
fee: 10
})
.rlpBytes()
.toString("hex")
}
);
await checkingNode.waitForTx(normalHash);
await checkingNode.waitForTx(new H256(normalHash));

const largeNomination = nominationWithMetadata(257);

await expect(
checkingNode.testFramework.rpc.chain.sendSignedTransaction(
largeNomination.sign({
secret: alice.privateKey,
seq: seq + 1,
fee: 10
})
)
).rejectedWith(/Too long/);
try {
await checkingNode.rpc.mempool.sendSignedTransaction({
tx: largeNomination
.sign({
secret: alice.privateKey,
seq: seq + 1,
fee: 10
})
.rlpBytes()
.toString("hex")
});
expect.fail();
} catch (e) {
expect(e.toString()).is.include(
ERROR.ACTION_DATA_HANDLER_NOT_FOUND
);
}
});

it("Should apply smaller metadata limit after decrement", async function() {
Expand All @@ -345,28 +356,41 @@ describe("Change commonParams that doesn't affects validator set", function() {
});
await checkingNode.waitForTx(changeTxHash);
const normalNomination = nominationWithMetadata(63);
const seq = await checkingNode.testFramework.rpc.chain.getSeq(
alice.platformAddress
);
const normalHash = await checkingNode.testFramework.rpc.chain.sendSignedTransaction(
normalNomination.sign({
secret: alice.privateKey,
seq,
fee: 10
})
const seq = (await checkingNode.rpc.chain.getSeq({
address: alice.platformAddress.toString()
}))!;
const normalHash = await checkingNode.rpc.mempool.sendSignedTransaction(
{
tx: normalNomination
.sign({
secret: alice.privateKey,
seq,
fee: 10
})
.rlpBytes()
.toString("hex")
}
);
await checkingNode.waitForTx(normalHash);
await checkingNode.waitForTx(new H256(normalHash));

const largeNomination = nominationWithMetadata(127);
await expect(
checkingNode.testFramework.rpc.chain.sendSignedTransaction(
largeNomination.sign({
secret: alice.privateKey,
seq: seq + 1,
fee: 10
})
)
).rejectedWith(/Too long/);
try {
await checkingNode.rpc.mempool.sendSignedTransaction({
tx: largeNomination
.sign({
secret: alice.privateKey,
seq: seq + 1,
fee: 10
})
.rlpBytes()
.toString("hex")
});
expect.fail();
} catch (e) {
expect(e.toString()).is.include(
ERROR.ACTION_DATA_HANDLER_NOT_FOUND
);
}
});
});

Expand Down
Loading