This repository has been archived by the owner on Oct 19, 2024. It is now read-only.
conversion of a public key, regardless of compression, to an address #2632
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit exposes a method to convert public keys to addresses. It is tested against the public key examples on https://docs.ethers.org/v5/api/utils/address/#utils-computeAddress. It does not convert private keys to address because
Wallet
already does that.Motivation
Often, it is helpful to compute the address from the public key, especially in threshold signature schemes, but as far is I can tell there is no convenient function to do so. ethers.js exposes a
computeAddress
, but I could not find an ethers-rs function to do the same. Those unfamiliar with elliptic curves typically would rather avoid dealing with the question of how to hash a public key, as they would likely have to study point encoding to do it.Solution
This provides a simple function to convert a public key to an Ethereum address, regardless of compression.
PR Checklist