Skip to content

Commit

Permalink
resolve conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
yash-atreya committed Jun 20, 2024
2 parents 3ebccf4 + 8211239 commit 2d6f86b
Show file tree
Hide file tree
Showing 188 changed files with 8,043 additions and 1,302 deletions.
5 changes: 4 additions & 1 deletion .github/ISSUE_TEMPLATE/BUG-FORM.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,17 @@ body:
description: What component is the bug in?
multiple: true
options:
- meta-crate
- contract
- consensus, eips, genesis
- network, json-rpc
- nodes
- node-bindings
- provider, pubsub
- rpc
- serde
- signers
- transports
- other
validations:
required: true
- type: input
Expand Down
5 changes: 4 additions & 1 deletion .github/ISSUE_TEMPLATE/FEATURE-FORM.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,17 @@ body:
description: What component is the feature for?
multiple: true
options:
- meta-crate
- contract
- consensus, eips, genesis
- network, json-rpc
- nodes
- node-bindings
- provider, pubsub
- rpc
- serde
- signers
- transports
- other
validations:
required: true
- type: textarea
Expand Down
11 changes: 1 addition & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ jobs:
--exclude alloy-signer-aws \
--exclude alloy-signer-gcp \
--exclude alloy-signer-ledger \
--exclude alloy-signer-local \
--exclude alloy-signer-trezor \
--exclude alloy-signer-wallet \
--exclude alloy-transport-ipc
wasm-wasi:
Expand Down Expand Up @@ -180,15 +180,6 @@ jobs:
run: cargo doc --workspace --all-features --no-deps --document-private-items
env:
RUSTDOCFLAGS: --cfg docsrs -D warnings --show-type-layout --generate-link-to-definition -Zunstable-options
- name: Doc index page redirection
run: echo '<meta http-equiv="refresh" content="1; url=alloy/index.html">' > target/doc/index.html
- name: Deploy documentation
uses: peaceiris/actions-gh-pages@v3
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: target/doc
force_orphan: true

fmt:
runs-on: ubuntu-latest
Expand Down
833 changes: 833 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

64 changes: 33 additions & 31 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ members = ["crates/*"]
resolver = "2"

[workspace.package]
version = "0.1.0"
version = "0.1.2"
edition = "2021"
rust-version = "1.76"
authors = ["Alloy Contributors"]
Expand Down Expand Up @@ -31,36 +31,36 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[workspace.dependencies]
alloy-consensus = { version = "0.1.0", default-features = false, path = "crates/consensus" }
alloy-contract = { version = "0.1.0", default-features = false, path = "crates/contract" }
alloy-eips = { version = "0.1.0", default-features = false, path = "crates/eips" }
alloy-eip7547 = { version = "0.1.0", default-features = false, path = "crates/eip7547" }
alloy-genesis = { version = "0.1.0", default-features = false, path = "crates/genesis" }
alloy-json-rpc = { version = "0.1.0", default-features = false, path = "crates/json-rpc" }
alloy-network = { version = "0.1.0", default-features = false, path = "crates/network" }
alloy-node-bindings = { version = "0.1.0", default-features = false, path = "crates/node-bindings" }
alloy-provider = { version = "0.1.0", default-features = false, path = "crates/provider" }
alloy-pubsub = { version = "0.1.0", default-features = false, path = "crates/pubsub" }
alloy-rpc-client = { version = "0.1.0", default-features = false, path = "crates/rpc-client" }
alloy-rpc-types-eth = { version = "0.1.0", default-features = false, path = "crates/rpc-types-eth" }
alloy-rpc-types-engine = { version = "0.1.0", default-features = false, path = "crates/rpc-types-engine" }
alloy-rpc-types-anvil = { version = "0.1.0", default-features = false, path = "crates/rpc-types-anvil" }
alloy-rpc-types-beacon = { version = "0.1.0", default-features = false, path = "crates/rpc-types-beacon" }
alloy-rpc-types-trace = { version = "0.1.0", default-features = false, path = "crates/rpc-types-trace" }
alloy-rpc-types = { version = "0.1.0", default-features = false, path = "crates/rpc-types" }
alloy-serde = { version = "0.1.0", default-features = false, path = "crates/serde" }
alloy-signer = { version = "0.1.0", default-features = false, path = "crates/signer" }
alloy-signer-aws = { version = "0.1.0", default-features = false, path = "crates/signer-aws" }
alloy-signer-gcp = { version = "0.1.0", default-features = false, path = "crates/signer-gcp" }
alloy-signer-ledger = { version = "0.1.0", default-features = false, path = "crates/signer-ledger" }
alloy-signer-trezor = { version = "0.1.0", default-features = false, path = "crates/signer-trezor" }
alloy-signer-wallet = { version = "0.1.0", default-features = false, path = "crates/signer-wallet" }
alloy-transport = { version = "0.1.0", default-features = false, path = "crates/transport" }
alloy-transport-http = { version = "0.1.0", default-features = false, path = "crates/transport-http" }
alloy-transport-ipc = { version = "0.1.0", default-features = false, path = "crates/transport-ipc" }
alloy-transport-ws = { version = "0.1.0", default-features = false, path = "crates/transport-ws" }

test-utils = { version = "0.1.0", default-features = false, path = "crates/internal-test-utils", package = "alloy-internal-test-utils" }
alloy-consensus = { version = "0.1", path = "crates/consensus", default-features = false }
alloy-contract = { version = "0.1", path = "crates/contract", default-features = false }
alloy-eips = { version = "0.1", path = "crates/eips", default-features = false }
alloy-eip7547 = { version = "0.1", path = "crates/eip7547", default-features = false }
alloy-genesis = { version = "0.1", path = "crates/genesis", default-features = false }
alloy-json-rpc = { version = "0.1", path = "crates/json-rpc", default-features = false }
alloy-network = { version = "0.1", path = "crates/network", default-features = false }
alloy-node-bindings = { version = "0.1", path = "crates/node-bindings", default-features = false }
alloy-provider = { version = "0.1", path = "crates/provider", default-features = false }
alloy-pubsub = { version = "0.1", path = "crates/pubsub", default-features = false }
alloy-rpc-client = { version = "0.1", path = "crates/rpc-client", default-features = false }
alloy-rpc-types-admin = { version = "0.1", path = "crates/rpc-types-admin", default-features = false }
alloy-rpc-types-anvil = { version = "0.1", path = "crates/rpc-types-anvil", default-features = false }
alloy-rpc-types-beacon = { version = "0.1", path = "crates/rpc-types-beacon", default-features = false }
alloy-rpc-types-engine = { version = "0.1", path = "crates/rpc-types-engine", default-features = false }
alloy-rpc-types-eth = { version = "0.1", path = "crates/rpc-types-eth", default-features = false }
alloy-rpc-types-trace = { version = "0.1", path = "crates/rpc-types-trace", default-features = false }
alloy-rpc-types-txpool = { version = "0.1", path = "crates/rpc-types-txpool", default-features = false }
alloy-rpc-types = { version = "0.1", path = "crates/rpc-types", default-features = false }
alloy-serde = { version = "0.1", path = "crates/serde", default-features = false }
alloy-signer = { version = "0.1", path = "crates/signer", default-features = false }
alloy-signer-aws = { version = "0.1", path = "crates/signer-aws", default-features = false }
alloy-signer-gcp = { version = "0.1", path = "crates/signer-gcp", default-features = false }
alloy-signer-ledger = { version = "0.1", path = "crates/signer-ledger", default-features = false }
alloy-signer-local = { version = "0.1", path = "crates/signer-local", default-features = false }
alloy-signer-trezor = { version = "0.1", path = "crates/signer-trezor", default-features = false }
alloy-transport = { version = "0.1", path = "crates/transport", default-features = false }
alloy-transport-http = { version = "0.1", path = "crates/transport-http", default-features = false }
alloy-transport-ipc = { version = "0.1", path = "crates/transport-ipc", default-features = false }
alloy-transport-ws = { version = "0.1", path = "crates/transport-ws", default-features = false }

alloy-core = { version = "0.7.6", default-features = false }
alloy-dyn-abi = { version = "0.7.6", default-features = false }
Expand Down Expand Up @@ -96,7 +96,9 @@ http-body-util = "0.1"
tokio = "1"
tokio-util = "0.7"
tokio-stream = "0.1"
rustls = { version = "0.23", default-features = false, features = ["std"] }
tokio-test = "0.4"
tokio-tungstenite = "0.23"
tower = { version = "0.4", features = ["util"] }

# tracing
Expand Down
59 changes: 38 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ Alloy connects applications to blockchains.
Alloy is a rewrite of [`ethers-rs`] from the ground up, with exciting new
features, high performance, and excellent [docs](https://alloy-rs.github.io/alloy/).

[`ethers-rs`] will continue to be maintained until we have achieved
feature-parity in Alloy. No action is currently needed from developers.
We also have a [book](https://alloy.rs/) on all things Alloy and many [examples](https://github.com/alloy-rs/examples) to help you get started.

[![Telegram chat][telegram-badge]][telegram-url]

Expand All @@ -16,15 +15,23 @@ feature-parity in Alloy. No action is currently needed from developers.

## Installation

Currently, Alloy is not hosted on [crates.io](https://crates.io), the Rust package registry.
Alloy consists of a number of crates that provide a range of functionality essential for interfacing with any Ethereum-based blockchain.

To incorporate Alloy into your project, you will need to specify the GitHub repository as the source. This can be achieved by executing the following command in your terminal:
The easiest way to get started is to add the `alloy` crate with the `full` feature flag from the command-line using Cargo:

```sh
cargo add alloy --git https://github.com/alloy-rs/alloy
cargo add alloy --features full
```

After incorporating Alloy, you may wish to utilize specific features of the crate. These features can be enabled through modifications in your project's `Cargo.toml` file. A comprehensive list of available features can be found at [this GitHub link](https://github.com/alloy-rs/alloy/blob/35cbf35164f31d2de1b84b2a8a9986e5b9b1560f/crates/alloy/Cargo.toml#L89).
Alternatively, you can add the following to your `Cargo.toml` file:

```toml
alloy = { version = "0.1", features = ["full"] }
```

For a more fine-grained control over the features you wish to include, you can add the individual crates to your `Cargo.toml` file, or use the `alloy` crate with the features you need.

A comprehensive list of available features can be found on [docs.rs](https://docs.rs/crate/alloy/latest/features) or in the [`alloy` crate's `Cargo.toml`](https://github.com/alloy-rs/alloy/blob/main/crates/alloy/Cargo.toml).

## Overview

Expand All @@ -42,18 +49,20 @@ This repository contains the following crates:
- [`alloy-pubsub`] - Ethereum JSON-RPC [publish-subscribe] tower service and type definitions
- [`alloy-rpc-client`] - Low-level Ethereum JSON-RPC client implementation
- [`alloy-rpc-types`] - Meta-crate for all Ethereum JSON-RPC types
- [`alloy-rpc-types-anvil`] - RPC types for the Anvil development node.
- [`alloy-rpc-types-beacon`] - Ethereum RPC-related types for the Beacon API.
- [`alloy-rpc-types-engine`] - Ethereum execution-consensus layer (engine) API RPC types
- [`alloy-rpc-types-eth`] - Ethereum RPC-related types for Alloy.
- [`alloy-rpc-types-trace`] - Ethereum RPC trace types
- [`alloy-serde`] - Serde related helpers for Alloy.
- [`alloy-rpc-types-admin`] - Types for the `admin` Ethereum JSON-RPC namespace
- [`alloy-rpc-types-anvil`] - Types for the [Anvil] development node's Ethereum JSON-RPC namespace
- [`alloy-rpc-types-beacon`] - Types for the [Ethereum Beacon Node API][beacon-apis]
- [`alloy-rpc-types-engine`] - Types for the `engine` Ethereum JSON-RPC namespace
- [`alloy-rpc-types-eth`] - Types for the `eth` Ethereum JSON-RPC namespace
- [`alloy-rpc-types-trace`] - Types for the `trace` Ethereum JSON-RPC namespace
- [`alloy-rpc-types-txpool`] - Types for the `txpool` Ethereum JSON-RPC namespace
- [`alloy-serde`] - [Serde]-related utilities
- [`alloy-signer`] - Ethereum signer abstraction
- [`alloy-signer-aws`] - [AWS KMS] signer implementation
- [`alloy-signer-gcp`] - [GCP KMS] signer implementation
- [`alloy-signer-ledger`] - [Ledger] signer implementation
- [`alloy-signer-local`] - Local (private key, keystore, mnemonic, YubiHSM) signer implementations
- [`alloy-signer-trezor`] - [Trezor] signer implementation
- [`alloy-signer-wallet`] - Local wallet (Keystore/Mnemonic/Yubihsm) signer implementation
- [`alloy-transport`] - Low-level Ethereum JSON-RPC transport abstraction
- [`alloy-transport-http`] - HTTP transport implementation
- [`alloy-transport-ipc`] - IPC transport implementation
Expand All @@ -72,43 +81,51 @@ This repository contains the following crates:
[`alloy-pubsub`]: https://github.com/alloy-rs/alloy/tree/main/crates/pubsub
[`alloy-rpc-client`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-client
[`alloy-rpc-types`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types
[`alloy-rpc-types-admin`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types-admin
[`alloy-rpc-types-anvil`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types-anvil
[`alloy-rpc-types-beacon`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types-beacon
[`alloy-rpc-types-engine`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types-engine
[`alloy-rpc-types-eth`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types-eth
[`alloy-rpc-types-trace`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types-trace
[`alloy-rpc-types-txpool`]: https://github.com/alloy-rs/alloy/tree/main/crates/rpc-types-txpool
[`alloy-serde`]: https://github.com/alloy-rs/alloy/tree/main/crates/serde
[`alloy-signer`]: https://github.com/alloy-rs/alloy/tree/main/crates/signer
[`alloy-signer-aws`]: https://github.com/alloy-rs/alloy/tree/main/crates/signer-aws
[`alloy-signer-gcp`]: https://github.com/alloy-rs/alloy/tree/main/crates/signer-gcp
[`alloy-signer-ledger`]: https://github.com/alloy-rs/alloy/tree/main/crates/signer-ledger
[`alloy-signer-local`]: https://github.com/alloy-rs/alloy/tree/main/crates/signer-local
[`alloy-signer-trezor`]: https://github.com/alloy-rs/alloy/tree/main/crates/signer-trezor
[`alloy-signer-wallet`]: https://github.com/alloy-rs/alloy/tree/main/crates/signer-wallet
[`alloy-transport`]: https://github.com/alloy-rs/alloy/tree/main/crates/transport
[`alloy-transport-http`]: https://github.com/alloy-rs/alloy/tree/main/crates/transport-http
[`alloy-transport-ipc`]: https://github.com/alloy-rs/alloy/tree/main/crates/transport-ipc
[`alloy-transport-ws`]: https://github.com/alloy-rs/alloy/tree/main/crates/transport-ws

[publish-subscribe]: https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
[AWS KMS]: https://aws.amazon.com/kms
[GCP KMS]: https://cloud.google.com/kms
[Ledger]: https://www.ledger.com
[Trezor]: https://trezor.io
[Serde]: https://serde.rs
[beacon-apis]: https://ethereum.github.io/beacon-APIs
[Anvil]: https://github.com/foundry-rs/foundry

## Supported Rust Versions
## Supported Rust Versions (MSRV)

<!--
When updating this, also update:
- .clippy.toml
- clippy.toml
- Cargo.toml
- .github/workflows/ci.yml
-->

Alloy will keep a rolling MSRV (minimum supported rust version) policy of **at
least** 6 months. When increasing the MSRV, the new Rust version must have been
released at least six months ago. The current MSRV is 1.76.
The current MSRV (minimum supported rust version) is 1.76.

Alloy will keep a rolling MSRV policy of **at least** two versions behind the
latest stable release (so if the latest stable release is 1.58, we would
support 1.56).

Note that the MSRV is not increased automatically, and only as part of a minor
release.
Note that the MSRV is not increased automatically, and only as part of a patch
(pre-1.0) or minor (post-1.0) release.

## Contributing

Expand Down
Loading

0 comments on commit 2d6f86b

Please sign in to comment.