This repo provides a set of JavaScript components shared by all of the repos contained in this mono-repo.
It provides a set of JS classes to encapsulate certain web3 behavior shared among all the repos:
This JS class is in charge of providing JS wrappers for smart contracts (a.k.a. contract artifacts).
It provides two flavors of artifacts, one dynamic
and another one static
, following the same interface.
The difference is that the dynamic one will load the contract schemas lazily, while the static one will load all of them before hand.
This JS class is intended to be a JS wrapper exposing all the functionality required to interact with an Aragon Court instance. It basically encapsulates all the complexity behind its different smart contracts, exposing a single interface. This class is used by all the projects of the Aragon Court back-office to interact with a court instance.
This JS class is in charge of providing all the web3 commonly used components in a web3 application like: a web3 instance, a web3 provider, an artifacts object, the default sender, and some other particular entities like a court instance, a court subgraph, among others.
It also provides two different flavors of environments, one for browser
and another one based on Truffle configs
.
The first one is only used by the back-office frontend app where all the components mentioned above are built based on a browser web3 provider like Metamask
, while the second one is used by all the other back-office projects (cli
, server
, and services
) where all these components are derived from a Truffle config file.
It provides the following helper functions:
email-client
: Handles sending emails through Postmarkgas-price-oracle
: Get gas price oracle object used to know the current gas prices being paid on each networkget-wallet-from-pk
: Decode Ethereum address based on a private keylogger
: Logger object that provides a friendly interface for fancy loggingnumbers
: BigNumber-related helper functionssleep
: Sleep function to wait a number of secondstimes
: Time constants for using withDate()
voting
: Utils related to the CR Voting module of Aragon Court