UNPKG

@kyuzan/mountain-public-api-client

Version:

Auto-generated TypeScript client for MOUNTAIN Public API

164 lines (117 loc) 4.33 kB
# @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/).