import Joi from 'joi'; import { authenticatedOptionalDataSchema } from './authentication.joi'; /** ****************************************************************************** * Deliver Pay Transaction ******************************************************************************* */ export const paymentOptions = Joi.object().keys({ wallet: Joi.string().required(), payerToken: Joi.string().required(), ref: Joi.string().required(), quantity: Joi.number().optional(), size: Joi.number().optional(), icon: Joi.string().optional(), label: Joi.string().optional(), }); export const deliverPaymentParamsSchema = Joi.object().keys({ account: Joi.string().required(), options: paymentOptions, }).prefs({ abortEarly: false, }); export const deliverPaymentRequestSchema = Joi.object().keys({ params: deliverPaymentParamsSchema, auth: authenticatedOptionalDataSchema, }); /** ****************************************************************************** * Check Ref Status ******************************************************************************* */ export const checkRefStatusParamsSchema = Joi.object().keys({ ref: Joi.string().required(), }).prefs({ abortEarly: false, }); export const checkRefStatusRequestSchema = Joi.object().keys({ params: checkRefStatusParamsSchema, auth: authenticatedOptionalDataSchema, }); /** ****************************************************************************** * Verify Token Ownership ******************************************************************************* */ export const verifyNFTOwnershipParamsSchema = Joi.object().keys({ account: Joi.string().required(), collection: Joi.string().required(), traits: Joi.object().optional(), }).prefs({ abortEarly: false, }); export const verifyNFTOwnershipRequestSchema = Joi.object().keys({ params: verifyNFTOwnershipParamsSchema, auth: authenticatedOptionalDataSchema, }); /** ****************************************************************************** * Swap NFT ******************************************************************************* */ export const swapNFTParamsSchema = Joi.object().keys({ account: Joi.string().required(), }).prefs({ abortEarly: false, }); export const swapNFTRequestSchema = Joi.object().keys({ params: swapNFTParamsSchema, auth: authenticatedOptionalDataSchema, }); /** ****************************************************************************** * Empty Wallet ******************************************************************************* */ export const emptyWalletParamsSchema = Joi.object().keys({ account: Joi.string().required(), }).prefs({ abortEarly: false, }); export const emptyWalletRequestSchema = Joi.object().keys({ params: emptyWalletParamsSchema, auth: authenticatedOptionalDataSchema, });