Initial commit
This commit is contained in:
156
SETUP.md
Normal file
156
SETUP.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# Setup Guide
|
||||
|
||||
Complete setup instructions for Chain 138 full enablement project.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Node.js >= 18.0.0
|
||||
- pnpm >= 8.0.0 (or use corepack: `corepack enable`)
|
||||
|
||||
## Installation
|
||||
|
||||
1. Clone the repository (if applicable)
|
||||
|
||||
2. Install dependencies:
|
||||
```bash
|
||||
pnpm install
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
Build all packages:
|
||||
```bash
|
||||
pnpm build
|
||||
```
|
||||
|
||||
Build a specific package:
|
||||
```bash
|
||||
pnpm --filter @dbis-thirdweb/chain build
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
### Setup Test Environment
|
||||
|
||||
1. Create test environment file:
|
||||
```bash
|
||||
cd apps/smoke-tests
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
2. Edit `.env` and add your test private key:
|
||||
```bash
|
||||
TEST_PRIVATE_KEY=your_private_key_here
|
||||
TEST_RPC_URL=https://138.rpc.thirdweb.com # Optional
|
||||
TEST_RECIPIENT=0x0000000000000000000000000000000000000001 # Optional
|
||||
```
|
||||
|
||||
### Run Tests
|
||||
|
||||
Run all smoke tests:
|
||||
```bash
|
||||
pnpm smoke-tests
|
||||
```
|
||||
|
||||
Or from the smoke-tests directory:
|
||||
```bash
|
||||
cd apps/smoke-tests
|
||||
pnpm test
|
||||
```
|
||||
|
||||
Run specific test suite:
|
||||
```bash
|
||||
cd apps/smoke-tests
|
||||
pnpm test:wallets
|
||||
pnpm test:x402
|
||||
pnpm test:bridge
|
||||
pnpm test:tokens
|
||||
pnpm test:ai
|
||||
pnpm test:http-api
|
||||
```
|
||||
|
||||
## Using the Packages
|
||||
|
||||
### In Your Project
|
||||
|
||||
Install packages locally (if published):
|
||||
```bash
|
||||
pnpm add @dbis-thirdweb/chain @dbis-thirdweb/wallets
|
||||
```
|
||||
|
||||
Or use workspace packages directly (in this monorepo):
|
||||
```typescript
|
||||
import { chain138 } from '@dbis-thirdweb/chain';
|
||||
import { getWalletConfig } from '@dbis-thirdweb/wallets';
|
||||
```
|
||||
|
||||
### Example Usage
|
||||
|
||||
```typescript
|
||||
import { ThirdwebSDK } from '@thirdweb-dev/sdk';
|
||||
import { chain138 } from '@dbis-thirdweb/chain';
|
||||
import { getWalletConfig } from '@dbis-thirdweb/wallets';
|
||||
|
||||
// Initialize SDK with Chain 138
|
||||
const sdk = new ThirdwebSDK(chain138, privateKey);
|
||||
|
||||
// Get wallet configuration
|
||||
const config = getWalletConfig({
|
||||
confirmationBlocks: 2,
|
||||
});
|
||||
```
|
||||
|
||||
See individual package READMEs for detailed usage examples.
|
||||
|
||||
## Development
|
||||
|
||||
### Linting
|
||||
|
||||
Lint all packages:
|
||||
```bash
|
||||
pnpm lint
|
||||
```
|
||||
|
||||
### Package Structure
|
||||
|
||||
```
|
||||
packages/
|
||||
chain/ - Chain 138 definition (CAIP-2: eip155:138)
|
||||
wallets/ - Wallet config & chain switching
|
||||
x402/ - Payment primitives & pay-to-access
|
||||
bridge/ - Bridge routes & execution
|
||||
tokens/ - ERC20/721/1155 token management
|
||||
ai/ - Chain-aware AI prompts & actions
|
||||
http-api/ - HTTP API client wrapper
|
||||
|
||||
apps/
|
||||
smoke-tests/ - End-to-end tests for all offerings
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Build Errors
|
||||
|
||||
- Ensure all dependencies are installed: `pnpm install`
|
||||
- Clear build cache and rebuild: `rm -rf packages/*/dist && pnpm build`
|
||||
|
||||
### Test Failures
|
||||
|
||||
- Verify `TEST_PRIVATE_KEY` is set in `apps/smoke-tests/.env`
|
||||
- Check RPC endpoint is accessible: `curl https://138.rpc.thirdweb.com`
|
||||
- Ensure test account has sufficient balance for transactions
|
||||
|
||||
### Type Errors
|
||||
|
||||
- Rebuild all packages: `pnpm build`
|
||||
- Check TypeScript version compatibility
|
||||
- Verify workspace dependencies are linked: `pnpm list --depth=0`
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Configure your test environment (`.env` file)
|
||||
2. Run smoke tests to verify all offerings work
|
||||
3. Integrate packages into your application
|
||||
4. Deploy to production when ready
|
||||
|
||||
For detailed package documentation, see individual README files in each package directory.
|
||||
Reference in New Issue
Block a user