hyperlane-xyz / hyperlane-monorepo

The home for Hyperlane core contracts, sdk packages, and other infrastructure
https://hyperlane.xyz
Other
246 stars 282 forks source link

Refactor provider construction #1305

Closed jennifermarie closed 1 year ago

jennifermarie commented 1 year ago

See #1238 for context/exploration.

mattiekat commented 1 year ago

https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/1362

Going to go ahead and cancel this ticket because I learned a few things in the process 1) It is basically impossible to make a dynamic middleware contrary to what I had thought going in, I did manage to make one sort-of, but the amount of code required makes the result undesirable over just adding more code to continue supporting static ones 2) we don't actually need dynamic middleware to support the quorum provider, so this change would not enable any new funcunality 3) while this did simplify the process of making things that use providers (was able to delete MakeableWithProvider and the associated builders, it just does not simplify things enough.

The good news is I did get a chance to really learn and understand how this confusing code path works, and I also got to learn a fair bit about macros, but sadly this is just not going to work out in any meaningful way at this time.