Skip to content

Reduce download time by maximizing static composition and dependency injection. Eliminate runtime configs. #1202

Closed as not planned
@MantisClone

Description

@MantisClone

Problem

Request Network uses config variables at runtime. This means that the package MUST contain code to support all possible configurations even if they're not used.

Proposed Solution

Use dependency injection to empower the user to select the features and dependencies they want. This will involve API BREAKING CHANGES and refactoring package boundaries.

Definition of Done

This issue is an EPIC that encompasses the following subtasks:

Example

In the following code snippet, notice that the currencyManager, chains, and balanceDetectors are all injected.

const requestNetwork = new RequestNetwork({
  decryptionProvider,
  signatureProvider,
  currencyManager,
  chains,
  // if no compatible balance detector is found, the balance will be null. 
  balanceDetectors: [
    new EvmTheGraphBalanceDetector(chains, currencyManager),
    new NearTheGraphBalanceDetector(chains),
    new BtcBalanceDetector(),
    new SolanaBalanceDetector(),
    new SuperfluidBalanceDetector(chains),
    // ...
  ]
})

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions