This monorepo contains individual OpenZeppelin Defender TypeScript clients and publishes the collection of clients as @openzeppelin/defender-sdk
For detailed instructions on how to use the SDK, please refer to our SDK Documentation.
-
pnpm
for workspaces & dependency management. -
nx
for build & tests. -
changesets
for versioning, changelog management & publishing. -
Checkout the repo and run
pnpm i --ignore-scripts --prefer-offline && pnpm run build
.Install pnpm globally with
npm i -g pnpm
if you haven't already. -
To skip cache on the subsequent build steps you can use
pnpm nx-build-skip-cache
.
- Run
pnpm nx-test-skip-cache
to run unit tests across all packages.
- Run
pnpm lint:check
orpnpm prettier:check
at the project root. For fixingpnpm lint:fix
- Run
pnpm nx-build-test-skip-cache
.
The examples
repo has sample code - note that most examples rely on dotenv
for loading API keys and secrets.
You can set the following environment variables to control to which instance your client will connect to:
# all modules/clients besides relay signer
DEFENDER_API_URL=
DEFENDER_POOL_ID=
DEFENDER_POOL_CLIENT_ID=
# relay signer
DEFENDER_RELAY_SIGNER_API_URL=
DEFENDER_RELAY_SIGNER_POOL_ID=
DEFENDER_RELAY_SIGNER_POOL_CLIENT_ID=
- We use slsa framework pronounced "salsa" for reproducible builds & secure pushes. Verification is done using provenance