tests for relay
This commit is contained in:
parent
9201a19967
commit
6399b1c8e5
|
@ -81,6 +81,7 @@ dependencies = [
|
||||||
"ethabi-contract 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
|
|
@ -15,3 +15,4 @@ error-chain = "0.11.0-rc.2"
|
||||||
ethabi = "4.0"
|
ethabi = "4.0"
|
||||||
ethabi-derive = "4.0"
|
ethabi-derive = "4.0"
|
||||||
ethabi-contract = "4.0"
|
ethabi-contract = "4.0"
|
||||||
|
rustc-hex = "1.0"
|
||||||
|
|
|
@ -108,3 +108,29 @@ impl<T: Transport> Stream for DepositRelay<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use rustc_hex::FromHex;
|
||||||
|
use web3::types::{Log, Bytes};
|
||||||
|
use contracts::{mainnet, testnet};
|
||||||
|
use super::deposit_relay_payload;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_deposit_relay_payload() {
|
||||||
|
let mainnet = mainnet::EthereumBridge::default();
|
||||||
|
let testnet = testnet::KovanBridge::default();
|
||||||
|
|
||||||
|
let data = "000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebcccc00000000000000000000000000000000000000000000000000000000000000f0".from_hex().unwrap();
|
||||||
|
let log = Log {
|
||||||
|
data: data.into(),
|
||||||
|
topics: vec!["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c".parse().unwrap()],
|
||||||
|
transaction_hash: Some("0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364".parse().unwrap()),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
let payload = deposit_relay_payload(&mainnet, &testnet, log).unwrap();
|
||||||
|
let expected: Bytes = "26b3293f000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebcccc00000000000000000000000000000000000000000000000000000000000000f0884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364".from_hex().unwrap().into();
|
||||||
|
assert_eq!(expected, payload);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ extern crate ethabi;
|
||||||
extern crate ethabi_derive;
|
extern crate ethabi_derive;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate ethabi_contract;
|
extern crate ethabi_contract;
|
||||||
|
extern crate rustc_hex;
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
mod macros;
|
mod macros;
|
||||||
|
|
|
@ -38,3 +38,41 @@ test_app_stream! {
|
||||||
],
|
],
|
||||||
testnet_transport => []
|
testnet_transport => []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test_app_stream! {
|
||||||
|
name => deposit_relay_single_log,
|
||||||
|
database => Database::default(),
|
||||||
|
mainnet =>
|
||||||
|
account => "0x0000000000000000000000000000000000000001",
|
||||||
|
confirmations => 12;
|
||||||
|
testnet =>
|
||||||
|
account => "0x0000000000000000000000000000000000000001",
|
||||||
|
confirmations => 12;
|
||||||
|
authorities =>
|
||||||
|
accounts => [
|
||||||
|
"0x0000000000000000000000000000000000000001",
|
||||||
|
"0x0000000000000000000000000000000000000002",
|
||||||
|
],
|
||||||
|
signatures => 1;
|
||||||
|
init => |app, db| create_deposit_relay(app, db).take(2),
|
||||||
|
expected => vec![0x1005, 0x1006],
|
||||||
|
mainnet_transport => [
|
||||||
|
"eth_blockNumber" =>
|
||||||
|
req => r#"[]"#,
|
||||||
|
res => r#""0x1011""#;
|
||||||
|
"eth_getLogs" =>
|
||||||
|
req => r#"[{"address":["0x0000000000000000000000000000000000000000"],"fromBlock":"0x1","limit":null,"toBlock":"0x1005","topics":[["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],[],[],[]]}]"#,
|
||||||
|
res => r#"[{"address":"0x0000000000000000000000000000000000000000","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebcccc00000000000000000000000000000000000000000000000000000000000000f0","type":"","transactionHash":"0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364"}]"#;
|
||||||
|
"eth_blockNumber" =>
|
||||||
|
req => r#"[]"#,
|
||||||
|
res => r#""0x1012""#;
|
||||||
|
"eth_getLogs" =>
|
||||||
|
req => r#"[{"address":["0x0000000000000000000000000000000000000000"],"fromBlock":"0x1006","limit":null,"toBlock":"0x1006","topics":[["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],[],[],[]]}]"#,
|
||||||
|
res => r#"[]"#;
|
||||||
|
],
|
||||||
|
testnet_transport => [
|
||||||
|
"eth_sendTransaction" =>
|
||||||
|
req => r#"[{"data":"0x26b3293f000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebcccc00000000000000000000000000000000000000000000000000000000000000f0884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364","from":"0x0000000000000000000000000000000000000001","gas":"0x0","gasPrice":"0x0","to":"0x0000000000000000000000000000000000000000"}]"#,
|
||||||
|
res => r#""0x1db8f385535c0d178b8f40016048f3a3cffee8f94e68978ea4b277f57b638f0b""#;
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue