import SignetRequestController from '@/api/requests'; import { AuthenticationRequest, Bonus, CloseRewardFundRequest, ContributeRequest, CreateQueueRequest, CreateQueueResponse, CreateRewardFundRequest, DistributeRewardsRequest, EditQueueRequest, GetBalanceRequest, GetBalanceResponse, GetContributionsRequest, GetContributionsResponse, GetQueueMembersRequest, GetQueueMembersResponse, GetQueuesResponse, GetRewardFundRequest, GetRewardFundResponse, GetRewardFundsRequest, GetRewardFundsResponse, LoginResponse, NearlyCompleteFundsRequest, NearlyCompleteFundsResponse, QueueMember, RewardDistributionInfo, SubmitRewardFundRequest, SuccessResponse, } from '@/api/types'; const controller = new SignetRequestController(); export const register = (username: string, password: string) => controller.post('Register', { username, password, }); export const login = (username: string, password: string) => controller.post('Login', { username, password, }); export const getRewardFunds = (offset: number) => controller.post('GetRewardFunds', { offset }); export const getQueues = () => controller.post('GetQueues', null); export const getQueueMembers = (id: number) => controller.post('GetQueueMembers', { id }); export const createQueue = (name: string) => controller.post('CreateQueue', { name }); export const createRewardFund = ( asset: string, fundWallet: string, fundSecret: string, sellingWallet: string, issuerWallet: string, memo: string, minContribution: number, telegramLink: string, bonuses: Bonus[], queueID?: number | null | undefined, ) => controller.post('CreateRewardFund', { asset, fundWallet, fundSecret, sellingWallet, issuerWallet, memo, minContribution, telegramLink, bonuses, queueID, }); export const deleteRewardFund = (id: number, close: boolean) => controller.post< SuccessResponse, CloseRewardFundRequest >( 'CloseRewardFund', { id, close, }, ); export const getRewardFund = (id: number, consolidateContributions: boolean) => controller.post('GetRewardFund', { id, consolidateContributions, }); export const getContributions = ( id: number, offset: number, forDate: string | undefined, consolidateContributions: boolean, ) => controller.post( 'GetContributions', { id, offset, forDate, consolidateContributions, }, ); export const getBalance = (secretKey: string) => controller.post('GetBalance', { secretKey }); export const contribute = (privateKey: string, amount: number, rewardFund: number) => controller.post('Contribute', { privateKey, amount, rewardFund, }); export const getNearlyCompletedFunds = (threshold: number) => controller.post('NearlyCompleteFunds', { threshold }); export const reorderQueue = (queueID: number, fundOrders: QueueMember[]) => controller.post('EditQueue', { queueID, fundOrders, }); export const submitRewardFund = (fundID: number, submit: boolean) => controller.post('SubmitRewardFund', { fundID, submit, }); export const distributeRewardFund = (rewardFundID: number, payments: RewardDistributionInfo[], distribute: boolean) => controller.post('DistributeRewardFund', { rewardFundID, payments, distribute, });