@chiss/facilitator
v1.1.0
Published
Chiss Facilitator Network SDK
Readme
Chiss Facilitator SDK
This is an interface for facilitator networks. Recommended to be used by facilitators for their services.
Features
- Methods to manager and transfer stablecoins from treasury to users
- Support for meta transactions
- Accessibility to facilitators treasury balances
- TypeScript configuration for library development
- Testing setup with Mocha, Chai, and Sinon
- Linting with ESLint and Prettier
- Build system with source maps and declaration files
- Proper module structure for SDK development
- Assets handling
Getting Started
Prerequisites
- Node.js (v20 or higher)
- pnpm (v10 or higher)
Installation
# Clone the repository
git clone https://github.com/chissprotocol/chiss-facilitator-sdk.git
cd chiss-facilitator-sdk
# Install dependencies
pnpm installDevelopment
The project has the following structure:
chiss-facilitator-sdk/
├── src/ # Source code
│ ├── assets/ # Static assets
│ ├── constants.ts # Constants
│ ├── index.ts # Main entry point
│ └── types.ts # TypeScript interfaces
├── test/ # Test files
│ ├── sdk-test.spec.ts # SDK tests
│ └── setup.ts # Test setup
├── .editorconfig # Editor configuration
├── .eslintrc.js # ESLint configuration
├── .prettierrc # Prettier configuration
├── tsconfig.json # TypeScript configuration
└── tsconfig.build.json # Build-specific configurationScripts
# Build the SDK
pnpm build
# Run tests
pnpm test
# Lint code
pnpm lint
# Fix linting issues
pnpm lint:fix
# Format code with Prettier
pnpm prettierUsing the SDK
After building, you can import the SDK in your projects:
import { initFacilitatorNetwork } from '@chiss/facilitator'
// Use the SDK
const facilitator = await initFacilitatorNetwork({
stablecoin: 'chNGN',
rpcUrl: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key',
chainId: 1,
})
facilitator.transfer({
amount: '100',
to: '0x0000000000000000000000000000000000000000',
})Testing
Tests are written using Mocha and Chai. The test setup provides:
- Chai assertions with
shouldandexpect - Sinon for mocks, stubs, and spies
- ProxyQuire for mocking dependencies
Add your tests in the test directory with the .spec.ts suffix.
Publishing
# Build the SDK before publishing
pnpm build
# Publish to npm
npm publishContributing
- Fork/Clone the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Commit Message Conventions
- fix: resolve bug (patch version bump: update patch version e.g from 1.0.0 to 1.0.1)
- feat: add new feature (minor version bump: update minor version e.g from 1.0.0 to 1.1.0)
- feat!: breaking change (major version bump: update major version e.g from 1.0.0 to 2.0.0)
- chore: update dependencies (no version bump)
- docs: update documentation (no version bump)
- style: update code style (no version bump)
- refactor: update code structure (no version bump)
