Skip to content

Commit 0a585b0

Browse files
committed
ci: add lint step to CI workflow and improve documentation
- Add npm run lint step to CI workflow after dependency installation - Add detailed JSDoc comment for planned Circle Paymaster API integration in deposit.ts - Add CONTRIBUTING.md with development setup and contribution guidelines
1 parent d85ae50 commit 0a585b0

File tree

3 files changed

+65
-2
lines changed

3 files changed

+65
-2
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ jobs:
1818
- name: Install dependencies
1919
run: npm install
2020

21+
- name: Run linter
22+
run: npm run lint
23+
2124
# scan:
2225
# needs: lint-and-test
2326
# if: ${{ github.event_name == 'pull_request' && github.event.repository.private == false }}

CONTRIBUTING.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Contributing to Arc Multichain Wallet
2+
3+
Thank you for your interest in contributing to Arc Multichain Wallet! We welcome contributions from the community.
4+
5+
## Getting Started
6+
7+
1. Fork the repository
8+
2. Clone your fork locally
9+
3. Create a new branch for your changes
10+
4. Make your changes
11+
5. Submit a pull request
12+
13+
## Development Setup
14+
15+
```bash
16+
# Install dependencies
17+
npm install
18+
19+
# Copy environment variables
20+
cp .env.example .env.local
21+
22+
# Start local Supabase (requires Docker)
23+
npx supabase start
24+
npx supabase db push
25+
26+
# Start the development server
27+
npm run dev
28+
```
29+
30+
## Pull Request Process
31+
32+
1. Ensure your code follows the existing code style and passes linting (`npm run lint`).
33+
2. Update documentation if your changes affect the public API or user-facing behavior.
34+
3. Write clear, descriptive commit messages using [Conventional Commits](https://www.conventionalcommits.org/).
35+
4. Keep pull requests focused — one feature or fix per PR.
36+
5. Include a clear description of what your PR does and why.
37+
38+
## Code of Conduct
39+
40+
Please be respectful and constructive in all interactions. We are committed to providing a welcoming and inclusive experience for everyone.
41+
42+
## License
43+
44+
By contributing, you agree that your contributions will be licensed under the [Apache License 2.0](LICENSE).

lib/deposit.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,24 @@ export async function handleDeposit(
4646
return { error: 'Missing amount' };
4747
}
4848

49-
// TODO: Integrate Circle Paymaster API for gas abstraction
50-
// Placeholder for deposit logic with gas paid in USDC
49+
/**
50+
* Circle Paymaster API Integration (Planned)
51+
*
52+
* The Circle Paymaster API enables gas abstraction for ERC-4337 UserOperations,
53+
* allowing users to pay transaction fees in USDC instead of native gas tokens.
54+
*
55+
* Planned integration steps:
56+
* 1. Construct the deposit UserOperation for the target chain.
57+
* 2. Call the Circle Paymaster API (`POST /paymaster/policy/{policyId}/sponsor`)
58+
* to obtain a sponsored `paymasterAndData` payload.
59+
* 3. Sign the sponsored UserOperation with the user's developer-controlled wallet.
60+
* 4. Submit the signed UserOperation to the bundler for on-chain execution.
61+
*
62+
* This will replace the mock deposit logic below with actual on-chain transactions
63+
* where gas fees are transparently covered in USDC via the Circle Paymaster.
64+
*
65+
* @see https://developers.circle.com/paymaster/overview
66+
*/
5167
const depositResult = {
5268
txHash: 'mock-tx-hash',
5369
gatewayWalletAddress: 'mock-gateway-wallet-address',

0 commit comments

Comments
 (0)