defender-sdk
defender-sdk copied to clipboard
Defender SDK
This monorepo contains individual OpenZeppelin Defender TypeScript clients and publishes the collection of clients as @openzeppelin/defender-sdk
Usage
For detailed instructions on how to use the SDK, please refer to our SDK Documentation.
Development Setup
-
pnpmfor workspaces & dependency management. -
nxfor build & tests. -
changesetsfor 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 pnpmif you haven't already. -
To skip cache on the subsequent build steps you can use
pnpm nx-build-skip-cache.
Testing
- Run
pnpm nx-test-skip-cacheto run unit tests across all packages.
Linting & Styling
- Run
pnpm lint:checkorpnpm prettier:checkat the project root. For fixingpnpm lint:fix
Combining style, build & test in single command
- Run
pnpm nx-build-test-skip-cache.
Examples
The examples repo has sample code - note that most examples rely on dotenv for loading API keys and secrets.
Lower Environments
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=
Determinstic Builds & Secure Publishes
- We use slsa framework pronounced "salsa" for reproducible builds & secure pushes. Verification is done using provenance