All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bump
@metamask/utils
from^9.0.0
to^10.0.0
(#161)
- BREAKING: Preserve original messages during error serialization by default (#158)
- The behavior introduced in
5.0.0
of overwriting the original message is available by passingshouldPreserveMessage: false
toserializeError()
.
- The behavior introduced in
- BREAKING: Bump minimum Node.js version from 16 to 18 (#154)
- Migrate to
ts-bridge
(#152)- Migrates to ts-bridge from
tsup
, which may resolve issues when importing this package in CommonJS or ESM.
- Migrates to ts-bridge from
- Bump
@metamask/utils
from^8.3.0
to^9.0.0
(#147)
- Expose error causes as
cause
property (#140)JsonRpcError
objects already had a.data.cause
property. It is now exposed as.cause
in order to to be recognized as ES Causes.
- Export
OptionalDataWithOptionalCause
type (#135)
- Add ESM build (#133)
- Update
@metamask/utils
from^8.1.0
to^8.3.0
(#133)
- Update dependency
@metamask/utils
from^8.0.0
to^8.1.0
(#108)
- Exclude
dist/__fixtures__
files from published package (#114)
- Make Data type-parameter optional in JsonRpcError (#102)
- BREAKING:
undefined
is now not recognized as valid JSON value- Update dependency
@metamask/utils
from^5.0.0
to^8.0.0
(#101)
- Update dependency
- Allow passing unknown values as cause (#91)
- Prevously, only
Error
instances were allowed, but any value can be thrown as error
- Prevously, only
- Allow passing a cause to predefined error functions (#83)
- This allows passing an
Error
instance as cause, by using{ data: { cause: /* some error */ } }
- The error will be properly serialised when calling
serialize
- This allows passing an
- BREAKING: Bump minimum version to Node 16 (#68)
- BREAKING: Rewrite error serialization (#61)
- Allows errors that conform to the
JsonRpcError
type - If errors don't conform to the type, the error will be wrapped in an internal error and the original error will be available as
data.cause
- Allows errors that conform to the
- BREAKING: Rename exports to be more generic (#75)
- JSON-RPC errors and Ethereum EIP-1474 errors are namespaced under "rpcErrors"
- Ethereum EIP-1193 Provider errors are namespaced under "providerErrors"
- BREAKING: Target
ES2020
(#77) - Rename package to
@metamask/rpc-errors
(#67)
4.0.3 - 2021-03-10
- Correctly type
ethErrors
getter function argument objects as optional (#36)
4.0.2 - 2020-11-17
- Mark the
data
property ofEthereumRpcError
andEthereumProviderError
as optional rather thanT | undefined
(#34)
- Correctly type
SerializedEthereumRpcError.stack
asstring
, if present (#34)
4.0.1 - 2020-11-03
- Updated README.md (#30)
4.0.0 - 2020-11-02
- BREAKING:
ERROR_CODES
export renamed toerrorCodes
(#28) - BREAKING:
ethErrors
getters will now throw an error if passed a truthy, non-stringmessage
(#28) - Updated TypeScript types for all exports (#28)
3.0.0 - 2020-07-29
- BREAKING: Second argument of
serializeError
is now an options object (#22) - Error stacks are no longer serialized by default by
serializeError
(#22)
2.1.1 - 2020-05-12
- Prevent unnecessary files from being published (#17)
2.1.0 - 2020-05-11
- New/missing errors:
- Rename package to
eth-rpc-errors
2.0.2 - 2020-02-12
- Fix faulty null checks throughout codebase (764832d)
2.0.1 - 2020-01-31
- Error codes in docstrings (5452001)
2.0.0 - 2019-09-26
- Exports
errors
renamedethErrors
JsonRpcError
renamedEthereumRpcError
EthJsonRpcError
renamedEthereumProviderError
- It is still a subclass of
EthereumRpcError
- It is still a subclass of
- TypeScript
- Renamed affected interfaces
ethErrors
- Added missing
EIP-1474 errors
- Added corresponding codes and messages
- Namespacing
- EIP-1474 (which includes JSON RPC 2.0) errors now namespaced under
ethErrors.rpc
- JSON RPC 2.0 errors were formerly under
errors.jsonRpc
- JSON RPC 2.0 errors were formerly under
- EIP-1193 errors now namespaced under
ethErrors.provider
- Formerly under
errors.eth
- Formerly under
- EIP-1474 (which includes JSON RPC 2.0) errors now namespaced under
- Most error getters now take a single, optional
opts
argument, which is either a string or an object- If a string, it becomes the error message
- If an object, it should have the form:
{ message?: string, data?: any }
- Special Cases
ethErrors.rpc.server
must receive a single object of the form:- `{ code: number, message?: string, data?: any }
ethErrors.provider.custom
must receive a single of the form:- `{ code: number, message: string, data?: any }
- Added missing
EIP-1474 errors
- TypeScript
- Updated affected interfaces
1.1.0 - 2019-09-16
serializeError
- If the object passed to the function has a
.message
property, it will preferred over the.message
property of the fallback error when creating the returned serialized error object
- If the object passed to the function has a