Closed
Description
Most of ipfs / libp2p stack depends on Multiaddr class which introduces large number of dependencies, it is made worth by the fact that typescript forces all of them to agree on the same exact package to type check.
We should instead introduce Multiaddr interface and type our APIs so they take / produce value compatible with that interface. That way they become implementation agnostic allowing us to swap / upgrade implementation without coordinating these changes across the board.
Multiaddr Implementation in this library will just become a one implementation of that interface.