Parity-Bridge — Bridge between any two ethereum-based networks

Overview

Deprecated Bridges

This repo is deprecated. Originally it contained the ETH <> ETH-PoA bridge (see tumski tag). Later it was repurposed for ETH-PoA <> Substrate bridge development, however we've decided to work on the bridge from scratch, and you can find the latest version in:

https://github.com/paritytech/parity-bridges-common

DISCLAIMER: we recommend not using the bridge in "production" (to bridge significant amounts) just yet. it's missing a code audit and should still be considered alpha. we can't rule out that there are bugs that might result in loss of the bridged amounts. we'll update this disclaimer once that changes

Build Status Solidity Coverage Status (contracts only)

Bridge is able to pass arbitrary messages between an Ethereum Proof of Authority chain and a Substrate Chain - either Standalone or Polkadot Parachain.

TODO: Docs

These docs are very incomplete yet. Describe high-level goals here in the (near) future.

Comments
  • Issue 54 - close attack vector

    Issue 54 - close attack vector

    https://github.com/paritytech/parity-bridge/issues/54

    • [x] figure out why tests pass locally and fail on travis
      • was stuck there for a bit
      • on travis we run the coverage tests. they insert additional statements into the contract code. that changes the gas cost. removed assertions that were sensitive to that
    • [x] add storage var estimatedGasCostOfWithdraw to HomeBridge
    • [x] modify withdraw as laid out in https://github.com/paritytech/parity-bridge/issues/54#issuecomment-351009494
    • [x] find good estimate for estimatedGasCostOfWithdraw
    • [x] extract functions that read values from message so they can be tested, reused and withdraw stays focused and is easier to read
    • [x] implement isValueInMessageLargeEnoughToCoverWithdrawCost
    • [x] make bridge processes (rust) call isValueInMessageLargeEnoughToCoverWithdrawCost and ignore messages for which it returns false (as laid out in https://github.com/paritytech/parity-bridge/issues/54#issuecomment-351009494)
      • this truly shuts down the attack
    • [x] make transport tests run again
    • [x] create transport test that doesn't sendTransaction when call to isValueInMessageLargeEnoughToCoverWithdrawCost returns false
    • [x] add estimatedGasCostOfWithdraw to config of rust processes
    • [x] keep/increase solidity test coverage
      • [x] test that values which don't cover costs are ignored
      • [x] test that cost is subtracted from value and paid to relaying authority
      • [x] test isValueInMessageLargeEnoughToCoverWithdrawCost
      • [x] test getXFromMessage, etc in isolation
    • [x] documentation: readme section: recipient pays for withdraw relay costs
      • recommended gas cost estimate
    A0-pleasereview 
    opened by snd 28
  • [WIP] ideas for syncing validator set from one chain to another as well as making bridge work with dynamic validator sets

    [WIP] ideas for syncing validator set from one chain to another as well as making bridge work with dynamic validator sets

    thought i'd do this as a branch on the relevant repo. seems cleaner than a bunch of gists

    ready for review/feedback: https://github.com/paritytech/parity-bridge/blob/validator_set_thoughts/docs/bridged_validator_set.md

    writeup in progress: https://github.com/paritytech/parity-bridge/blob/validator_set_thoughts/docs/bridge_with_dynamic_validator_set.md

    feedback and questions are greatly appreciated :)

    opened by snd 23
  • Potential attack vector

    Potential attack vector

    Current version of the Bridge doesn't charge users for making withdraws so that Authorities running the Bridge have to cover all costs. This potentially allows an attacker to deplete Authorities’ funds.

    Potential solution (proposed by @debris ):

    Withdraws should not be free for users. The exact amount of gas that is spent on a withdraw should be measured and charged to users. It's a simple feature which could be added to function transfer() of ForeignBridge smart contract. Truffle tests should be written and run. Truffle tests for foreign contract are located in truffle/test/foreign.js.

    F1-security P2-asap 
    opened by bjornwgnr 20
  • Fails to load web3 on build

    Fails to load web3 on build

    When I run cargo build -p parity-bridge --release I get the following error:

    error: failed to load source for a dependency on `web3`                         
    
    Caused by:
      Unable to update https://github.com/tomusdrw/rust-web3?branch=bridge#aad14c09
    

    And indeed, the branch https://github.com/tomusdrw/rust-web3/tree/bridge has been deleted When trying to install web3 from master, I get lots of errors, like for example

    error[E0599]: no method named `logs` found for type `web3::api::Eth<T>` in the current scope
      --> bridge/src/api.rs:44:42
       |
    44 |         future: api::Eth::new(transport).logs(filter),
       |                                          ^^^^
    
    opened by vanruch 13
  • Compile contracts using solcjs or solc

    Compile contracts using solcjs or solc

    This PR closes #168 and closes #169 and it also improves #170

    • First of all, try compiling with solc
    • If solc is not found, try using solcjs.
    • Panic when neither of compilation tools are available
    opened by AyushyaChitransh 13
  • in HomeBridge.withdraw: recipient gets loaded from message with wrong offset and contains wrong data

    in HomeBridge.withdraw: recipient gets loaded from message with wrong offset and contains wrong data

    code in question: https://github.com/paritytech/parity-bridge/blob/740601530096c261695ba9216b5e9d5f871a229f/contracts/bridge.sol#L119

    look here for how message is constructed: https://github.com/paritytech/parity-bridge/blob/59403966fc774bc3c0dc943b27d62f2c3ff8939a/bridge/src/bridge/withdraw_confirm.rs#L29

    message format:

    • 20 bytes recipient
    • 32 bytes value
    • 32 bytes transactionHash

    the code currently mistakenly thinks the format is:

    • 32 bytes recipient
    • 32 bytes value
    • 32 bytes transactionHash

    all three values read in HomeBridge.withdraw are corrupted because of this.

    found while writing tests for HomeBridge.withdraw (https://github.com/paritytech/parity-bridge/issues/60).

    i've got a fix on the issue-54-close-attack-vector branch: https://github.com/paritytech/parity-bridge/pull/56/commits/fed0cc1aaa4e4067fa3bde26aaa4c081cdc8897b

    opened by snd 11
  • 100% test coverage, issue 82, refactoring, documentation

    100% test coverage, issue 82, refactoring, documentation

    • [x] various improvements from #82 and more
    • [x] add tests for Helpers library
    • [x] more docstrings
    • [x] 100% coverage (every branch and require in contracts is hit by at least one test)
    • [x] replace implementation of toString (now called uintToString) with one that works correctly for 0, integers with more than 8 digits and also uses less gas (before: https://travis-ci.org/paritytech/parity-bridge/jobs/328970765#L1482, after: https://travis-ci.org/paritytech/parity-bridge/jobs/328980140#L1466). the new implementation is thoroughly tested
    A0-pleasereview F6-refactor 
    opened by snd 9
  • Update parity dependencies

    Update parity dependencies

    I got some issues using deploy with dev environment and ended up updating the parity dependencies.

    I realize it is not mergeable as is (reference to my rust-web3 fork), to use back original bridge branch of web3 a merge with master is needed.

    For info, after merge with master I also had to do a small change in web3 to solve my issue with bridge-deploy, and allow the integration test to run (last commit of my fork).

    opened by cheme 8
  • Impossible to deploy the bridge

    Impossible to deploy the bridge

    Hello

    I cannot deploy the parity-bridge

    When using env RUST_LOG=info parity-bridge-deploy --config bridge_config.toml --database db.toml

    Here is the output

    INFO:parity_bridge_deploy: Parsing cli arguments
    INFO:parity_bridge_deploy: Loading config
    INFO:parity_bridge_deploy: Starting event loop
    INFO:parity_bridge_deploy: Establishing HTTP connection to main "http://localhost:8549"
    INFO:parity_bridge_deploy: Establishing HTTP connection to side "http://localhost:8540"
    INFO:parity_bridge_deploy: Deploying MainBridge contract
    INFO:bridge::deploy: sending MainBridge contract deployment transaction and waiting for 0 confirmations...
    INFO:bridge::deploy: MainBridge deployment completed to 0x9a6ff80c82bbd7e60bd1ded1fd93f7bd40a1eeab
    INFO:parity_bridge_deploy: Successfully deployed MainBridge contract
    INFO:bridge::deploy: "deployment-main-9a6ff80c82bbd7e60bd1ded1fd93f7bd40a1eeab" created
    INFO:parity_bridge_deploy: Deploying SideBridge contract
    INFO:bridge::deploy: sending SideBridge contract deployment transaction and waiting for 0 confirmations...
    DeploySide: deployment transaction failed
    
    Caused by:
    	RPC error: Error { code: ServerError(-32020), message: "Your account is locked. Unlock the account via CLI, personal_unlockAccount or use Trusted Signer.", data: Some(String("SStore(InvalidAccount)")) }
    

    It was working pretty good with the previous version (1 month ago)

    Do you have any idea ?

    For information my Authority is unlocked with

    [account]
    unlock= [
       "0x000....."
    ]
    password=["node.pwds"]
    
    opened by nicolashardy 6
  • Bridge.db not found

    Bridge.db not found

    After trying to run, the following error is printed

    ivan[17:29:22]:~/parity-bridge$env RUST_LOG=info parity-bridge --config bridge_config.toml --database bridge.db
    INFO:parity_bridge: Parsing cli arguments
    INFO:parity_bridge: Loading config
    INFO:parity_bridge: Starting event loop
    INFO:parity_bridge: Establishing ipc connection
    File "bridge.db" not found
    

    According to readme the new database should be created --database - location of the database file. if there is no file at specified location, new bridge contracts will be deployed and new database will be created

    opened by vanruch 6
  • refactor&more (feel free to review, still improving docs and tests)

    refactor&more (feel free to review, still improving docs and tests)

    • moved logic common to the 3 logical relay processes (main to side sign, side to main sign, side to main submit signatures) into RelayStream
      • RelayStream for any process that listens to a LogStream and executes transactions for each log
    • changed naming of deposit withdraw to be more neutral (for message passing)
      • rust only
    • resolved https://github.com/paritytech/parity-bridge/issues/154
    • moved contracts into separate subcrate
    • less future boilerplate
      • see helpers::AsyncCall and related changes to ethabi
    • use https://github.com/paritytech/rust_solc to compile contracts
    • use RPC instead of IPC so parity nodes and bridge nodes can exist on separate machines
      • https://github.com/paritytech/parity-bridge/issues/153
    • change naming from home/foreign to main/side as the previous naming tended to confuse most people
    • bridge nodes now check whether they have provided signatures before doing so
      • doesn't crash when catching up from an old state file
    • adapted to upstream changes to various crates
    • couple things less to Config and Database
      • preparation for things like
        • https://github.com/paritytech/parity-bridge/issues/141
        • https://github.com/paritytech/parity-bridge/issues/140
    • refactor database abstractions
    • MainContract and SideContract highlevel interfaces that are used by relay streams instead of scattering that logic throughout the relay streams
    • split relay streams into more focused individual relay futures and generic relay stream
    • remove App abstraction
    • finer logging
      • on the level of individual relays
    • provide context for more errors to make troubleshooting easier
    • add license headers https://github.com/paritytech/parity-bridge/issues/180
    • more docstrings
    • pin rust version on travis to not break rustfmt check randomly
    A0-pleasereview 
    opened by snd 6
  • Bump web3 from `91180b7` to `db9b799`

    Bump web3 from `91180b7` to `db9b799`

    Bumps web3 from 91180b7 to db9b799.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump serde_json from 1.0.44 to 1.0.47

    Bump serde_json from 1.0.44 to 1.0.47

    Bumps serde_json from 1.0.44 to 1.0.47.

    Release notes

    Sourced from serde_json's releases.

    v1.0.47

    • Raise serde requirement to 1.0.100+ for the necessary no-std traits (#617, thanks @Xanewok)

    v1.0.46

    • Serialize JSON map entries using serialize_entry instead of serialize_key + serialize_value to support transcoding to XML (#614, thanks @jmfiaschi)

    v1.0.45

    • Add no-std support (#606, thanks @Xanewok)

      [dependencies]
      serde_json = { version = "1.0.45", default-features = false, features = ["alloc"] }
      
    Commits
    • 6b5ded9 Release 1.0.47
    • b4d56a7 Merge pull request #617 from Xanewok/serde-no-std-error
    • 8fdfedb Require serde >= 1.0.100 due to no_std-related Error re-export
    • 39ed887 Release 1.0.46
    • 5263b6f Fixup serialize_entry PR
    • 1059dc3 Merge pull request #614 from jmfiaschi/map-serialize-entry
    • 0b43936 remplace serialize key,value functions by serialize_entry
    • a03d5ff Merge pull request #610 from adetaylor/edit-test-instructions
    • f3b059c Discard unimportant lines from ui tests
    • d19f389 Removing obsolete test instructions.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump futures from 0.1.29 to 0.3.4

    Bump futures from 0.1.29 to 0.3.4

    Bumps futures from 0.1.29 to 0.3.4.

    Release notes

    Sourced from futures's releases.

    0.3.4

    • Fixed missing Drop for UnboundedReceiver (#2064)

    0.3.3

    • Fixed compatibility issue with pinned facade (#2062)

    0.3.2

    • Improved buffering performance of SplitSink (#1969)
    • Added select_biased! macro (#1976)
    • Added hash_receiver method to mpsc channel (#1962)
    • Added stream::try_unfold (#1977)
    • Fixed bug with zero-size buffers in vectored IO (#1998)
    • AtomicWaker::new() is now const fn (#2007)
    • Fixed bug between threadpool and user park/unparking (#2010)
    • Added stream::Peakable::peek (#2021)
    • Added StreamExt::scan (#2044)
    • Added impl of AsyncRead/Write for BufReader/Writer (#2033)
    • Added impl of Spawn and LocalSpawn for Arc<impl Spawn and Rc<impl Spawn> (#2039)
    • Fixed Sync issues with FuturesUnordered (#2054)
    • Added into_inner method for future::Ready (#2055)
    • Added MappedMutexGuard API (#2056)
    • Mitigated starvation issues in FuturesUnordered (#2049)
    • Added TryFutureExt::map_ok_or_else (#2058)

    0.3.1

    • Fix signature of LocalSpawn trait (breaking change -- see #1959)

    0.3.0

    • Stable release along with stable async/await!
    • Added async/await to default features (#1953)
    • Changed Spawn trait and FuturesUnordered::push to take &self (#1950)
    • Moved Spawn and FutureObj out of futures-core and into `futures-task (#1925)
    • Changed case convention for feature names (#1937)
    • Added executor feature (#1949)
    • Moved copy_into/copy_buf_into (#1948)
    • Changed SinkExt::send_all to accept a TryStream (#1946)
    • Removed ThreadPool::run (#1944)
    • Changed to use our own definition of io::Cursor (#1943)
    • Removed BufReader::poll_seek_relative (#1938)
    • Changed skip to take a usize rather than u64 (#1931)
    • Removed Stream impl for VecDeque (#1930)
    • Renamed Peekable::peek to poll_peek (#1928)
    • Added immutable iterators for FuturesUnordered (#1922)
    • Made ThreadPool optional (#1910)
    • Renamed oneshot::Sender::poll_cancel to poll_canceled (#1908)
    • Added some missing Clone implementations
    • Documentation fixes

    0.3.0-alpha.19

    • Stabilized the async-await feature (#1816)
    ... (truncated)
    Changelog

    Sourced from futures's changelog.

    0.3.4 - 2020-02-06

    • Fixed missing Drop for UnboundedReceiver (#2064)

    0.3.3 - 2020-02-04

    • Fixed compatibility issue with pinned facade (#2062)

    0.3.2 - 2020-02-03

    • Improved buffering performance of SplitSink (#1969)
    • Added select_biased! macro (#1976)
    • Added hash_receiver method to mpsc channel (#1962)
    • Added stream::try_unfold (#1977)
    • Fixed bug with zero-size buffers in vectored IO (#1998)
    • AtomicWaker::new() is now const fn (#2007)
    • Fixed bug between threadpool and user park/unparking (#2010)
    • Added stream::Peakable::peek (#2021)
    • Added StreamExt::scan (#2044)
    • Added impl of AsyncRead/Write for BufReader/Writer (#2033)
    • Added impl of Spawn and LocalSpawn for Arc<impl Spawn and Rc<impl Spawn> (#2039)
    • Fixed Sync issues with FuturesUnordered (#2054)
    • Added into_inner method for future::Ready (#2055)
    • Added MappedMutexGuard API (#2056)
    • Mitigated starvation issues in FuturesUnordered (#2049)
    • Added TryFutureExt::map_ok_or_else (#2058)

    0.3.1 - 2019-11-7

    • Fix signature of LocalSpawn trait (breaking change -- see #1959)

    0.3.0 - 2019-11-5

    • Stable release along with stable async/await!
    • Added async/await to default features (#1953)
    • Changed Spawn trait and FuturesUnordered::push to take &self (#1950)
    • Moved Spawn and FutureObj out of futures-core and into futures-task (#1925)
    • Changed case convention for feature names (#1937)
    • Added executor feature (#1949)
    • Moved copy_into/copy_buf_into (#1948)
    • Changed SinkExt::send_all to accept a TryStream (#1946)
    • Removed ThreadPool::run (#1944)
    • Changed to use our own definition of io::Cursor (#1943)
    • Removed BufReader::poll_seek_relative (#1938)
    • Changed skip to take a usize rather than u64 (#1931)
    • Removed Stream impl for VecDeque (#1930)
    • Renamed Peekable::peek to poll_peek (#1928)
    • Added immutable iterators for FuturesUnordered (#1922)
    • Made ThreadPool optional (#1910)
    • Renamed oneshot::Sender::poll_cancel to poll_canceled (#1908)
    • Added some missing Clone implementations
    • Documentation fixes

    0.3.0-alpha.19 - 2019-9-25

    • Stabilized the async-await feature (#1816)
    ... (truncated)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump ethabi from 9.0.1 to 11.0.0

    Bump ethabi from 9.0.1 to 11.0.0

    Bumps ethabi from 9.0.1 to 11.0.0.

    Changelog

    Sourced from ethabi's changelog.

    [11.0.0] - 2020-01-16

    Changed

    • Support overloaded contract functions (PR #166)
    • Removed error_chain and the backtrace feature. (#167)
    • Update to 2018 edition (PR #171, #172)
    • Fix handling of large ints (PR #173)
    • Support Tuple parameter types (structs in Solidity) (PR #174)

    Dependencies

    • Upgrade syn, proc-macro2, quote and heck crates (PR #169)

    [10.0.0] - 2020-01-08

    Changed

    • Replace docopt by structopt (clap) because of performance issue (#161)

    Fixed

    • Return an exit code 1 on failure, including wrong input parameters
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump ethabi-derive from 9.0.1 to 11.0.0

    Bump ethabi-derive from 9.0.1 to 11.0.0

    Bumps ethabi-derive from 9.0.1 to 11.0.0.

    Changelog

    Sourced from ethabi-derive's changelog.

    [11.0.0] - 2020-01-16

    Changed

    • Support overloaded contract functions (PR #166)
    • Removed error_chain and the backtrace feature. (#167)
    • Update to 2018 edition (PR #171, #172)
    • Fix handling of large ints (PR #173)
    • Support Tuple parameter types (structs in Solidity) (PR #174)

    Dependencies

    • Upgrade syn, proc-macro2, quote and heck crates (PR #169)

    [10.0.0] - 2020-01-08

    Changed

    • Replace docopt by structopt (clap) because of performance issue (#161)

    Fixed

    • Return an exit code 1 on failure, including wrong input parameters
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump quickcheck from 0.9.0 to 0.9.2

    Bump quickcheck from 0.9.0 to 0.9.2

    Bumps quickcheck from 0.9.0 to 0.9.2.

    Commits
    • 6dfb03a 0.9.2
    • 33a535f doc: update several links
    • de0e1a0 readme: fix various links and outdated versions
    • 2fb1de2 readme: add GitHub Actions badge
    • 2164959 quickcheck_macros-0.9.1
    • 2d70499 0.9.1
    • 5335d08 readme: explicitly document MSRV
    • 71c3846 ci: switch to GitHub Actions
    • ffc0fec arbitrary: add impls for Range{To}Inclusive
    • 77f9dc7 docs: add quick tip for how to impl Arbitrary manually
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
Releases(tumski)
  • tumski(Oct 23, 2019)

  • 0.5(Oct 20, 2018)

  • 0.4(Feb 27, 2018)

    • fix #127 and add test to prevent regression
    • dump data (source, bytecode, abi, commit hash, version, ...) on deployment to help with https://etherscan.io/verifyContract and general deployment troubleshooting
    • refactored and stricter integration test
    • improve recommended config options
    Source code(tar.gz)
    Source code(zip)
  • 0.3(Feb 20, 2018)

    • close attack vector (https://github.com/paritytech/parity-bridge/issues/112)
    • optional limits to amount of home/mainnet ether that can be lost when bridge is faulty or compromised (https://github.com/paritytech/parity-bridge/issues/119)
    • use ethereum-types everywhere (ethabi, web3) which removes lots of type conversions
    • refactor tests so they are much quicker to modify (https://github.com/paritytech/parity-bridge/issues/79)
    • improve documentation. especially of config options
    • add deployment guide
    • introduce quickcheck property tests
    • extract code dealing with messages and signatures
    • various smaller improvements
    Source code(tar.gz)
    Source code(zip)
  • 0.2(Jan 29, 2018)

    • close attack vector #54
    • fix bug #87
    • fix bug #61
    • introduce contract code coverage reporting with codecov
    • additional tests to reach 100% contract code coverage
    • ForeignBridge now implements ERC20 (#85)
    • introduce solium linting and make it pass with 0 errors/warnings
    • single authority integration test
    • heavy refactoring of contracts
    • lots of additional documentation
    • various smaller improvements
    Source code(tar.gz)
    Source code(zip)
  • 0.1(Oct 9, 2017)

Owner
Parity Technologies
Solutions for a trust-free world
Parity Technologies
The fast, light, and robust client for Ethereum-like networks.

The Fastest and most Advanced Ethereum Client. » Download the latest release « Table of Contents Description Technical Overview Building 3.1 Building

OpenEthereum 6.7k Dec 24, 2022
A collection of algorithms that can do join between two parties while preserving the privacy of keys on which the join happens

Private-ID Private-ID is a collection of algorithms to match records between two parties, while preserving the privacy of these records. We present tw

Meta Research 169 Dec 5, 2022
Substreams development kit for Ethereum chains, contains Firehose Block model and helpers as well as utilities for Ethereum ABI encoding/decoding.

Substreams Ethereum Substreams development kit for Ethereum chains, contains Rust Firehose Block model and helpers as well as utilities for Ethereum A

StreamingFast 15 Oct 25, 2022
Ethereum (and Ethereum like) indexer using P2P message to fetch blocks and transactions

Ethereum P2P indexer This project is an indexer for Ethereum and Ethereum forks. It takes advantage of the ETH (Ethereum Wire Protocol) to fetch block

null 5 Nov 10, 2023
A value transfer bridge between the Monero blockchain and the Secret Network.

Secret-Monero-Bridge A value transfer bridge between the Monero blockchain and the Secret Network. Proof-of-Concept Video Demonstration: https://ipfs.

null 28 Dec 7, 2022
A bridge between different serde implementations.

serde-bridge   Bridge between serde types Quick Start use anyhow::Result; use serde_bridge::{from_value, into_value, FromValue, IntoValue, Value}; fn

Xuanwo 14 Nov 24, 2022
Simple node and rust script to achieve an easy to use bridge between rust and node.js

Node-Rust Bridge Simple rust and node.js script to achieve a bridge between them. Only 1 bridge can be initialized per rust program. But node.js can h

Pure 5 Apr 30, 2023
The Parity Bitcoin client

The Parity Bitcoin client. Gitter Installing from source Installing the snap Running tests Going online Importing bitcoind database Command line inter

Parity Technologies 714 Dec 21, 2022
Two-party and multi-party ECDSA protocols based on class group with Rust

CG-MPC-ECDSA This project aims to implement two-party and multi-party ECDSA protocols based on class group with Rust. It currently includes schemes de

LatticeX Foundation 16 Mar 17, 2022
Darwinia networks' tracing runtime override collections

Darwinia Runtime Overrides USAGE: runtime-overrides [OPTIONS] --runtime <CHAIN> OPTIONS: -h, --help Print help information

Darwinia Network 4 Aug 3, 2022
Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer. Main motivation: EIP4844blobs.

stress4844 Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer. Main motivation: EIP4844 blobs. ca

Paradigm 50 Jan 4, 2023
Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer

Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer. Main motivation: EIP4844blobs.

Paradigm 50 Jan 4, 2023
Plutonium is a two-device chat application that utilises WebSockets and a X25519 ECDH Key Exchange

Plutonium is a two-device chat application that utilises WebSockets and a X25519 ECDH Key Exchange, in addition to AES-256 to securely communicate between the two clients.

brxken 0 Jul 29, 2022
Example worker for ethereum-based applications

Ethsig-rs Example worker for ethereum-based applications. Features: Verify arbitrary messages and their signature from an Ethereum Address Verify EIP-

odyslam.eth 28 Sep 26, 2022
Next-generation implementation of Ethereum protocol ("client") written in Rust, based on Erigon architecture.

?? Martinez ?? Next-generation implementation of Ethereum protocol ("client") written in Rust, based on Erigon architecture. Why run Martinez? Look at

Arthur·Thomas 23 Jul 3, 2022
The Phala Network Blockchain, pRuntime and the bridge.

Phala Blockchain Phala Network is a TEE-Blockchain hybrid architecture implementing Confidential Contract. This repo includes: node/: the main blockch

Phala Network 314 Jan 6, 2023
Filecoin to substrate bridge

filecoindot A Substrate pallet to bridge from Filecoin to any blockchain built using the Substrate framework, including Polkadot parachains. How to in

ChainSafe 23 Nov 23, 2022
Cross-chain bridge message delivery network. We are hiring, [email protected]

Introduction Implementation of a https://darwinia.network node in Rust based on the Substrate framework. This repository contains runtimes for the Dar

Darwinia Network 225 Nov 8, 2022