Skip to content
/ esp Public
forked from latticexyz/mud

Extensible Signaling Primitive (Built on MUD)

License

Notifications You must be signed in to change notification settings

LPSCRYPT/esp

 
 

Repository files navigation

esp

The Extensible Signaling Primitive is a framework for building modular (consisting of subcomponents with well-defined interfaces and functions that can be consumed independently of each other) and composable (the degree to which these subcomponents can be combined to form more complex systems) signaling systems. A signal is simply a data input which may result in changes to the state of the system being signalled. In this regard signaling systems operate as a state machine. In fact, a signaling system taking place within atomic blockchain transactions is a well defined state machine.

esp is a state management system designed for onchain signal processing. DAOs can use it to quickly implement new voting schemes, preference capture boards, treasury management applications, and proposal voting methods. esp leverages the robust MUD state management framework to compartmentalize signal inputs into discrete storage mappings in components, mutated by systems, the wiring together of which allows for anyone to modularly compose their own signal Stream easily and without needing to switch over to a new set of DAO tooling. Existing frameworks can be wrapped within signal Streams. esp is not fully MUD compliant, the notable exception being that the SignalRouterSystem stores state. However, this may be changed in a future update.

The signal Stream is an abstraction built atop MUD which routes all incoming signals through a SignalRouter. Streams can be instantiated permisionlessly from the StreamOwnerRegistry and whitelist various systems which define the mutations which can occur to their inputs, and which systems are permissioned to update component state for that stream. Additionally, a MemberRegistrySystem (inherting from BaseMemberRegistrySystem) is defined for each signal Stream which determines user signalling permissions within a particular Stream. Designed with composability in mind, a MemberRegistrySystem may be deployed once and used for multiple streams.

This repo is currently an unaudited alpha build, while fit for testing do not build any funds-controlling systems without knowing what you are doing!

Relevant code for esp is in /packages/solecs/src/esp-contracts.

This repo is a fork of MUD core, and none of the code outside of packages/solecs is being used in the current implementation. However, the MUD framework has many tools which could be of use in future frontend and middleware integrations for esp.

System Diagram

About

Extensible Signaling Primitive (Built on MUD)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 59.3%
  • Solidity 26.2%
  • Go 11.7%
  • WebAssembly 1.4%
  • JavaScript 0.5%
  • EJS 0.3%
  • Other 0.6%