chore: update release process (#2278)

* chore: strip ethers prefix for the ethers-wasm example

* chore: set publish to false and version to 0.0.0 for all example crates

* chore: remove unused release helpers

* chore: move CHANGELOG.md to CHANGELOG-OLD.md

* chore: update lockfile and wasm renames

* chore: renames

* chore: use git-cliff for generating CHANGELOG.md

* chore: renames

* chore: update release.toml

* chore: move examples script

mv \
scripts/examples.sh \
bin/run_all_examples

* chore: add release script

* fix: update release script and document

* fix: mv

* docs: remove 'update changelog' in PR template
This commit is contained in:
DaniPopes 2023-03-21 05:21:04 +01:00 committed by GitHub
parent 5879a84667
commit f7a066e700
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 2696 additions and 688 deletions

View File

@ -29,5 +29,4 @@ the code change.
- [ ] Added Tests - [ ] Added Tests
- [ ] Added Documentation - [ ] Added Documentation
- [ ] Updated the changelog
- [ ] Breaking changes - [ ] Breaking changes

View File

@ -172,7 +172,7 @@ jobs:
with: with:
node-version: 16 node-version: 16
- name: Run wasm example - name: Run wasm example
working-directory: examples/ethers-wasm working-directory: examples/wasm
run: | run: |
yarn yarn
yarn anvil & yarn anvil &
@ -194,4 +194,4 @@ jobs:
run: ./.github/scripts/install_test_binaries.sh run: ./.github/scripts/install_test_binaries.sh
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Build and run all examples - name: Build and run all examples
run: ./scripts/examples.sh run: ./bin/run_all_examples

View File

@ -1,99 +0,0 @@
name: release
on:
schedule:
- cron: "0 0 * * 0"
workflow_dispatch:
inputs:
release_type:
type: choice
description: Release type
options:
- major
- minor
- patch
- rc
- beta
- alpha
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
env:
CARGO_TOKEN: ${{ secrets.CARGO_TOKEN }}
RELEASE_TYPE: ${{ github.event.inputs.release_type }}
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure git
run: |
git config user.name github-actions
git config user.email github-actions@github.com
- name: Rust stable
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- uses: Swatinem/rust-cache@v1
with:
cache-on-failure: true
- name: Install cargo-release
uses: actions-rs/install@v0.1
with:
crate: cargo-release
version: latest
- name: Cargo login
run: |
cargo login $CARGO_TOKEN
- name: Dry-run cargo release
run: |
cargo release --workspace ${RELEASE_TYPE:-alpha} --exclude ethers-wasm
- name: Publish release
run: |
cargo release --workspace ${RELEASE_TYPE:-alpha} --exclude ethers-wasm --execute --no-confirm
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 14
- run: |
npm i semver
- name: Install git-cliff
uses: actions-rs/install@v0.1
with:
crate: git-cliff
version: latest
- name: Publish changelog
id: changelog
run: |
current_version=$(git tag --contains HEAD -l "v*" | head -1)
from_version=$(node .github/scripts/release-tag-from.js $current_version $RELEASE_TYPE)
echo from $from_version to $current_version
echo "::set-output name=release_version::$(echo $current_version)"
if git rev-parse "$from_version" >/dev/null 2>&1; then
echo "tag exists, can generate changelog";
else
echo "tag does not exist, cannot generate changelog, publish github release manually"
exit 0
fi
git cliff $from_version..$current_version > GENERATED_CHANGELOG.md
cat GENERATED_CHANGELOG.md
- name: Create GitHub release
id: release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_VERSION: ${{ steps.changelog.outputs.release_version }}
with:
tag_name: ${{ env.RELEASE_VERSION }}
release_name: ${{ env.RELEASE_VERSION }}
body_path: GENERATED_CHANGELOG.md
prerelease: ${{ env.RELEASE_TYPE == 'alpha' }}

406
CHANGELOG-OLD.md Normal file
View File

@ -0,0 +1,406 @@
# Changelog
The old `ethers-rs` changelog, that has been discontinued.
The new one is located [here](./CHANGELOG.md), which is automatically generated by [git-cliff](https://github.com/orhun/git-cliff).
## ethers-core
### Unreleased
- Add support for `ethlive` as a chain name [#2268](https://github.com/gakonst/ethers-rs/pull/2268)
- Make `Chain` more round-trip friendly [#2270](https://github.com/gakonst/ethers-rs/pull/2270)
- Add `other: OtherFields` to `TransactionReceipt` [#2209](https://github.com/gakonst/ethers-rs/pull/2209)
- Add `Signature::recover_typed_data` [#2120](https://github.com/gakonst/ethers-rs/pull/2120)
- Add `abi::encode_packed` [#2104](https://github.com/gakonst/ethers-rs/pull/2104)
- Add support for custom JavaScript tracer to `debug_traceCall` and `debug_traceTransaction` [#2064](https://github.com/gakonst/ethers-rs/pull/2064)
- Add a `Send` bound to the `IntoFuture` implementation of `ContractCall` [#2083](https://github.com/gakonst/ethers-rs/pull/2083)
- Bump [`svm-rs`](https://github.com/roynalnaruto/svm-rs) dependency to fix conflicts with Rust Crytpo packages [#2051](https://github.com/gakonst/ethers-rs/pull/2051)
- Avoid unnecessary allocations in `utils` [#2046](https://github.com/gakonst/ethers-rs/pull/2046)
- Add abigen support for hardhat generated bytecode json format [#2012](https://github.com/gakonst/ethers-rs/pull/2012)
- Fix typo in `RwClient` docs for `write_client` method.
- Add support for Geth `debug_traceCall` [#1949](https://github.com/gakonst/ethers-rs/pull/1949)
- Add support for Geth built-in tracer and config [#2121](https://github.com/gakonst/ethers-rs/pull/2121)
- Graceful handling of WebSocket transport errors [#1889](https://github.com/gakonst/ethers-rs/issues/1889) [#1815](https://github.com/gakonst/ethers-rs/issues/1815)
- `MiddlewareBuilder` trait to instantiate a `Provider` as `Middleware` layers.
- An `Event` builder can be instantiated specifying the event filter type, without the need to instantiate a contract.
- Add 'ethers_core::types::OpCode' and use in 'ethers_core::types::VMOperation' [#1857](https://github.com/gakonst/ethers-rs/issues/1857)
- Remove rust_decimals dependency for ethers-core
- Add support for numbers greater than 2^96 for `ethers_core::utils::parse_units` [#1822](https://github.com/gakonst/ethers-rs/issues/1822)
- Add comment about safety of u8 -> u64 cast in `ethers_core::types::Signature`
- Stop defaulting to the `"latest"` block in `eth_estimateGas` params [#1657](https://github.com/gakonst/ethers-rs/pull/1657)
- Fix geth trace types for debug_traceTransaction rpc
- Fix RLP decoding of legacy `Transaction`
- Fix RLP encoding of `TransactionReceipt` [#1661](https://github.com/gakonst/ethers-rs/pull/1661)
- Add `Unit8` helper type [#1639](https://github.com/gakonst/ethers-rs/pull/1639)
- Add `evm.deployedBytecode.immutableReferences` output selector [#1523](https://github.com/gakonst/ethers-rs/pull/1523)
- Added `get_erc1155_token_transfer_events` function for etherscan client [#1503](https://github.com/gakonst/ethers-rs/pull/1503)
- Add support for Geth `debug_traceTransaction` [#1469](https://github.com/gakonst/ethers-rs/pull/1469)
- Use correct, new transaction type for `typool_content` RPC endpoint [#1501](https://github.com/gakonst/ethers-rs/pull/1501)
- Fix the default config for generated `BuildInfo` [#1458](https://github.com/gakonst/ethers-rs/pull/1458)
- Allow configuration of the output directory of the generated `BuildInfo` [#1433](https://github.com/gakonst/ethers-rs/pull/1433)
- capture unknown fields in `Block` and `Transaction` type via new `OtherFields` type [#1423](https://github.com/gakonst/ethers-rs/pull/1423)
- Methods like `set_to()` from `TypedTransaction` can be chained
- Use H64 for Block Nonce [#1396](https://github.com/gakonst/ethers-rs/pull/1396)
- Add `as_*_mut` methods on `TypedTransaction`
[#1310](https://github.com/gakonst/ethers-rs/pull/1310)
- AWS EIP712 data signing no longer signs with EIP155
- Added Cronos testnet to etherscan options [#1276](https://github.com/gakonst/ethers-rs/pull/1276)
- Fix parsing of a pending block
[#1272](https://github.com/gakonst/ethers-rs/pull/1272)
- Removed Cronos mainnet beta from `is_legacy` [1246](https://github.com/gakonst/ethers-rs/pull/1246)
- Fix RLP decoding of `from` field for `Eip1559TransactionRequest` and
`Eip2930TransactionRequest`, remove `Eip1559TransactionRequest` `sighash`
method [#1180](https://github.com/gakonst/ethers-rs/pull/1180)
- Fix RLP encoding of absent access list in `Transaction` [1137](https://github.com/gakonst/ethers-rs/pull/1137)
- Pass compilation time as additional argument to `Reporter::on_solc_success` [#1098](https://github.com/gakonst/ethers-rs/pull/1098)
- Fix aws signer bug which maps un-normalized signature to error if no normalization occurs (in `aws::utils::decode_signature`)
- Implement signed transaction RLP decoding [#1096](https://github.com/gakonst/ethers-rs/pull/1096)
- `Transaction::from` will default to `Address::zero()`. Add `recover_from` and
`recover_from_mut` methods for recovering the sender from signature, and also
setting the same on tx [#1075](https://github.com/gakonst/ethers-rs/pull/1075).
- Add Etherscan account API endpoints [#939](https://github.com/gakonst/ethers-rs/pull/939)
- Add FTM Mainet and testnet to parse method "try_from" from Chain.rs and add cronos mainet and testnet to "from_str"
- Add FTM mainnet and testnet Multicall addresses [#927](https://github.com/gakonst/ethers-rs/pull/927)
- Add Cronos mainnet beta and testnet to the list of known chains
[#926](https://github.com/gakonst/ethers-rs/pull/926)
- `Chain::to_string` will return the same chain name as `Chain::from_str`
- Add `eth_syncing` [#848](https://github.com/gakonst/ethers-rs/pull/848)
- Fix overflow and possible divide-by-zero in `estimate_priority_fee`
- Add BSC mainnet and testnet to the list of known chains
[#831](https://github.com/gakonst/ethers-rs/pull/831)
- Returns error on invalid type conversion instead of panicking
[#691](https://github.com/gakonst/ethers-rs/pull/691/files)
- Change types mapping for solidity `bytes` to rust `ethers::core::Bytes` and
solidity `uint8[]` to rust `Vec<u8>`.
[#613](https://github.com/gakonst/ethers-rs/pull/613)
- Fix `format_units` to return a `String` of representing a decimal point float
such that the decimal places don't get truncated.
[#597](https://github.com/gakonst/ethers-rs/pull/597)
- Implement hex display format for `ethers::core::Bytes`
[#624](https://github.com/gakonst/ethers-rs/pull/624).
- Fix `fee_history` to first try with `block_count` encoded as a hex `QUANTITY`.
[#668](https://github.com/gakonst/ethers-rs/pull/668)
- Fix `fill_transaction` to set nonces in transactions, if the sender is known
and no nonce is specified
- Move `fill_transaction` implementation to the provider, to allow middleware
to properly override its behavior.
- Add informational messages to solc installation and compilation.
- Significantly refactor `MultiAbigen` module generation. Now allows for lib
generation, and does not make unnecessary disk writes.
[#854](https://github.com/gakonst/ethers-rs/pull/852)
- Refactor `ethers-contract-abigen` to use `eyre` instead of `anyhow` via
[#858](https://github.com/gakonst/ethers-rs/pull/858)
- Add `Deployer.send_with_receipt -> Result<(Contract, Receipt), Error>`
so that the receipt can be returned to the called when deploying
a contract [#865](https://github.com/gakonst/ethers-rs/pull/865)
- Add Arbitrum mainnet and testnet to the list of known chains
- Add ENS avatar and TXT records resolution
[#889](https://github.com/gakonst/ethers-rs/pull/889)
- Do not override gas limits provided by an outer middleware when including an EIP-2930 access list
[#901](https://github.com/gakonst/ethers-rs/pull/901)
- Add a getter to `ProjectCompileOutput` that returns a mapping of compiler
versions to a vector of name + contract struct tuples
[#908](https://github.com/gakonst/ethers-rs/pull/908)
- Add Yul compilation [#994](https://github.com/gakonst/ethers-rs/pull/994)
- Enforce commutativity of ENS reverse resolution
[#996](https://github.com/gakonst/ethers-rs/pull/996)
- Add `TransactionReceipt::to` and `TransactionReceipt::from`
[#1184](https://github.com/gakonst/ethers-rs/pull/1184)
- Add `From<H160>` and From<Vec<H160>> traits to `ValueOrArray<H160>` [#1199](https://github.com/gakonst/ethers-rs/pull/1200)
- Fix handling of Websocket connection errors [#1287](https://github.com/gakonst/ethers-rs/pull/1287)
- Add Arithmetic Shift Right operation for I256 [#1323](https://github.com/gakonst/ethers-rs/issues/1323)
- [#1535](https://github.com/gakonst/ethers-rs/pull/1535) Add support to Aurora and Aurora testnet networks.
- [#1632](https://github.com/gakonst/ethers-rs/pull/1632) Re-export `H32` from `ethabi`.
- [#1634](https://github.com/gakonst/ethers-rs/pull/1634) Derive missing `Clone`, `Copy` and `Debug` impls in ethers-etherscan.
- Bytes debug format now displays hex literals [#1658](https://github.com/gakonst/ethers-rs/pull/1658)
- [#1451](https://github.com/gakonst/ethers-rs/issues/1451) Add Arithmetic Shift Left operation for I256
- [#1860](https://github.com/gakonst/ethers-rs/pull/1860) Update I256 type documentation calling out the inconsistency
between its right shift operator and standard library numeric types.
- [#842](https://github.com/gakonst/ethers-rs/issues/842) Add support for I256 types in `parse_units` and `format_units`.
Added `twos_complement` function for I256.
- [#1934](https://github.com/gakonst/ethers-rs/pull/1934) Allow 16 calls in multicall.
- [#1941](https://github.com/gakonst/ethers-rs/pull/1941) Add `add_calls` and `call_array` for `Multicall`.
- Added basic event log filtering example.
## ethers-contract-abigen
### Unreleased
- Abigen now generates events with new `<B, M>` generic pattern [#2103](https://github.com/gakonst/ethers-rs/pull/2103)
- Fix Cargo.toml generation issue that could cause dependency conflicts [#1852](https://github.com/gakonst/ethers-rs/pull/1852)
- Use corresponding rust structs for event fields if they're solidity structs [#1674](https://github.com/gakonst/ethers-rs/pull/1674)
- Add `ContractFilter` to filter contracts in `MultiAbigen` [#1564](https://github.com/gakonst/ethers-rs/pull/1564)
- generate error bindings for custom errors [#1549](https://github.com/gakonst/ethers-rs/pull/1549)
- Support overloaded events
[#1233](https://github.com/gakonst/ethers-rs/pull/1233)
- Relax Clone requirements when Arc<Middleware> is used
[#1183](https://github.com/gakonst/ethers-rs/pull/1183)
- Generate a deploy function if bytecode is provided in the abigen! input (json artifact)
[#1030](https://github.com/gakonst/ethers-rs/pull/1030).
- Generate correct bindings of struct's field names that are reserved words
[#989](https://github.com/gakonst/ethers-rs/pull/989).
- Generate correct binding module names that are reserved words
[#1498](https://github.com/gakonst/ethers-rs/pull/1498). Note: this changes
generated module names to snake case. For example, `MyContract` is now
`my_contract` rather than `mycontract_mod`.
- The `Cargo.toml` generated by bindings now includes the `abigen` feature on
ethers. [#1508](https://github.com/gakonst/ethers-rs/pull/1508)
- More descriptive contract deserialization errors.
[#1633](https://github.com/gakonst/ethers-rs/pull/1633)
### 0.6.0
- Add `MultiAbigen` to generate a series of contract bindings that can be kept in the repo
[#724](https://github.com/gakonst/ethers-rs/pull/724).
- Add provided `event_derives` to call and event enums as well
[#721](https://github.com/gakonst/ethers-rs/pull/721).
- Implement snowtrace and polygonscan on par with the etherscan integration
[#666](https://github.com/gakonst/ethers-rs/pull/666).
## ethers-solc
### Unreleased
- Add `OutputContext` to `ArtifactOutput` trait
[#1621](https://github.com/gakonst/ethers-rs/pull/1621)
- On windows all paths in the `ProjectCompilerOutput` are now slashed by default
[#1540](https://github.com/gakonst/ethers-rs/pull/1540)
- `ArtifactOutput::write_extras` now takes the `Artifacts` directly
[#1491](https://github.com/gakonst/ethers-rs/pull/1491)
- Make `ethers-solc` optional dependency of `ethers`, needs `ethers-solc` feature to activate
[#1463](https://github.com/gakonst/ethers-rs/pull/1463)
- Add `rawMetadata:String` field to configurable contract output
[#1365](https://github.com/gakonst/ethers-rs/pull/1365)
- Use relative source paths and `solc --base-path`
[#1317](https://github.com/gakonst/ethers-rs/pull/1317)
- Save cache entry objects with relative paths
[#1307](https://github.com/gakonst/ethers-rs/pull/1307)
- Bundle svm, svm-builds and sha2 dependencies in new `svm-solc` feature
[#1071](https://github.com/gakonst/ethers-rs/pull/1071)
- Emit artifact files for source files without any ContractDefinition
[#1296](https://github.com/gakonst/ethers-rs/pull/1296)
- Wrap `ethabi::Contract` into new type `LosslessAbi` and `abi: Option<Abi>` with `abi: Option<LosslessAbi>` in `ConfigurableContractArtifact`
[#952](https://github.com/gakonst/ethers-rs/pull/952)
- Let `Project` take ownership of `ArtifactOutput` and change trait interface
[#907](https://github.com/gakonst/ethers-rs/pull/907)
- Total revamp of the `Project::compile` pipeline
[#802](https://github.com/gakonst/ethers-rs/pull/802)
- Support multiple versions of compiled contracts
- Breaking: deprecate hardhat cache file compatibility, cache file now tracks artifact paths and their versions
- Fix flatten replacement target location
[#846](https://github.com/gakonst/ethers-rs/pull/846)
- Fix duplicate files during flattening
[#813](https://github.com/gakonst/ethers-rs/pull/813)
- Add ability to flatten file imports
[#774](https://github.com/gakonst/ethers-rs/pull/774)
- Add dependency graph and resolve all imported libraryfiles
[#750](https://github.com/gakonst/ethers-rs/pull/750)
- `Remapping::find_many` does not return a `Result` anymore
[#707](https://github.com/gakonst/ethers-rs/pull/707)
- Add support for hardhat artifacts
[#677](https://github.com/gakonst/ethers-rs/pull/677)
- Add more utility functions to the `Artifact` trait
[#673](https://github.com/gakonst/ethers-rs/pull/673)
- Return cached artifacts from project `compile` when the cache only contains
some files
- Add support for library linking and make `Bytecode`'s `object` filed an
`enum BytecodeObject` [#656](https://github.com/gakonst/ethers-rs/pull/656).
- Nit: remove accidentally doubled double-quotes in an error message
- Fix when compiler-out metadata is empty and there's no internalType [#1182](https://github.com/gakonst/ethers-rs/pull/1182)
- Add basic `solc` model checker options.
[#1258](https://github.com/gakonst/ethers-rs/pull/1258)
### 0.6.0
- add `EthAbiCodec` proc macro to derive `AbiEncode` `AbiDecode` implementation
[#704](https://github.com/gakonst/ethers-rs/pull/704)
- move `AbiEncode` `AbiDecode` trait to ethers-core and implement for core types
[#531](https://github.com/gakonst/ethers-rs/pull/531)
- Add EIP-712 `sign_typed_data` signer method; add ethers-core type `Eip712`
trait and derive macro in ethers-derive-eip712
[#481](https://github.com/gakonst/ethers-rs/pull/481)
### 0.5.3
- Allow configuring the optimizer & passing arbitrary arguments to solc
[#427](https://github.com/gakonst/ethers-rs/pull/427)
- Decimal support for `ethers_core::utils::parse_units`
[#463](https://github.com/gakonst/ethers-rs/pull/463)
- Fixed Wei unit calculation in `Units`
[#460](https://github.com/gakonst/ethers-rs/pull/460)
- Add `ethers_core::utils::get_create2_address_from_hash`
[#444](https://github.com/gakonst/ethers-rs/pull/444)
- Bumped ethabi to 0.15.0 and fixing breaking changes
[#469](https://github.com/gakonst/ethers-rs/pull/469),
[#448](https://github.com/gakonst/ethers-rs/pull/448),
[#445](https://github.com/gakonst/ethers-rs/pull/445)
### 0.5.2
- Correctly RLP Encode transactions as received from the mempool
([#415](https://github.com/gakonst/ethers-rs/pull/415))
## ethers-providers
### Unreleased
- Breaking: WS now includes reconnection logic and a changed `connect`
interface. Old behavior can be accessed via the `legacy_ws` feature
[#2181](https://github.com/gakonst/ethers-rs/pull/2181)
- Re-organize the crate. #[2150](https://github.com/gakonst/ethers-rs/pull/2159)
- Convert provider errors to arbitrary middleware errors
[#1920](https://github.com/gakonst/ethers-rs/pull/1920)
- Add a subset of the `admin` namespace
[1880](https://github.com/gakonst/ethers-rs/pull/1880)
- Return String for net version
[1376](https://github.com/gakonst/ethers-rs/pull/1376)
- Stream of paginated logs that load logs in small pages
[1285](https://github.com/gakonst/ethers-rs/pull/1285)
- Load previous logs before subscribing to new logs in case fromBlock is set
[1264](https://github.com/gakonst/ethers-rs/pull/1264)
- Add retries to the pending transaction future
[1221](https://github.com/gakonst/ethers-rs/pull/1221)
- Add support for basic and bearer authentication in http and non-wasm websockets.
[829](https://github.com/gakonst/ethers-rs/pull/829)
- Export `ethers_providers::IpcError` and `ethers_providers::QuorumError`
[1012](https://github.com/gakonst/ethers-rs/pull/1012)
### 0.6.0
- re-export error types for `Http` and `Ws` providers in
[#570](https://github.com/gakonst/ethers-rs/pull/570)
- add a method on the `Middleware` to broadcast a tx with a series of escalating
gas prices via [#566](https://github.com/gakonst/ethers-rs/pull/566)
- Remove unnecessary `Serialize` constraint to `R` (the Response type) in the
`request` method of `JsonRpcClient`.
- Fix `http Provider` data race when generating new request `id`s.
- Add support for `net_version` RPC method.
[595](https://github.com/gakonst/ethers-rs/pull/595)
- Add support for `evm_snapshot` and `evm_revert` dev RPC methods.
[640](https://github.com/gakonst/ethers-rs/pull/640)
### 0.5.3
- Expose `ens` module [#435](https://github.com/gakonst/ethers-rs/pull/435)
- Add `eth_getProof` [#459](https://github.com/gakonst/ethers-rs/pull/459)
### 0.5.2
- Set resolved ENS name during gas estimation
([1e5a9e](https://github.com/gakonst/ethers-rs/commit/1e5a9efb3c678eecd43d5c341b4932da35445831))
## ethers-signers
### Unreleased
- fix: `LedgerSigner` has improved tracing and a ledger app bug mitigation
[#2192](https://github.com/gakonst/ethers-rs/pull/2192)
- `eth-keystore-rs` crate updated. Allow an optional name for the to-be-generated
keystore file [#910](https://github.com/gakonst/ethers-rs/pull/910)
- [1983](https://github.com/gakonst/ethers-rs/pull/1983) Added a `from_bytes` function for the `Wallet` type.
- Allow parsing of private key that has `0x` prefix
[#2037](https://github.com/gakonst/ethers-rs/pull/2037)
### 0.6.0
- `LocalWallet::new_keystore` now returns a tuple `(LocalWallet, String)`
instead of `LocalWallet`, where the string represents the UUID of the newly
created encrypted JSON keystore. The JSON keystore is stored as a file
`/dir/uuid`. The issue [#557](https://github.com/gakonst/ethers-rs/issues/557)
is addressed [#559](https://github.com/gakonst/ethers-rs/pull/559)
## ethers-contract
### Unreleased
- (Breaking) Add `Revert` to `ContractError`. Add `impl EthError for String`.
Modify existing `ContractError` variants to prevent accidental improper
usage. Change `MulticallError` to use `ContractError::Revert`. Add
convenience methods to decode errors from reverts.
[#2172](https://github.com/gakonst/ethers-rs/pull/2172)
- (Breaking) Improve Multicall result handling
[#2164](https://github.com/gakonst/ethers-rs/pull/2105)
- (Breaking) Make `Event` objects generic over borrow & remove lifetime
[#2105](https://github.com/gakonst/ethers-rs/pull/2105)
- Make `Factory` objects generic over the borrow trait, to allow non-arc mware
[#2103](https://github.com/gakonst/ethers-rs/pull/2103)
- Make `Contract` objects generic over the borrow trait, to allow non-arc mware
[#2082](https://github.com/gakonst/ethers-rs/pull/2082)
- Return pending transaction from `Multicall::send`
[#2044](https://github.com/gakonst/ethers-rs/pull/2044)
- Add abigen to default features
[#1684](https://github.com/gakonst/ethers-rs/pull/1684)
- Add extra Multicall helper methods
[#1666](https://github.com/gakonst/ethers-rs/pull/1666)
- Update Multicall to Multicall3
[#1584](https://github.com/gakonst/ethers-rs/pull/1584)
- Add `Event::stream_with_meta` and `Event::subscribe_with_meta`
[#1483](https://github.com/gakonst/ethers-rs/pull/1483)
- Added tx builder methods to `ContractFactory`
[#1289](https://github.com/gakonst/ethers-rs/pull/1289)
- Relax Clone requirements when Arc<Middleware> is used
[#1183](https://github.com/gakonst/ethers-rs/pull/1183)
- Add `EventStream::select` to combine streams with different event types
[#725](https://github.com/gakonst/ethers-rs/pull/725)
- Substitute output tuples with rust struct types for function calls
[#664](https://github.com/gakonst/ethers-rs/pull/664)
- Add AbiType implementation during EthAbiType expansion
[#647](https://github.com/gakonst/ethers-rs/pull/647)
- fix Etherscan conditional HTTP support
[#632](https://github.com/gakonst/ethers-rs/pull/632)
- use `CARGO_MANIFEST_DIR` as root for relative paths in abigen
[#631](https://github.com/gakonst/ethers-rs/pull/631)
### 0.6.0
- Provide a way to opt out of networking support in abigen proc macro with
`abigen-offline` feature [#580](https://github.com/gakonst/ethers-rs/pull/580)
- Add `.call()` method to `Deployer` for performing dry runs of contract
deployments. [#554](https://github.com/gakonst/ethers-rs/pull/554)
- Improve error message from failure in `ethers_contract_abigen::Source::parse`
[#552](https://github.com/gakonst/ethers-rs/pull/552)
- use enumerated aliases for overloaded functions
[#545](https://github.com/gakonst/ethers-rs/pull/545)
- add `EthCall` trait and derive macro which generates matching structs for
contract calls [#517](https://github.com/gakonst/ethers-rs/pull/517)
- Use rust types as contract function inputs for human readable abi
[#482](https://github.com/gakonst/ethers-rs/pull/482)
- `abigen!` now generates `Display` for all events using the new `EthDisplay`
macro [#513](https://github.com/gakonst/ethers-rs/pull/513)
- `abigen!` now supports overloaded functions natively
[#501](https://github.com/gakonst/ethers-rs/pull/501)
- `abigen!` now supports multiple contracts
[#498](https://github.com/gakonst/ethers-rs/pull/498)
### Unreleased
### 0.5.3
- (De)Tokenize structs and events with only a single field as `Token:Tuple`
([#417](https://github.com/gakonst/ethers-rs/pull/417))
## ethers-middleware
### Unreleased
- Added `openssl` and `rustls` feature flags
[#1961](https://github.com/gakonst/ethers-rs/pull/1961)
- Relax Clone requirements when Arc<Middleware> is used
[#1183](https://github.com/gakonst/ethers-rs/pull/1183)
- Ensure a consistent chain ID between a Signer and Provider in SignerMiddleware
[#1095](https://gakonst/ethers-rs/pull/1095)
- Add BlockNative gas oracle [#1175](https://github.com/gakonst/ethers-rs/pull/1175)
### 0.6.0
- add the missing constructor for `Timelag` middleware via
[#568](https://github.com/gakonst/ethers-rs/pull/568)
- Removes GasNow as a gas price oracle
[#508](https://github.com/gakonst/ethers-rs/pull/508)
- add initialize_nonce public function to initialize NonceMiddleManager
### 0.5.3
- Added Time Lagged middleware
[#457](https://github.com/gakonst/ethers-rs/pull/457)

File diff suppressed because it is too large Load Diff

View File

@ -134,14 +134,13 @@ include one or more tests to ensure that ethers-rs does not regress in the futur
#### Unit Tests #### Unit Tests
Functions which have very specific tasks should be unit tested. We encourage using Functions which have very specific tasks should be unit tested. We encourage using
table tests to cover a large number of cases in a succinct readable manner. A good example table tests to cover a large number of cases in a succinct readable manner. A good
is the [create2](https://github.com/gakonst/ethers-rs/blob/1d7bdef0bd792867454da28c4e9c193681295fb2/ethers-core/src/utils/mod.rs#L110-L163) unit tests. example is the [utils](./ethers-core/src/utils/mod.rs#L647) unit tests.
#### Integration tests #### Integration tests
Integration tests go in the same crate as the code they are testing. Each sub Integration tests go in the same crate as the code they are testing, in the
crate should have a `dev-dependency` on `ethers` itself. This makes all `tests/it/` directory.
utilities available to use in tests, no matter the crate being tested.
The best strategy for writing a new integration test is to look at existing The best strategy for writing a new integration test is to look at existing
integration tests in the crate and follow the style. integration tests in the crate and follow the style.
@ -155,27 +154,23 @@ that the example is correct and provides additional test coverage.
The trick to documentation tests is striking a balance between being succinct The trick to documentation tests is striking a balance between being succinct
for a reader to understand and actually testing the API. for a reader to understand and actually testing the API.
Same as with integration tests, when writing a documentation test, the full
`ethers` crate is available. This is especially useful for getting access to the
runtime to run the example.
The documentation tests will be visible from both the crate specific The documentation tests will be visible from both the crate specific
documentation **and** the `ethers` facade documentation via the re-export. The documentation **and** the `ethers` facade documentation via the re-export. The
example should be written from the point of view of a user that is using the example should be written from the point of view of a user that is using the
`ethers` crate. As such, the example should use the API via the facade and not by `ethers` crate.
directly referencing the crate.
The type level example for `ethers_providers::Provider` provides a good example of a The type level example for `ethers_providers::Provider` provides a good example of a
documentation test: documentation test:
````rust ````rust
/// ```no_run /// ```no_run
/// use ethers::providers::{JsonRpcClient, Provider, Http}; /// # async fn foo() -> Result<(), Box<dyn std::error::Error>> {
/// use std::convert::TryFrom; /// use ethers_providers::{Middleware, Provider, Http};
/// ///
/// let provider = Provider::<Http>::try_from("https://eth.llamarpc.com").expect("could not instantiate HTTP Provider"); /// let provider = Provider::<Http>::try_from(
/// "https://eth.llamarpc.com"
/// ).expect("could not instantiate HTTP Provider");
/// ///
/// # async fn foo<P: JsonRpcClient>(provider: &Provider<P>) -> Result<(), Box<dyn std::error::Error>> {
/// let block = provider.get_block(100u64).await?; /// let block = provider.get_block(100u64).await?;
/// println!("Got block: {}", serde_json::to_string(&block)?); /// println!("Got block: {}", serde_json::to_string(&block)?);
/// # Ok(()) /// # Ok(())
@ -205,52 +200,15 @@ notes about [commit squashing](#commit-squashing)).
#### Commit message guidelines #### Commit message guidelines
A good commit message should describe what changed and why. Commit messages should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
specification.
1. The first line should: Here's a few examples from the master branch's commit log:
- contain a short description of the change (preferably 50 characters or less, - feat(abigen): support empty events
and no more than 72 characters) - chore: bump crypto deps
- be entirely in lowercase with the exception of proper nouns, acronyms, and - test: simplify test cleanup
the words that refer to code, like function/variable names - fmt: run rustfmt
- be prefixed with the name of the sub crate being changed (without the `ethers-`
prefix) and start with an imperative verb. If modifying `ethers` proper,
omit the crate prefix.
Examples:
- providers: introduce ENS querying for names and addresses
- re-export the abi, types and utils modules from `ethers_core`
2. Keep the second line blank.
3. Wrap all other lines at 72 columns (except for long URLs).
4. If your patch fixes an open issue, you can add a reference to it at the end
of the log. Use the `Fixes: #` prefix and the issue number. For other
references use `Refs: #`. `Refs` may include multiple issues, separated by a
comma.
Examples:
- `Fixes: #1337`
- `Refs: #1234`
Sample complete commit message:
```txt
subcrate: explain the commit in one line
Body of commit message is a few lines of text, explaining things
in more detail, possibly giving some background about the issue
being fixed, etc.
The body of the commit message can be several paragraphs, and
please do proper word-wrap and keep columns shorter than about
72 characters or so. That way, `git log` will show things
nicely even when it is indented.
Fixes: #1337
Refs: #453, #154
```
### Opening the Pull Request ### Opening the Pull Request
@ -380,17 +338,14 @@ When releasing the workspace:
existing APIs. If so, resolve those issues and make a `minor` change existing APIs. If so, resolve those issues and make a `minor` change
release. Otherwise, if it is necessary to make a breaking release, make a release. Otherwise, if it is necessary to make a breaking release, make a
`major` change release. `major` change release.
2. **Dry run the release** by running `cargo release --workspace <release_type>` 2. **Dry run the release.** Running the `cargo release` command without the
3. **Update the changelog for the crate.** Changelog for all crates go in `--execute` flag will perform a dry run.
[`CHANGELOG.md`](./CHANGELOG.md). Any unreleased changes changelogs should 3. **Release the crate.**
be moved to respective crates released changelogs. Change descriptions Run the `bin/release` script with the `--execute` flag.
may be taken from the Git history, but should be edited to ensure a consistent This will update the package versions in the relevant manifests, create
format, based on [Keep A Changelog][keep-a-changelog]. Other entries in that git tags, automatically generate the [`CHANGELOG.md`](./CHANGELOG.md) file
crate's changelog may also be used for reference. with [git-cliff], and finally publish the crates to `crates.io`.
4. **Release the crate.** Run the following command: For more information, see the top comment in the script file.
```bash
cargo release --workspace <release_type> --execute
```
[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog/blob/master/CHANGELOG.md [keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog/blob/master/CHANGELOG.md
[git-cliff]: https://github.com/orhun/git-cliff

52
Cargo.lock generated
View File

@ -1497,25 +1497,9 @@ dependencies = [
"yansi", "yansi",
] ]
[[package]]
name = "ethers-wasm"
version = "2.0.0"
dependencies = [
"console_error_panic_hook",
"ethers",
"hex",
"serde",
"serde-wasm-bindgen",
"serde_json",
"wasm-bindgen",
"wasm-bindgen-futures",
"wasm-bindgen-test",
"web-sys",
]
[[package]] [[package]]
name = "examples-anvil" name = "examples-anvil"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
"eyre", "eyre",
@ -1524,14 +1508,14 @@ dependencies = [
[[package]] [[package]]
name = "examples-big-numbers" name = "examples-big-numbers"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
] ]
[[package]] [[package]]
name = "examples-contracts" name = "examples-contracts"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
"eyre", "eyre",
@ -1542,7 +1526,7 @@ dependencies = [
[[package]] [[package]]
name = "examples-events" name = "examples-events"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
"eyre", "eyre",
@ -1565,7 +1549,7 @@ dependencies = [
[[package]] [[package]]
name = "examples-middleware" name = "examples-middleware"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"ethers", "ethers",
@ -1578,7 +1562,7 @@ dependencies = [
[[package]] [[package]]
name = "examples-providers" name = "examples-providers"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"ethers", "ethers",
@ -1593,7 +1577,7 @@ dependencies = [
[[package]] [[package]]
name = "examples-queries" name = "examples-queries"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
"eyre", "eyre",
@ -1604,7 +1588,7 @@ dependencies = [
[[package]] [[package]]
name = "examples-subscriptions" name = "examples-subscriptions"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
"eyre", "eyre",
@ -1615,7 +1599,7 @@ dependencies = [
[[package]] [[package]]
name = "examples-transactions" name = "examples-transactions"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
"eyre", "eyre",
@ -1626,7 +1610,7 @@ dependencies = [
[[package]] [[package]]
name = "examples-wallets" name = "examples-wallets"
version = "2.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"ethers", "ethers",
"eyre", "eyre",
@ -1635,6 +1619,22 @@ dependencies = [
"tokio", "tokio",
] ]
[[package]]
name = "examples-wasm"
version = "0.0.0"
dependencies = [
"console_error_panic_hook",
"ethers",
"hex",
"serde",
"serde-wasm-bindgen",
"serde_json",
"wasm-bindgen",
"wasm-bindgen-futures",
"wasm-bindgen-test",
"web-sys",
]
[[package]] [[package]]
name = "eyre" name = "eyre"
version = "0.6.8" version = "0.6.8"

View File

@ -134,7 +134,7 @@ ethers = { version = "1.0.2", features = ["openssl"] }
## Note on WASM and FFI bindings ## Note on WASM and FFI bindings
You should be able to build a wasm app that uses ethers-rs (see the [example](./examples/ethers-wasm) for reference). If ethers fails to You should be able to build a wasm app that uses ethers-rs (see the [example](./examples/wasm) for reference). If ethers fails to
compile in WASM, please compile in WASM, please
[open an issue](https://github.com/gakonst/ethers-rs/issues/new/choose). [open an issue](https://github.com/gakonst/ethers-rs/issues/new/choose).
There is currently no plan to provide an official JS/TS-accessible library There is currently no plan to provide an official JS/TS-accessible library

View File

@ -1,119 +0,0 @@
#!/usr/bin/env bash
set -e
USAGE="Publish a new release of a ethers-rs crate
USAGE:
$(basename "$0") [OPTIONS] [CRATE] [VERSION]
OPTIONS:
-v, --verbose Use verbose Cargo output
-d, --dry-run Perform a dry run (do not publish or tag the release)
-h, --help Show this help text and exit"
DRY_RUN=""
VERBOSE=""
err() {
echo -e "\e[31m\e[1merror:\e[0m $@" 1>&2;
}
status() {
WIDTH=12
printf "\e[32m\e[1m%${WIDTH}s\e[0m %s\n" "$1" "$2"
}
verify() {
status "Verifying" "if $CRATE v$VERSION can be released"
ACTUAL=$(cargo pkgid | sed -n 's/.*#\(.*\)/\1/p')
if [ "$ACTUAL" != "$VERSION" ]; then
err "expected to release version $VERSION, but Cargo.toml contained $ACTUAL"
exit 1
fi
if git tag -l | grep -Fxq "$TAG" ; then
err "git tag \`$TAG\` already exists"
exit 1
fi
PATH_DEPS=$(grep -F "path = \"" Cargo.toml | sed -e 's/^/ /')
if [ -n "$PATH_DEPS" ]; then
err "crate \`$CRATE\` contained path dependencies:\n$PATH_DEPS"
echo "path dependencies must be removed prior to release"
exit 1
fi
}
release() {
status "Releasing" "$CRATE v$VERSION"
cargo package $VERBOSE
cargo publish $VERBOSE $DRY_RUN
status "Tagging" "$TAG"
if [ -n "$DRY_RUN" ]; then
echo "# git tag $TAG && git push --tags"
else
git tag "$TAG" && git push --tags
fi
}
while [[ $# -gt 0 ]]
do
case "$1" in
-h|--help)
echo "$USAGE"
exit 0
;;
-v|--verbose)
VERBOSE="--verbose"
set +x
shift
;;
-d|--dry-run)
DRY_RUN="--dry-run"
shift
;;
-*)
err "unknown flag \"$1\""
echo "$USAGE"
exit 1
;;
*) # crate or version
if [ -z "$CRATE" ]; then
CRATE="$1"
elif [ -z "$VERSION" ]; then
VERSION="$1"
else
err "unknown positional argument \"$1\""
echo "$USAGE"
exit 1
fi
shift
;;
esac
done
# set -- "${POSITIONAL[@]}"
if [ -z "$VERSION" ]; then
err "no version specified!"
HELP=1
fi
if [ -n "$CRATE" ]; then
TAG="$CRATE-$VERSION"
else
err "no crate specified!"
HELP=1
fi
if [ -n "$HELP" ]; then
echo "$USAGE"
exit 1
fi
if [ -d "$CRATE" ]; then
(cd "$CRATE" && verify && release )
else
err "no such crate \"$CRATE\""
exit 1
fi

131
bin/release Executable file
View File

@ -0,0 +1,131 @@
#!/usr/bin/env bash
# Creates a new release of all the ethers crates in the workspace
#
# Note that this intended be run with the --execute flag, as the dry run will
# perform all the checks that a normal `cargo release` command would.
# This is because this script will execute only a few of the steps because it
# has to run `git-cliff` to create the changelog in between steps, and exclude
# all the example crates from the version bump.
set -e
info() {
printf "\e[34;1minfo\e[0m: %s\n" "$1"
}
throw() {
printf "\e[31;1merror\e[0m: %s\n\n%s\n" "$1" "$USAGE" 1>&2
exit 1
}
exec_or_print() {
if [ "$EXECUTE" ]; then
"$@"
else
echo "Skipping due to dry run. Command:" "$@"
fi
}
USAGE="Create a new release of the ethers workspace crates
Usage:
$(basename "$0") [OPTIONS] <VERSION>
Options:
-s, --sign Sign commits and tag
-v, --verbose Use verbose Cargo output
-e, --execute Actually perform a release. Dry-run mode is the default
-h, --help Show this help text and exit
Arguments:
<VERSION> See 'cargo release --help'. Levels are not supported"
SIGN_COMMIT=""
SIGN_TAG=""
VERBOSE=""
EXECUTE=""
VERSION=""
while [[ $# -gt 0 ]]; do
case $1 in
-s|--sign)
SIGN_COMMIT="--sign-commit"
SIGN_TAG="--sign-tag"
shift
;;
-v|--verbose)
VERBOSE="--verbose"
shift
;;
-x|--execute)
EXECUTE="--execute"
shift
;;
-h|--help)
echo "$USAGE"
exit 0
;;
--)
VERSION="$2"
break
;;
-*)
throw "unrecognized option: '$1'"
;;
*)
if [ "$VERSION" ]; then
throw "only one version can be specified"
else
VERSION="$1"
fi
shift
;;
esac
done
if [ ! "$VERSION" ]; then
throw "a version must be set" 1>&2
fi
# check for necessary binaries
NECESSARY=(cargo-release git-cliff)
MISSING=""
for bin in "${NECESSARY[@]}"; do
if ! command -v "$bin" &>/dev/null; then
MISSING=true
echo "'$bin' is required to run this command, but it is not installed" 1>&2
fi
done
[ "$MISSING" ] && throw "missing necessary binaries"
# exclude examples
WORKSPACE_FLAGS=(--workspace)
for ex in examples/*; do
if [ -d "$ex" ]; then
crate=$(echo "$ex" | tr / -)
WORKSPACE_FLAGS+=(--exclude "$crate")
fi
done
# shellcheck disable=SC2206
COMMON_FLAGS=($VERBOSE $EXECUTE)
info "bumping crate versions"
cargo release version "${WORKSPACE_FLAGS[@]}" "${COMMON_FLAGS[@]}" "$VERSION"
info "creating changelog"
exec_or_print git cliff -t "$VERSION" -o CHANGELOG.md
info "creating git commit"
exec_or_print cargo release commit "${COMMON_FLAGS[@]}" $SIGN_COMMIT
info "publishing crates"
exec_or_print cargo release publish "${COMMON_FLAGS[@]}" "${WORKSPACE_FLAGS[@]}"
info "tagging commits"
cargo release tag "${COMMON_FLAGS[@]}" "${WORKSPACE_FLAGS[@]}" $SIGN_TAG
info "pushing commits and tags to remote"
cargo release push "${COMMON_FLAGS[@]}" "${WORKSPACE_FLAGS[@]}"

83
cliff.toml Normal file
View File

@ -0,0 +1,83 @@
# configuration file for git-cliff
# see https://github.com/orhun/git-cliff#configuration-file
[changelog]
# changelog header
header = """
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
This changelog is automatically generated by [git-cliff](https://github.com/orhun/git-cliff),
which is configured [here](./cliff.toml).
Please do not manually edit this file.\n
"""
# template for the changelog body
# https://tera.netlify.app/docs/#introduction
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [Unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | title }}
{% for commit in commits %}
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first | split(pat="\\n") | first }}\
{% endfor %}
{% endfor %}\n
"""
# remove the leading and trailing whitespace from the template
trim = true
# changelog footer
footer = """
<!-- generated by git-cliff -->
"""
[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = true
# filter out the commits that are not conventional
filter_unconventional = false
# process each line of a commit as an individual commit
split_commits = false
# regex for preprocessing the commit messages
commit_preprocessors = [
# replace issue numbers
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/gakonst/ethers-rs/issues/${2}))" },
]
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^feat", group = "Features" },
{ message = "^fix", group = "Bug Fixes" },
{ message = "^doc", group = "Documentation" },
{ message = "(.*deps)|(.*dependencies)|(.*[Bb]ump)", group = "Depedencies" },
{ message = "^perf", group = "Performance" },
{ message = "^refactor", group = "Refactor" },
{ message = "(^style)|(.*fmt)", group = "Styling" },
{ message = "^test", group = "Testing" },
{ message = ".*release", skip = true },
{ message = "^revert", skip = true },
{ message = "^chore", group = "Miscellaneous Tasks" },
{ message = ".*", group = "Other" },
]
# protect breaking changes from being skipped due to matching a skipping commit_parser
protect_breaking_commits = true
# filter out the commits that are not matched by commit parsers
filter_commits = false
# glob pattern for matching git tags
tag_pattern = "*"
# regex for skipping tags
# skip_tags = "v0.1.0-beta.1"
# regex for ignoring tags
ignore_tags = "^ethers.*"
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "newest"
# limit the number of commits included in the changelog.
# limit_commits = 42

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-anvil" name = "examples-anvil"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-big-numbers" name = "examples-big-numbers"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-contracts" name = "examples-contracts"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-events" name = "examples-events"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-middleware" name = "examples-middleware"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-providers" name = "examples-providers"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-queries" name = "examples-queries"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-subscriptions" name = "examples-subscriptions"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-transactions" name = "examples-transactions"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "examples-wallets" name = "examples-wallets"
version = "2.0.0" version = "0.0.0"
publish = false publish = false
authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"] authors = ["Andrea Simeoni <andreasimeoni84@gmail.com>"]

View File

@ -1,8 +1,9 @@
[package] [package]
name = "ethers-wasm" name = "examples-wasm"
version = "2.0.0" version = "0.0.0"
authors = ["Matthias Seitz <matthias.seitz@outlook.de>"] authors = ["Matthias Seitz <matthias.seitz@outlook.de>"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
publish = false
rust-version.workspace = true rust-version.workspace = true
edition.workspace = true edition.workspace = true

View File

@ -1,5 +1,5 @@
{ {
"name": "ethers-wasm", "name": "examples-wasm",
"license": "MIT OR Apache-2.0", "license": "MIT OR Apache-2.0",
"private": "true", "private": "true",
"scripts": { "scripts": {

View File

@ -5,7 +5,7 @@ use ethers::{
signers::Signer, signers::Signer,
types::Chain, types::Chain,
}; };
use ethers_wasm::{utils, SimpleContract}; use examples_wasm::{utils, SimpleContract};
use std::sync::Arc; use std::sync::Arc;
use wasm_bindgen_test::*; use wasm_bindgen_test::*;

3
release.toml Normal file
View File

@ -0,0 +1,3 @@
allow-branch = ["master"]
pre-release-commit-message = "chore: release"
tag-message = "chore: release {{crate_name}} v{{version}}"