2017-08-24 15:36:13 -07:00
|
|
|
[package]
|
|
|
|
name = "bridge"
|
|
|
|
version = "0.1.0"
|
|
|
|
authors = ["debris <marek.kotewicz@gmail.com>"]
|
|
|
|
|
|
|
|
[dependencies]
|
|
|
|
futures = "0.1"
|
|
|
|
serde = "1.0"
|
|
|
|
serde_derive = "1.0"
|
2017-08-31 08:32:34 -07:00
|
|
|
serde_json = "1.0"
|
2017-08-24 15:36:13 -07:00
|
|
|
tokio-core = "0.1.8"
|
|
|
|
tokio-timer = "0.1.2"
|
|
|
|
toml = "0.4.2"
|
2018-04-26 14:23:58 -07:00
|
|
|
web3 = "0.3"
|
2017-08-24 15:36:13 -07:00
|
|
|
error-chain = "0.11.0-rc.2"
|
2018-02-06 13:57:06 -08:00
|
|
|
ethabi = "5.1"
|
2018-01-22 01:57:42 -08:00
|
|
|
ethabi-derive = "5.0"
|
|
|
|
ethabi-contract = "5.0"
|
2017-08-25 06:01:47 -07:00
|
|
|
rustc-hex = "1.0"
|
2017-08-31 08:32:34 -07:00
|
|
|
log = "0.3"
|
2018-04-26 14:23:58 -07:00
|
|
|
ethereum-types = "0.3"
|
2018-02-02 06:59:54 -08:00
|
|
|
pretty_assertions = "0.2.1"
|
2018-04-26 14:23:58 -07:00
|
|
|
ethcore = { git = "http://github.com/paritytech/parity", rev = "991f0ca" }
|
|
|
|
rlp = { git = "http://github.com/paritytech/parity", rev = "991f0ca" }
|
2018-04-28 10:03:38 -07:00
|
|
|
keccak-hash = { git = "http://github.com/paritytech/parity", rev = "991f0ca" }
|
2018-04-26 14:23:58 -07:00
|
|
|
ethcore-transaction = { git = "http://github.com/paritytech/parity", rev = "991f0ca" }
|
|
|
|
itertools = "0.7"
|
Problem: nonce reuse
Unfortunately, bridge will still reuse nonce very often.
Specifically when trying to send more than one transaction at
a time, clearly a faulty behaviour.
Solution: chain retrieving a nonce with subsequent sending
of the transaction.
However, chaining these is not enough as it'll still fail.
This is happening because bridge module is polling all its components
(deposit_relay, withdraw_confirm, withdraw_relay) sequentially,
and some of them maybe waiting on their transactions to go through.
However, those transactions are also done as composed futures of nonce
retrieval and transaction sending. This means that it is very often
that first, these futures will go through the nonce acquisition process,
get the same values, and then submit transactions with the same nonce.
This patch makes NonceCheck future check if the transaction failed
with this specific issue of nonce reuse and effectively restarts from
the beginning in that case, repeating nonce acquisition process... until
it succeeeds.
2018-04-29 13:20:42 -07:00
|
|
|
jsonrpc-core = "8.0"
|
2017-08-28 08:15:10 -07:00
|
|
|
|
|
|
|
[dev-dependencies]
|
|
|
|
tempdir = "0.3"
|
2018-02-12 10:14:57 -08:00
|
|
|
quickcheck = "0.6.1"
|
2018-05-01 09:43:34 -07:00
|
|
|
|
|
|
|
[features]
|
|
|
|
default = []
|
|
|
|
deploy = []
|