Skip to content

OpenZeppelin/defender-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenZeppelin Defender V2 SDK Packages

NPM Package OpenSSF Scorecard OpenSSF Best Practices Scorecard supply-chain security CI

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

  • 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.

Testing

  • Run pnpm nx-test-skip-cache to run unit tests across all packages.

Linting & Styling

  • Run pnpm lint:check or pnpm prettier:check at the project root. For fixing pnpm 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