Skip to content

Latest commit

 

History

History
242 lines (159 loc) · 9.19 KB

CHANGELOG.md

File metadata and controls

242 lines (159 loc) · 9.19 KB

Changelog

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.

Changed

  • Bump @metamask/utils from ^9.0.0 to ^10.0.0 (#161)

Changed

  • 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 passing shouldPreserveMessage: false to serializeError().
  • BREAKING: Bump minimum Node.js version from 16 to 18 (#154)

Changed

  • Migrate to ts-bridge (#152)
    • Migrates to ts-bridge from tsup, which may resolve issues when importing this package in CommonJS or ESM.

Changed

  • Bump @metamask/utils from ^8.3.0 to ^9.0.0 (#147)

Added

  • 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.

Fixed

  • Export OptionalDataWithOptionalCause type (#135)

Added

  • Add ESM build (#133)

Changed

  • Update @metamask/utils from ^8.1.0 to ^8.3.0 (#133)

Changed

  • Update dependency @metamask/utils from ^8.0.0 to ^8.1.0 (#108)

Fixed

  • Exclude dist/__fixtures__ files from published package (#114)

Changed

  • Make Data type-parameter optional in JsonRpcError (#102)

Fixed

  • BREAKING: undefined is now not recognized as valid JSON value
    • Update dependency @metamask/utils from ^5.0.0 to ^8.0.0 (#101)

Fixed

  • Allow passing unknown values as cause (#91)
    • Prevously, only Error instances were allowed, but any value can be thrown as error

Added

  • 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

Changed

  • 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
  • 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

Fixed

  • Correctly type ethErrors getter function argument objects as optional (#36)

4.0.2 - 2020-11-17

Changed

  • Mark the data property of EthereumRpcError and EthereumProviderError as optional rather than T | undefined (#34)

Fixed

  • Correctly type SerializedEthereumRpcError.stack as string, if present (#34)

4.0.1 - 2020-11-03

Changed

  • Updated README.md (#30)

4.0.0 - 2020-11-02

Changed

  • BREAKING: ERROR_CODES export renamed to errorCodes (#28)
  • BREAKING: ethErrors getters will now throw an error if passed a truthy, non-string message (#28)
  • Updated TypeScript types for all exports (#28)

3.0.0 - 2020-07-29

Changed

  • 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

Changed

  • Prevent unnecessary files from being published (#17)

2.1.0 - 2020-05-11

Added

  • New/missing errors:
    • ethErrors.provider (EIP-1193)
      • .disconnected, 4900
      • .chainDisconnected, 4901
    • ethErrors.rpc (EIP-1474)
      • .limitExceeded, -32005

Changed

  • Rename package to eth-rpc-errors

2.0.2 - 2020-02-12

Changed

  • Fix faulty null checks throughout codebase (764832d)

2.0.1 - 2020-01-31

Added

  • Error codes in docstrings (5452001)

2.0.0 - 2019-09-26

Changed

  • Exports
    • errors renamed ethErrors
    • JsonRpcError renamed EthereumRpcError
    • EthJsonRpcError renamed EthereumProviderError
      • It is still a subclass of EthereumRpcError
    • 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
      • EIP-1193 errors now namespaced under ethErrors.provider
        • Formerly under errors.eth
    • 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 }
  • TypeScript
    • Updated affected interfaces

1.1.0 - 2019-09-16

Changed

  • 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