@kyuzan/mountain-public-api-client
Version:
Auto-generated TypeScript client for MOUNTAIN Public API
164 lines (117 loc) • 4.33 kB
Markdown
# @kyuzan/mountain-public-api-client
TypeScript client library for MOUNTAIN Public API.
## Installation
```bash
npm install @kyuzan/mountain-public-api-client
# or
yarn add @kyuzan/mountain-public-api-client
# or
pnpm add @kyuzan/mountain-public-api-client
```
## Quick Start
```typescript
import { Configuration, ProjectApi } from '@kyuzan/mountain-public-api-client';
// Configure the client
const config = new Configuration({
basePath: 'https://api.mountain-dev.xyz',
apiKey: 'your-api-key', // For API Key authentication
// or
accessToken: 'your-access-token', // For Access Token authentication
});
// Create API instances
const projectApi = new ProjectApi(config);
// Use the API
const projects = await projectApi.getProjects();
console.log(projects.data);
```
## Authentication
MOUNTAIN Public API supports two authentication methods:
### 1. API Key Authentication
```typescript
const config = new Configuration({
basePath: 'https://api.mountain-dev.xyz',
apiKey: 'your-api-key',
});
```
### 2. Access Token Authentication
```typescript
const config = new Configuration({
basePath: 'https://api.mountain-dev.xyz',
accessToken: 'your-access-token',
});
```
## Available APIs
### ProjectApi
- `getProjects()` - Get list of projects
- `getProjectDetail(projectId)` - Get project details
### ContractApi
- `importContract(projectId, request)` - Import a smart contract
- `activateContractFunction(projectId, contractId, functionName, request)` - Activate a contract function
- `deactivateContractFunction(projectId, contractId, functionName, request)` - Deactivate a contract function
- `getContractActivatedFunctions(projectId, contractId, request)` - Get activated functions
### TransactionApi
- `executeTransaction(projectId, request)` - Execute a transaction
- `getTransaction(projectId, transactionId)` - Get transaction details
- `getTransactions(projectId)` - Get list of transactions
### EventNotifierApi
- `createEventNotifierSubscription(projectId, request)` - Create webhook subscription
- `getEventNotifierSubscriptions(projectId)` - Get webhook subscriptions
- `updateEventNotifierSubscriptionWebhook(projectId, subscriptionId, request)` - Update webhook URL
- `getEventNotifierRecords(projectId, request)` - Get event records
- `resendFailedWebhook(projectId, recordId, request)` - Resend failed webhook
## Examples
### Execute a Transaction
```typescript
import { Configuration, TransactionApi } from '@kyuzan/mountain-public-api-client';
const config = new Configuration({
basePath: 'https://api.mountain-dev.xyz',
accessToken: 'your-access-token',
});
const transactionApi = new TransactionApi(config);
const result = await transactionApi.executeTransaction('project-id', {
chain: 'ethereum',
functionName: 'transfer',
contractAddress: '0x...',
args: ['0xrecipient...', '1000000000000000000'],
abi: [...], // Contract ABI
});
console.log('Transaction ID:', result.data.transactionId);
```
### Subscribe to Events
```typescript
import { Configuration, EventNotifierApi } from '@kyuzan/mountain-public-api-client';
const config = new Configuration({
basePath: 'https://api.mountain-dev.xyz',
apiKey: 'your-api-key',
});
const eventApi = new EventNotifierApi(config);
const subscription = await eventApi.createEventNotifierSubscription('project-id', {
chain: 'ethereum',
contractAddress: '0x...',
eventName: 'Transfer',
webhookUrl: 'https://your-webhook-endpoint.com/webhook',
});
console.log('Subscription ID:', subscription.data.subscriptionId);
```
## Error Handling
```typescript
import { AxiosError } from 'axios';
try {
const result = await projectApi.getProjects();
} catch (error) {
if (error instanceof AxiosError) {
console.error('API Error:', error.response?.data);
console.error('Status:', error.response?.status);
} else {
console.error('Unknown error:', error);
}
}
```
## TypeScript Support
This package is written in TypeScript and provides full type definitions for all API requests and responses.
## API Reference
For detailed API documentation, please visit [MOUNTAIN Public API Reference](https://mountain-public-docs.netlify.app/api-reference/).
## License
MIT
## Support
For support and questions, please visit [MOUNTAIN Documentation](https://mountain-public-docs.netlify.app/).