@aryze/reforge
Version:
TypeScript SDK for Aryze Reforge cross-chain bridge protocol
153 lines (112 loc) • 3.36 kB
Markdown
# @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