UNPKG

@aryze/reforge

Version:

TypeScript SDK for Aryze Reforge cross-chain bridge protocol

153 lines (112 loc) 3.36 kB
# @aryze/reforge TypeScript SDK for Aryze Reforge cross-chain bridge protocol. ## Installation ```bash npm install @aryze/reforge ``` ## Quick Start ### 1. Configuration ```typescript import reforge from '@aryze/reforge'; // AWS-compatible configuration (recommended) const config = reforge.createAWSConfig({ apiKey: 'your-api-key', apiUrl: 'https://api.aryze.io/history/v1', }); reforge.configure(config); ``` ### 2. Initiate Reforge ```typescript import reforge, { IReforgeInitiate } from '@aryze/reforge'; const data: IReforgeInitiate = { chainIdHex0: '0x1', // Source chain (Ethereum) chainIdHex1: '0x89', // Destination chain (Polygon) token0: '0x...', // Source token address token1: '0x...', // Destination token address amount0: '1000000000000000000', // Amount in wei priceToken0InUSD: 1.0, // USD price tx0: '0x...', // Source transaction hash account0: '0x...', // Source account tx0Timestamp: Math.floor(Date.now() / 1000), tokenType: 'erc20', }; const result = await reforge.initiateReforge(data); console.log(result); // { data: { success: true } } or { error: "..." } ``` ### 3. Finish Reforge ```typescript import reforge, { IReforgeFinish, HistoryId } from '@aryze/reforge'; const data: IReforgeFinish = { historyId: '0x1_0x...' as HistoryId, // From initiate response amount1: '990000000', // Amount received priceToken1InUSD: 1.0, // USD price tx1: '0x...', // Destination transaction hash tx1Timestamp: Math.floor(Date.now() / 1000), }; const result = await reforge.finishReforge(data); console.log(result); // { data: { success: true } } or { error: "..." } ``` ## Environment Variables Create a `.env` file for your API credentials: ```env API_KEY=your-api-key API_URL=https://api.aryze.io/history/v1 ``` Then in your code: ```typescript const config = reforge.createAWSConfig({ apiKey: process.env.API_KEY, apiUrl: process.env.API_URL, }); ``` ## AWS API Gateway Compatibility The SDK includes AWS-compatible configuration that resolves common CORS and header issues: ```typescript // AWS-compatible configuration (automatically enables minimal mode) const awsConfig = reforge.createAWSConfig({ apiKey: 'your-api-key', apiUrl: 'https://your-api-gateway.amazonaws.com/prod', }); // Manual configuration with minimal mode reforge.configure({ apiKey: 'your-api-key', apiUrl: 'https://your-api-gateway.amazonaws.com/prod', includeUserAgent: false, // Disable User-Agent header minimalMode: true, // Use minimal fetch options debug: false, // Disable debug logging }); ``` ## TypeScript Support The SDK is written in TypeScript and provides full type definitions: ```typescript import reforge, { IReforgeInitiate, IReforgeFinish, ActionResponse, HistoryId, TokenType, } from '@aryze/reforge'; ``` ## Error Handling All methods return a consistent response format: ```typescript const result = await reforge.initiateReforge(data); if (result.error) { console.error('Operation failed:', result.error); } else { console.log('Operation succeeded:', result.data); } ``` ## Token Types Supported token types: - `'erc20'` - ERC20 tokens - `'erc721'` - ERC721 NFTs - `'erc1155'` - ERC1155 multi-tokens ## Chain IDs Use hex format for chain IDs: - Ethereum: `'0x1'` - Polygon: `'0x89'` - Arbitrum: `'0xa4b1'` - Optimism: `'0xa'` ## License MIT