Skip to content

Commit

Permalink
Fix test codes with hard-coded values
Browse files Browse the repository at this point in the history
Validator initialization logic should be changed because the definition of validator set has been changed.
These hard-coded values should be replaced with sdk function calls in the future.
  • Loading branch information
Byeongjee Kang committed Feb 27, 2020
1 parent ef1708c commit 5899b58
Show file tree
Hide file tree
Showing 8 changed files with 135 additions and 22 deletions.
13 changes: 9 additions & 4 deletions core/res/tendermint.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
"tendermint": {
"params": {
"validators": [
"0xd8c897324f1663639479d96a038263c47d76a5847a1e991695d29568856b41afe789df7665146f94a6a081938d10ecbb368e4b01f6fab0fa353d6cb62363327f",
"0x04e2d586009a72473058e26df8bc58224fb2116d231368f7b6e3f874dcf4144e151d3e2d7b15e969dcd067accc574a53017387e3b25844cee613aab5bdb37b8b",
"0x95ce5a69a407244ae22a49d23896137a2dedda3e1dee2972802e73d1f11f069e4b3efa5d3794a2e4ea55acd8f99193f46b505513bb3854f9872392b132818ac3",
"0x8f591aec10af3b141d360011b079d693720722bab92e05ffb46ee5350fb9afea0a6cbf7d7c88bc3114f285404efa061e6ba40a102be8e88604ea683d46edd5fb"
["0xc1f7057e36205fe711c1d645c6c037d10e40e0a8",
"0x81fc91b26e2bb60e4f1936d63ec3d540507578d38ee3800a691de957419f2f455ce074cb6ef2e179434cf900c6eac9d80af3ac0c7b1b56f118826f33272b8f2cdd62cde37505e2fa3f3f8c89740513c5c055099c02cbed96d26ecef84d224768"],
["0xb5f5782552e883ea5b20a3ad0cc4f2f60bd87c39",
"0xaabd584b58a269c1cf8e790f9561aa0aff86014a121ee3fef76ab36cae0be0e1e942bd242db6cb32321019e74b308a7e01bae6b0c2e41bc8ea751981ec64afa51aa2de5b9bec2e344a109ac58d79492f4bb603586de384d766e8059ac80858ee"],
["0x28a6a3456529fac23f85de5835497eee5be5febe",
"0xb4a9c2f03a4436ad06f681a49d55de0b10ce36ec8e50f7e340daf169ad201e8b72e35b10adb6234f03a8417360f9594903c71d9b1392bca63e99a073ea091bdd293741b605627623b9f52b86830a633e0cb42333837136dc94f447d998188cb8"],
["0xd6694e0b116eae49467565816641a7b2e2883e98",
"0x8d94144967bbb3b1a37acba64a7fd129bb0940b1d4a20568a40a6d4827c2ff161b8c2bd8ecfb06c45923944b6f06f4ab172f34c614664670230230629b827bafb59b0012302509b4572a1d1ed68d53c54e11b0b07f496064b0cad7d3ce34a5af"
]
],
"timeoutPropose": 10000,
"timeoutProposeDelta": 5000,
Expand Down
3 changes: 2 additions & 1 deletion json/src/scheme/engine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ mod tests {
let s = r#"{
"tendermint": {
"params": {
"validators": ["0x1ac8248deb29a58c4bdbfce031fb22c7ba3bcc9384bf6de058a1c8bef5a17422cf8ca26666a5505684db7364eabeed6fc678b02658ae7c1848a4ae6e50244cf2"]
"validators":[["0xc1f7057e36205fe711c1d645c6c037d10e40e0a8",
"0x81fc91b26e2bb60e4f1936d63ec3d540507578d38ee3800a691de957419f2f455ce074cb6ef2e179434cf900c6eac9d80af3ac0c7b1b56f118826f33272b8f2cdd62cde37505e2fa3f3f8c89740513c5c055099c02cbed96d26ecef84d224768"]]
}
}
}"#;
Expand Down
6 changes: 4 additions & 2 deletions json/src/scheme/scheme.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,10 @@ mod tests {
"tendermint": {
"params": {
"validators" : [
"0x4f1541fc6bdec60bf0ac6380a8e3914a469fe6cd4fa817c890d5823cfdda83932f61dc083e1b6736dadeceb5afd3fcfbac915e5fa2c9c20acf1c30b080114d7f",
"0x1ac8248deb29a58c4bdbfce031fb22c7ba3bcc9384bf6de058a1c8bef5a17422cf8ca26666a5505684db7364eabeed6fc678b02658ae7c1848a4ae6e50244cf2"
["0xc1f7057e36205fe711c1d645c6c037d10e40e0a8",
"0x81fc91b26e2bb60e4f1936d63ec3d540507578d38ee3800a691de957419f2f455ce074cb6ef2e179434cf900c6eac9d80af3ac0c7b1b56f118826f33272b8f2cdd62cde37505e2fa3f3f8c89740513c5c055099c02cbed96d26ecef84d224768"],
["0xb5f5782552e883ea5b20a3ad0cc4f2f60bd87c39",
"0xaabd584b58a269c1cf8e790f9561aa0aff86014a121ee3fef76ab36cae0be0e1e942bd242db6cb32321019e74b308a7e01bae6b0c2e41bc8ea751981ec64afa51aa2de5b9bec2e344a109ac58d79492f4bb603586de384d766e8059ac80858ee"]
],
"timeoutPropose": 10000,
"timeoutPrevote": 10000,
Expand Down
11 changes: 6 additions & 5 deletions json/src/scheme/tendermint.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,21 +57,22 @@ pub struct Tendermint {
#[cfg(test)]
mod tests {
use super::Tendermint;
use ckey::Public;
use ckey::{Address, BlsPublic};
use serde_json;
use std::str::FromStr;

#[test]
fn tendermint_deserialization() {
let s = r#"{
"params": {
"validators": ["0x2a8a69439f2396c9a328289fdc3905d9736da9e14eb1a282cfd2c036cc21a17a5d05595160b7924e5ecf3f2628b440e601f3a531e92fa81571a70e6c695b2d08"]
"validators": [["0xc1f7057e36205fe711c1d645c6c037d10e40e0a8",
"0x81fc91b26e2bb60e4f1936d63ec3d540507578d38ee3800a691de957419f2f455ce074cb6ef2e179434cf900c6eac9d80af3ac0c7b1b56f118826f33272b8f2cdd62cde37505e2fa3f3f8c89740513c5c055099c02cbed96d26ecef84d224768"]]
}
}"#;

let deserialized: Tendermint = serde_json::from_str(s).unwrap();
let vs = vec![Public::from_str("2a8a69439f2396c9a328289fdc3905d9736da9e14eb1a282cfd2c036cc21a17a5d05595160b7924e5ecf3f2628b440e601f3a531e92fa81571a70e6c695b2d08").unwrap()];
assert_eq!(deserialized.params.validators, vs);
let address = Address::from_str("c1f7057e36205fe711c1d645c6c037d10e40e0a8").unwrap();
let bls_public = BlsPublic::from_str("81fc91b26e2bb60e4f1936d63ec3d540507578d38ee3800a691de957419f2f455ce074cb6ef2e179434cf900c6eac9d80af3ac0c7b1b56f118826f33272b8f2cdd62cde37505e2fa3f3f8c89740513c5c055099c02cbed96d26ecef84d224768").unwrap();
let validators = vec![(address, bls_public)];
assert_eq!(deserialized.params.validators, validators);
}
}
39 changes: 37 additions & 2 deletions test/src/e2e.long/staking.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,12 @@ import {
stakeActionHandlerId,
validator0Address,
validator0Secret,
validator0BlsPublic,
validator0PopSignature,
validator1Address,
validator1Secret,
validator1BlsPublic,
validator1PopSignature,
validator2Address,
validator3Address
} from "../helper/constants";
Expand Down Expand Up @@ -300,13 +304,22 @@ describe("Staking", function() {
async function selfNominate(params: {
senderAddress: PlatformAddress;
senderSecret: string;
senderBlsPublic: string;
senderPopSignature: string;
deposit: number;
metadata: Buffer | null;
fee?: number;
seq?: number;
waitForEnd?: boolean;
}): Promise<string> {
const { fee = 10, deposit, metadata, waitForEnd = true } = params;
const {
fee = 10,
deposit,
senderBlsPublic,
senderPopSignature,
metadata,
waitForEnd = true
} = params;
const seq =
params.seq == null
? (await nodes[0].rpc.chain.getSeq({
Expand All @@ -317,7 +330,15 @@ describe("Staking", function() {
const tx = nodes[0].sdk.core
.createCustomTransaction({
handlerId: stakeActionHandlerId,
bytes: Buffer.from(RLP.encode([4, deposit, metadata]))
bytes: Buffer.from(
RLP.encode([
4,
deposit,
senderBlsPublic,
senderPopSignature,
metadata
])
)
})
.sign({
secret: params.senderSecret,
Expand Down Expand Up @@ -446,6 +467,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -495,6 +518,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -604,6 +629,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -666,6 +693,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -757,6 +786,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -905,6 +936,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator1Address,
senderSecret: validator1Secret,
senderBlsPublic: validator1BlsPublic,
senderPopSignature: validator1PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -1054,6 +1087,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator1Address,
senderSecret: validator1Secret,
senderBlsPublic: validator1BlsPublic,
senderPopSignature: validator1PopSignature,
deposit: 0,
metadata: null
});
Expand Down
41 changes: 37 additions & 4 deletions test/src/e2e/staking.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,12 @@ import {
stakeActionHandlerId,
validator0Address,
validator0Secret,
validator0BlsPublic,
validator0PopSignature,
validator1Address,
validator1Secret
validator1Secret,
validator1BlsPublic,
validator1PopSignature
} from "../helper/constants";
import { PromiseExpect } from "../helper/promise";
import CodeChain from "../helper/spawn";
Expand Down Expand Up @@ -243,26 +247,41 @@ describe("Staking", function() {
async function selfNominate(params: {
senderAddress: PlatformAddress;
senderSecret: string;
senderBlsPublic: string;
senderPopSignature: string;
deposit: number;
metadata: Buffer | null;
fee?: number;
seq?: number;
}): Promise<H256> {
const { fee = 10, deposit, metadata } = params;
const {
fee = 10,
deposit,
senderBlsPublic,
senderPopSignature,
metadata
} = params;
const seq =
params.seq == null
? (await node.rpc.chain.getSeq({
address: params.senderAddress.toString()
}))!
: params.seq;

return promiseExpect.shouldFulfill(
"sendSignTransaction",
node.sdk.rpc.chain.sendSignedTransaction(
node.sdk.core
.createCustomTransaction({
handlerId: stakeActionHandlerId,
bytes: Buffer.from(RLP.encode([4, deposit, metadata]))
bytes: Buffer.from(
RLP.encode([
4,
deposit,
senderBlsPublic,
senderPopSignature,
metadata
])
)
})
.sign({
secret: params.senderSecret,
Expand Down Expand Up @@ -365,6 +384,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -407,6 +428,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -449,6 +472,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -496,6 +521,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -557,6 +584,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator0Address,
senderSecret: validator0Secret,
senderBlsPublic: validator0BlsPublic,
senderPopSignature: validator0PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -682,6 +711,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator1Address,
senderSecret: validator1Secret,
senderBlsPublic: validator1BlsPublic,
senderPopSignature: validator1PopSignature,
deposit: 0,
metadata: null
});
Expand Down Expand Up @@ -807,6 +838,8 @@ describe("Staking", function() {
await selfNominate({
senderAddress: validator1Address,
senderSecret: validator1Secret,
senderBlsPublic: validator1BlsPublic,
senderPopSignature: validator1PopSignature,
deposit: 0,
metadata: null
});
Expand Down
32 changes: 32 additions & 0 deletions test/src/helper/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,14 @@ export const validator0Address = SDK.Core.classes.PlatformAddress.fromAccountId(
validator0AccountId,
{ networkId: "tc" }
); // tccq94guhkrfndnehnca06dlkxcfuq0gdlamvw9ga4f
export const validator0BlsPublic =
"0x8a362f3b7e98dd0288d4298fb620e7251ae3dc759584e3445bbfe01b1aac9626e245dc41a8656f951b2456379533779507463c0a2a2268d7c929914f3c26371f0ab0a2649ae648b2a830cdcb61187ec4ccc7b60ea8b5cef8fb1000ec690785bc";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the value
export const validator0PopSignature =
"0xa14c2321cc2c4de037f371d80a2895d16afcea9cc0e98d2c122a46a990737695cb198e8314fb3a796590ef9335bfb8c8";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the valu

export const validator1Secret =
"79d26d5788ca5f5ae87e8dd0f057124c2cfda11136aeb140f1d9ac3648d5b703";
Expand All @@ -91,6 +99,14 @@ export const validator1Address = SDK.Core.classes.PlatformAddress.fromAccountId(
validator1AccountId,
{ networkId: "tc" }
); // tccq8p9hr53lnxnhzcn0d065lux7etz22azaca786tt
export const validator1BlsPublic =
"0xa7865b12157bb34875726479acc5dc6c0e9a85bc2a1bd536bbdc082d2d2cb331373fb314f1cfe89bcfb9ef32b752064417ceb1bc8fc67dd73d1caa51cfe6ba1311661435ece91efb48f807887ad94588a40377265d4469d95f1229662e2fddf8";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the value
export const validator1PopSignature =
"0x822a8cf830f03e075d40931107fc8d14af1d2eaa92cfe98888089a60e47fea246d6e5d361e3d473db7e04ea22d47ffbf";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the value

export const validator2Secret =
"83352d249f5fe8d85b792dd26d70050b2f7fab02be9ea33e52c83a2be73a2700";
Expand All @@ -103,6 +119,14 @@ export const validator2Address = SDK.Core.classes.PlatformAddress.fromAccountId(
validator2AccountId,
{ networkId: "tc" }
); // tccq8fj6lxn9tchqdqqe93yaga6fzxh5rndzu8k2gdw
export const validator2BlsPublic =
"aa4b34bb0be98ff752def3fae13f9dc5ac3b494bd0295e684dd367842a5939cd8cfcea40c792497b0d2a009c96098a7e18d6318ddcb49f85658d3d53f0b032b29735701033395f5e03eeac65084feb50ebf21f5a1181ee1df6659632edb76331";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the value
export const validator2PopSignature =
"b3540334534d13885921c6f3641e5865ba4e55626fdb8ee590ce87de10d1b58c9ef0a3884eb47e52de105bb825bebbd8";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the value

export const validator3Secret =
"0afa81c02fba3671ec9578f3be040e0186b445e9dc37d8bf4a866c8636841836";
Expand All @@ -115,6 +139,14 @@ export const validator3Address = SDK.Core.classes.PlatformAddress.fromAccountId(
validator3AccountId,
{ networkId: "tc" }
); // tccq9y6e0k6af9058qq4h4ffpt9xmat2vkeyue23j8y
export const validator3BlsPublic =
"893ec45952f9550384e7d0689766bdda923a7d7a22465f60ed3e33671e9e9ea7672c819267b5ab6bafa15948fb7e0e090d67df89de3fac918a4836ddb321c6e2dfda934ba2679c39eb8177e97989e4317de48e54a66e99cf77d6ec07728106c6";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the value
export const validator3PopSignature =
"99f8d282646f106153e8ad7ceae97b3610127008e615d1e6ea266071dc7d04237192360f0cdcb222665cc7a076b78771";
// TODO: replace hard-coded values with SDK function call
// 0x prefix is required since the rlp library reads the prefix to encode the value

export const hitActionHandlerId = 1;
export const stakeActionHandlerId = 2;
12 changes: 8 additions & 4 deletions test/src/scheme/tendermint-int.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@
"tendermint": {
"params": {
"validators": [
"0x4f1541fc6bdec60bf0ac6380a8e3914a469fe6cd4fa817c890d5823cfdda83932f61dc083e1b6736dadeceb5afd3fcfbac915e5fa2c9c20acf1c30b080114d7f",
"0x1ac8248deb29a58c4bdbfce031fb22c7ba3bcc9384bf6de058a1c8bef5a17422cf8ca26666a5505684db7364eabeed6fc678b02658ae7c1848a4ae6e50244cf2",
"0xdb3a858d2bafd2cb5382fcf366b847a86b58b42ce1fc29fec0cb0315af881a2ad495045adbdbc86ef7a777b541c4e62a0747f25ff6068a5ec3a052c690c4ff8a",
"0x42829b18de338aa3abf5e6d80cd511121bf9d34be9a135bbace32a3226479e7f3bb6af76c11dcc724a1666a22910d756b075d54d8fdd97be11efd7a0ac3bb222"
["0x6a8e5ec34cdb3cde78ebf4dfd8d84f00f437fddb",
"0x8a362f3b7e98dd0288d4298fb620e7251ae3dc759584e3445bbfe01b1aac9626e245dc41a8656f951b2456379533779507463c0a2a2268d7c929914f3c26371f0ab0a2649ae648b2a830cdcb61187ec4ccc7b60ea8b5cef8fb1000ec690785bc"],
["0xc25b8e91fccd3b8b137b5faa7f86f656252ba2ee",
"0xa7865b12157bb34875726479acc5dc6c0e9a85bc2a1bd536bbdc082d2d2cb331373fb314f1cfe89bcfb9ef32b752064417ceb1bc8fc67dd73d1caa51cfe6ba1311661435ece91efb48f807887ad94588a40377265d4469d95f1229662e2fddf8"],
["0xd32d7cd32af1703400c9624ea3ba488d7a0e6d17",
"0xaa4b34bb0be98ff752def3fae13f9dc5ac3b494bd0295e684dd367842a5939cd8cfcea40c792497b0d2a009c96098a7e18d6318ddcb49f85658d3d53f0b032b29735701033395f5e03eeac65084feb50ebf21f5a1181ee1df6659632edb76331"],
["0x49acbedaea4afa1c00adea94856536fab532d927",
"0x893ec45952f9550384e7d0689766bdda923a7d7a22465f60ed3e33671e9e9ea7672c819267b5ab6bafa15948fb7e0e090d67df89de3fac918a4836ddb321c6e2dfda934ba2679c39eb8177e97989e4317de48e54a66e99cf77d6ec07728106c6"]
],
"timeoutPropose": 1000,
"timeoutProposeDelta": 1000,
Expand Down

0 comments on commit 5899b58

Please sign in to comment.