MetaMask / providers

An Ethereum Provider that connects over a stream, as injected into websites by MetaMask
MIT License
225 stars 124 forks source link

Make `chainId`, `networkVersion`, `selectedAddress` readonly and log deprecation warning #280

Closed jiexi closed 1 year ago

jiexi commented 1 year ago

Currently, it's possible to access the properties chainId, networkVersion, and selectedAddress on the provider object. These are not part of the EIP-1193 spec. More specifically, we are trying to remove networkId where possible and networkVersion currently poses an issue as it references networkId and that its removal may break some dapps if they are accessing this non-documented property. The plan is to add a deprecation warning when accessing any of these properties, and to fully remove public access to them at a later point.

We achieve this by making the actual properties private and putting them behind getter functions that ensure a console warning is issued on access. Additionally, we make the properties readonly by not providing a setter.

Examples

Screenshot 2023-09-08 at 12 15 01 PM

jiexi commented 1 year ago

@metamaskbot publish-preview