Skip to content

Port go-nitro payment channels to TypeScript #386

@ashwinphatak

Description

@ashwinphatak
  • Setup monorepo
    • Add package for go-nitro library
    • Add web-app using go-nitro library
    • Add tests to run in CI
    • Implement CI
  • Port types and interfaces
  • Port classes and implementations
    • Port classes with empty methods
    • Port implementation
      • Methods required for commands (direct-fund, virtual-fund, pay, virtual-defund, direct-defund)
  • DurableStore implementation
  • Metrics implementation
    • Implement RecordQueueLength method
    • Implement RecordObjectiveStarted and RecordObjectiveCompleted methods
    • Implement RecordFunctionDuration method
  • Test command flows
    • direct-fund
    • get-ledger-channel
    • virtual-fund
      • Test command in node environment
      • Handle nil pointer case for bigint serialization
    • get-payment-channel
    • pay
      • Test command in node environment
    • virtual-defund
      • Test command in node environment
    • direct-defund
      • Test command in node environment
      • Debug empty slice serialization mismatch
    • Match serialization for objects stored in memstore
    • Payments through intermediaries
    • End-to-end integration tests for CI
  • Implement message service for browser
    • Browser <-> Browser
      • Relayed connection
      • Direct WebRTC connection
    • Browser <-> NodeJS
    • Browser <-> go-nitro
    • Use @cerc-io/peer in ts-nitro
  • Integrate ts-nitro in mobymask-v2
    • Run ts-nitro client along with watcher server
    • Payments
      • For watcher queries
      • For phisher reports
      • For p2p network services (data forwarding)
    • Wallet/key/signature management (MetaMask snaps)
    • Routing of nitro messages in federated relay network
  • Update ts-nitro with latest go-nitro changes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions