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-cipher |
Encrypt /Decrypt requests using Ethereum private keys | |
@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/lit-protocol-cipher |
Encrypt / Decrypt requests using Lit Protocol | |
@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
Enable Corepack to use the same Yarn version as described in package.json.
corepack enableInstall all the packages in the monorepo.
yarn installBuild all the packages in the monorepo.
yarn run buildLint all the packages in the monorepo.
yarn run lintTest all the packages in the monorepo.
Some tests will require services to be running locally
docker compose upDeploy Smart Contracts
yarn run deploy:contractsRun request-node locally
yarn run start:request-nodeRun all tests
yarn run testTest a specific package by replacing @requestnetwork/request-client.js with the desired package name:
yarn workspace @requestnetwork/request-client.js testClean Docker Volumes
docker compose down -vThis repository hosts the packages for the second version of Request. The v1 packages are deprecated and can be found on requestNetwork-v1-archive.
