Right now ilp-core implements two primary functions: quoting and managing multiple clients. These are relatively minimal bits of functionality but as a result of the current structure, ilp-core has to wrap and re-expose all of the plugin methods and events. This provides little value and makes the stack unnecessarily complicated.
For quoting, right now it seems that the ilp client and the ilp-connector use different methods for quoting and generating the source transfers. If the behavior is different for a reason, this suggests that quoting is not really shared functionality and thus should be implemented separately by the ilp and ilp-connector modules.
Regarding managing multiple clients, this functionality is not currently used by the ilp client and I don't think we need to support a multi-plugin sender any time in the near future. Again, the actual functionality provided by the core class of this module is pretty minimal, so it doesn't seem worth it to have another wrapper layer around the plugin.
I would propose that we move the quoting functionality from ilp-core into the ilp module, potentially exported separately as ILP.ILQP, move the multi-plugin functionality into the ilp-connector, and get rid of this module.
Right now
ilp-core
implements two primary functions: quoting and managing multiple clients. These are relatively minimal bits of functionality but as a result of the current structure,ilp-core
has to wrap and re-expose all of the plugin methods and events. This provides little value and makes the stack unnecessarily complicated.For quoting, right now it seems that the
ilp
client and theilp-connector
use different methods for quoting and generating the source transfers. If the behavior is different for a reason, this suggests that quoting is not really shared functionality and thus should be implemented separately by theilp
andilp-connector
modules.Regarding managing multiple clients, this functionality is not currently used by the
ilp
client and I don't think we need to support a multi-plugin sender any time in the near future. Again, the actual functionality provided by thecore
class of this module is pretty minimal, so it doesn't seem worth it to have another wrapper layer around the plugin.I would propose that we move the quoting functionality from
ilp-core
into theilp
module, potentially exported separately asILP.ILQP
, move the multi-plugin functionality into theilp-connector
, and get rid of this module.