Request is a decentralized network built on top of Ethereum, which allows anyone, anywhere to request a payment. A full description of the protocol may be found in our whitepaper.
This repository contains all the Request Network developer tools written in TypeScript.
Join the Request Discord to get in touch with us.
Package | Version | Description |
---|---|---|
@requestnetwork/advanced-logic |
Extensions to the protocol | |
@requestnetwork/request-client.js |
Library to use Request nodes as servers | |
@requestnetwork/data-access |
Indexing an batching of transactions | |
@requestnetwork/data-format |
Standards for data stored on Request, like invoices format | |
@requestnetwork/epk-signature |
Sign requests using Ethereum private keys | |
@requestnetwork/ethereum-storage |
Storage of Request data on Ethereum and IPFS, with custom indexing | |
@requestnetwork/epk-decryption |
Decrypt encrypted requests using Ethereum private keys | |
@requestnetwork/payment-detection |
Client-side payment detection, to compute the balance. | |
@requestnetwork/payment-processor |
Pay a request using a web3 wallet | |
@requestnetwork/request-logic |
The Request business logic: properties and actions of requests | |
@requestnetwork/request-node |
Web server that allows easy access to Request system | |
@requestnetwork/transaction-manager |
Creates transactions to be sent to Data Access, managing encryption | |
@requestnetwork/types |
Typescript types shared across @requestnetwork packages | |
@requestnetwork/utils |
Collection of tools shared between the @requestnetwork packages | |
@requestnetwork/web3-signature |
Sign requests using web3 tools (like Metamask) | |
@requestnetwork/multi-format |
Serialize and deserialize object in the Request Network protocol | |
@requestnetwork/thegraph-data-access |
Storage of Request data on Ethereum and IPFS, indexed by TheGraph | |
@requestnetwork/smart-contracts |
Sources and artifacts of the smart contracts |
Package | Description |
---|---|
@requestnetwork/integration-test |
Integration test for the Request system |
@requestnetwork/toolbox |
Toolbox for Request Network |
@requestnetwork/usage-example |
Usage examples of Request Network |
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Read the contributing guide
Install all the packages in the monorepo.
yarn install
Build all the packages in the monorepo.
yarn run build
Lint all the packages in the monorepo.
yarn run lint
Test all the packages in the monorepo.
Some tests will require services to be running locally
docker compose up
Deploy Smart Contracts
yarn run deploy:contracts
Run request-node locally
cp ./packages/request-node/.env.example ./packages/request-node/.env
yarn run start:request-node
Run all tests
yarn run test
Test a specific package by replacing @requestnetwork/request-client.js
with the desired package name:
yarn workspace @requestnetwork/request-client.js test
Clean Docker Volumes
docker compose down -v
This repository hosts the packages for the second version of Request. The v1 packages are deprecated and can be found on requestNetwork-v1-archive.