ILP Plugin BTP
One plugin to rule them all
Used right out of the box, this plugin is capable of representing a data
channel with no money involved. It will send BTP messages with no knowledge
of the data within, so it can be used for ILP packets. The
is a no-op, because there is no system involved handling money.
The main use of this plugin, however, is as a building block for plugins that
do have an underlying ledger. In this way, it's the successor of
Plugins that sub-class the
AbstractBtpPlugin should override
_handleMoney at least.
Use as a Data Channel for ILP
const server =listener:port: 9000secret: 'shh_its_a_secret'await serverconst client =server: 'btp+ws://:shh_its_a_secret@localhost:9000'await clientserverclientawait client
Use as a Base Class for a New Plugin
Two functions must be defined in order for the plugin to handle money.
sendMoney (amount: string) -> Promise<null>: sends
amountof units to the peer. This should be done via a BTP
_handleMoney (from: string, btpPacket: BtpPacket) -> Promise<Array<BtpSubProtocol>>: This function is called on an incoming BTP
BtpSubProtocol is made up of:
protocolName: string: The name of this side protocol. ILP-level information must be named
contentType: number: The content type. 0 is
application/octet-stream, 1 is
text/plain-utf8, and 2 is
application/json. Mainly used for logging and smart deserializing.
data: buffer: The actual protocol data.