|
1 | | -import { indexers, REQUEST_TYPES } from '@/constants' |
2 | | -import { walletBalanceLowSlackMessage } from '@/utils/slack' |
3 | | -import { balance, transfer } from '@autonomys/auto-consensus' |
4 | | -import { activateWallet, ActivateWalletParams, ApiPromise } from '@autonomys/auto-utils' |
5 | | -import { NextRequest, NextResponse } from 'next/server' |
6 | | - |
7 | | -export const POST = async (req: NextRequest) => { |
8 | | - try { |
9 | | - if (!process.env.WALLET_CONSENSUS_URI) throw new Error('Missing WALLET_CONSENSUS_URI') |
10 | | - if (!process.env.CONSENSUS_AMOUNT && process.env.CONSENSUS_AMOUNT !== '0') |
11 | | - throw new Error('Missing CONSENSUS_AMOUNT') |
12 | | - |
13 | | - const pathname = req.nextUrl.pathname |
14 | | - const chain = pathname.split('/').slice(3)[0] |
15 | | - const requestType = pathname.split('/').slice(4)[0] |
16 | | - if (requestType !== REQUEST_TYPES.Consensus) |
17 | | - return NextResponse.json({ error: 'Invalid request type' }, { status: 400 }) |
18 | | - |
19 | | - const chainMatch = indexers.find((c) => c.network === chain) |
20 | | - if (!chainMatch) return NextResponse.json({ error: 'Invalid chain' }, { status: 400 }) |
21 | | - |
22 | | - const request = await req.json() |
23 | | - const { address } = request |
24 | | - |
25 | | - const { |
26 | | - api, |
27 | | - accounts: [wallet] |
28 | | - } = await activateWallet({ |
29 | | - uri: process.env.WALLET_CONSENSUS_URI, |
30 | | - networkId: chainMatch.network |
31 | | - } as ActivateWalletParams) |
32 | | - |
33 | | - // Get wallet free balance |
34 | | - const { free } = await balance(api as unknown as ApiPromise, wallet.address) |
35 | | - if ( |
36 | | - BigInt(free) < |
37 | | - BigInt((Number(process.env.SLACK_BALANCE_NOTIFICATION_THRESHOLD) * Number(process.env.CONSENSUS_AMOUNT)) / 100) |
38 | | - ) { |
39 | | - await walletBalanceLowSlackMessage(free.toString(), wallet.address) |
40 | | - } |
41 | | - |
42 | | - if (BigInt(free) <= BigInt(process.env.CONSENSUS_AMOUNT)) |
43 | | - return NextResponse.json({ error: 'Insufficient funds' }, { status: 400 }) |
44 | | - |
45 | | - // Create and sign the transfer transaction |
46 | | - const tx = await transfer(api as unknown as ApiPromise, address, process.env.CONSENSUS_AMOUNT) |
47 | | - const txResponse = await tx.signAndSend(wallet) |
48 | | - |
49 | | - await api.disconnect() |
50 | | - |
51 | | - return NextResponse.json({ |
52 | | - message: 'Token requested successfully', |
53 | | - txResponse: { hash: txResponse.toString() } |
54 | | - }) |
55 | | - } catch (error) { |
56 | | - console.error('Error processing token request:', error) |
57 | | - return NextResponse.json({ error: 'Failed to request token' }, { status: 500 }) |
58 | | - } |
59 | | -} |
| 1 | +// Removed: consensus chain request handler (single-chain EVM only) |
| 2 | +export {} |
0 commit comments