@requestnetwork/request-logic
is a typescript library part of the Request Network protocol.
It is the default implementation of the Request Logic layer. This layer is responsible for the business logic: properties and actions of requests.
Request logic creates actions, that are signed and sends them to the layer below, Transaction.
npm install @requestnetwork/request-logic
See packages/usage-examples/request-logic.ts.
createRequest
: create a requestcreateEncryptedRequest
: create an encrypted requestacceptRequest
: accept a requestcancelRequest
: cancel a requestincreaseExpectedAmountRequest
: increase the amount of a requestreduceExpectedAmountRequest
: reduce the amount of a requestgetFirstRequestFromTopic
: get the first request from the actions indexed by a topic (should be used with requestId)getRequestsByTopic
: get all the requests for a topiccomputeRequestId
: compute the ID of a request before actually creating it.
When an action is sent to the Transaction layer, strings named topics can be attached to it. These topics are used to index the action and, therefore, allow to retrieve it later in order to reconstruct the request.
Every action has at least its request id as a topic.
When creating a request, arbitrary topics can be attached to the createRequest
action to index the request. For example, it can be the identity of the request creator in order to be able, later, to retrieve every request created by a user. Other actions than createRequest
doesn't need additional topics since it contains the request id that can be linked to the corresponding createRequest
action of the request.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Read the contributing guide