@metatrongg/sdk 0.8.0-dev.db52340 → 0.8.0-dev.e5563da

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import*as e from"zod";var t=class extends Error{status;code;body;constructor(e,t,n,r){super(n),this.name=`TronError`,this.status=e,this.code=t,this.body=r}},n=class extends t{error;errorDescription;errorUri;constructor(e,t,n,r,i){super(e,t,`oauth ${e} ${t}${r===void 0?``:`: ${r}`}`,n),this.name=`TronOauthError`,this.error=t,this.errorDescription=r,this.errorUri=i}};const r={BAD_REQUEST:4400,UNAUTHORIZED:4401,FORBIDDEN:4403,NOT_FOUND:4404,UNAVAILABLE:4503};var i=class extends Error{code;reason;constructor(e,t){super(`tron ws closed: ${e}${t===``?``:` ${t}`}`),this.name=`TronWsCloseError`,this.code=e,this.reason=t}get isApplicationError(){return this.code>=4e3&&this.code<5e3}get isPermanent(){return[r.BAD_REQUEST,r.UNAUTHORIZED,r.FORBIDDEN,r.NOT_FOUND].includes(this.code)}};function a(){return{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}}}function o(e=`[tron-sdk]`){return{debug:(t,n)=>{console.log(e,t,n??``)},info:(t,n)=>{console.info(e,t,n??``)},warn:(t,n)=>{console.warn(e,t,n??``)},error:(t,n)=>{console.error(e,t,n??``)}}}function s(){let e=new Map;return{async get(t){return e.get(t)??null},async set(t,n){e.set(t,n)},async clear(t){e.delete(t)}}}const c=e.string().min(3).max(18).regex(/^[a-z][a-z0-9_]*$/),ee=e.string().nullable(),te=e.string().max(256).nullable(),ne=e.url().max(2048).nullable(),l=e.enum([`yellow`,`green`,`blue`,`white`,`black`]),u=e.enum([`super-admin`,`admin`,`read-only`]).nullable(),d=e.enum([`auto`,`online`,`offline`]),re=e.enum([`development`,`production`]),f=e.object({id:e.string().min(1),email:e.email().nullable(),emailVerified:e.boolean(),name:c,displayName:ee,bio:te,websiteUrl:ne,image:e.string().nullish(),banner:l,role:u,presenceStatusMode:d,environmentViewMode:re,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}),ie=e.string().min(1);e.object({user:f,token:ie.optional()}),e.object({error:e.string().min(1),traceId:e.string().min(1).optional()}),e.object({name:c,email:e.email(),password:e.string().min(8),image:e.url().optional(),callbackURL:e.url().optional()}),e.object({redirect:e.boolean(),token:ie.optional(),url:e.url().optional(),user:f.optional()}),e.object({email:e.email(),password:e.string().min(1),callbackURL:e.url().optional(),rememberMe:e.boolean().optional()}),e.object({success:e.boolean()});const ae=e.object({id:e.string().min(1),token:e.string().min(1),userId:e.string().min(1),expiresAt:e.iso.datetime(),ipAddress:e.string().nullish(),userAgent:e.string().nullish(),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()});e.union([e.object({session:ae,user:f}),e.unknown()]),e.object({status:e.boolean()}),e.object({status:e.boolean()}),e.object({email:e.email(),callbackURL:e.url().optional()}),e.object({status:e.boolean()}),e.object({email:e.email(),redirectTo:e.url().optional()}),e.object({status:e.boolean()}),e.object({newPassword:e.string().min(8),token:e.string().min(1)}),e.object({issuer:e.url(),authorization_endpoint:e.url(),token_endpoint:e.url(),userinfo_endpoint:e.url(),revocation_endpoint:e.url(),registration_endpoint:e.url(),response_types_supported:e.array(e.enum([`code`])),grant_types_supported:e.array(e.enum([`authorization_code`,`refresh_token`,`client_credentials`])),code_challenge_methods_supported:e.array(e.enum([`S256`])),token_endpoint_auth_methods_supported:e.array(e.enum([`client_secret_basic`,`client_secret_post`,`none`])),scopes_supported:e.array(e.enum([`openid`,`profile`,`payments:charge`,`inventory:read`,`developer:read`,`developer:apps`,`developer:pages`]))});const p=e.url().max(2048),m=e.string().min(1).regex(/^[A-Za-z0-9_:.-]+(?: [A-Za-z0-9_:.-]+)*$/);e.object({client_id:e.string().regex(/^tg_dc_[a-f0-9]{32}$/),client_id_issued_at:e.int().gte(0),client_name:e.string().min(1),redirect_uris:e.array(p),token_endpoint_auth_method:e.enum([`none`]),grant_types:e.array(e.enum([`authorization_code`,`refresh_token`])),response_types:e.array(e.enum([`code`])),scope:m}),e.object({error:e.enum([`invalid_redirect_uri`,`invalid_client_metadata`]),error_description:e.string().optional()}),e.object({redirect_uris:e.array(p).min(1).max(10),client_name:e.string().min(1).max(128).optional(),token_endpoint_auth_method:e.enum([`none`]).optional(),grant_types:e.array(e.enum([`authorization_code`,`refresh_token`])).optional(),response_types:e.array(e.enum([`code`])).optional(),scope:m.optional()});const h=e.string().regex(/^tg_(?:dev|prod|dc)_[A-Za-z0-9]{16,64}$/),oe=e.string().min(1).max(2048),se=e.string().regex(/^[A-Za-z0-9_~.-]{43,128}$/),g=e.string().regex(/^[a-f0-9]{32}$/);e.object({request:g,app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),clientKind:e.enum([`app`,`connector`]),scopes:e.array(e.enum([`openid`,`profile`,`payments:charge`,`inventory:read`,`developer:read`,`developer:apps`,`developer:pages`])).min(1),developerRole:e.object({approved:e.boolean(),policyVersion:e.string().min(1)}).nullable(),alreadyGranted:e.array(e.enum([`openid`,`profile`,`payments:charge`,`inventory:read`,`developer:read`,`developer:apps`,`developer:pages`])),redirectUriHost:e.string().min(1),payment:e.object({tiersCents:e.array(e.int().gt(0)).min(1),currentLimitCents:e.int().gte(0).nullable(),currentMonthSpentCents:e.int().gte(0).nullable(),payoutChains:e.array(e.string().min(1))}).nullable()}),e.object({consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),tiersCents:e.array(e.int().gt(0)).min(1)}),e.object({app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),developer:e.object({studioName:e.string().nullable(),logoUrl:e.url().nullable(),studioUrl:e.url().nullable(),studioXHandle:e.string().nullable()})}),e.object({redirect:e.url()});const _=e.int().gte(100).lte(5e6).nullable();e.object({request:g,decision:e.enum([`allow`,`deny`]),acceptDeveloperPolicy:e.boolean().optional(),payment:e.object({monthlyLimitCents:_}).optional()}),e.object({access_token:e.string().min(1),token_type:e.enum([`Bearer`]),expires_in:e.int().gt(0),refresh_token:e.string().min(1).optional(),scope:m.optional()}),e.object({error:e.enum([`invalid_request`,`invalid_client`,`invalid_grant`,`unauthorized_client`,`unsupported_grant_type`,`unsupported_response_type`,`invalid_scope`,`access_denied`,`server_error`,`temporarily_unavailable`,`invalid_token`,`insufficient_scope`]),error_description:e.string().optional(),error_uri:e.url().optional(),state:oe.optional()});const ce=e.string().regex(/^[A-Za-z0-9_~.-]{43,128}$/),v=e.string().regex(/^[a-f0-9]{64}$/),le=e.object({grant_type:e.enum([`authorization_code`]),code:e.string().min(1),redirect_uri:p,code_verifier:ce,client_id:h.optional(),client_secret:v.optional()}),ue=e.object({grant_type:e.enum([`refresh_token`]),refresh_token:e.string().min(1),scope:m.optional(),client_id:h.optional(),client_secret:v.optional()}),de=e.object({grant_type:e.enum([`client_credentials`]),scope:m.optional(),client_id:h.optional(),client_secret:v.optional()});e.discriminatedUnion(`grant_type`,[le.extend({grant_type:e.literal(`authorization_code`)}),ue.extend({grant_type:e.literal(`refresh_token`)}),de.extend({grant_type:e.literal(`client_credentials`)})]),e.object({sub:e.string().min(1),name:e.string().min(1).nullable(),picture:e.url().nullable()}),e.object({token:e.string().min(1),token_type_hint:e.enum([`access_token`,`refresh_token`]).optional(),client_id:h.optional(),client_secret:v.optional()});const fe=e.object({status:e.enum([`completed`]),intentId:e.string().min(1),paymentId:e.string().min(1),usdCents:e.int().gte(0),txHash:e.string().nullable()}),pe=e.object({status:e.enum([`redirect`]),intentId:e.string().min(1),redirectUrl:e.url(),usdCents:e.int().gte(0)});e.discriminatedUnion(`status`,[fe.extend({status:e.literal(`completed`)}),pe.extend({status:e.literal(`redirect`)})]),e.object({error:e.enum([`monthly_limit_exceeded`]),currentLimitCents:e.int().gte(0),monthSpentCents:e.int().gte(0),attemptedUsdCents:e.int().gte(0),redirectUrl:e.url()}),e.object({error:e.enum([`idempotency_key_reused`]),intentId:e.string().min(1)});const y=e.object({purpose:e.string().min(1).max(64).optional(),title:e.string().min(1).max(120).optional(),note:e.string().min(1).max(280).optional(),quantity:e.int().gte(1).lte(1e6).optional(),category:e.string().min(1).max(64).optional(),sessionId:e.string().min(1).max(128).optional(),groupId:e.string().min(1).max(128).optional(),image:e.url().max(2048).optional(),extra:e.record(e.string(),e.union([e.string().max(512),e.number(),e.boolean()])).optional()});e.object({chain:e.string().min(1),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),returnUri:e.url().max(2048),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/).optional(),rakeBps:e.int().gte(0).lte(3e3).optional(),metadata:y.optional()}),e.object({monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),periodStart:e.iso.datetime(),offlineAutoChargeEnabled:e.boolean(),perTxOfflineCapCents:e.int().gte(0).nullable(),walletDelegated:e.boolean()}),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),tokenDecimals:e.int().gte(0),usdRate:e.string().min(1),feed:e.object({aggregatorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),decimals:e.int().gte(0),answer:e.string().regex(/^\d+$/),updatedAt:e.iso.datetime()}),usdCents:e.int().gte(0).optional(),amount:e.string().regex(/^\d+$/).optional()});const me=e.object({intentId:e.string().min(1),appId:e.string().min(1),status:e.enum([`pending`,`awaiting_funding`,`completed`,`denied`,`expired`]),paymentId:e.string().nullable(),txHash:e.string().nullable(),usdCents:e.int().gte(0),chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),grossAmount:e.string().regex(/^\d+$/).nullable(),creditedAmount:e.string().regex(/^\d+$/).nullable(),settlement:e.enum([`instant`,`locked`]).nullable(),resolvedAt:e.iso.datetime().nullable(),expiresAt:e.iso.datetime()});e.object({intentId:e.string().min(1),consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),chain:e.string().min(1),token:e.string(),amount:e.string(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appealable:e.boolean(),usdCents:e.int().gte(0),monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),offlineAutoChargeEnabled:e.boolean(),perTxOfflineCapCents:e.int().gte(0).nullable(),walletDelegated:e.boolean(),canonicalWalletAddress:e.string().nullable(),offlineDenialReason:e.enum([`no_active_play_session`,`driver_unavailable`,`wallet_not_delegated`,`deposit_cap_exceeded`,`insufficient_balance`,`fire_failed`]).nullable(),returnUriHost:e.string().min(1),status:e.enum([`pending`,`awaiting_funding`]),expiresAt:e.iso.datetime(),accessDenied:e.object({reason:e.enum([`not_invited`]),developer:e.object({studioName:e.string().nullable(),logoUrl:e.url().nullable(),studioUrl:e.url().nullable(),studioXHandle:e.string().nullable()})}).nullish()}),e.object({chain:e.string().min(1),chainId:e.int().gte(0),id:e.string().regex(/^0x[0-9a-fA-F]{32}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),data:e.string().regex(/^0x[0-9a-fA-F]*$/),appealable:e.boolean(),payer:e.string().regex(/^0x[0-9a-fA-F]{40}$/),deadline:e.int().gte(0),routerAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),signature:e.string().regex(/^0x[0-9a-fA-F]+$/)}),e.object({redirect:e.url()});const he=e.object({method:e.enum([`signed`]),paymentId:e.string().min(1)}),ge=e.object({method:e.enum([`offline`])});e.discriminatedUnion(`method`,[he.extend({method:e.literal(`signed`)}),ge.extend({method:e.literal(`offline`)})]);const _e=e.object({consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),periodStart:e.iso.datetime(),offlineAutoChargeEnabled:e.boolean(),perTxOfflineCapCents:e.int().gte(0).nullable()});e.object({authorizations:e.array(_e)});const ve=e.int().gte(100).lte(1e5).nullable();e.object({offlineAutoChargeEnabled:e.boolean().optional(),perTxOfflineCapCents:ve.optional(),monthlyLimitCents:_.optional()});const ye=e.object({clientName:e.string().min(1),connectedAt:e.iso.datetime()});e.object({connections:e.array(ye)});const be=e.object({consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),monthlyLimitTronCents:e.int().gte(0).nullable(),monthSpentTronCents:e.int().gte(0),autoApproveTronCapCents:e.int().gte(0).nullable()});e.object({authorizations:e.array(be).max(200)}),e.object({monthlyTronLimitCents:e.int().gt(0).lte(1e8).nullish(),autoApproveTronCapCents:e.int().gt(0).lte(1e8).nullish()});const b=e.string().min(3).max(40).regex(/^[a-z0-9-]+$/),xe=e.object({appId:e.uuid(),name:e.string().min(1).max(80),slug:b,bannerUrl:e.url().nullable(),thumbnailUrl:e.url().nullable(),thumbnailVideoUrl:e.url().nullable(),categories:e.array(e.enum(`adventure.battle_royale.board.cards.casino.casual.fighting.idle.mmo.moba.platformer.prediction.puzzle.racing.rhythm.roguelike.rpg.rts.sandbox.shooter.simulation.sports.strategy.survival.tools.tower_defense.visual_novel.other`.split(`.`))),studio:e.object({name:e.string().min(1).max(80).nullable(),logoUrl:e.url().nullable()}).nullable(),firstPublishedAt:e.iso.datetime()});e.object({items:e.array(xe),nextBefore:e.iso.datetime().nullable()});const x=e.array(e.enum(`adventure.battle_royale.board.cards.casino.casual.fighting.idle.mmo.moba.platformer.prediction.puzzle.racing.rhythm.roguelike.rpg.rts.sandbox.shooter.simulation.sports.strategy.survival.tools.tower_defense.visual_novel.other`.split(`.`))).max(4),S=e.string().min(1).max(80),Se=e.object({url:e.url().max(2048),caption:e.string().max(200).optional(),order:e.int().gte(0)}),C=e.array(Se).max(6),Ce=e.object({heading:e.string().min(1).max(80),body:e.string().min(1).max(2e3),order:e.int().gte(0)}),w=e.array(Ce).max(8),we=e.object({label:e.string().min(1).max(40),url:e.url().max(2048),order:e.int().gte(0)}),T=e.array(we).max(10),Te=e.object({ownerUserId:e.uuid().nullable(),name:e.string().nullable(),logoUrl:e.url().nullable(),websiteUrl:e.url().nullable(),xHandle:e.string().nullable(),githubUrl:e.url().nullable()}),E=e.array(e.enum([`web`,`ios`,`android`,`pc`,`playstation`,`xbox`,`switch`])).max(7),D=e.enum([`single_player`,`multiplayer`,`both`]).nullable(),O=e.enum([`everyone`,`13_plus`,`16_plus`,`18_plus`]).nullable(),k=e.array(e.enum([`en`,`es`,`fr`,`de`,`pt`,`it`,`ru`,`ja`,`ko`,`zh`,`hi`,`ar`,`tr`,`vi`,`id`,`th`,`pl`,`nl`])).max(18),A=e.enum([`live`,`open_beta`,`coming_soon`]),Ee=e.enum([`tron`,`onchain`,`both`]).nullable();e.object({appId:e.uuid(),slug:b,appName:e.string(),appLogoUrl:e.url().nullable(),categories:x,tagline:S,bannerUrl:e.url().nullable(),playUrl:e.url().nullable(),discordUrl:e.url().nullable(),twitterUrl:e.url().nullable(),redditUrl:e.url().nullable(),telegramUrl:e.url().nullable(),gallery:C,chapters:w,links:T,studio:Te,platforms:E,gameType:D,ageRating:O,languages:k,releaseStatus:A,paymentsMode:Ee,oauthScopes:e.array(e.string()),chains:e.array(e.string()),publishedAt:e.iso.datetime(),updatedAt:e.iso.datetime()});const De=e.enum([`overwhelmingly_positive`,`very_positive`,`positive`,`mostly_positive`,`mixed`,`mostly_negative`,`negative`,`overwhelmingly_negative`]).nullable(),Oe=e.object({count:e.int().gte(0),recommendedCount:e.int().gte(0),recommendedPct:e.number().gte(0).lte(100).nullable(),summaryLabel:De}),j=e.boolean(),M=e.string().min(1).max(2e3),N=e.object({helpful:e.int().gte(0),unhelpful:e.int().gte(0),funny:e.int().gte(0)}),ke=e.object({userId:e.uuid(),handle:e.string().nullable(),name:e.string().min(1).max(80).nullable(),avatarUrl:e.url().nullable()}),Ae=e.object({playtimeSecondsThisGame:e.int().gte(0),gamesPlayed:e.int().gte(0),reviewsWritten:e.int().gte(0)}),je=e.string().min(1).max(2e3),Me=e.object({body:je,repliedAt:e.iso.datetime()}).nullable(),Ne=e.object({id:e.uuid(),recommended:j,body:M,reactions:N,tippedCents:e.int().gte(0),commentCount:e.int().gte(0),author:ke,authorStats:Ae,developerReply:Me,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()});e.object({aggregate:Oe,reviews:e.array(Ne),total:e.int().gte(0),hasMore:e.boolean()});const Pe=e.enum([`newest`,`oldest`,`helpful`]).default(`newest`),Fe=e.enum([`payment`,`reward`]).nullable(),Ie=e.object({id:e.uuid(),recommended:j,body:M,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).nullable();e.object({eligible:e.boolean(),eligibleVia:Fe,review:Ie,isAppOwner:e.boolean()}),e.object({recommended:j,body:M});const P=e.enum([`helpful`,`unhelpful`]).nullable(),Le=e.object({reviewId:e.uuid(),vote:P,funny:e.boolean()});e.object({reactions:e.array(Le)}),e.object({reactions:N,vote:P,funny:e.boolean()}),e.object({vote:P,funny:e.boolean()}),e.object({status:e.enum([`completed`]),amountCents:e.int().gt(0),balanceCents:e.int().gte(0),tippedCents:e.int().gte(0)}),e.object({amountCents:e.int().gt(0).lte(1e6),note:e.string().min(1).max(280).optional()});const Re=e.string().min(1).max(1e3),ze=e.object({id:e.uuid(),body:Re,author:ke,createdAt:e.iso.datetime()});e.object({comments:e.array(ze),total:e.int().gte(0),hasMore:e.boolean()}),e.object({comment:ze,commentCount:e.int().gte(0)}),e.object({body:Re}),e.object({commentCount:e.int().gte(0)}),e.object({developerReply:Me}),e.object({body:je}),e.object({created:e.boolean()});const Be=e.enum([`abuse`,`inappropriate_content`,`cheating`,`spam`,`other`]);e.object({category:Be,details:e.string().max(2e3).optional()});const F=e.enum([`open`,`acknowledged`,`dismissed`]),Ve=e.object({id:e.uuid(),category:Be,details:e.string().nullable(),status:F,acknowledgedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()});e.object({reports:e.array(Ve),total:e.int().gte(0),hasMore:e.boolean()}),e.object({status:e.enum([`acknowledged`,`dismissed`])});const He=e.object({id:e.string().min(1),family:e.enum([`evm`,`solana`]),displayName:e.string().min(1),chainId:e.int().optional(),paymentRouter:e.string().optional(),paymentProgram:e.string().optional()});e.object({chains:e.array(He)});const Ue=e.object({id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),payer:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vaultKind:e.enum([`credit`,`platform`]),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),grossAmount:e.string().regex(/^\d+$/),creditedAmount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`]).nullable(),appealable:e.boolean(),vaultReleaseAt:e.iso.datetime().nullable(),consolidatedAt:e.iso.datetime().nullable(),status:e.enum([`pending`,`completed`,`expired`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),deadline:e.iso.datetime(),signedAt:e.iso.datetime(),completedAt:e.iso.datetime().nullable(),recipientApp:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}).nullable()});e.object({payments:e.array(Ue),nextBefore:e.iso.datetime().nullable()});const We=e.object({kind:e.enum([`payment`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`,`incoming`]),payer:e.string().regex(/^0x[0-9a-fA-F]{40}$/),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),beneficiaryApp:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vaultKind:e.enum([`credit`,`platform`]),targetKind:e.enum([`credit`,`pot`]),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),grossAmount:e.string().regex(/^\d+$/),creditedAmount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`]).nullable(),appealable:e.boolean(),disputableLegId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vaultReleaseAt:e.iso.datetime().nullable(),consolidatedAt:e.iso.datetime().nullable(),status:e.enum([`pending`,`completed`,`expired`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),logIndex:e.int().gte(0).nullable(),metadata:y.nullish(),usdCents:e.int().gte(0).nullable()}),Ge=e.object({kind:e.enum([`payment_withdrawal`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),Ke=e.object({kind:e.enum([`matured_withdrawal`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),qe=e.object({kind:e.enum([`payout_sent`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),metadata:y.nullish(),usdCents:e.int().gte(0).nullable()}),Je=e.object({kind:e.enum([`credit_transferred`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),Ye=e.object({kind:e.enum([`pot_leg`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),distributionId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),settlement:e.enum([`instant`,`locked`]),releaseAt:e.iso.datetime().nullable(),claimedAt:e.iso.datetime().nullable(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),logIndex:e.int().gte(0).nullable(),metadata:y.nullish(),usdCents:e.int().gte(0).nullable()}),Xe=e.object({kind:e.enum([`payment_autoclaim`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),autoclaimKind:e.enum([`withdraw_matured`,`withdraw_escrow`,`claim_refund`]),status:e.enum([`pending`,`in_flight`,`succeeded`,`skipped`,`failed`]),attempts:e.int().gte(0),lastError:e.string().nullable(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),settledAt:e.iso.datetime().nullable()}),Ze=e.object({kind:e.enum([`appeal`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`]),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),status:e.enum([`pending_onchain`,`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),logIndex:e.int().gte(0).nullable(),resolvedAt:e.iso.datetime().nullable(),refundClaimedAt:e.iso.datetime().nullable(),hasRoom:e.boolean(),resolution:e.object({resolutionId:e.string().regex(/^0x[0-9a-f]{32}$/),outcome:e.int().gte(0).lte(1),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]{130}$/)}).nullable(),usdCents:e.int().gte(0).nullable()}),Qe=e.object({kind:e.enum([`moonpay_buy`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),externalId:e.string().min(1),fiatAmountCents:e.int().gte(0),fiatCurrency:e.string().min(1),cryptoAmount:e.string().regex(/^\d+$/),cryptoToken:e.string().regex(/^0x[0-9a-fA-F]{40}$/),cryptoTxHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),status:e.enum([`pending`,`completed`,`failed`])}),$e=e.object({kind:e.enum([`moonpay_sell`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`]),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),externalId:e.string().min(1),fiatAmountCents:e.int().gte(0),fiatCurrency:e.string().min(1),cryptoAmount:e.string().regex(/^\d+$/),cryptoToken:e.string().regex(/^0x[0-9a-fA-F]{40}$/),cryptoTxHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),status:e.enum([`pending`,`completed`,`failed`])}),et=e.object({kind:e.enum([`tron_deposit`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),amountCents:e.int().gt(0),status:e.enum([`completed`,`disputed`,`clawed_back`]),receiptUrl:e.url().nullable(),paymentIntentId:e.string().min(1).nullable()}),tt=e.object({userId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),handle:e.string().nullable(),displayName:e.string().nullable(),role:e.enum([`stake`,`payout`,`dev_cut`,`purchase`,`referral`]),amountCents:e.int()}),nt=e.object({kind:e.enum([`tron_pot`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`,`outgoing`]),leg:e.enum([`stake`,`payout`,`dev_cut`,`purchase`,`referral`]),amountCents:e.int().gt(0),usdCents:e.int(),status:e.enum([`settled`]),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),involvedUsers:e.array(tt).nullish(),metadata:y.nullish()}),rt=e.object({kind:e.enum([`tron_cashout`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`]),method:e.enum([`stripe`,`usdc`]),amountCents:e.int().gt(0),feeCents:e.int().gte(0),destinationAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),chain:e.string().min(1).nullable(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),status:e.enum([`pending`,`approved`,`rejected`,`settled`,`failed`]),stripeTransferId:e.string().min(1).nullable(),rejectionReason:e.string().min(1).nullable(),settledAt:e.iso.datetime().nullable()}),it=e.object({kind:e.enum([`tron_transfer`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`,`outgoing`]),amountCents:e.int().gt(0),usdCents:e.int(),status:e.enum([`settled`]),counterpartyUserId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/).nullable(),counterpartyHandle:e.string().nullable(),counterpartyDisplayName:e.string().nullable(),note:e.string().nullable()}),at=e.object({kind:e.enum([`referral_earning`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),referralAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),reversed:e.boolean(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),ot=e.discriminatedUnion(`kind`,[We.extend({kind:e.literal(`payment`)}),Ge.extend({kind:e.literal(`payment_withdrawal`)}),Ke.extend({kind:e.literal(`matured_withdrawal`)}),qe.extend({kind:e.literal(`payout_sent`)}),Je.extend({kind:e.literal(`credit_transferred`)}),Ye.extend({kind:e.literal(`pot_leg`)}),Xe.extend({kind:e.literal(`payment_autoclaim`)}),Ze.extend({kind:e.literal(`appeal`)}),Qe.extend({kind:e.literal(`moonpay_buy`)}),$e.extend({kind:e.literal(`moonpay_sell`)}),et.extend({kind:e.literal(`tron_deposit`)}),nt.extend({kind:e.literal(`tron_pot`)}),rt.extend({kind:e.literal(`tron_cashout`)}),it.extend({kind:e.literal(`tron_transfer`)}),at.extend({kind:e.literal(`referral_earning`)})]);e.object({rows:e.array(ot),nextBefore:e.iso.datetime().nullable(),nextCursor:e.string().nullable(),hasHidden:e.boolean()});const st=e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),creditedWei:e.string().regex(/^\d+$/),drainedWei:e.string().regex(/^\d+$/),outstandingWei:e.string().regex(/^\d+$/)});e.object({rows:e.array(st)}),e.object({enabled:e.boolean(),direction:e.enum([`buy`,`sell`,`both`]).nullable(),countryCode:e.string().regex(/^[A-Z]{2}$/).nullable(),regionSupported:e.boolean()}),e.object({url:e.url(),intentId:e.string().min(1),expiresAt:e.iso.datetime(),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({intentId:e.string().min(1)}),e.object({url:e.url(),transactionId:e.uuid(),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({usdcAmount:e.string().regex(/^\d+$/),chain:e.string().min(1).optional()}),e.object({enabled:e.boolean(),balanceCents:e.int().gte(0),frozenCents:e.int().gte(0),currency:e.enum([`tron`]),flagged:e.boolean(),minDepositCents:e.int().gt(0),maxDepositCents:e.int().gt(0)});const ct=e.object({id:e.uuid(),kind:e.enum([`deposit`,`pot_stake`,`pot_payout`,`dev_earning`,`cashout_hold`,`cashout_release`,`dispute_freeze`,`dispute_unfreeze`,`hosted_billing`,`store_purchase`,`referral_earning`,`peer_transfer`]),amountCents:e.int(),currency:e.string().min(1),createdAt:e.iso.datetime()});e.object({entries:e.array(ct).max(100),nextBefore:e.iso.datetime().nullable()}),e.object({clientSecret:e.string().min(1),publishableKey:e.string().min(1),amountCents:e.int().gt(0),currency:e.string().min(1),depositId:e.uuid()}),e.object({amountCents:e.int().gt(0).lte(1e6)}),e.object({status:e.enum([`completed`]),amountCents:e.int().gt(0),balanceCents:e.int().gte(0),recipient:e.object({userId:e.uuid(),handle:e.string().nullable(),displayName:e.string().nullable()})}),e.object({recipientUserId:e.uuid(),amountCents:e.int().gt(0).lte(1e6),note:e.string().min(1).max(280).optional()}),e.object({balanceCents:e.int().gte(0),rakeBps:e.int().gte(0).lte(3e3)});const lt=e.object({status:e.enum([`completed`]),potId:e.string().regex(/^0x[0-9a-f]{32}$/),balanceCents:e.int().gte(0)}),ut=e.object({status:e.enum([`insufficient_balance`]),potId:e.string().regex(/^0x[0-9a-f]{32}$/),balanceCents:e.int().gte(0)}),dt=e.object({status:e.enum([`redirect`]),intentId:e.string().min(1),redirectUrl:e.url(),amountCents:e.int().gt(0),potId:e.string().regex(/^0x[0-9a-f]{32}$/)});e.discriminatedUnion(`status`,[lt.extend({status:e.literal(`completed`)}),ut.extend({status:e.literal(`insufficient_balance`)}),dt.extend({status:e.literal(`redirect`)})]),e.object({potId:e.string().regex(/^0x[0-9a-f]{32}$/),amountCents:e.int().gt(0),returnUri:e.url(),metadata:y.optional()});const ft=e.object({status:e.enum([`completed`]),balanceCents:e.int().gte(0)}),pt=e.object({status:e.enum([`insufficient_balance`]),balanceCents:e.int().gte(0)}),mt=e.object({status:e.enum([`redirect`]),intentId:e.string().min(1),redirectUrl:e.url(),amountCents:e.int().gt(0)});e.discriminatedUnion(`status`,[ft.extend({status:e.literal(`completed`)}),pt.extend({status:e.literal(`insufficient_balance`)}),mt.extend({status:e.literal(`redirect`)})]),e.object({amountCents:e.int().gt(0),returnUri:e.url(),metadata:y.optional()}),e.object({intentId:e.string().min(1),consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),amountCents:e.int().gt(0),kind:e.enum([`pot_stake`,`store_purchase`]),potId:e.string().nullable(),monthlyLimitTronCents:e.int().gte(0).nullable(),monthSpentTronCents:e.int().gte(0),autoApproveTronCapCents:e.int().gte(0).nullable(),balanceCents:e.int().gte(0),returnUriHost:e.string().min(1),status:e.enum([`pending`]),expiresAt:e.iso.datetime()});const ht=e.object({status:e.enum([`redirect`]),redirect:e.url()}),gt=e.object({status:e.enum([`insufficient_balance`]),balanceCents:e.int().gte(0)});e.discriminatedUnion(`status`,[ht.extend({status:e.literal(`redirect`)}),gt.extend({status:e.literal(`insufficient_balance`)})]),e.object({status:e.enum([`distributed`,`replayed`]),potId:e.string().regex(/^0x[0-9a-f]{32}$/),potBalanceCents:e.int().gte(0)}),e.object({potId:e.string().regex(/^0x[0-9a-f]{32}$/),legs:e.array(e.object({recipientUserId:e.uuid(),amountCents:e.int().gt(0)})).max(64),rakeBps:e.int().gte(0).lte(1e4).optional(),devCutCents:e.int().gte(0).optional().default(0),closePot:e.boolean().optional().default(!0),metadata:y.optional()}),e.object({url:e.url()});const _t=e.object({id:e.uuid(),method:e.enum([`stripe`,`usdc`]),status:e.enum([`pending`,`approved`,`rejected`,`settled`,`failed`]),amountCents:e.int().gt(0),feeCents:e.int().gte(0),currency:e.string().min(1),destinationAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),chain:e.string().min(1).nullable(),txHash:e.string().min(1).nullable(),rejectionReason:e.string().min(1).nullable(),createdAt:e.iso.datetime(),settledAt:e.iso.datetime().nullable()});e.object({method:e.enum([`stripe`,`usdc`]),amountCents:e.int().gt(0),chain:e.string().min(1).optional()}),e.object({requests:e.array(_t).max(100)});const vt=e.object({id:e.uuid(),method:e.enum([`stripe`,`usdc`]),status:e.enum([`pending`,`approved`,`rejected`,`settled`,`failed`]),amountCents:e.int().gt(0),feeCents:e.int().gte(0),currency:e.string().min(1),destinationAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),chain:e.string().min(1).nullable(),txHash:e.string().min(1).nullable(),rejectionReason:e.string().min(1).nullable(),createdAt:e.iso.datetime(),settledAt:e.iso.datetime().nullable(),userId:e.uuid(),requestIdHex:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),usdcAmount:e.string().regex(/^\d+$/).nullable(),backendSignature:e.string().regex(/^0x[0-9a-f]+$/).nullable(),signatureDeadline:e.iso.datetime().nullable(),poolAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable()});e.object({requests:e.array(vt).max(100)}),e.object({reason:e.string().min(1).max(500)});const yt=e.array(e.object({id:e.enum([`ethereum-mainnet`,`base-mainnet`,`ethereum-sepolia`]),displayName:e.string().min(1),chainId:e.int().gt(0)})),I=e.string().min(1).max(24).regex(/^[a-z0-9]+$/).nullable(),bt=e.object({id:e.string().min(1),name:e.string().min(1),deletedAt:e.iso.datetime().nullable()}).nullable(),L=e.object({native:e.string().regex(/^\d+(?:\.\d+)?$/),usdc:e.string().regex(/^\d+(?:\.\d+)?$/).optional()}),xt=e.object({"ethereum-mainnet":L.optional(),"base-mainnet":L.optional(),"ethereum-sepolia":L.optional()}),St=e.enum([`infinite`,`custom`,`scoped`]).nullable(),R=e.object({native:e.string().regex(/^\d+$/),usdc:e.string().regex(/^\d+$/)}).nullable(),Ct=e.object({mode:St,caps:R,policyId:e.string().min(1).nullable()}),wt=e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/),label:I,kind:e.enum([`personal`,`app`]),app:bt,balances:xt,delegation:Ct});e.object({chains:yt,wallets:e.array(wt)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/),label:I}),e.object({label:I}),e.object({policyId:e.string().min(1).nullable()}),e.union([e.object({mode:e.enum([`infinite`])}),e.object({mode:e.enum([`custom`]),caps:R}),e.object({mode:e.enum([`scoped`])})]),e.object({ok:e.literal(!0)}),e.object({name:c.optional(),displayName:ee.optional(),bio:e.string().min(1).max(256).nullish(),websiteUrl:ne.optional(),banner:l.optional(),presenceStatusMode:d.optional(),environmentViewMode:re.optional()});const Tt=e.object({id:e.string().min(1),title:e.string().max(500),gifUrl:e.url(),previewUrl:e.url(),width:e.int().gt(0),height:e.int().gt(0)});e.object({results:e.array(Tt)});const z=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),image:e.url().nullable()}),B=e.object({v:e.literal(1),alg:e.enum([`x25519-ecdh-hkdf-sha256-aes256gcm`]),senderPubKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),senderKeyId:e.string().min(1).max(128),recipientKeyId:e.string().min(1).max(128),iv:e.string().max(64).regex(/^[A-Za-z0-9_-]+$/),ct:e.string().max(16384).regex(/^[A-Za-z0-9_-]+$/)}).nullable(),V=e.object({id:e.string().min(1),senderUserId:e.string().min(1),body:e.string().max(2e3),envelope:B.optional(),attachment:e.object({url:e.url(),count:e.int().gt(0)}).nullable(),sentAt:e.iso.datetime()}).nullable(),Et=e.object({kind:e.enum([`direct`]),id:e.string().min(1),otherParticipant:z,lastMessage:V,unreadCount:e.int().gte(0),pinnedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()}),H=e.string().min(1).max(80).regex(/^\S(?:.*\S)?$/),U=e.string().max(500).nullable(),Dt=e.url().max(2048).nullable(),W=e.enum([`admin`,`member`]),Ot=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),image:e.url().nullable(),role:W}),kt=e.object({kind:e.enum([`group`]),id:e.string().min(1),title:H,description:U,logoUrl:Dt,participants:e.array(Ot),myRole:W,lastMessage:V,unreadCount:e.int().gte(0),pinnedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()}),At=e.discriminatedUnion(`kind`,[Et.extend({kind:e.literal(`direct`)}),kt.extend({kind:e.literal(`group`)})]);e.object({threads:e.array(At)}),e.object({thread:At,created:e.boolean()});const jt=e.object({kind:e.enum([`direct`]).optional().default(`direct`),recipientUserId:e.string().min(1)}),Mt=e.object({kind:e.enum([`group`]),title:H,description:U.optional(),invitedUserIds:e.array(e.string().min(1)).min(1).max(100)});e.object({ok:e.literal(!0)}),e.object({thread:kt}),e.object({title:H.optional(),description:U.optional()});const Nt=e.object({id:e.string().min(1),senderUserId:e.string().min(1),body:e.string().max(2e3).nullable(),envelope:B.optional()}).nullable(),G=e.enum([`👍`,`👎`,`❤️`,`😂`,`😮`,`😢`,`🔥`,`🎉`,`🙏`,`👀`,`✅`,`🎮`]),Pt=e.object({emoji:G,count:e.int().gt(0),userIds:e.array(e.string().min(1))}),Ft=e.enum([`image`]),K=e.object({id:e.string().min(1),kind:Ft,url:e.url(),contentType:e.string().min(1),fileName:e.string().min(1),byteSize:e.int().gte(0),width:e.int().gt(0).nullable(),height:e.int().gt(0).nullable()}),It=e.object({url:e.url(),title:e.string().max(500).nullable(),description:e.string().max(1e3).nullable(),imageUrl:e.url().nullable(),siteName:e.string().max(200).nullable()}),Lt=e.object({id:e.string().min(1),threadId:e.string().min(1),senderUserId:e.string().min(1),body:e.string().max(2e3),envelope:B.optional(),sentAt:e.iso.datetime(),editedAt:e.iso.datetime().nullable(),deletedAt:e.iso.datetime().nullable(),replyTo:Nt,reactions:e.array(Pt),attachments:e.array(K),linkPreviews:e.array(It)});e.object({messages:e.array(Lt),nextBefore:e.iso.datetime().nullable()});const Rt=e.string().max(2e3);e.object({body:Rt.optional(),envelope:B.optional(),replyToMessageId:e.string().min(1).optional(),attachmentIds:e.array(e.string().min(1)).max(3).optional()});const zt=e.string().min(1).max(2e3);e.object({body:zt.optional(),envelope:B.optional()}),e.object({aggregate:Pt.nullable()}),e.object({attachment:K}),e.object({userIds:e.array(e.string().min(1)).min(1).max(100)}),e.object({pinnedAt:e.iso.datetime()});const Bt=e.enum([`x25519`]),Vt=e.object({userId:e.string().min(1),keyId:e.string().min(1).max(128),publicKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),algorithm:Bt});e.object({key:Vt}),e.object({publicKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),keyId:e.string().min(1).max(128),algorithm:Bt});const Ht=e.object({threadId:e.string().min(1),key:Vt.nullable()});e.object({keys:e.array(Ht)}),e.object({threadIds:e.array(e.string().min(1)).min(1).max(200)}),e.object({exists:e.boolean(),attemptsRemaining:e.int().gte(0),kdfSalt:e.string().length(22).regex(/^[A-Za-z0-9_-]+$/).nullable(),kdfIterations:e.int().gte(1e5).lte(5e6).nullable()}),e.object({ok:e.literal(!0)}),e.object({scalar:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),secret:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),pinKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),kdfSalt:e.string().length(22).regex(/^[A-Za-z0-9_-]+$/),kdfIterations:e.int().gte(1e5).lte(5e6)}),e.union([e.object({result:e.enum([`ok`]),scalar:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/)}),e.object({result:e.enum([`wrong-pin`]),attemptsRemaining:e.int().gte(0)})]),e.object({pinKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/)}),e.object({role:W});const q=e.object({name:e.string().nullable(),handle:e.string().nullable()}).nullable(),Ut=e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),usdCents:e.int().nullable()});e.object({code:e.string().nullable(),xLinked:e.boolean(),referrer:q,refereeCount:e.int().gte(0),lifetimeEarnings:e.array(Ut),lifetimeUsdCents:e.int().nullable(),last30dEarnings:e.array(Ut),last30dUsdCents:e.int().nullable()}),e.object({code:e.string().min(1),generatedAt:e.iso.datetime()}),e.object({status:e.enum([`eligible`,`already-referred`,`self-referral`,`unknown-code`,`revoked-code`,`window-expired`]),referrer:q}),e.object({status:e.enum([`bound`,`already-referred`,`self-referral`,`unknown-code`,`revoked-code`,`window-expired`]),referrer:q}),e.object({code:e.string().min(1).max(64),source:e.enum([`signup-url`,`manual-claim`,`cookie-restore`]).optional().default(`manual-claim`)});const J=e.string().regex(/^[a-f0-9]{64}$/);e.object({playSessionId:J,expiresAt:e.iso.datetime()});const Y=e.uuid();e.object({appId:Y}),e.object({ok:e.literal(!0),ttlSeconds:e.int().gt(0)}),e.object({playSessionId:J,status:e.enum([`pending`,`active`,`ended`])});const Wt=e.uuid();e.object({playSessionId:J,userId:Wt}),e.object({status:e.enum([`pending`,`active`,`ended`])}),e.object({playSessionId:J}),e.object({status:e.enum([`ended`])}),e.object({playSessionId:J});const Gt=e.object({appId:Y,name:e.string(),logoUrl:e.string().nullable(),sessionCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)});e.object({apps:e.array(Gt),totalSessionCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)});const Kt=e.object({date:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),appId:Y,sessionCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)});e.object({from:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),to:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),buckets:e.array(Kt)}),e.object({appId:Y,sessionCount:e.int().gte(0),uniquePlayerCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)}),e.object({followers:e.int().gte(0),following:e.int().gte(0),gamesPlayed:e.int().gte(0),totalPlaytimeSeconds:e.int().gte(0),reviewsLeft:e.int().gte(0),rewardsWon:e.int().gte(0),rewardsValueUsdCents:e.int().gte(0)});const qt=e.object({date:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),rewardsWon:e.int().gte(0),valueUsdCents:e.int().gte(0)});e.object({from:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),to:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),totalRewardsWon:e.int().gte(0),totalValueUsdCents:e.int().gte(0),buckets:e.array(qt)});const Jt=e.object({collectionId:e.string(),collectionAddress:e.string(),chain:e.string(),kind:e.enum([`erc721`,`erc1155`]),tokenId:e.string(),amount:e.string(),name:e.string().nullable(),imageAssetId:e.string().nullable(),bannerAssetId:e.string().nullable(),devMetadata:e.record(e.string(),e.unknown())});e.object({items:e.array(Jt)}),e.object({mintRequestId:e.string(),txHash:e.string(),status:e.enum([`submitted`,`completed`]),mintedTokenId:e.string().nullable()}),e.object({collectionAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),chain:e.string().min(1),toWallet:e.string().regex(/^0x[0-9a-fA-F]{40}$/).optional(),toUserId:e.string().optional(),tokenId:e.string().regex(/^\d+$/).optional(),amount:e.string().regex(/^\d+$/).optional()});const Yt=e.object({requesterId:e.string().min(1),requesterName:e.string().min(1),requesterDisplayName:e.string().nullable(),requesterImage:e.url().nullable(),friendshipId:e.string().min(1)}),Xt=e.object({accepterId:e.string().min(1),accepterName:e.string().min(1),accepterDisplayName:e.string().nullable(),accepterImage:e.url().nullable(),friendshipId:e.string().min(1)}),Zt=e.object({appId:e.uuid(),appName:e.string().min(1),scope:e.enum([`publish`,`changes`])}),Qt=e.object({appId:e.uuid(),appName:e.string().min(1),scope:e.enum([`publish`,`changes`]),notes:e.string().min(1).max(1e3)}),$t=e.object({appId:e.uuid(),appName:e.string().min(1),appLogoUrl:e.url().nullable(),inviterId:e.string().min(1),inviterName:e.string().min(1),inviterDisplayName:e.string().nullable()}),en=e.object({appId:e.uuid(),appName:e.string().min(1),accepterId:e.string().min(1),accepterName:e.string().min(1),accepterDisplayName:e.string().nullable(),accepterImage:e.url().nullable()}),tn=e.union([e.object({id:e.string().min(1),kind:e.enum([`friend_request`]),payload:Yt,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`friend_accepted`]),payload:Xt,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_page_approved`]),payload:Zt,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_page_rejected`]),payload:Qt,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_participant_invite`]),payload:$t,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_participant_accepted`]),payload:en,read:e.boolean(),createdAt:e.iso.datetime()})]);e.object({notifications:e.array(tn),unreadCount:e.int().gte(0)}),e.object({ok:e.literal(!0)}),e.object({read:e.boolean()});const nn=e.enum([`online`,`offline`]),rn=e.object({user:z,friendshipId:e.string().min(1),acceptedAt:e.iso.datetime(),onlineStatus:nn});e.object({friends:e.array(rn)}),e.object({decision:e.enum([`accept`,`reject`])});const X=e.object({provider:e.enum([`twitter`,`discord`,`github`]),subject:e.string().min(1),username:e.string().nullable(),name:e.string().nullable(),profilePictureUrl:e.url().nullable(),verifiedAt:e.iso.datetime().nullable()});e.object({accounts:e.array(X)});const Z=e.string().nullable(),an=e.url().max(2048).nullable(),Q=e.object({studioName:e.string().min(1).max(80).nullable(),studioUrl:e.url().max(2048).nullable(),studioXHandle:Z,githubUrl:an,logoUrl:e.url().max(2048).nullable()}),on=e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().max(2048).nullable(),environment:e.enum([`development`,`production`])}),sn=e.object({profile:Q,apps:e.array(on)}).nullable(),cn=e.object({followers:e.int().gte(0),following:e.int().gte(0)}),ln=e.object({gamesPlayed:e.int().gte(0),totalPlaytimeSeconds:e.int().gte(0),reviewsLeft:e.int().gte(0),rewardsWon:e.int().gte(0),rewardsValueUsdCents:e.int().gte(0)}),un=e.object({appId:e.string().min(1),name:e.string().min(1),logoUrl:e.url().max(2048).nullable(),sessionCount:e.int().gte(0),totalPlaytimeSeconds:e.int().gte(0)}),dn=e.object({appId:e.string().min(1),appName:e.string().min(1),appLogoUrl:e.url().max(2048).nullable(),recommended:e.boolean(),body:e.string(),createdAt:e.iso.datetime()}),fn=e.object({isFollowing:e.boolean(),isFollowedBy:e.boolean(),friendship:e.enum([`none`,`pending_out`,`pending_in`,`accepted`]),friendshipId:e.string().min(1).nullable()}).nullable();e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),bio:e.string().nullable(),websiteUrl:e.url().max(2048).nullable(),image:e.url().nullable(),banner:l,createdAt:e.iso.datetime(),socials:e.array(X),developer:sn,counts:cn,stats:ln,topGames:e.array(un),recentReviews:e.array(dn),relationship:fn});const pn=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),image:e.url().nullable(),socials:e.array(X)});e.object({results:e.array(pn)}),e.object({ok:e.literal(!0),friendshipId:e.string().min(1)});const mn=e.object({id:e.string().min(1),keyPrefix:e.string().min(1),scopes:e.array(e.enum([`developer:read`,`developer:apps`,`developer:pages`])),createdAt:e.iso.datetime(),expiresAt:e.iso.datetime().nullable(),lastUsedAt:e.iso.datetime().nullable(),revokedAt:e.iso.datetime().nullable()});e.object({key:mn,secret:e.string().min(1)}),e.object({scopes:e.array(e.enum([`developer:read`,`developer:apps`,`developer:pages`])).min(1),expiresAt:e.iso.datetime().nullish()}),e.object({keys:e.array(mn)}),e.object({ok:e.literal(!0)}),e.object({id:e.string().min(1)});const $=e.string().regex(/^[A-Za-z0-9 ._-]{1,40}$/),hn=e.object({chain:e.string().min(1),custody:e.enum([`server`])});e.object({name:$,chains:e.array(hn).optional()});const gn=e.string().min(1).max(2048),_n=e.enum([`eth`,`tron`]),vn=e.array(_n).min(1).max(2);e.object({name:$.optional(),logoUrl:e.url().max(2048).nullish(),testAccess:e.enum([`private`,`public`]).optional(),redirectUris:e.array(e.url().max(2048)).max(20).optional(),embedOrigins:e.array(gn).max(20).optional(),acceptedCurrencies:vn.optional(),paymentStatusWebhookUrl:e.url().max(2048).nullish(),paymentStatusWebhookUrlTest:e.url().max(2048).nullish()}),e.object({logoUrl:e.url().nullable()});const yn=e.object({chain:e.string().min(1),token:e.string().min(1),tokenDecimals:e.int(),lockedWei:e.string(),unlockedWei:e.string(),walletBalanceWei:e.string().nullable()});e.object({appId:e.string().min(1),balances:e.array(yn)}),e.object({appId:e.string().min(1),availableCents:e.int().gte(0),lockedCents:e.int().gte(0),totalCents:e.int().gte(0)});const bn=e.object({ts:e.iso.datetime(),sumCents:e.number(),paymentCount:e.int()});e.object({appId:e.string().min(1),range:e.string().min(1),bucketSecs:e.int(),windowSecs:e.int(),chain:e.string().nullable(),buckets:e.array(bn)});const xn=e.object({ts:e.iso.datetime(),sessionCount:e.int(),uniquePlayerCount:e.int(),totalDurationSeconds:e.int()});e.object({appId:e.string().min(1),range:e.string().min(1),bucketSecs:e.int(),windowSecs:e.int(),buckets:e.array(xn)}),e.object({appId:e.string().min(1),earnedCents:e.int(),earningEventCount:e.int(),distinctPayers:e.int(),sessionCount:e.int(),uniquePlayerCount:e.int(),totalPlaytimeSeconds:e.int()});const Sn=e.object({chain:e.string().min(1),address:e.string().regex(/^0x[0-9a-fA-F]{40}$/),custody:e.enum([`server`]).nullable(),walletId:e.string().nullable(),autoSweepEnabled:e.boolean(),sweepThresholdCents:e.int().nullable()});e.object({appId:e.string().min(1),wallets:e.array(Sn)}),e.object({appId:e.string().min(1),chain:e.string().min(1),autoSweepEnabled:e.boolean(),sweepThresholdCents:e.int().nullable()}),e.object({enabled:e.boolean(),thresholdCents:e.int().gt(0).nullish()}),e.object({appId:e.string().min(1),chain:e.string().min(1),custody:e.enum([`server`]),walletId:e.string().min(1),address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({appId:e.string().min(1),chain:e.string().min(1),token:e.string().min(1),txHash:e.string().min(1),amountWei:e.string().min(1),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({appId:e.string().min(1),chain:e.string().min(1),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),transfers:e.array(e.object({token:e.string().min(1),txHash:e.string().min(1),amountWei:e.string().min(1)}))});const Cn=e.object({id:e.string().min(1),clientId:e.string().min(1),environment:e.enum([`development`,`production`]),secretLast4:e.string().min(1),createdAt:e.iso.datetime(),lastUsedAt:e.iso.datetime().nullable()});e.object({key:Cn,clientSecret:e.string().min(1)}),e.object({ok:e.literal(!0),status:e.enum([`pending`,`approved`])}),e.object({reason:e.string().min(1).max(500).optional()}),e.object({secret:e.string().regex(/^[a-f0-9]{64}$/),secretLast4:e.string().length(4)});const wn=e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),status:e.enum([`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),reason:e.string().nullable(),filedAt:e.iso.datetime(),resolvedAt:e.iso.datetime().nullable()});e.object({appeals:e.array(wn)});const Tn=e.object({paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),grossAmount:e.string().regex(/^\d+$/),creditedAmount:e.string().regex(/^\d+$/),vaultReleaseAt:e.iso.datetime(),signedAt:e.iso.datetime(),matured:e.boolean(),hasActiveAppeal:e.boolean()});e.object({deposits:e.array(Tn)}),e.object({appCount:e.int().gte(0),availableCents:e.int().gte(0),lockedCents:e.int().gte(0),totalCents:e.int().gte(0)});const En=e.object({userId:e.string().min(1),status:e.enum([`invited`,`accepted`,`revoked`]),name:e.string().nullable(),email:e.string().nullable(),image:e.url().nullable(),invitedAt:e.iso.datetime(),respondedAt:e.iso.datetime().nullable()});e.object({participants:e.array(En)}),e.object({identifier:e.string().min(1).max(80)});const Dn=e.object({appId:e.string().min(1),appName:e.string().min(1),appLogoUrl:e.url().nullable(),status:e.enum([`invited`,`accepted`,`revoked`]),invitedAt:e.iso.datetime()});e.object({invites:e.array(Dn)});const On=e.object({id:e.string().min(1),displayName:e.string().nullable(),email:e.string().nullable()}).nullable(),kn=e.string().min(1).max(80).nullable(),An=e.string().min(10).max(1e3).nullable(),jn=e.object({policyVersion:e.string().min(1),policyAcceptedAt:e.iso.datetime(),logoUrl:e.url().max(2048).nullable(),email:e.email().nullable(),xHandle:Z,teamName:kn,projectDescription:An}),Mn=e.object({reason:e.string().min(1).max(500).optional()}),Nn=e.object({id:e.string().min(1),userId:e.string().min(1),user:On,kind:e.enum([`role`,`production`]),status:e.enum([`pending`,`approved`,`rejected`,`cancelled`]),appId:e.string().min(1).nullable(),payload:e.union([e.object({kind:e.enum([`role`]),data:jn}),e.object({kind:e.enum([`production`]),data:Mn})]),reviewedBy:e.string().min(1).nullable(),reviewedAt:e.iso.datetime().nullable(),reviewNotes:e.string().nullable(),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).nullable(),Pn=e.object({chain:e.string().min(1),address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),Fn=e.object({id:e.string().min(1),name:$,logoUrl:e.url().max(2048).nullable(),environment:e.enum([`development`,`production`]),productionApprovedAt:e.iso.datetime().nullable(),testAccess:e.enum([`private`,`public`]),createdAt:e.iso.datetime(),redirectUris:e.array(e.url().max(2048)),embedOrigins:e.array(gn),acceptedCurrencies:vn,payoutAddresses:e.array(Pn),keys:e.array(Cn),pendingProductionRequestId:e.string().min(1).nullable(),paymentStatusWebhookUrl:e.url().max(2048).nullable(),paymentStatusWebhookSecretLast4:e.string().length(4).nullable(),paymentStatusWebhookUrlTest:e.url().max(2048).nullable(),paymentStatusWebhookSecretLast4Test:e.string().length(4).nullable()});e.object({roleStatus:e.enum([`none`,`pending`,`approved`,`rejected`,`cancelled`]),latestRequest:Nn,profile:Q.nullable(),apps:e.array(Fn)}),e.object({studioName:e.string().min(1).max(80).nullish(),studioUrl:e.url().max(2048).nullish(),studioXHandle:Z.optional(),githubUrl:an.optional(),logoUrl:e.url().max(2048).nullish()}),e.object({acceptPolicy:e.literal(!0),logoUrl:e.url().max(2048).optional(),email:e.email().optional(),teamName:kn.optional(),projectDescription:An.optional()}),e.object({appId:e.uuid(),slug:b.nullable(),status:e.enum([`draft`,`pending_review`,`published`,`hidden`]),categories:x,tagline:S.nullable(),bannerUrl:e.url().max(2048).nullable(),thumbnailUrl:e.url().max(2048).nullable(),thumbnailVideoUrl:e.url().max(2048).nullable(),playUrl:e.url().max(2048).nullable(),discordUrl:e.url().max(2048).nullable(),twitterUrl:e.url().max(2048).nullable(),redditUrl:e.url().max(2048).nullable(),telegramUrl:e.url().max(2048).nullable(),gallery:C,chapters:w,links:T,platforms:E,gameType:D,ageRating:O,languages:k,releaseStatus:A,firstPublishedAt:e.iso.datetime().nullable(),reviewedAt:e.iso.datetime().nullable(),reviewNotes:e.string().nullable(),hiddenAt:e.iso.datetime().nullable(),hiddenReasonPublic:e.string().nullable(),pendingReview:e.boolean()}),e.object({slug:b.nullish(),categories:x.optional(),tagline:S.nullish(),bannerUrl:e.url().max(2048).nullish(),thumbnailUrl:e.url().max(2048).nullish(),thumbnailVideoUrl:e.url().max(2048).nullish(),playUrl:e.url().max(2048).nullish(),discordUrl:e.url().max(2048).nullish(),twitterUrl:e.url().max(2048).nullish(),redditUrl:e.url().max(2048).nullish(),telegramUrl:e.url().max(2048).nullish(),gallery:C.optional(),chapters:w.optional(),links:T.optional(),platforms:E.optional(),gameType:D.optional(),ageRating:O.optional(),languages:k.optional(),releaseStatus:A.optional()}),e.object({url:e.url().max(2048)});const In=e.object({playSessionId:e.string().min(1),userId:e.uuid(),appId:e.uuid(),status:e.enum([`pending`,`active`]),userHalfFresh:e.boolean(),gameHalfFresh:e.boolean(),active:e.boolean(),startedAt:e.iso.datetime(),activatedAt:e.iso.datetime().nullable(),lastSeenAt:e.iso.datetime().nullable()});e.object({players:e.array(In),total:e.int().gte(0),liveCount:e.int().gte(0),generatedAt:e.iso.datetime()});const Ln=e.object({id:e.string().min(1),email:e.email().nullable(),role:u,addedBy:e.string().min(1).nullable(),addedAt:e.iso.datetime(),lastAccessedAt:e.iso.datetime().nullable()});e.object({admins:e.array(Ln)}),e.object({id:e.string()}),e.object({email:e.email(),role:u.optional()}),e.object({id:e.string(),role:u}),e.object({role:u});const Rn=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),email:e.email().nullable(),createdAt:e.iso.datetime(),bannedAt:e.iso.datetime().nullable(),deletedAt:e.iso.datetime().nullable()});e.object({users:e.array(Rn),total:e.int().gte(0),offset:e.int().gte(0),limit:e.int().gt(0)}),e.object({id:e.string(),banned:e.boolean()}),e.object({banned:e.boolean(),reason:e.string().min(1).max(280).optional()});const zn=e.object({id:e.string().min(1),actorId:e.string().min(1).nullable(),actorKind:e.enum([`user`,`system`,`service`]),action:e.string().min(1),targetType:e.string().min(1),targetId:e.string().min(1),purpose:e.string().min(1),legalBasis:e.enum([`consent`,`contract`,`legitimate-interest`,`legal-obligation`,`vital-interest`,`public-task`]),occurredAt:e.iso.datetime(),attributes:e.record(e.string(),e.unknown()),traceId:e.string().min(1).nullable()});e.object({rows:e.array(zn),total:e.int().gte(0),offset:e.int().gte(0),limit:e.int().gt(0)}),e.object({requests:e.array(Nn)}),e.object({id:e.string().min(1),status:e.enum([`pending`,`approved`,`rejected`,`cancelled`])}),e.object({decision:e.enum([`approve`,`reject`]),notes:e.string().min(1).max(1e3).optional()});const Bn=e.object({id:e.string().min(1),name:e.string(),environment:e.enum([`development`,`production`]),logoUrl:e.url().nullable(),productionApprovedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()}),Vn=e.object({userId:e.string().min(1),email:e.email(),displayName:e.string().nullable(),image:e.url().nullable(),studio:Q.nullable(),apps:e.array(Bn),grantedAt:e.iso.datetime().nullable()});e.object({developers:e.array(Vn)});const Hn=e.object({appId:e.uuid(),appName:e.string(),ownerDisplayName:e.string().nullable(),ownerImage:e.string().nullable(),ownerUserId:e.uuid(),ownerEmail:e.string().nullable(),appLogoUrl:e.string().nullable(),slug:e.string().nullable(),status:e.enum([`draft`,`pending_review`,`published`,`hidden`]),categories:x,tagline:e.string().nullable(),submittedAt:e.iso.datetime().nullable(),firstPublishedAt:e.iso.datetime().nullable(),hiddenAt:e.iso.datetime().nullable(),hiddenReasonInternal:e.string().nullable(),pendingChangesSubmittedAt:e.iso.datetime().nullable()});e.object({items:e.array(Hn)}),e.object({status:e.enum([`draft`,`pending_review`,`published`,`hidden`])}),e.object({reasonPublic:e.string().min(1).max(500),reasonInternal:e.string().max(2e3).optional()}),e.union([e.object({decision:e.enum([`approve`])}),e.object({decision:e.enum([`reject`]),notes:e.string().min(1).max(1e3)})]);const Un=e.object({field:e.string(),label:e.string(),from:e.string(),to:e.string()});e.object({appId:e.uuid(),submittedAt:e.iso.datetime().nullable(),changes:e.array(Un)}),e.object({purchaseFeeBps:e.int().gte(0).lte(1e4),stakeFeeBps:e.int().gte(0).lte(1e4),updatedAt:e.iso.datetime(),updatedBy:e.string().min(1).nullable()});const Wn=e.object({chain:e.string().min(1),chainId:e.int().gte(0),to:e.string().regex(/^0x[0-9a-fA-F]{40}$/),calldataHex:e.string().regex(/^0x[0-9a-fA-F]*$/)}),Gn=e.object({target:e.enum([`purchase`]),envelope:Wn});e.object({purchaseFeeBps:e.int().gte(0).lte(1e4),stakeFeeBps:e.int().gte(0).lte(1e4),updatedAt:e.iso.datetime(),updatedBy:e.string().min(1).nullable(),envelopes:e.array(Gn)}),e.object({purchaseFeeBps:e.int().gte(0).lte(1e4).optional(),stakeFeeBps:e.int().gte(0).lte(1e4).optional()}),e.object({appId:e.string().min(1),platformFeeBps:e.int().gte(0).lte(1e4).nullable(),rakeCapBps:e.int().gte(0).lte(3e3).nullable(),effectivePlatformFeeBps:e.int().gte(0).lte(1e4),effectiveRakeCapBps:e.int().gte(0).lte(3e3),updatedAt:e.iso.datetime().nullable(),updatedBy:e.string().min(1).nullable()}),e.object({platformFeeBps:e.int().gte(0).lte(1e4).nullish(),rakeCapBps:e.int().gte(0).lte(3e3).nullish()}),e.object({chain:e.string().min(1),vaultAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),action:e.enum([`add`,`remove`])}),e.object({chain:e.string().min(1),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),newTreasury:e.string().regex(/^0x[0-9a-fA-F]{40}$/)});const Kn=e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),reason:e.string().min(1),flaggedBy:e.string().min(1),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()});e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),reason:e.string().min(1).max(2e3)}),e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),removed:e.literal(!0)}),e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({entries:e.array(Kn)}),e.object({chain:e.string().min(1),target:e.enum([`router`,`credit_vault`,`platform_vault`]),newOperator:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({chain:e.string().min(1),target:e.enum([`router`,`credit_vault`,`platform_vault`]),action:e.enum([`pause`,`unpause`])}),e.object({chain:e.string().min(1),vaultAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),lockSeconds:e.int().gte(0)}),e.object({chain:e.string().min(1),account:e.string().regex(/^0x[0-9a-fA-F]{40}$/),lockSeconds:e.int().gte(0)});const qn=e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),status:e.enum([`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),reason:e.string().nullable(),filedAt:e.iso.datetime(),resolvedAt:e.iso.datetime().nullable(),resolvedBy:e.string().nullable(),resolutionNotes:e.string().nullable()});e.object({appeals:e.array(qn),nextCursorFiledAt:e.iso.datetime().nullable()});const Jn=e.enum([`pending_onchain`,`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),Yn=e.enum([`purchase`,`pot`,`matured`]),Xn=e.object({source:Yn,chain:e.string(),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),depositId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellantUserId:e.string().nullable(),respondent:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),respondentUserId:e.string().nullable(),reason:e.string().nullable(),filedAt:e.iso.datetime(),resolvedAt:e.iso.datetime().nullable(),resolution:e.object({resolutionId:e.string().regex(/^0x[0-9a-f]{32}$/),outcome:e.int().gte(0).lte(1),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]+$/)}).nullable(),refundClaimedAt:e.iso.datetime().nullable()}),Zn=e.enum([`party`,`admin`,`system`]),Qn=e.object({id:e.string().min(1),senderUserId:e.string().nullable(),senderRole:Zn,body:e.string().nullable(),attachments:e.array(K),sentAt:e.iso.datetime()});e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),threadId:e.string().nullable(),status:Jn,readOnly:e.boolean(),canResolve:e.boolean(),detail:Xn,messages:e.array(Qn)}),e.object({message:Qn}),e.object({body:e.string().min(1).max(4e3).optional(),attachmentIds:e.array(e.string().min(1)).max(3).optional()}),e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),resolutionId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),outcome:e.int().gte(0).lte(1),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]+$/),status:e.enum([`resolved_refund`,`resolved_dismiss`])}),e.object({decision:e.enum([`refund`,`dismiss`]),notes:e.string().min(1).max(2e3).optional()}),e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]+$/)}),e.object({paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),amount:e.string().regex(/^\d+$/),reason:e.string().min(1).max(2e3)}),e.object({legId:e.string().regex(/^0x[0-9a-f]{32}$/),reason:e.string().min(1).max(2e3)});const $n=e.object({kind:e.enum([`direct`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/)}),er=e.object({kind:e.enum([`pull`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/)});e.discriminatedUnion(`kind`,[$n.extend({kind:e.literal(`direct`)}),er.extend({kind:e.literal(`pull`)})]),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/).optional(),recipientUserId:e.string().min(1).optional(),metadata:y.optional()}),e.object({distributionId:e.string().regex(/^0x[0-9a-fA-F]{32}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/),closePot:e.boolean(),legs:e.array(e.object({recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`])}))}),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/),closePot:e.boolean().optional().default(!0),legs:e.array(e.object({recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/).optional(),recipientUserId:e.string().min(1).optional(),amount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`]).optional().default(`locked`)})).min(1).max(50),metadata:y.optional()}),e.object({potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/)}),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/)}),e.object({status:e.enum([`ok`])});const tr=e.object({id:e.string(),purpose:e.string(),version:e.string(),grantedAt:e.iso.datetime(),withdrawnAt:e.iso.datetime().nullable()}),nr=e.object({accountId:e.string(),providerId:e.string(),hasPassword:e.boolean(),scope:e.string().nullable(),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}),rr=e.object({id:e.string(),action:e.string(),targetType:e.string(),targetId:e.string(),purpose:e.string(),legalBasis:e.string(),occurredAt:e.iso.datetime(),traceId:e.string().nullable(),attributes:e.record(e.string(),e.unknown())}),ir=e.object({id:e.string(),threadId:e.string(),contentMode:e.enum([`plaintext`,`e2e-encrypted`]),body:e.string().nullable(),envelope:e.unknown().optional(),note:e.string().nullable(),sentAt:e.iso.datetime(),editedAt:e.iso.datetime().nullable(),deletedAt:e.iso.datetime().nullable()});e.object({user:f,sessions:e.array(ae),consents:e.array(tr),accounts:e.array(nr),auditEvents:e.array(rr),messages:e.array(ir),exportedAt:e.iso.datetime()}),e.object({name:c.optional(),image:e.string().min(1).max(2048).nullish()});const ar=e.object({purpose:e.string(),version:e.string(),grantedAt:e.iso.datetime(),withdrawnAt:e.iso.datetime().nullable()});e.object({consents:e.array(ar)});const or=e.string().regex(/^[a-z][a-z0-9-]{2,63}$/);e.object({purpose:or,version:e.string().min(1).max(64),granted:e.boolean()}),e.object({token:e.string().min(1),callbackURL:e.url().optional()}),e.object({response_type:e.enum([`code`]),client_id:h,redirect_uri:p,scope:m,state:oe,code_challenge:se,code_challenge_method:e.enum([`S256`]),prompt:e.enum([`consent`]).optional()}),e.object({request:g}),e.object({client_id:e.string().min(1),return_uri:e.url()}),e.object({clientId:e.string().min(1)}),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/).optional(),usdCents:e.int().gte(0).nullish()}),e.void(),e.void(),e.void(),e.object({genre:e.enum(`adventure.battle_royale.board.cards.casino.casual.fighting.idle.mmo.moba.platformer.prediction.puzzle.racing.rhythm.roguelike.rpg.rts.sandbox.shooter.simulation.sports.strategy.survival.tools.tower_defense.visual_novel.other`.split(`.`)).optional(),q:e.string().min(1).max(200).optional(),before:e.iso.datetime().optional(),limit:e.int().gte(1).lte(48).optional().default(24)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({sort:Pe.optional(),limit:e.int().gte(1).lte(50).optional().default(10),offset:e.int().gte(0).nullish().default(0)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({limit:e.int().gte(1).lte(50).optional().default(20),offset:e.int().gte(0).nullish().default(0)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),commentId:e.uuid()}),e.object({appId:e.uuid()}),e.object({sort:Pe.optional(),limit:e.int().gte(1).lte(50).optional().default(10),offset:e.int().gte(0).nullish().default(0)}),e.object({appId:e.uuid(),reviewId:e.uuid()}),e.object({appId:e.uuid(),reviewId:e.uuid()}),e.object({appId:e.uuid()}),e.object({id:e.uuid()}),e.object({status:F.optional(),limit:e.int().gte(1).lte(50).optional().default(20),offset:e.int().gte(0).nullish().default(0)}),e.object({id:e.uuid(),reportId:e.uuid()}),e.object({status:e.enum([`pending`,`completed`,`expired`,`all`]).optional().default(`completed`),limit:e.int().gte(1).lte(100).optional().default(20),before:e.iso.datetime().optional()}),e.object({kind:e.string().optional(),direction:e.enum([`outgoing`,`incoming`]).optional(),sort:e.enum([`newest`,`oldest`,`value_desc`,`value_asc`]).optional().default(`newest`),chain:e.string().min(1).optional(),limit:e.int().gte(1).lte(100).optional().default(20),cursor:e.string().min(1).optional(),before:e.iso.datetime().optional(),includeInactive:e.enum([`true`,`false`]).optional().default(`false`)}),e.object({groupId:e.string().min(1).max(128)}),e.object({chain:e.string().min(1).optional()}),e.object({before:e.iso.datetime().optional()}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({file:e.string()}),e.object({q:e.string().max(200).optional()}),e.union([jt,Mt]),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({limit:e.int().gt(0).lte(100).optional(),before:e.iso.datetime().optional()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),msgId:e.string().min(1)}),e.object({id:e.string().min(1),msgId:e.string().min(1)}),e.object({id:e.string().min(1),msgId:e.string().min(1),emoji:G}),e.object({id:e.string().min(1),msgId:e.string().min(1),emoji:G}),e.object({id:e.string().min(1)}),e.object({file:e.string()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({file:e.string()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),userId:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),userId:e.string().min(1)}),e.object({regenerate:e.boolean().optional()}),e.object({code:e.string().min(1).max(64)}),e.object({days:e.int().gt(0).lte(366).optional().default(30)}),e.object({appId:e.uuid()}),e.object({days:e.int().gt(0).lte(366).optional().default(30)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({handle:e.string().min(1)}),e.object({q:e.string().min(1).max(64),limit:e.int().gte(1).lte(50).optional().default(20)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({file:e.string()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({range:e.string().optional(),chain:e.string().optional()}),e.object({id:e.string().min(1)}),e.object({range:e.string().optional()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({kind:e.string().optional(),direction:e.enum([`outgoing`,`incoming`]).optional(),sort:e.enum([`newest`,`oldest`,`value_desc`,`value_asc`]).optional().default(`newest`),chain:e.string().min(1).optional(),limit:e.int().gte(1).lte(100).optional().default(20),cursor:e.string().min(1).optional(),before:e.iso.datetime().optional(),includeInactive:e.enum([`true`,`false`]).optional().default(`false`)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({token:e.string().regex(/^0x[0-9a-fA-F]{40}$/).optional()}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({id:e.string().min(1),env:e.enum([`development`,`production`])}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({chain:e.string().optional()}),e.object({chain:e.string().optional()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),userId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({file:e.string()}),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.void(),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({bannerUrl:e.url()}),e.object({appId:e.string().min(1)}),e.void(),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({thumbnailUrl:e.url()}),e.object({appId:e.string().min(1)}),e.void(),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({thumbnailVideoUrl:e.url()}),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({search:e.string().optional(),offset:e.int().gte(0).nullish(),limit:e.int().gt(0).lte(100).optional()}),e.object({id:e.string().min(1)}),e.object({action:e.string().optional(),actorId:e.string().optional(),targetType:e.string().optional(),targetId:e.string().optional(),offset:e.int().gte(0).nullish(),limit:e.int().gt(0).lte(100).optional()}),e.object({status:e.enum([`pending`,`approved`,`rejected`,`cancelled`]).optional(),kind:e.enum([`role`,`production`]).optional()}),e.object({id:e.string().min(1)}),e.object({status:e.union([e.enum([`draft`,`pending_review`,`published`,`hidden`]),e.enum([`all`]),e.enum([`pending_changes`])]).optional()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({processorId:e.string().min(1)}),e.object({chain:e.string().min(1).optional()}),e.object({vaultAddress:e.string().min(1)}),e.object({vaultAddress:e.string().min(1)}),e.object({vaultAddress:e.string().min(1)}),e.object({vaultAddress:e.string().min(1)}),e.object({status:e.array(e.enum([`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`])).optional(),chain:e.string().min(1).optional(),cursorFiledAt:e.iso.datetime().optional(),limit:e.int().gte(1).lte(100).optional()}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({file:e.string()}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({file:e.string()}),e.object({appealId:e.string().min(1)}),e.void(),e.void();const sr=e.object({event:e.enum([`intent.completed`,`intent.denied`,`intent.expired`,`intent.txhash_indexed`]),deliveredAt:e.iso.datetime(),intent:me});async function cr(e){let t=e.signatureHeader;if(typeof t!=`string`||t===``)return{ok:!1,reason:`missing_signature`};let n=e.timestampHeader;if(typeof n!=`string`||n===``)return{ok:!1,reason:`missing_timestamp`};let r=Number(n);if(!Number.isFinite(r)||r<=0)return{ok:!1,reason:`invalid_timestamp`};let i=e.toleranceSeconds??300,a=Math.floor((e.now??Date.now())/1e3);if(Math.abs(a-r)>i)return{ok:!1,reason:`stale_timestamp`};if(!ur(await lr(e.secret,`${n}.${e.rawBody}`),t))return{ok:!1,reason:`signature_mismatch`};let o;try{o=JSON.parse(e.rawBody)}catch{return{ok:!1,reason:`schema_mismatch`}}let s=sr.safeParse(o);return s.success?{ok:!0,body:s.data}:{ok:!1,reason:`schema_mismatch`}}async function lr(e,t){let n=new TextEncoder,r=await crypto.subtle.importKey(`raw`,n.encode(e),{name:`HMAC`,hash:`SHA-256`},!1,[`sign`]),i=await crypto.subtle.sign(`HMAC`,r,n.encode(t)),a=new Uint8Array(i),o=``;for(let e of a)o+=e.toString(16).padStart(2,`0`);return o}function ur(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n.length!==r.length)return!1;let i=0;for(let e=0;e<n.length;e++)i|=n.charCodeAt(e)^r.charCodeAt(e);return i===0}const dr=`x-metatron-signature`,fr=`x-metatron-timestamp`;export{r as TRON_WS_CLOSE_CODES,t as TronError,n as TronOauthError,i as TronWsCloseError,dr as WEBHOOK_SIGNATURE_HEADER,fr as WEBHOOK_TIMESTAMP_HEADER,o as createConsoleLogger,s as createInMemoryTokenStore,a as createNoopLogger,sr as oauthPaymentWebhookBodySchema,cr as verifyWebhook};
1
+ import*as e from"zod";var t=class extends Error{status;code;body;constructor(e,t,n,r){super(n),this.name=`TronError`,this.status=e,this.code=t,this.body=r}},n=class extends t{error;errorDescription;errorUri;constructor(e,t,n,r,i){super(e,t,`oauth ${e} ${t}${r===void 0?``:`: ${r}`}`,n),this.name=`TronOauthError`,this.error=t,this.errorDescription=r,this.errorUri=i}};const r={BAD_REQUEST:4400,UNAUTHORIZED:4401,FORBIDDEN:4403,NOT_FOUND:4404,UNAVAILABLE:4503};var i=class extends Error{code;reason;constructor(e,t){super(`tron ws closed: ${e}${t===``?``:` ${t}`}`),this.name=`TronWsCloseError`,this.code=e,this.reason=t}get isApplicationError(){return this.code>=4e3&&this.code<5e3}get isPermanent(){return[r.BAD_REQUEST,r.UNAUTHORIZED,r.FORBIDDEN,r.NOT_FOUND].includes(this.code)}};function a(){return{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}}}function o(e=`[tron-sdk]`){return{debug:(t,n)=>{console.log(e,t,n??``)},info:(t,n)=>{console.info(e,t,n??``)},warn:(t,n)=>{console.warn(e,t,n??``)},error:(t,n)=>{console.error(e,t,n??``)}}}function s(){let e=new Map;return{async get(t){return e.get(t)??null},async set(t,n){e.set(t,n)},async clear(t){e.delete(t)}}}const c=e.string().min(3).max(18).regex(/^[a-z][a-z0-9_]*$/),ee=e.string().nullable(),te=e.string().max(256).nullable(),ne=e.url().max(2048).nullable(),l=e.enum([`yellow`,`green`,`blue`,`white`,`black`,`red`]),u=e.enum([`super-admin`,`admin`,`read-only`]).nullable(),re=e.enum([`auto`,`online`,`offline`]),ie=e.enum([`development`,`production`]),d=e.object({id:e.string().min(1),email:e.email().nullable(),emailVerified:e.boolean(),name:c,displayName:ee,bio:te,websiteUrl:ne,image:e.string().nullish(),banner:l,role:u,presenceStatusMode:re,environmentViewMode:ie,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}),ae=e.string().min(1);e.object({user:d,token:ae.optional()}),e.object({error:e.string().min(1),traceId:e.string().min(1).optional()}),e.object({name:c,email:e.email(),password:e.string().min(8),image:e.url().optional(),callbackURL:e.url().optional()}),e.object({redirect:e.boolean(),token:ae.optional(),url:e.url().optional(),user:d.optional()}),e.object({email:e.email(),password:e.string().min(1),callbackURL:e.url().optional(),rememberMe:e.boolean().optional()}),e.object({success:e.boolean()});const oe=e.object({id:e.string().min(1),token:e.string().min(1),userId:e.string().min(1),expiresAt:e.iso.datetime(),ipAddress:e.string().nullish(),userAgent:e.string().nullish(),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()});e.object({session:oe,user:d}).nullable(),e.object({status:e.boolean()}),e.object({status:e.boolean()}),e.object({email:e.email(),callbackURL:e.url().optional()}),e.object({status:e.boolean()}),e.object({email:e.email(),redirectTo:e.url().optional()}),e.object({status:e.boolean()}),e.object({newPassword:e.string().min(8),token:e.string().min(1)}),e.object({issuer:e.url(),authorization_endpoint:e.url(),token_endpoint:e.url(),userinfo_endpoint:e.url(),revocation_endpoint:e.url(),registration_endpoint:e.url(),response_types_supported:e.array(e.enum([`code`])),grant_types_supported:e.array(e.enum([`authorization_code`,`refresh_token`,`client_credentials`])),code_challenge_methods_supported:e.array(e.enum([`S256`])),token_endpoint_auth_methods_supported:e.array(e.enum([`client_secret_basic`,`client_secret_post`,`none`])),scopes_supported:e.array(e.enum([`openid`,`profile`,`payments:charge`,`inventory:read`,`social:read`,`developer:read`,`developer:apps`,`developer:pages`]))});const f=e.url().max(2048),p=e.string().min(1).regex(/^[A-Za-z0-9_:.-]+(?: [A-Za-z0-9_:.-]+)*$/);e.object({client_id:e.string().regex(/^tg_dc_[a-f0-9]{32}$/),client_id_issued_at:e.int().gte(0),client_name:e.string().min(1),redirect_uris:e.array(f),token_endpoint_auth_method:e.enum([`none`]),grant_types:e.array(e.enum([`authorization_code`,`refresh_token`])),response_types:e.array(e.enum([`code`])),scope:p}),e.object({error:e.enum([`invalid_redirect_uri`,`invalid_client_metadata`]),error_description:e.string().optional()}),e.object({redirect_uris:e.array(f).min(1).max(10),client_name:e.string().min(1).max(128).optional(),token_endpoint_auth_method:e.enum([`none`]).optional(),grant_types:e.array(e.enum([`authorization_code`,`refresh_token`])).optional(),response_types:e.array(e.enum([`code`])).optional(),scope:p.optional()});const m=e.string().regex(/^tg_(?:dev|prod|dc)_[A-Za-z0-9]{16,64}$/),se=e.string().min(1).max(2048),ce=e.string().regex(/^[A-Za-z0-9_~.-]{43,128}$/),h=e.string().regex(/^[a-f0-9]{32}$/);e.object({request:h,app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),clientKind:e.enum([`app`,`connector`]),scopes:e.array(e.enum([`openid`,`profile`,`payments:charge`,`inventory:read`,`social:read`,`developer:read`,`developer:apps`,`developer:pages`])).min(1),developerRole:e.object({approved:e.boolean(),policyVersion:e.string().min(1)}).nullable(),alreadyGranted:e.array(e.enum([`openid`,`profile`,`payments:charge`,`inventory:read`,`social:read`,`developer:read`,`developer:apps`,`developer:pages`])),redirectUriHost:e.string().min(1),payment:e.object({tiersCents:e.array(e.int().gt(0)).min(1),currentLimitCents:e.int().gte(0).nullable(),currentMonthSpentCents:e.int().gte(0).nullable(),payoutChains:e.array(e.string().min(1)),tron:e.object({currentMonthlyLimitTronCents:e.int().gte(0).nullable(),currentMonthSpentTronCents:e.int().gte(0).nullable(),currentAutoApproveEnabled:e.boolean()}).nullable()}).nullable()}),e.object({consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),tiersCents:e.array(e.int().gt(0)).min(1)}),e.object({app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),developer:e.object({studioName:e.string().nullable(),logoUrl:e.url().nullable(),studioUrl:e.url().nullable(),studioXHandle:e.string().nullable()})}),e.object({redirect:e.url()});const le=e.int().gte(100).lte(5e6).nullable(),ue=e.int().gt(0).lte(1e8).nullable();e.object({request:h,decision:e.enum([`allow`,`deny`]),acceptDeveloperPolicy:e.boolean().optional(),payment:e.object({monthlyLimitCents:le,tron:e.object({autoApproveEnabled:e.boolean(),monthlyLimitTronCents:ue}).optional()}).optional()}),e.object({access_token:e.string().min(1),token_type:e.enum([`Bearer`]),expires_in:e.int().gt(0),refresh_token:e.string().min(1).optional(),scope:p.optional()}),e.object({error:e.enum([`invalid_request`,`invalid_client`,`invalid_grant`,`unauthorized_client`,`unsupported_grant_type`,`unsupported_response_type`,`invalid_scope`,`access_denied`,`server_error`,`temporarily_unavailable`,`invalid_token`,`insufficient_scope`]),error_description:e.string().optional(),error_uri:e.url().optional(),state:se.optional()});const de=e.string().regex(/^[A-Za-z0-9_~.-]{43,128}$/),g=e.string().regex(/^[a-f0-9]{64}$/),fe=e.object({grant_type:e.enum([`authorization_code`]),code:e.string().min(1),redirect_uri:f,code_verifier:de,client_id:m.optional(),client_secret:g.optional()}),pe=e.object({grant_type:e.enum([`refresh_token`]),refresh_token:e.string().min(1),scope:p.optional(),client_id:m.optional(),client_secret:g.optional()}),me=e.object({grant_type:e.enum([`client_credentials`]),scope:p.optional(),client_id:m.optional(),client_secret:g.optional()});e.discriminatedUnion(`grant_type`,[fe.extend({grant_type:e.literal(`authorization_code`)}),pe.extend({grant_type:e.literal(`refresh_token`)}),me.extend({grant_type:e.literal(`client_credentials`)})]),e.object({sub:e.string().min(1),name:e.string().min(1).nullable(),preferred_username:e.string().min(1).nullable(),picture:e.url().nullable(),wallet_address:e.string().min(1).nullable()}),e.object({token:e.string().min(1),token_type_hint:e.enum([`access_token`,`refresh_token`]).optional(),client_id:m.optional(),client_secret:g.optional()});const he=e.object({status:e.enum([`completed`]),intentId:e.string().min(1),paymentId:e.string().min(1),usdCents:e.int().gte(0),txHash:e.string().nullable()}),ge=e.object({status:e.enum([`redirect`]),intentId:e.string().min(1),redirectUrl:e.url(),usdCents:e.int().gte(0)});e.discriminatedUnion(`status`,[he.extend({status:e.literal(`completed`)}),ge.extend({status:e.literal(`redirect`)})]),e.object({error:e.enum([`monthly_limit_exceeded`]),currentLimitCents:e.int().gte(0),monthSpentCents:e.int().gte(0),attemptedUsdCents:e.int().gte(0),redirectUrl:e.url()}),e.object({error:e.enum([`idempotency_key_reused`]),intentId:e.string().min(1)});const _=e.object({purpose:e.string().min(1).max(64).optional(),title:e.string().min(1).max(120).optional(),note:e.string().min(1).max(280).optional(),quantity:e.int().gte(1).lte(1e6).optional(),category:e.string().min(1).max(64).optional(),sessionId:e.string().min(1).max(128).optional(),groupId:e.string().min(1).max(128).optional(),image:e.url().max(2048).optional(),extra:e.record(e.string(),e.union([e.string().max(512),e.number(),e.boolean()])).optional()});e.object({chain:e.string().min(1),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$/),returnUri:e.url().max(2048),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/).optional(),rakeBps:e.int().gte(0).lte(3e3).optional(),metadata:_.optional()}),e.object({monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),periodStart:e.iso.datetime(),offlineAutoChargeEnabled:e.boolean(),perTxOfflineCapCents:e.int().gte(0).nullable(),walletDelegated:e.boolean()}),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),tokenDecimals:e.int().gte(0),usdRate:e.string().min(1),feed:e.object({aggregatorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),decimals:e.int().gte(0),answer:e.string().regex(/^\d+$/),updatedAt:e.iso.datetime()}),usdCents:e.int().gte(0).optional(),amount:e.string().regex(/^\d+$/).optional()});const _e=e.object({intentId:e.string().min(1),appId:e.string().min(1),status:e.enum([`pending`,`awaiting_funding`,`completed`,`denied`,`expired`]),paymentId:e.string().nullable(),txHash:e.string().nullable(),usdCents:e.int().gte(0),chain:e.string().min(1),token:e.string().regex(/^(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$/).nullable(),grossAmount:e.string().regex(/^\d+$/).nullable(),creditedAmount:e.string().regex(/^\d+$/).nullable(),settlement:e.enum([`instant`,`locked`]).nullable(),resolvedAt:e.iso.datetime().nullable(),expiresAt:e.iso.datetime()}),v=e.enum([`ethereum`,`base`,`solana`]);e.object({intentId:e.string().min(1),consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),chain:e.string().min(1),token:e.string(),amount:e.string(),vault:e.string().regex(/^(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$/),appealable:e.boolean(),usdCents:e.int().gte(0),monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),offlineAutoChargeEnabled:e.boolean(),perTxOfflineCapCents:e.int().gte(0).nullable(),walletDelegated:e.boolean(),canonicalWalletAddress:e.string().nullable(),offlineDenialReason:e.enum([`no_active_play_session`,`driver_unavailable`,`wallet_not_delegated`,`deposit_cap_exceeded`,`insufficient_balance`,`fire_failed`]).nullable(),returnUriHost:e.string().min(1),status:e.enum([`pending`,`awaiting_funding`]),expiresAt:e.iso.datetime(),accessDenied:e.object({reason:e.enum([`not_invited`]),developer:e.object({studioName:e.string().nullable(),logoUrl:e.url().nullable(),studioUrl:e.url().nullable(),studioXHandle:e.string().nullable()})}).nullish(),environment:e.enum([`development`,`production`]),onramp:e.union([e.object({kind:e.enum([`bridge`]),from:v,to:v}),e.object({kind:e.enum([`insufficient`])})]).optional()}),e.object({chain:e.string().min(1),chainId:e.int().gte(0),id:e.string().regex(/^0x[0-9a-fA-F]{32}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),data:e.string().regex(/^0x[0-9a-fA-F]*$/),appealable:e.boolean(),payer:e.string().regex(/^0x[0-9a-fA-F]{40}$/),deadline:e.int().gte(0),routerAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),signature:e.string().regex(/^0x[0-9a-fA-F]+$/)}),e.object({redirect:e.url()});const ve=e.object({method:e.enum([`signed`]),paymentId:e.string().min(1)}),ye=e.object({method:e.enum([`offline`])});e.discriminatedUnion(`method`,[ve.extend({method:e.literal(`signed`)}),ye.extend({method:e.literal(`offline`)})]),e.object({transaction:e.string().min(1),payer:e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/)}),e.object({signedTransaction:e.string().min(1)});const be=e.object({consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),monthlyLimitCents:e.int().gte(0).nullable(),monthSpentCents:e.int().gte(0),periodStart:e.iso.datetime(),offlineAutoChargeEnabled:e.boolean(),perTxOfflineCapCents:e.int().gte(0).nullable()});e.object({authorizations:e.array(be)});const xe=e.int().gte(100).lte(1e5).nullable();e.object({offlineAutoChargeEnabled:e.boolean().optional(),perTxOfflineCapCents:xe.optional(),monthlyLimitCents:le.optional()});const Se=e.object({clientName:e.string().min(1),connectedAt:e.iso.datetime()});e.object({connections:e.array(Se)});const Ce=e.object({consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),monthlyLimitTronCents:e.int().gte(0).nullable(),monthSpentTronCents:e.int().gte(0),autoApproveEnabled:e.boolean()});e.object({authorizations:e.array(Ce).max(200)}),e.object({monthlyTronLimitCents:ue.optional(),autoApproveEnabled:e.boolean().optional()});const y=e.string().min(3).max(40).regex(/^[a-z0-9-]+$/),we=e.object({appId:e.uuid(),name:e.string().min(1).max(80),slug:y,bannerUrl:e.url().nullable(),thumbnailUrl:e.url().nullable(),thumbnailVideoUrl:e.url().nullable(),categories:e.array(e.enum(`adventure.battle_royale.board.cards.casino.casual.fighting.idle.mmo.moba.platformer.prediction.puzzle.racing.rhythm.roguelike.rpg.rts.sandbox.shooter.simulation.sports.strategy.survival.tools.tower_defense.visual_novel.other`.split(`.`))),studio:e.object({name:e.string().min(1).max(80).nullable(),logoUrl:e.url().nullable()}).nullable(),firstPublishedAt:e.iso.datetime()});e.object({items:e.array(we),nextBefore:e.iso.datetime().nullable()});const Te=e.enum([`newest`,`top`]).default(`newest`),b=e.array(e.enum(`adventure.battle_royale.board.cards.casino.casual.fighting.idle.mmo.moba.platformer.prediction.puzzle.racing.rhythm.roguelike.rpg.rts.sandbox.shooter.simulation.sports.strategy.survival.tools.tower_defense.visual_novel.other`.split(`.`))).max(4),x=e.string().min(1).max(80),Ee=e.object({url:e.url().max(2048),caption:e.string().max(200).optional(),order:e.int().gte(0)}),S=e.array(Ee).max(6),De=e.object({heading:e.string().min(1).max(80),body:e.string().min(1).max(2e3),order:e.int().gte(0)}),C=e.array(De).max(8),Oe=e.object({label:e.string().min(1).max(40),url:e.url().max(2048),order:e.int().gte(0)}),w=e.array(Oe).max(10),ke=e.object({ownerUserId:e.uuid().nullable(),name:e.string().nullable(),logoUrl:e.url().nullable(),websiteUrl:e.url().nullable(),xHandle:e.string().nullable(),githubUrl:e.url().nullable()}),T=e.array(e.enum([`web`,`ios`,`android`,`pc`,`playstation`,`xbox`,`switch`])).max(7),E=e.enum([`single_player`,`multiplayer`,`both`]).nullable(),D=e.enum([`everyone`,`13_plus`,`16_plus`,`18_plus`]).nullable(),O=e.array(e.enum([`en`,`es`,`fr`,`de`,`pt`,`it`,`ru`,`ja`,`ko`,`zh`,`hi`,`ar`,`tr`,`vi`,`id`,`th`,`pl`,`nl`])).max(18),k=e.enum([`live`,`open_beta`,`coming_soon`]),Ae=e.enum([`tron`,`onchain`,`both`]).nullable();e.object({appId:e.uuid(),slug:y,appName:e.string(),appLogoUrl:e.url().nullable(),categories:b,tagline:x,bannerUrl:e.url().nullable(),playUrl:e.url().nullable(),discordUrl:e.url().nullable(),twitterUrl:e.url().nullable(),redditUrl:e.url().nullable(),telegramUrl:e.url().nullable(),gallery:S,chapters:C,links:w,studio:ke,platforms:T,gameType:E,ageRating:D,languages:O,releaseStatus:k,paymentsMode:Ae,oauthScopes:e.array(e.string()),chains:e.array(e.string()),devlog:e.boolean(),publishedAt:e.iso.datetime(),updatedAt:e.iso.datetime()}),e.object({appId:e.uuid(),slug:y,appName:e.string(),appLogoUrl:e.url().nullable(),categories:b,tagline:x,bannerUrl:e.url().nullable(),discordUrl:e.url().nullable(),twitterUrl:e.url().nullable(),redditUrl:e.url().nullable(),telegramUrl:e.url().nullable(),gallery:S,chapters:C,links:w,studio:ke,platforms:T,gameType:E,ageRating:D,languages:O,releaseStatus:k,publishedAt:e.iso.datetime(),updatedAt:e.iso.datetime()});const A=e.string().min(1).max(4e3),je=e.object({url:e.url().max(2048),kind:e.enum([`image`,`video`]),order:e.int().gte(0)}),j=e.array(je).max(5),Me=e.object({up:e.int().gte(0),down:e.int().gte(0)}),Ne=e.object({id:e.uuid(),appId:e.uuid(),body:A,attachments:j,reactions:Me,commentCount:e.int().gte(0),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime(),pinnedAt:e.iso.datetime().nullable()});e.object({updates:e.array(Ne),total:e.int().gte(0),hasMore:e.boolean(),pinned:Ne.nullable()});const Pe=e.string().min(1).max(1e3),M=e.object({userId:e.uuid(),handle:e.string().nullable(),name:e.string().min(1).max(80).nullable(),avatarUrl:e.url().nullable()}),Fe=e.object({id:e.uuid(),body:Pe,author:M,createdAt:e.iso.datetime()});e.object({comments:e.array(Fe),total:e.int().gte(0),hasMore:e.boolean()}),e.object({interestCount:e.int().gte(0)}),e.object({interested:e.boolean(),subscribed:e.boolean(),interestCount:e.int().gte(0)}),e.object({interested:e.boolean()}),e.object({subscribed:e.boolean()});const Ie=e.object({updateId:e.uuid(),vote:e.enum([`up`,`down`])});e.object({reactions:e.array(Ie)});const Le=e.enum([`up`,`down`]).nullable();e.object({reactions:Me,vote:Le}),e.object({vote:Le}),e.object({comment:Fe,commentCount:e.int().gte(0)}),e.object({body:Pe}),e.object({commentCount:e.int().gte(0)}),e.object({body:A,attachments:j.optional()}),e.object({body:A.optional(),attachments:j.optional()}),e.object({deleted:e.literal(!0)}),e.object({url:e.url().max(2048),kind:e.enum([`image`,`video`])});const Re=e.enum([`overwhelmingly_positive`,`very_positive`,`positive`,`mostly_positive`,`mixed`,`mostly_negative`,`negative`,`overwhelmingly_negative`]).nullable(),ze=e.object({count:e.int().gte(0),recommendedCount:e.int().gte(0),recommendedPct:e.number().gte(0).lte(100).nullable(),summaryLabel:Re}),N=e.boolean(),P=e.string().min(1).max(2e3),Be=e.object({helpful:e.int().gte(0),unhelpful:e.int().gte(0),funny:e.int().gte(0)}),Ve=e.object({playtimeSecondsThisGame:e.int().gte(0),gamesPlayed:e.int().gte(0),reviewsWritten:e.int().gte(0)}),He=e.string().min(1).max(2e3),Ue=e.object({body:He,repliedAt:e.iso.datetime()}).nullable(),We=e.object({id:e.uuid(),recommended:N,body:P,reactions:Be,tippedCents:e.int().gte(0),commentCount:e.int().gte(0),author:M,authorStats:Ve,developerReply:Ue,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()});e.object({aggregate:ze,reviews:e.array(We),total:e.int().gte(0),hasMore:e.boolean()});const Ge=e.enum([`newest`,`oldest`,`helpful`]).default(`newest`),Ke=e.enum([`payment`,`reward`]).nullable(),qe=e.object({id:e.uuid(),recommended:N,body:P,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).nullable();e.object({eligible:e.boolean(),eligibleVia:Ke,review:qe,isAppOwner:e.boolean()}),e.object({recommended:N,body:P});const F=e.enum([`helpful`,`unhelpful`]).nullable(),Je=e.object({reviewId:e.uuid(),vote:F,funny:e.boolean()});e.object({reactions:e.array(Je)}),e.object({reactions:Be,vote:F,funny:e.boolean()}),e.object({vote:F,funny:e.boolean()}),e.object({status:e.enum([`completed`]),amountCents:e.int().gt(0),balanceCents:e.int().gte(0),tippedCents:e.int().gte(0)}),e.object({amountCents:e.int().gt(0).lte(1e6),note:e.string().min(1).max(280).optional(),challengeId:e.uuid().optional(),signature:e.string().max(2e3).regex(/^0x[0-9a-fA-F]+$/).optional()});const Ye=e.string().min(1).max(1e3),Xe=e.object({id:e.uuid(),body:Ye,author:M,createdAt:e.iso.datetime()});e.object({comments:e.array(Xe),total:e.int().gte(0),hasMore:e.boolean()}),e.object({comment:Xe,commentCount:e.int().gte(0)}),e.object({body:Ye}),e.object({commentCount:e.int().gte(0)}),e.object({developerReply:Ue}),e.object({body:He}),e.object({created:e.boolean()});const I=e.enum([`abuse`,`inappropriate_content`,`cheating`,`spam`,`other`]);e.object({category:I,details:e.string().max(2e3).optional()});const L=e.enum([`open`,`acknowledged`,`dismissed`]),Ze=e.object({id:e.uuid(),category:I,details:e.string().nullable(),status:L,acknowledgedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()});e.object({reports:e.array(Ze),total:e.int().gte(0),hasMore:e.boolean()}),e.object({status:e.enum([`acknowledged`,`dismissed`])});const Qe=e.object({id:e.string().min(1),family:e.enum([`evm`,`solana`]),displayName:e.string().min(1),chainId:e.int().optional(),paymentRouter:e.string().optional(),paymentProgram:e.string().optional()});e.object({chains:e.array(Qe)});const $e=e.object({id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),payer:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vaultKind:e.enum([`credit`,`platform`]),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),grossAmount:e.string().regex(/^\d+$/),creditedAmount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`]).nullable(),appealable:e.boolean(),vaultReleaseAt:e.iso.datetime().nullable(),consolidatedAt:e.iso.datetime().nullable(),status:e.enum([`pending`,`completed`,`expired`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),deadline:e.iso.datetime(),signedAt:e.iso.datetime(),completedAt:e.iso.datetime().nullable(),recipientApp:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}).nullable()});e.object({payments:e.array($e),nextBefore:e.iso.datetime().nullable()});const et=e.object({kind:e.enum([`payment`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`,`incoming`]),payer:e.string().regex(/^0x[0-9a-fA-F]{40}$/),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),beneficiaryApp:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vaultKind:e.enum([`credit`,`platform`]),targetKind:e.enum([`credit`,`pot`]),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),grossAmount:e.string().regex(/^\d+$/),creditedAmount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`]).nullable(),appealable:e.boolean(),disputableLegId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vaultReleaseAt:e.iso.datetime().nullable(),consolidatedAt:e.iso.datetime().nullable(),status:e.enum([`pending`,`completed`,`expired`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),logIndex:e.int().gte(0).nullable(),metadata:_.nullish(),usdCents:e.int().gte(0).nullable()}),tt=e.object({kind:e.enum([`payment_withdrawal`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),nt=e.object({kind:e.enum([`matured_withdrawal`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),rt=e.object({kind:e.enum([`payout_sent`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),metadata:_.nullish(),usdCents:e.int().gte(0).nullable()}),it=e.object({kind:e.enum([`credit_transferred`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),at=e.object({kind:e.enum([`pot_leg`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),distributionId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),settlement:e.enum([`instant`,`locked`]),releaseAt:e.iso.datetime().nullable(),claimedAt:e.iso.datetime().nullable(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),logIndex:e.int().gte(0).nullable(),metadata:_.nullish(),usdCents:e.int().gte(0).nullable()}),ot=e.object({kind:e.enum([`payment_autoclaim`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),autoclaimKind:e.enum([`withdraw_matured`,`withdraw_escrow`,`claim_refund`]),status:e.enum([`pending`,`in_flight`,`succeeded`,`skipped`,`failed`]),attempts:e.int().gte(0),lastError:e.string().nullable(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),settledAt:e.iso.datetime().nullable()}),st=e.object({kind:e.enum([`appeal`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`]),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),counterparty:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),status:e.enum([`pending_onchain`,`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),blockNumber:e.string().regex(/^\d+$/).nullable(),logIndex:e.int().gte(0).nullable(),resolvedAt:e.iso.datetime().nullable(),refundClaimedAt:e.iso.datetime().nullable(),hasRoom:e.boolean(),resolution:e.object({resolutionId:e.string().regex(/^0x[0-9a-f]{32}$/),outcome:e.int().gte(0).lte(1),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]{130}$/)}).nullable(),usdCents:e.int().gte(0).nullable()}),ct=e.object({kind:e.enum([`moonpay_buy`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),externalId:e.string().min(1),fiatAmountCents:e.int().gte(0),fiatCurrency:e.string().min(1),cryptoAmount:e.string().regex(/^\d+$/),cryptoToken:e.string().regex(/^0x[0-9a-fA-F]{40}$/),cryptoTxHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),status:e.enum([`pending`,`completed`,`failed`])}),lt=e.object({kind:e.enum([`moonpay_sell`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`]),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),externalId:e.string().min(1),fiatAmountCents:e.int().gte(0),fiatCurrency:e.string().min(1),cryptoAmount:e.string().regex(/^\d+$/),cryptoToken:e.string().regex(/^0x[0-9a-fA-F]{40}$/),cryptoTxHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),status:e.enum([`pending`,`completed`,`failed`])}),ut=e.object({kind:e.enum([`tron_deposit`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),amountCents:e.int().gt(0),status:e.enum([`completed`,`disputed`,`clawed_back`]),receiptUrl:e.url().nullable(),paymentIntentId:e.string().min(1).nullable()}),dt=e.object({userId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),handle:e.string().nullable(),displayName:e.string().nullable(),role:e.enum([`stake`,`payout`,`dev_cut`,`purchase`,`referral`]),amountCents:e.int()}),ft=e.object({kind:e.enum([`tron_pot`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`,`outgoing`]),leg:e.enum([`stake`,`payout`,`dev_cut`,`purchase`,`referral`]),amountCents:e.int().gt(0),usdCents:e.int(),status:e.enum([`settled`]),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),involvedUsers:e.array(dt).nullish(),metadata:_.nullish()}),pt=e.object({kind:e.enum([`tron_cashout`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`]),method:e.enum([`stripe`,`usdc`]),amountCents:e.int().gt(0),feeCents:e.int().gte(0),destinationAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),chain:e.string().min(1).nullable(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/).nullable(),status:e.enum([`pending`,`approved`,`rejected`,`settled`,`failed`]),stripeTransferId:e.string().min(1).nullable(),rejectionReason:e.string().min(1).nullable(),settledAt:e.iso.datetime().nullable()}),mt=e.object({kind:e.enum([`tron_transfer`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`incoming`,`outgoing`]),amountCents:e.int().gt(0),usdCents:e.int(),status:e.enum([`settled`]),counterpartyUserId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/).nullable(),counterpartyHandle:e.string().nullable(),counterpartyDisplayName:e.string().nullable(),note:e.string().nullable()}),ht=e.object({kind:e.enum([`referral_earning`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`incoming`]),referralAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),reversed:e.boolean(),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),logIndex:e.int().gte(0),usdCents:e.int().gte(0).nullable()}),gt=e.object({kind:e.enum([`nft_charge`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`]),chargeKind:e.enum([`registration`,`mint`,`transfer_gas`]),amountCents:e.int().gt(0),usdCents:e.int(),status:e.enum([`settled`]),collectionAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),tokenId:e.string().nullable(),counterpartyUserId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/).nullable(),counterpartyHandle:e.string().nullable(),counterpartyDisplayName:e.string().nullable()}),_t=e.object({kind:e.enum([`solana_stake`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`,`incoming`]),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,120}$/),potId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),usdCents:e.int().gte(0),status:e.enum([`completed`]),txHash:e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,120}$/).nullable(),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),stakerUserId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/).nullish(),stakerHandle:e.string().nullish(),stakerDisplayName:e.string().nullish(),metadata:_.nullish()}),vt=e.object({kind:e.enum([`solana_pot_leg`]),groupId:e.string().min(1).nullable(),id:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),chain:e.string().min(1),occurredAt:e.iso.datetime(),role:e.enum([`outgoing`,`incoming`]),beneficiary:e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,120}$/),potId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,120}$/),usdCents:e.int().gte(0).nullable(),status:e.enum([`settled`]),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable(),slug:e.string().nullable(),bannerUrl:e.url().nullable()}).nullable(),txHash:e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,120}$/).nullable(),recipientUserId:e.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/).nullish(),recipientHandle:e.string().nullish(),recipientDisplayName:e.string().nullish()}),yt=e.discriminatedUnion(`kind`,[et.extend({kind:e.literal(`payment`)}),tt.extend({kind:e.literal(`payment_withdrawal`)}),nt.extend({kind:e.literal(`matured_withdrawal`)}),rt.extend({kind:e.literal(`payout_sent`)}),it.extend({kind:e.literal(`credit_transferred`)}),at.extend({kind:e.literal(`pot_leg`)}),ot.extend({kind:e.literal(`payment_autoclaim`)}),st.extend({kind:e.literal(`appeal`)}),ct.extend({kind:e.literal(`moonpay_buy`)}),lt.extend({kind:e.literal(`moonpay_sell`)}),ut.extend({kind:e.literal(`tron_deposit`)}),ft.extend({kind:e.literal(`tron_pot`)}),pt.extend({kind:e.literal(`tron_cashout`)}),mt.extend({kind:e.literal(`tron_transfer`)}),ht.extend({kind:e.literal(`referral_earning`)}),gt.extend({kind:e.literal(`nft_charge`)}),_t.extend({kind:e.literal(`solana_stake`)}),vt.extend({kind:e.literal(`solana_pot_leg`)})]);e.object({rows:e.array(yt),nextBefore:e.iso.datetime().nullable(),nextCursor:e.string().nullable(),hasHidden:e.boolean()});const bt=e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),creditedWei:e.string().regex(/^\d+$/),drainedWei:e.string().regex(/^\d+$/),outstandingWei:e.string().regex(/^\d+$/)});e.object({rows:e.array(bt)}),e.object({enabled:e.boolean(),direction:e.enum([`buy`,`sell`,`both`]).nullable(),countryCode:e.string().regex(/^[A-Z]{2}$/).nullable(),regionSupported:e.boolean()}),e.object({url:e.url(),intentId:e.string().min(1),expiresAt:e.iso.datetime(),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({intentId:e.string().min(1)}),e.object({url:e.url(),transactionId:e.uuid(),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({usdcAmount:e.string().regex(/^\d+$/),chain:e.string().min(1).optional()}),e.object({enabled:e.boolean(),balanceCents:e.int().gte(0),frozenCents:e.int().gte(0),currency:e.enum([`tron`]),flagged:e.boolean(),minDepositCents:e.int().gt(0),maxDepositCents:e.int().gt(0)});const xt=e.object({id:e.uuid(),kind:e.enum([`deposit`,`pot_stake`,`pot_payout`,`dev_earning`,`cashout_hold`,`cashout_release`,`dispute_freeze`,`dispute_unfreeze`,`hosted_billing`,`store_purchase`,`referral_earning`,`peer_transfer`,`nft_registration`,`nft_mint`,`nft_gas`]),amountCents:e.int(),currency:e.string().min(1),createdAt:e.iso.datetime()});e.object({entries:e.array(xt).max(100),nextBefore:e.iso.datetime().nullable()}),e.object({clientSecret:e.string().min(1),publishableKey:e.string().min(1),amountCents:e.int().gt(0),currency:e.string().min(1),depositId:e.uuid()}),e.object({amountCents:e.int().gt(0).lte(1e6)}),e.object({status:e.enum([`completed`]),amountCents:e.int().gt(0),balanceCents:e.int().gte(0),recipient:e.object({userId:e.uuid(),handle:e.string().nullable(),displayName:e.string().nullable()})}),e.object({recipientUserId:e.uuid(),amountCents:e.int().gt(0).lte(1e6),note:e.string().min(1).max(280).optional(),challengeId:e.uuid().optional(),signature:e.string().max(2e3).regex(/^0x[0-9a-fA-F]+$/).optional(),threadId:e.uuid().optional()}),e.object({requireSignature:e.boolean()});const St=e.object({required:e.literal(!1)}),Ct=e.object({required:e.literal(!0),challengeId:e.uuid(),message:e.string(),expiresAt:e.iso.datetime()});e.discriminatedUnion(`required`,[St.extend({required:e.literal(!1)}),Ct.extend({required:e.literal(!0)})]),e.object({recipientUserId:e.uuid(),amountCents:e.int().gt(0).lte(1e6)}),e.object({balanceCents:e.int().gte(0),rakeBps:e.int().gte(0).lte(3e3)});const wt=e.object({status:e.enum([`completed`]),potId:e.string().regex(/^0x[0-9a-f]{32}$/),balanceCents:e.int().gte(0)}),Tt=e.object({status:e.enum([`insufficient_balance`]),potId:e.string().regex(/^0x[0-9a-f]{32}$/),balanceCents:e.int().gte(0)}),Et=e.object({status:e.enum([`redirect`]),intentId:e.string().min(1),redirectUrl:e.url(),amountCents:e.int().gt(0),potId:e.string().regex(/^0x[0-9a-f]{32}$/)});e.discriminatedUnion(`status`,[wt.extend({status:e.literal(`completed`)}),Tt.extend({status:e.literal(`insufficient_balance`)}),Et.extend({status:e.literal(`redirect`)})]),e.object({potId:e.string().regex(/^0x[0-9a-f]{32}$/),amountCents:e.int().gt(0),returnUri:e.url(),metadata:_.optional()});const Dt=e.object({status:e.enum([`completed`]),balanceCents:e.int().gte(0)}),Ot=e.object({status:e.enum([`insufficient_balance`]),balanceCents:e.int().gte(0)}),kt=e.object({status:e.enum([`redirect`]),intentId:e.string().min(1),redirectUrl:e.url(),amountCents:e.int().gt(0)});e.discriminatedUnion(`status`,[Dt.extend({status:e.literal(`completed`)}),Ot.extend({status:e.literal(`insufficient_balance`)}),kt.extend({status:e.literal(`redirect`)})]),e.object({amountCents:e.int().gt(0),returnUri:e.url(),metadata:_.optional()}),e.object({intentId:e.string().min(1),consentId:e.string().min(1),app:e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().nullable()}),amountCents:e.int().gt(0),kind:e.enum([`pot_stake`,`store_purchase`]),potId:e.string().nullable(),monthlyLimitTronCents:e.int().gte(0).nullable(),monthSpentTronCents:e.int().gte(0),autoApproveEnabled:e.boolean(),balanceCents:e.int().gte(0),returnUriHost:e.string().min(1),status:e.enum([`pending`]),expiresAt:e.iso.datetime(),environment:e.enum([`development`,`production`])});const At=e.object({status:e.enum([`redirect`]),redirect:e.url()}),jt=e.object({status:e.enum([`insufficient_balance`]),balanceCents:e.int().gte(0)});e.discriminatedUnion(`status`,[At.extend({status:e.literal(`redirect`)}),jt.extend({status:e.literal(`insufficient_balance`)})]),e.object({status:e.enum([`distributed`,`replayed`]),potId:e.string().regex(/^0x[0-9a-f]{32}$/),potBalanceCents:e.int().gte(0)}),e.object({potId:e.string().regex(/^0x[0-9a-f]{32}$/),legs:e.array(e.object({recipientUserId:e.uuid(),amountCents:e.int().gt(0)})).max(64),rakeBps:e.int().gte(0).lte(1e4).optional(),devCutCents:e.int().gte(0).optional().default(0),closePot:e.boolean().optional().default(!0),metadata:_.optional()}),e.object({url:e.url()});const Mt=e.object({id:e.uuid(),method:e.enum([`stripe`,`usdc`]),status:e.enum([`pending`,`approved`,`rejected`,`settled`,`failed`]),amountCents:e.int().gt(0),feeCents:e.int().gte(0),currency:e.string().min(1),destinationAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),chain:e.string().min(1).nullable(),txHash:e.string().min(1).nullable(),rejectionReason:e.string().min(1).nullable(),createdAt:e.iso.datetime(),settledAt:e.iso.datetime().nullable()});e.object({method:e.enum([`stripe`,`usdc`]),amountCents:e.int().gt(0),chain:e.string().min(1).optional()}),e.object({requests:e.array(Mt).max(100)});const Nt=e.object({id:e.uuid(),method:e.enum([`stripe`,`usdc`]),status:e.enum([`pending`,`approved`,`rejected`,`settled`,`failed`]),amountCents:e.int().gt(0),feeCents:e.int().gte(0),currency:e.string().min(1),destinationAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),chain:e.string().min(1).nullable(),txHash:e.string().min(1).nullable(),rejectionReason:e.string().min(1).nullable(),createdAt:e.iso.datetime(),settledAt:e.iso.datetime().nullable(),userId:e.uuid(),requestIdHex:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),usdcAmount:e.string().regex(/^\d+$/).nullable(),backendSignature:e.string().regex(/^0x[0-9a-f]+$/).nullable(),signatureDeadline:e.iso.datetime().nullable(),poolAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable()});e.object({requests:e.array(Nt).max(100)}),e.object({reason:e.string().min(1).max(500)});const Pt=e.array(e.object({id:e.enum([`ethereum-mainnet`,`base-mainnet`,`ethereum-sepolia`,`base-sepolia`,`solana-mainnet`,`solana-devnet`]),displayName:e.string().min(1),family:e.enum([`evm`,`solana`]),nativeSymbol:e.string().min(1),chainId:e.int().gt(0).optional()})),R=e.string().min(1).max(24).regex(/^[a-z0-9]+$/).nullable(),Ft=e.object({id:e.string().min(1),name:e.string().min(1),deletedAt:e.iso.datetime().nullable()}).nullable(),z=e.object({native:e.string().regex(/^\d+(?:\.\d+)?$/),usdc:e.string().regex(/^\d+(?:\.\d+)?$/).optional()}),It=e.object({"ethereum-mainnet":z.optional(),"base-mainnet":z.optional(),"ethereum-sepolia":z.optional(),"base-sepolia":z.optional(),"solana-mainnet":z.optional(),"solana-devnet":z.optional()}),Lt=e.enum([`infinite`,`custom`,`scoped`]).nullable(),Rt=e.object({native:e.string().regex(/^\d+$/),usdc:e.string().regex(/^\d+$/)}).nullable(),zt=e.int().gte(0).lte(1e3).nullable(),Bt=e.object({mode:Lt,caps:Rt,policyId:e.string().min(1).nullable(),slippageBps:zt}),Vt=e.object({address:e.union([e.string().regex(/^0x[0-9a-fA-F]{40}$/),e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/)]),family:e.enum([`evm`,`solana`]),label:R,kind:e.enum([`personal`,`app`]),app:Ft,balances:It,delegation:Bt});e.object({chains:Pt,wallets:e.array(Vt)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/),label:R}),e.object({label:R}),e.object({policyId:e.string().min(1).nullable()}),e.union([e.object({mode:e.enum([`infinite`])}),e.object({mode:e.enum([`custom`]),caps:Rt}),e.object({mode:e.enum([`scoped`])})]),e.object({ok:e.literal(!0)}),e.object({name:c.optional(),displayName:ee.optional(),bio:e.string().min(1).max(256).nullish(),websiteUrl:ne.optional(),banner:l.optional(),presenceStatusMode:re.optional(),environmentViewMode:ie.optional()});const Ht=e.object({id:e.string().min(1),title:e.string().max(500),gifUrl:e.url(),previewUrl:e.url(),width:e.int().gt(0),height:e.int().gt(0)});e.object({results:e.array(Ht)});const B=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),image:e.url().nullable()}),V=e.object({v:e.literal(1),alg:e.enum([`x25519-ecdh-hkdf-sha256-aes256gcm`]),senderPubKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),senderKeyId:e.string().min(1).max(128),recipientKeyId:e.string().min(1).max(128),iv:e.string().max(64).regex(/^[A-Za-z0-9_-]+$/),ct:e.string().max(16384).regex(/^[A-Za-z0-9_-]+$/)}).nullable(),Ut=e.object({kind:e.enum([`tron_transfer`]),amountCents:e.int().gt(0),recipientUserId:e.string().min(1)}),Wt=e.object({kind:e.enum([`nft_transfer`]),recipientUserId:e.string().min(1),collectionAddress:e.string().min(1),tokenId:e.string().min(1),amount:e.string().min(1),itemName:e.string().nullable(),imageAssetId:e.string().nullish()}),Gt=e.object({id:e.string().min(1),senderUserId:e.string().min(1),body:e.string().max(2e3),envelope:V.optional(),attachment:e.object({url:e.url(),count:e.int().gt(0)}).nullable(),transaction:e.union([Ut,Wt]).nullish(),sentAt:e.iso.datetime()}).nullable(),Kt=e.object({kind:e.enum([`direct`]),id:e.string().min(1),otherParticipant:B,lastMessage:Gt,unreadCount:e.int().gte(0),pinnedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()}),H=e.string().min(1).max(80).regex(/^\S(?:.*\S)?$/),U=e.string().max(500).nullable(),qt=e.url().max(2048).nullable(),W=e.enum([`admin`,`member`]),Jt=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),image:e.url().nullable(),role:W}),Yt=e.object({kind:e.enum([`group`]),id:e.string().min(1),title:H,description:U,logoUrl:qt,participants:e.array(Jt),myRole:W,lastMessage:Gt,unreadCount:e.int().gte(0),pinnedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()}),Xt=e.discriminatedUnion(`kind`,[Kt.extend({kind:e.literal(`direct`)}),Yt.extend({kind:e.literal(`group`)})]);e.object({threads:e.array(Xt)}),e.object({thread:Xt,created:e.boolean()});const Zt=e.object({kind:e.enum([`direct`]).optional().default(`direct`),recipientUserId:e.string().min(1)}),Qt=e.object({kind:e.enum([`group`]),title:H,description:U.optional(),invitedUserIds:e.array(e.string().min(1)).min(1).max(100)});e.object({ok:e.literal(!0)}),e.object({thread:Yt}),e.object({title:H.optional(),description:U.optional()});const $t=e.object({id:e.string().min(1),senderUserId:e.string().min(1),body:e.string().max(2e3).nullable(),envelope:V.optional()}).nullable(),G=e.enum([`👍`,`👎`,`❤️`,`😂`,`😮`,`😢`,`🔥`,`🎉`,`🙏`,`👀`,`✅`,`🎮`]),en=e.object({emoji:G,count:e.int().gt(0),userIds:e.array(e.string().min(1))}),tn=e.enum([`image`]),K=e.object({id:e.string().min(1),kind:tn,url:e.url(),contentType:e.string().min(1),fileName:e.string().min(1),byteSize:e.int().gte(0),width:e.int().gt(0).nullable(),height:e.int().gt(0).nullable()}),nn=e.object({url:e.url(),title:e.string().max(500).nullable(),description:e.string().max(1e3).nullable(),imageUrl:e.url().nullable(),siteName:e.string().max(200).nullable()}),rn=e.object({id:e.string().min(1),threadId:e.string().min(1),senderUserId:e.string().min(1),transaction:e.union([Ut,Wt]).nullish(),body:e.string().max(2e3),envelope:V.optional(),sentAt:e.iso.datetime(),editedAt:e.iso.datetime().nullable(),deletedAt:e.iso.datetime().nullable(),replyTo:$t,reactions:e.array(en),attachments:e.array(K),linkPreviews:e.array(nn)});e.object({messages:e.array(rn),nextBefore:e.iso.datetime().nullable()});const an=e.string().max(2e3);e.object({body:an.optional(),envelope:V.optional(),replyToMessageId:e.string().min(1).optional(),attachmentIds:e.array(e.string().min(1)).max(3).optional()});const on=e.string().min(1).max(2e3);e.object({body:on.optional(),envelope:V.optional()}),e.object({aggregate:en.nullable()}),e.object({attachment:K}),e.object({userIds:e.array(e.string().min(1)).min(1).max(100)}),e.object({pinnedAt:e.iso.datetime()});const sn=e.enum([`x25519`]),cn=e.object({userId:e.string().min(1),keyId:e.string().min(1).max(128),publicKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),algorithm:sn});e.object({key:cn}),e.object({publicKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),keyId:e.string().min(1).max(128),algorithm:sn});const ln=e.object({threadId:e.string().min(1),key:cn.nullable()});e.object({keys:e.array(ln)}),e.object({threadIds:e.array(e.string().min(1)).min(1).max(200)}),e.object({exists:e.boolean(),attemptsRemaining:e.int().gte(0),kdfSalt:e.string().length(22).regex(/^[A-Za-z0-9_-]+$/).nullable(),kdfIterations:e.int().gte(1e5).lte(5e6).nullable()}),e.object({ok:e.literal(!0)}),e.object({scalar:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),secret:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),pinKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/),kdfSalt:e.string().length(22).regex(/^[A-Za-z0-9_-]+$/),kdfIterations:e.int().gte(1e5).lte(5e6)}),e.union([e.object({result:e.enum([`ok`]),scalar:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/)}),e.object({result:e.enum([`wrong-pin`]),attemptsRemaining:e.int().gte(0)})]),e.object({pinKey:e.string().length(43).regex(/^[A-Za-z0-9_-]+$/)}),e.object({role:W});const q=e.object({name:e.string().nullable(),handle:e.string().nullable()}).nullable(),un=e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),usdCents:e.int().nullable()});e.object({code:e.string().nullable(),xLinked:e.boolean(),referrer:q,refereeCount:e.int().gte(0),lifetimeEarnings:e.array(un),lifetimeUsdCents:e.int().nullable(),last30dEarnings:e.array(un),last30dUsdCents:e.int().nullable()}),e.object({code:e.string().min(1),generatedAt:e.iso.datetime()}),e.object({status:e.enum([`eligible`,`already-referred`,`self-referral`,`unknown-code`,`revoked-code`,`window-expired`]),referrer:q}),e.object({status:e.enum([`bound`,`already-referred`,`self-referral`,`unknown-code`,`revoked-code`,`window-expired`]),referrer:q}),e.object({code:e.string().min(1).max(64),source:e.enum([`signup-url`,`manual-claim`,`cookie-restore`]).optional().default(`manual-claim`)});const J=e.string().regex(/^[a-f0-9]{64}$/);e.object({playSessionId:J,expiresAt:e.iso.datetime()});const Y=e.uuid();e.object({appId:Y}),e.object({ok:e.literal(!0),ttlSeconds:e.int().gt(0)}),e.object({playSessionId:J,status:e.enum([`pending`,`active`,`ended`])});const dn=e.uuid();e.object({playSessionId:J,userId:dn}),e.object({status:e.enum([`pending`,`active`,`ended`])}),e.object({playSessionId:J}),e.object({status:e.enum([`ended`])}),e.object({playSessionId:J});const fn=e.object({appId:Y,name:e.string(),logoUrl:e.string().nullable(),sessionCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)});e.object({apps:e.array(fn),totalSessionCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)});const pn=e.object({date:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),appId:Y,sessionCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)});e.object({from:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),to:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),buckets:e.array(pn)}),e.object({appId:Y,sessionCount:e.int().gte(0),uniquePlayerCount:e.int().gte(0),totalDurationSeconds:e.int().gte(0)}),e.object({followers:e.int().gte(0),following:e.int().gte(0),gamesPlayed:e.int().gte(0),totalPlaytimeSeconds:e.int().gte(0),reviewsLeft:e.int().gte(0),rewardsWon:e.int().gte(0),rewardsValueUsdCents:e.int().gte(0)});const mn=e.object({date:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),rewardsWon:e.int().gte(0),valueUsdCents:e.int().gte(0)});e.object({from:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),to:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),totalRewardsWon:e.int().gte(0),totalValueUsdCents:e.int().gte(0),buckets:e.array(mn)});const hn=e.object({collectionId:e.string(),collectionAddress:e.string(),chain:e.string(),kind:e.enum([`erc721`,`erc1155`]),tokenId:e.string(),amount:e.string(),name:e.string().nullable(),description:e.string().nullable(),imageAssetId:e.string().nullable(),bannerAssetId:e.string().nullable(),devMetadata:e.record(e.string(),e.unknown()),appId:e.string().nullable(),appName:e.string().nullable(),appLogoUrl:e.string().nullable()});e.object({items:e.array(hn)});const gn=e.object({id:e.string(),appId:e.string(),itemId:e.string(),amount:e.string(),priceCents:e.int().gte(0).nullable(),gasSponsored:e.boolean(),environment:e.enum([`development`,`production`]),createdAt:e.iso.datetime(),tokenId:e.string(),name:e.string().nullable(),description:e.string().nullable(),imageAssetId:e.string().nullable(),chain:e.string(),collectionAddress:e.string(),kind:e.enum([`erc721`,`erc1155`])});e.object({permits:e.array(gn)});const _n=e.object({mintRequestId:e.string(),txHash:e.string(),status:e.enum([`submitted`,`completed`]),mintedTokenId:e.string().nullable()});e.object({mint:_n,charge:e.object({currency:e.enum([`tron`]),gasCents:e.int().gte(0),priceCents:e.int().gte(0),totalCents:e.int().gte(0),gasPaidBy:e.enum([`user`,`developer`])})}),e.object({name:e.string(),description:e.string().optional(),image:e.string().optional(),banner_image:e.string().optional(),external_link:e.string().optional()});const vn=e.object({trait_type:e.string(),value:e.union([e.string(),e.number(),e.boolean()])});e.object({name:e.string(),description:e.string().optional(),image:e.string().optional(),attributes:e.array(vn),extra:e.record(e.string(),e.record(e.string(),e.unknown()))}),e.object({collectionAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),chain:e.string().min(1),toWallet:e.string().regex(/^0x[0-9a-fA-F]{40}$/).optional(),toUserId:e.string().optional(),tokenId:e.string().regex(/^\d+$/).optional(),amount:e.string().regex(/^\d+$/).optional()});const yn=e.object({id:e.string(),chain:e.string(),collectionAddress:e.string(),kind:e.enum([`erc721`,`erc1155`]),name:e.string().nullable(),environment:e.enum([`development`,`production`])});e.object({collections:e.array(yn)}),e.object({itemCount:e.int().gt(0),baselineUsdCents:e.int().gte(0),gasUsdCents:e.int().gte(0),tron:e.object({baselineCents:e.int().gte(0),gasCents:e.int().gte(0),totalCents:e.int().gte(0)}),eth:e.object({baselineWei:e.string().regex(/^\d+$/),gasWei:e.string().regex(/^\d+$/),totalWei:e.string().regex(/^\d+$/)})});const bn=e.enum([`capped`,`flexible`,`unlimited`]),xn=e.object({name:e.string().min(1).max(120).nullish(),description:e.string().max(2e3).nullish(),devMetadata:e.record(e.string(),e.unknown()).optional(),supplyType:bn.optional(),maxSupply:e.string().regex(/^\d+$/).nullish(),active:e.boolean().optional()});e.object({collectionAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),chain:e.string().min(1),items:e.array(xn).min(1).max(50)});const Sn=e.object({id:e.string(),collectionId:e.string(),collectionAddress:e.string(),chain:e.string(),kind:e.enum([`erc721`,`erc1155`]),tokenId:e.string(),name:e.string().nullable(),description:e.string().nullable(),imageAssetId:e.string().nullable(),bannerAssetId:e.string().nullable(),devMetadata:e.record(e.string(),e.unknown()),supplyType:bn.nullable(),maxSupply:e.string().nullable(),active:e.boolean()});e.object({items:e.array(Sn),charge:e.object({currency:e.enum([`tron`]),amountCents:e.int().gte(0),baselineCents:e.int().gte(0),gasCents:e.int().gte(0),addItemTxHash:e.string()})}),e.object({items:e.array(Sn)}),e.object({id:e.string(),appId:e.string(),itemId:e.string(),userId:e.string(),amount:e.string(),priceCents:e.int().gte(0).nullable(),gasSponsored:e.boolean(),status:e.enum([`pending`,`redeemed`,`revoked`]),createdAt:e.iso.datetime()}),e.object({toUserId:e.string().min(1),amount:e.string().regex(/^\d+$/).optional(),priceCents:e.int().gte(0).nullish(),gasSponsored:e.boolean().optional()});const Cn=e.object({holderCount:e.int().gte(0),walletCount:e.int().gte(0),totalHeld:e.string().regex(/^\d+$/)}),wn=e.object({walletAddress:e.string(),userId:e.string().nullable(),amount:e.string().regex(/^\d+$/)});e.object({stats:Cn,holders:e.array(wn)}),e.object({id:e.string(),appId:e.string(),itemId:e.string(),userId:e.string(),direction:e.enum([`vault_in`,`withdraw`]),lockKind:e.enum([`vault`,`burn`]).nullable(),amount:e.string(),gasSponsored:e.boolean(),status:e.enum([`pending`,`redeemed`,`revoked`]),custodyId:e.string().nullable(),createdAt:e.iso.datetime()}),e.object({toUserId:e.string().min(1),lockKind:e.enum([`vault`,`burn`]),amount:e.string().regex(/^\d+$/).optional(),gasSponsored:e.boolean().optional()}),e.object({custodyId:e.string().min(1)});const Tn=e.object({id:e.string(),appId:e.string(),itemId:e.string(),direction:e.enum([`vault_in`,`withdraw`]),lockKind:e.enum([`vault`,`burn`]).nullable(),amount:e.string(),gasSponsored:e.boolean(),environment:e.enum([`development`,`production`]),custodyId:e.string().nullable(),createdAt:e.iso.datetime(),tokenId:e.string(),name:e.string().nullable(),description:e.string().nullable(),imageAssetId:e.string().nullable(),chain:e.string(),collectionAddress:e.string(),kind:e.enum([`erc721`,`erc1155`])});e.object({permits:e.array(Tn)}),e.object({permitId:e.string(),direction:e.enum([`vault_in`,`withdraw`]),vault:e.string(),collection:e.string(),user:e.string(),tokenId:e.string().regex(/^\d+$/),amount:e.string().regex(/^\d+$/),lockKind:e.enum([`vault`,`burn`]).nullable(),destination:e.string().nullable(),deadline:e.int().gt(0),signature:e.string()}),e.object({direction:e.enum([`vault_in`,`withdraw`]),collection:e.string(),vault:e.string(),chainId:e.int().gt(0),user:e.string(),tokenId:e.string().regex(/^\d+$/),amount:e.string().regex(/^\d+$/),nonce:e.string().regex(/^\d+$/).nullable(),deadline:e.int().gt(0),feeCents:e.int().gte(0),gasWei:e.string().regex(/^\d+$/),gasPaidBy:e.enum([`developer`,`user`]),requiresUserSignature:e.boolean()}),e.object({ok:e.boolean(),txHash:e.string(),chargedCents:e.int().gte(0),gasPaidBy:e.enum([`developer`,`user`])}),e.object({userSignature:e.string().min(1).optional(),deadline:e.int().gt(0).optional()}),e.object({collection:e.string(),chainId:e.int().gt(0),from:e.string(),to:e.string(),tokenId:e.string().regex(/^\d+$/),amount:e.string().regex(/^\d+$/),nonce:e.string().regex(/^\d+$/),deadline:e.int().gt(0),feeCents:e.int().gte(0),gasWei:e.string().regex(/^\d+$/),selfPayAvailable:e.boolean()}),e.object({toUserId:e.string().min(1),collection:e.string().min(1),tokenId:e.string().regex(/^\d+$/),amount:e.string().regex(/^\d+$/).optional()}),e.object({ok:e.boolean(),txHash:e.string(),chargedCents:e.int().gte(0)}),e.object({toUserId:e.string().min(1),collection:e.string().min(1),tokenId:e.string().regex(/^\d+$/),amount:e.string().regex(/^\d+$/).optional(),deadline:e.int().gt(0),userSignature:e.string().min(1),threadId:e.string().min(1).optional()});const En=e.object({id:e.string(),collectionId:e.string(),collectionAddress:e.string(),chain:e.string(),kind:e.enum([`erc721`,`erc1155`]),tokenId:e.string(),amount:e.string(),lockKind:e.enum([`vault`,`burn`]),vaultAddress:e.string(),createdAt:e.iso.datetime(),name:e.string().nullable(),description:e.string().nullable(),imageAssetId:e.string().nullable()});e.object({custody:e.array(En)}),e.object({ok:e.boolean(),txHash:e.string()});const Dn=e.object({requesterId:e.string().min(1),requesterName:e.string().min(1),requesterDisplayName:e.string().nullable(),requesterImage:e.url().nullable(),friendshipId:e.string().min(1)}),On=e.object({accepterId:e.string().min(1),accepterName:e.string().min(1),accepterDisplayName:e.string().nullable(),accepterImage:e.url().nullable(),friendshipId:e.string().min(1)}),kn=e.object({appId:e.uuid(),appName:e.string().min(1),scope:e.enum([`publish`,`changes`,`bip_publish`])}),An=e.object({appId:e.uuid(),appName:e.string().min(1),scope:e.enum([`publish`,`changes`,`bip_publish`]),notes:e.string().min(1).max(1e3)}),jn=e.object({appId:e.uuid(),appName:e.string().min(1),appSlug:e.string().nullable(),updateId:e.uuid()}),Mn=e.object({appId:e.uuid(),appName:e.string().min(1),appSlug:e.string().nullable()}),Nn=e.object({appId:e.uuid(),appName:e.string().min(1),appLogoUrl:e.url().nullable(),inviterId:e.string().min(1),inviterName:e.string().min(1),inviterDisplayName:e.string().nullable()}),Pn=e.object({appId:e.uuid(),appName:e.string().min(1),accepterId:e.string().min(1),accepterName:e.string().min(1),accepterDisplayName:e.string().nullable(),accepterImage:e.url().nullable()}),Fn=e.union([e.object({id:e.string().min(1),kind:e.enum([`friend_request`]),payload:Dn,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`friend_accepted`]),payload:On,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_page_approved`]),payload:kn,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_page_rejected`]),payload:An,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`bip_update_published`]),payload:jn,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`bip_now_playable`]),payload:Mn,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_participant_invite`]),payload:Nn,read:e.boolean(),createdAt:e.iso.datetime()}),e.object({id:e.string().min(1),kind:e.enum([`app_participant_accepted`]),payload:Pn,read:e.boolean(),createdAt:e.iso.datetime()})]);e.object({notifications:e.array(Fn),unreadCount:e.int().gte(0)}),e.object({ok:e.literal(!0)}),e.object({read:e.boolean()});const In=e.enum([`online`,`offline`]),Ln=e.object({user:B,friendshipId:e.string().min(1),acceptedAt:e.iso.datetime(),onlineStatus:In});e.object({friends:e.array(Ln)}),e.object({friends:e.array(B)}),e.object({decision:e.enum([`accept`,`reject`])});const X=e.object({provider:e.enum([`twitter`,`discord`,`github`]),subject:e.string().min(1),username:e.string().nullable(),name:e.string().nullable(),profilePictureUrl:e.url().nullable(),verifiedAt:e.iso.datetime().nullable()});e.object({accounts:e.array(X)});const Z=e.string().nullable(),Rn=e.url().max(2048).nullable(),Q=e.object({studioName:e.string().min(1).max(80).nullable(),studioUrl:e.url().max(2048).nullable(),studioXHandle:Z,githubUrl:Rn,logoUrl:e.url().max(2048).nullable()}),zn=e.object({id:e.string().min(1),name:e.string().min(1),logoUrl:e.url().max(2048).nullable(),environment:e.enum([`development`,`production`])}),Bn=e.object({profile:Q,apps:e.array(zn)}).nullable(),Vn=e.object({followers:e.int().gte(0),following:e.int().gte(0)}),Hn=e.object({gamesPlayed:e.int().gte(0),totalPlaytimeSeconds:e.int().gte(0),reviewsLeft:e.int().gte(0),rewardsWon:e.int().gte(0),rewardsValueUsdCents:e.int().gte(0)}),Un=e.object({appId:e.string().min(1),name:e.string().min(1),logoUrl:e.url().max(2048).nullable(),sessionCount:e.int().gte(0),totalPlaytimeSeconds:e.int().gte(0)}),Wn=e.object({appId:e.string().min(1),appName:e.string().min(1),appLogoUrl:e.url().max(2048).nullable(),recommended:e.boolean(),body:e.string(),createdAt:e.iso.datetime()}),Gn=e.object({isFollowing:e.boolean(),isFollowedBy:e.boolean(),friendship:e.enum([`none`,`pending_out`,`pending_in`,`accepted`]),friendshipId:e.string().min(1).nullable()}).nullable();e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),bio:e.string().nullable(),websiteUrl:e.url().max(2048).nullable(),image:e.url().nullable(),banner:l,createdAt:e.iso.datetime(),socials:e.array(X),developer:Bn,counts:Vn,stats:Hn,topGames:e.array(Un),recentReviews:e.array(Wn),relationship:Gn});const Kn=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),image:e.url().nullable(),socials:e.array(X)});e.object({results:e.array(Kn)}),e.object({ok:e.literal(!0),friendshipId:e.string().min(1)});const qn=e.object({id:e.string().min(1),keyPrefix:e.string().min(1),scopes:e.array(e.enum([`developer:read`,`developer:apps`,`developer:pages`])),createdAt:e.iso.datetime(),expiresAt:e.iso.datetime().nullable(),lastUsedAt:e.iso.datetime().nullable(),revokedAt:e.iso.datetime().nullable()});e.object({key:qn,secret:e.string().min(1)}),e.object({scopes:e.array(e.enum([`developer:read`,`developer:apps`,`developer:pages`])).min(1),expiresAt:e.iso.datetime().nullish()}),e.object({keys:e.array(qn)}),e.object({ok:e.literal(!0)}),e.object({id:e.string().min(1)});const $=e.string().regex(/^[A-Za-z0-9 ._-]{1,40}$/),Jn=e.object({chain:e.string().min(1),custody:e.enum([`server`])});e.object({name:$,chains:e.array(Jn).optional()});const Yn=e.string().min(1).max(2048),Xn=e.enum([`eth`,`tron`]),Zn=e.array(Xn).min(1).max(2),Qn=e.array(v).min(1).max(3).nullable();e.object({name:$.optional(),slug:y.nullish(),logoUrl:e.url().max(2048).nullish(),testAccess:e.enum([`private`,`public`]).optional(),redirectUris:e.array(e.url().max(2048)).max(20).optional(),embedOrigins:e.array(Yn).max(20).optional(),acceptedCurrencies:Zn.optional(),acceptedNetworks:Qn.optional(),paymentStatusWebhookUrl:e.url().max(2048).nullish(),paymentStatusWebhookUrlTest:e.url().max(2048).nullish()}),e.object({logoUrl:e.url().nullable()});const $n=e.object({chain:e.string().min(1),token:e.string().min(1),tokenDecimals:e.int(),lockedWei:e.string(),unlockedWei:e.string(),walletBalanceWei:e.string().nullable()});e.object({appId:e.string().min(1),balances:e.array($n)}),e.object({appId:e.string().min(1),availableCents:e.int().gte(0),lockedCents:e.int().gte(0),totalCents:e.int().gte(0)});const er=e.object({ts:e.iso.datetime(),sumCents:e.number(),paymentCount:e.int()});e.object({appId:e.string().min(1),range:e.string().min(1),bucketSecs:e.int(),windowSecs:e.int(),chain:e.string().nullable(),buckets:e.array(er)});const tr=e.object({ts:e.iso.datetime(),sessionCount:e.int(),uniquePlayerCount:e.int(),totalDurationSeconds:e.int()});e.object({appId:e.string().min(1),range:e.string().min(1),bucketSecs:e.int(),windowSecs:e.int(),buckets:e.array(tr)}),e.object({appId:e.string().min(1),earnedCents:e.int(),earningEventCount:e.int(),distinctPayers:e.int(),sessionCount:e.int(),uniquePlayerCount:e.int(),totalPlaytimeSeconds:e.int()});const nr=e.object({chain:e.string().min(1),address:e.union([e.string().regex(/^0x[0-9a-fA-F]{40}$/),e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/)]),custody:e.enum([`server`]).nullable(),walletId:e.string().nullable(),autoSweepEnabled:e.boolean(),sweepThresholdCents:e.int().nullable()});e.object({appId:e.string().min(1),wallets:e.array(nr)}),e.object({appId:e.string().min(1),chain:e.string().min(1),autoSweepEnabled:e.boolean(),sweepThresholdCents:e.int().nullable()}),e.object({enabled:e.boolean(),thresholdCents:e.int().gt(0).nullish()}),e.object({appId:e.string().min(1),chain:e.string().min(1),custody:e.enum([`server`]),walletId:e.string().min(1),address:e.union([e.string().regex(/^0x[0-9a-fA-F]{40}$/),e.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/)])}),e.object({appId:e.string().min(1),chain:e.string().min(1),token:e.string().min(1),txHash:e.string().min(1),amountWei:e.string().min(1),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({appId:e.string().min(1),chain:e.string().min(1),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),transfers:e.array(e.object({token:e.string().min(1),txHash:e.string().min(1),amountWei:e.string().min(1)}))});const rr=e.object({id:e.string().min(1),clientId:e.string().min(1),environment:e.enum([`development`,`production`]),secretLast4:e.string().min(1),createdAt:e.iso.datetime(),lastUsedAt:e.iso.datetime().nullable()});e.object({key:rr,clientSecret:e.string().min(1)}),e.object({ok:e.literal(!0),status:e.enum([`pending`,`approved`])}),e.object({reason:e.string().min(1).max(500).optional()}),e.object({secret:e.string().regex(/^[a-f0-9]{64}$/),secretLast4:e.string().length(4)});const ir=e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),status:e.enum([`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),reason:e.string().nullable(),filedAt:e.iso.datetime(),resolvedAt:e.iso.datetime().nullable()});e.object({appeals:e.array(ir)});const ar=e.object({paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),beneficiary:e.string().regex(/^0x[0-9a-fA-F]{40}$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),grossAmount:e.string().regex(/^\d+$/),creditedAmount:e.string().regex(/^\d+$/),vaultReleaseAt:e.iso.datetime(),signedAt:e.iso.datetime(),matured:e.boolean(),hasActiveAppeal:e.boolean()});e.object({deposits:e.array(ar)}),e.object({appCount:e.int().gte(0),availableCents:e.int().gte(0),lockedCents:e.int().gte(0),totalCents:e.int().gte(0)});const or=e.object({userId:e.string().min(1),status:e.enum([`invited`,`accepted`,`revoked`]),name:e.string().nullable(),email:e.string().nullable(),image:e.url().nullable(),invitedAt:e.iso.datetime(),respondedAt:e.iso.datetime().nullable()});e.object({participants:e.array(or)}),e.object({identifier:e.string().min(1).max(80)});const sr=e.object({appId:e.string().min(1),appName:e.string().min(1),appLogoUrl:e.url().nullable(),status:e.enum([`invited`,`accepted`,`revoked`]),invitedAt:e.iso.datetime()});e.object({invites:e.array(sr)});const cr=e.object({id:e.string().min(1),displayName:e.string().nullable(),email:e.string().nullable()}).nullable(),lr=e.string().min(1).max(80).nullable(),ur=e.string().min(10).max(1e3).nullable(),dr=e.object({policyVersion:e.string().min(1),policyAcceptedAt:e.iso.datetime(),logoUrl:e.url().max(2048).nullable(),email:e.email().nullable(),xHandle:Z,teamName:lr,projectDescription:ur}),fr=e.object({reason:e.string().min(1).max(500).optional()}),pr=e.object({id:e.string().min(1),userId:e.string().min(1),user:cr,kind:e.enum([`role`,`production`]),status:e.enum([`pending`,`approved`,`rejected`,`cancelled`]),appId:e.string().min(1).nullable(),payload:e.union([e.object({kind:e.enum([`role`]),data:dr}),e.object({kind:e.enum([`production`]),data:fr})]),reviewedBy:e.string().min(1).nullable(),reviewedAt:e.iso.datetime().nullable(),reviewNotes:e.string().nullable(),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).nullable(),mr=e.object({chain:e.string().min(1),address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),hr=e.object({id:e.string().min(1),name:$,slug:y.nullable(),logoUrl:e.url().max(2048).nullable(),environment:e.enum([`development`,`production`]),productionApprovedAt:e.iso.datetime().nullable(),testAccess:e.enum([`private`,`public`]),createdAt:e.iso.datetime(),redirectUris:e.array(e.url().max(2048)),embedOrigins:e.array(Yn),acceptedCurrencies:Zn,acceptedNetworks:Qn,payoutAddresses:e.array(mr),keys:e.array(rr),pendingProductionRequestId:e.string().min(1).nullable(),paymentStatusWebhookUrl:e.url().max(2048).nullable(),paymentStatusWebhookSecretLast4:e.string().length(4).nullable(),paymentStatusWebhookUrlTest:e.url().max(2048).nullable(),paymentStatusWebhookSecretLast4Test:e.string().length(4).nullable()});e.object({roleStatus:e.enum([`none`,`pending`,`approved`,`rejected`,`cancelled`]),latestRequest:pr,profile:Q.nullable(),apps:e.array(hr)}),e.object({studioName:e.string().min(1).max(80).nullish(),studioUrl:e.url().max(2048).nullish(),studioXHandle:Z.optional(),githubUrl:Rn.optional(),logoUrl:e.url().max(2048).nullish()}),e.object({acceptPolicy:e.literal(!0),logoUrl:e.url().max(2048).optional(),email:e.email().optional(),teamName:lr.optional(),projectDescription:ur.optional()});const gr=e.object({enabled:e.boolean(),status:e.enum([`draft`,`pending_review`,`published`,`hidden`]),firstPublishedAt:e.iso.datetime().nullable(),reviewedAt:e.iso.datetime().nullable(),reviewNotes:e.string().nullable(),hiddenAt:e.iso.datetime().nullable(),hiddenReasonPublic:e.string().nullable()});e.object({appId:e.uuid(),slug:y.nullable(),status:e.enum([`draft`,`pending_review`,`published`,`hidden`]),categories:b,tagline:x.nullable(),bannerUrl:e.url().max(2048).nullable(),thumbnailUrl:e.url().max(2048).nullable(),thumbnailVideoUrl:e.url().max(2048).nullable(),playUrl:e.url().max(2048).nullable(),discordUrl:e.url().max(2048).nullable(),twitterUrl:e.url().max(2048).nullable(),redditUrl:e.url().max(2048).nullable(),telegramUrl:e.url().max(2048).nullable(),gallery:S,chapters:C,links:w,platforms:T,gameType:E,ageRating:D,languages:O,releaseStatus:k,firstPublishedAt:e.iso.datetime().nullable(),reviewedAt:e.iso.datetime().nullable(),reviewNotes:e.string().nullable(),hiddenAt:e.iso.datetime().nullable(),hiddenReasonPublic:e.string().nullable(),pendingReview:e.boolean(),bip:gr}),e.object({categories:b.optional(),tagline:x.nullish(),bannerUrl:e.url().max(2048).nullish(),thumbnailUrl:e.url().max(2048).nullish(),thumbnailVideoUrl:e.url().max(2048).nullish(),playUrl:e.url().max(2048).nullish(),discordUrl:e.url().max(2048).nullish(),twitterUrl:e.url().max(2048).nullish(),redditUrl:e.url().max(2048).nullish(),telegramUrl:e.url().max(2048).nullish(),gallery:S.optional(),chapters:C.optional(),links:w.optional(),platforms:T.optional(),gameType:E.optional(),ageRating:D.optional(),languages:O.optional(),releaseStatus:k.optional()}),e.object({url:e.url().max(2048)}),e.object({enabled:e.boolean()});const _r=e.object({playSessionId:e.string().min(1),userId:e.uuid(),appId:e.uuid(),status:e.enum([`pending`,`active`]),userHalfFresh:e.boolean(),gameHalfFresh:e.boolean(),active:e.boolean(),startedAt:e.iso.datetime(),activatedAt:e.iso.datetime().nullable(),lastSeenAt:e.iso.datetime().nullable()});e.object({players:e.array(_r),total:e.int().gte(0),liveCount:e.int().gte(0),generatedAt:e.iso.datetime()});const vr=e.object({id:e.string().min(1),email:e.email().nullable(),role:u,addedBy:e.string().min(1).nullable(),addedAt:e.iso.datetime(),lastAccessedAt:e.iso.datetime().nullable()});e.object({admins:e.array(vr)}),e.object({id:e.string()}),e.object({email:e.email(),role:u.optional()}),e.object({id:e.string(),role:u}),e.object({role:u});const yr=e.object({id:e.string().min(1),name:e.string().min(1),displayName:e.string().nullable(),email:e.email().nullable(),createdAt:e.iso.datetime(),bannedAt:e.iso.datetime().nullable(),deletedAt:e.iso.datetime().nullable()});e.object({users:e.array(yr),total:e.int().gte(0),offset:e.int().gte(0),limit:e.int().gt(0)}),e.object({id:e.string(),banned:e.boolean()}),e.object({banned:e.boolean(),reason:e.string().min(1).max(280).optional()});const br=e.object({id:e.string().min(1),actorId:e.string().min(1).nullable(),actorKind:e.enum([`user`,`system`,`service`]),action:e.string().min(1),targetType:e.string().min(1),targetId:e.string().min(1),purpose:e.string().min(1),legalBasis:e.enum([`consent`,`contract`,`legitimate-interest`,`legal-obligation`,`vital-interest`,`public-task`]),occurredAt:e.iso.datetime(),attributes:e.record(e.string(),e.unknown()),traceId:e.string().min(1).nullable()});e.object({rows:e.array(br),total:e.int().gte(0),offset:e.int().gte(0),limit:e.int().gt(0)}),e.object({requests:e.array(pr)}),e.object({id:e.string().min(1),status:e.enum([`pending`,`approved`,`rejected`,`cancelled`])}),e.object({decision:e.enum([`approve`,`reject`]),notes:e.string().min(1).max(1e3).optional()});const xr=e.object({id:e.string().min(1),name:e.string(),environment:e.enum([`development`,`production`]),logoUrl:e.url().nullable(),productionApprovedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime()}),Sr=e.object({userId:e.string().min(1),email:e.email(),displayName:e.string().nullable(),image:e.url().nullable(),studio:Q.nullable(),apps:e.array(xr),grantedAt:e.iso.datetime().nullable()});e.object({developers:e.array(Sr)});const Cr=e.object({appId:e.uuid(),appName:e.string(),ownerDisplayName:e.string().nullable(),ownerImage:e.string().nullable(),ownerUserId:e.uuid(),ownerEmail:e.string().nullable(),appLogoUrl:e.string().nullable(),slug:e.string().nullable(),status:e.enum([`draft`,`pending_review`,`published`,`hidden`]),categories:b,tagline:e.string().nullable(),submittedAt:e.iso.datetime().nullable(),firstPublishedAt:e.iso.datetime().nullable(),hiddenAt:e.iso.datetime().nullable(),hiddenReasonInternal:e.string().nullable(),pendingChangesSubmittedAt:e.iso.datetime().nullable(),bipEnabled:e.boolean(),bipStatus:e.enum([`draft`,`pending_review`,`published`,`hidden`]),bipFirstPublishedAt:e.iso.datetime().nullable(),bipHiddenAt:e.iso.datetime().nullable(),openReportCount:e.int().gte(0)});e.object({items:e.array(Cr)}),e.object({status:e.enum([`draft`,`pending_review`,`published`,`hidden`])}),e.object({reasonPublic:e.string().min(1).max(500),reasonInternal:e.string().max(2e3).optional()}),e.union([e.object({decision:e.enum([`approve`])}),e.object({decision:e.enum([`reject`]),notes:e.string().min(1).max(1e3)})]);const wr=e.object({field:e.string(),label:e.string(),from:e.string(),to:e.string()});e.object({appId:e.uuid(),submittedAt:e.iso.datetime().nullable(),changes:e.array(wr)}),e.object({bipStatus:e.enum([`draft`,`pending_review`,`published`,`hidden`])});const Tr=e.object({id:e.uuid(),category:I,details:e.string().nullable(),status:L,acknowledgedAt:e.iso.datetime().nullable(),createdAt:e.iso.datetime(),appId:e.uuid(),appName:e.string(),appSlug:e.string().nullable()});e.object({reports:e.array(Tr),total:e.int().gte(0),hasMore:e.boolean()}),e.object({purchaseFeeBps:e.int().gte(0).lte(1e4),stakeFeeBps:e.int().gte(0).lte(1e4),updatedAt:e.iso.datetime(),updatedBy:e.string().min(1).nullable()});const Er=e.object({chain:e.string().min(1),chainId:e.int().gte(0),to:e.string().regex(/^0x[0-9a-fA-F]{40}$/),calldataHex:e.string().regex(/^0x[0-9a-fA-F]*$/)}),Dr=e.object({target:e.enum([`purchase`]),envelope:Er});e.object({purchaseFeeBps:e.int().gte(0).lte(1e4),stakeFeeBps:e.int().gte(0).lte(1e4),updatedAt:e.iso.datetime(),updatedBy:e.string().min(1).nullable(),envelopes:e.array(Dr)}),e.object({purchaseFeeBps:e.int().gte(0).lte(1e4).optional(),stakeFeeBps:e.int().gte(0).lte(1e4).optional()}),e.object({appId:e.string().min(1),platformFeeBps:e.int().gte(0).lte(1e4).nullable(),rakeCapBps:e.int().gte(0).lte(3e3).nullable(),effectivePlatformFeeBps:e.int().gte(0).lte(1e4),effectiveRakeCapBps:e.int().gte(0).lte(3e3),updatedAt:e.iso.datetime().nullable(),updatedBy:e.string().min(1).nullable()}),e.object({platformFeeBps:e.int().gte(0).lte(1e4).nullish(),rakeCapBps:e.int().gte(0).lte(3e3).nullish()}),e.object({chain:e.string().min(1),vaultAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),action:e.enum([`add`,`remove`])}),e.object({chain:e.string().min(1),processorAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),newTreasury:e.string().regex(/^0x[0-9a-fA-F]{40}$/)});const Or=e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),reason:e.string().min(1),flaggedBy:e.string().min(1),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()});e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),reason:e.string().min(1).max(2e3)}),e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),removed:e.literal(!0)}),e.object({chain:e.string().min(1),walletAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({entries:e.array(Or)}),e.object({chain:e.string().min(1),target:e.enum([`router`,`credit_vault`,`platform_vault`]),newOperator:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({chain:e.string().min(1),target:e.enum([`router`,`credit_vault`,`platform_vault`]),action:e.enum([`pause`,`unpause`])}),e.object({chain:e.string().min(1),vaultAddress:e.string().regex(/^0x[0-9a-fA-F]{40}$/),lockSeconds:e.int().gte(0)}),e.object({chain:e.string().min(1),account:e.string().regex(/^0x[0-9a-fA-F]{40}$/),lockSeconds:e.int().gte(0)});const kr=e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),status:e.enum([`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),reason:e.string().nullable(),filedAt:e.iso.datetime(),resolvedAt:e.iso.datetime().nullable(),resolvedBy:e.string().nullable(),resolutionNotes:e.string().nullable()});e.object({appeals:e.array(kr),nextCursorFiledAt:e.iso.datetime().nullable()});const Ar=e.enum([`pending_onchain`,`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`]),jr=e.enum([`purchase`,`pot`,`matured`]),Mr=e.object({source:jr,chain:e.string(),amount:e.string().regex(/^\d+$/),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),depositId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/).nullable(),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellantUserId:e.string().nullable(),respondent:e.string().regex(/^0x[0-9a-fA-F]{40}$/).nullable(),respondentUserId:e.string().nullable(),reason:e.string().nullable(),filedAt:e.iso.datetime(),resolvedAt:e.iso.datetime().nullable(),resolution:e.object({resolutionId:e.string().regex(/^0x[0-9a-f]{32}$/),outcome:e.int().gte(0).lte(1),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]+$/)}).nullable(),refundClaimedAt:e.iso.datetime().nullable()}),Nr=e.enum([`party`,`admin`,`system`]),Pr=e.object({id:e.string().min(1),senderUserId:e.string().nullable(),senderRole:Nr,body:e.string().nullable(),attachments:e.array(K),sentAt:e.iso.datetime()});e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),threadId:e.string().nullable(),status:Ar,readOnly:e.boolean(),canResolve:e.boolean(),detail:Mr,messages:e.array(Pr)}),e.object({message:Pr}),e.object({body:e.string().min(1).max(4e3).optional(),attachmentIds:e.array(e.string().min(1)).max(3).optional()}),e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),resolutionId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),outcome:e.int().gte(0).lte(1),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]+$/),status:e.enum([`resolved_refund`,`resolved_dismiss`])}),e.object({decision:e.enum([`refund`,`dismiss`]),notes:e.string().min(1).max(2e3).optional()}),e.object({asOf:e.string(),ethUsd:e.number().nullable(),solUsd:e.number().nullable(),solLamportsPerCent:e.int().nullable(),tronUsdPerToken:e.number()}),e.object({appealId:e.string().regex(/^0x[0-9a-f]{32}$/),paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),chain:e.string().min(1),chainId:e.int().gt(0),vault:e.string().regex(/^0x[0-9a-fA-F]{40}$/),appellant:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),deadline:e.int().gte(0),signature:e.string().regex(/^0x[0-9a-fA-F]+$/)}),e.object({paymentId:e.string().regex(/^0x[0-9a-f]{32}$/),amount:e.string().regex(/^\d+$/),reason:e.string().min(1).max(2e3)}),e.object({legId:e.string().regex(/^0x[0-9a-f]{32}$/),reason:e.string().min(1).max(2e3)});const Fr=e.object({kind:e.enum([`direct`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/)}),Ir=e.object({kind:e.enum([`pull`]),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/)});e.discriminatedUnion(`kind`,[Fr.extend({kind:e.literal(`direct`)}),Ir.extend({kind:e.literal(`pull`)})]),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/),recipient:e.string().regex(/^0x[0-9a-fA-F]{40}$/).optional(),recipientUserId:e.string().min(1).optional(),metadata:_.optional()}),e.object({distributionId:e.string().regex(/^0x[0-9a-fA-F]{32}$/).optional(),txHash:e.string().regex(/^(?:0x[0-9a-fA-F]{64}|[1-9A-HJ-NP-Za-km-z]{43,88})$/),blockNumber:e.string().regex(/^\d+$/),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/),closePot:e.boolean(),legs:e.array(e.object({recipient:e.string().regex(/^(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$/),amount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`])}))}),e.object({chain:e.string().min(1),token:e.string().regex(/^(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$/),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/),closePot:e.boolean().optional().default(!0),legs:e.array(e.object({recipient:e.string().regex(/^(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$/).optional(),recipientUserId:e.string().min(1).optional(),amount:e.string().regex(/^\d+$/),settlement:e.enum([`instant`,`locked`]).optional().default(`locked`)})).min(1).max(50),metadata:_.optional()}),e.object({potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/),txHash:e.string().regex(/^0x[0-9a-fA-F]{64}$/),blockNumber:e.string().regex(/^\d+$/)}),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),potId:e.string().regex(/^0x[0-9a-fA-F]{32}$/)}),e.object({status:e.enum([`ok`])});const Lr=e.object({id:e.string(),purpose:e.string(),version:e.string(),grantedAt:e.iso.datetime(),withdrawnAt:e.iso.datetime().nullable()}),Rr=e.object({accountId:e.string(),providerId:e.string(),hasPassword:e.boolean(),scope:e.string().nullable(),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}),zr=e.object({id:e.string(),action:e.string(),targetType:e.string(),targetId:e.string(),purpose:e.string(),legalBasis:e.string(),occurredAt:e.iso.datetime(),traceId:e.string().nullable(),attributes:e.record(e.string(),e.unknown())}),Br=e.object({id:e.string(),threadId:e.string(),contentMode:e.enum([`plaintext`,`e2e-encrypted`]),body:e.string().nullable(),envelope:e.unknown().optional(),note:e.string().nullable(),sentAt:e.iso.datetime(),editedAt:e.iso.datetime().nullable(),deletedAt:e.iso.datetime().nullable()});e.object({user:d,sessions:e.array(oe),consents:e.array(Lr),accounts:e.array(Rr),auditEvents:e.array(zr),messages:e.array(Br),exportedAt:e.iso.datetime()}),e.object({name:c.optional(),image:e.string().min(1).max(2048).nullish()});const Vr=e.object({purpose:e.string(),version:e.string(),grantedAt:e.iso.datetime(),withdrawnAt:e.iso.datetime().nullable()});e.object({consents:e.array(Vr)});const Hr=e.string().regex(/^[a-z][a-z0-9-]{2,63}$/);e.object({purpose:Hr,version:e.string().min(1).max(64),granted:e.boolean()}),e.object({token:e.string().min(1),callbackURL:e.url().optional()}),e.object({response_type:e.enum([`code`]),client_id:m,redirect_uri:f,scope:p,state:se,code_challenge:ce,code_challenge_method:e.enum([`S256`]),prompt:e.enum([`consent`]).optional()}),e.object({request:h}),e.object({client_id:e.string().min(1),return_uri:e.url()}),e.object({clientId:e.string().min(1)}),e.object({chain:e.string().min(1),token:e.string().regex(/^0x[0-9a-fA-F]{40}$/),amount:e.string().regex(/^\d+$/).optional(),usdCents:e.int().gte(0).nullish()}),e.void(),e.void(),e.void(),e.object({genre:e.enum(`adventure.battle_royale.board.cards.casino.casual.fighting.idle.mmo.moba.platformer.prediction.puzzle.racing.rhythm.roguelike.rpg.rts.sandbox.shooter.simulation.sports.strategy.survival.tools.tower_defense.visual_novel.other`.split(`.`)).optional(),q:e.string().min(1).max(200).optional(),sort:Te.optional(),before:e.iso.datetime().optional(),limit:e.int().gte(1).lte(48).optional().default(24)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({genre:e.enum(`adventure.battle_royale.board.cards.casino.casual.fighting.idle.mmo.moba.platformer.prediction.puzzle.racing.rhythm.roguelike.rpg.rts.sandbox.shooter.simulation.sports.strategy.survival.tools.tower_defense.visual_novel.other`.split(`.`)).optional(),q:e.string().min(1).max(200).optional(),sort:Te.optional(),before:e.iso.datetime().optional(),limit:e.int().gte(1).lte(48).optional().default(24)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({limit:e.int().gte(1).lte(20).optional().default(10),offset:e.int().gte(0).nullish().default(0)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),updateId:e.uuid()}),e.object({limit:e.int().gte(1).lte(50).optional().default(20),offset:e.int().gte(0).nullish().default(0)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),updateId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),updateId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),commentId:e.uuid()}),e.object({appId:e.string().min(1)}),e.object({limit:e.int().gte(1).lte(20).optional().default(10),offset:e.int().gte(0).nullish().default(0)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1),updateId:e.uuid()}),e.object({appId:e.string().min(1),updateId:e.uuid()}),e.object({appId:e.string().min(1),updateId:e.uuid()}),e.object({appId:e.string().min(1),updateId:e.uuid()}),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({sort:Ge.optional(),limit:e.int().gte(1).lte(50).optional().default(10),offset:e.int().gte(0).nullish().default(0)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({limit:e.int().gte(1).lte(50).optional().default(20),offset:e.int().gte(0).nullish().default(0)}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),reviewId:e.uuid()}),e.object({slug:e.string().regex(/^[a-z0-9-]{3,40}$/),commentId:e.uuid()}),e.object({appId:e.uuid()}),e.object({sort:Ge.optional(),limit:e.int().gte(1).lte(50).optional().default(10),offset:e.int().gte(0).nullish().default(0)}),e.object({appId:e.uuid(),reviewId:e.uuid()}),e.object({appId:e.uuid(),reviewId:e.uuid()}),e.object({appId:e.uuid()}),e.object({id:e.uuid()}),e.object({status:L.optional(),limit:e.int().gte(1).lte(50).optional().default(20),offset:e.int().gte(0).nullish().default(0)}),e.object({id:e.uuid(),reportId:e.uuid()}),e.object({status:e.enum([`pending`,`completed`,`expired`,`all`]).optional().default(`completed`),limit:e.int().gte(1).lte(100).optional().default(20),before:e.iso.datetime().optional()}),e.object({kind:e.string().optional(),direction:e.enum([`outgoing`,`incoming`]).optional(),sort:e.enum([`newest`,`oldest`,`value_desc`,`value_asc`]).optional().default(`newest`),chain:e.string().min(1).optional(),limit:e.int().gte(1).lte(100).optional().default(20),cursor:e.string().min(1).optional(),before:e.iso.datetime().optional(),includeInactive:e.enum([`true`,`false`]).optional().default(`false`)}),e.object({groupId:e.string().min(1).max(128)}),e.object({chain:e.string().min(1).optional()}),e.object({before:e.iso.datetime().optional()}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({address:e.string().regex(/^0x[0-9a-fA-F]{40}$/)}),e.object({file:e.string()}),e.object({q:e.string().max(200).optional()}),e.union([Zt,Qt]),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({limit:e.int().gt(0).lte(100).optional(),before:e.iso.datetime().optional()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),msgId:e.string().min(1)}),e.object({id:e.string().min(1),msgId:e.string().min(1)}),e.object({id:e.string().min(1),msgId:e.string().min(1),emoji:G}),e.object({id:e.string().min(1),msgId:e.string().min(1),emoji:G}),e.object({id:e.string().min(1)}),e.object({file:e.string()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({file:e.string()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),userId:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),userId:e.string().min(1)}),e.object({regenerate:e.boolean().optional()}),e.object({code:e.string().min(1).max(64)}),e.object({days:e.int().gt(0).lte(366).optional().default(30)}),e.object({appId:e.uuid()}),e.object({days:e.int().gt(0).lte(366).optional().default(30)}),e.object({permitId:e.string().min(1)}),e.object({file:e.string()}),e.object({tokenId:e.string()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1),itemId:e.string().min(1)}),e.object({appId:e.string().min(1),itemId:e.string().min(1)}),e.object({file:e.string()}),e.object({appId:e.string().min(1),itemId:e.string().min(1)}),e.object({file:e.string()}),e.object({appId:e.string().min(1),itemId:e.string().min(1)}),e.object({appId:e.string().min(1),itemId:e.string().min(1)}),e.object({appId:e.string().min(1),itemId:e.string().min(1)}),e.object({permitId:e.string().min(1)}),e.object({permitId:e.string().min(1)}),e.object({permitId:e.string().min(1)}),e.object({custodyId:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({handle:e.string().min(1)}),e.object({q:e.string().min(1).max(64),limit:e.int().gte(1).lte(50).optional().default(20)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({file:e.string()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({range:e.string().optional(),chain:e.string().optional()}),e.object({id:e.string().min(1)}),e.object({range:e.string().optional()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({kind:e.string().optional(),direction:e.enum([`outgoing`,`incoming`]).optional(),sort:e.enum([`newest`,`oldest`,`value_desc`,`value_asc`]).optional().default(`newest`),chain:e.string().min(1).optional(),limit:e.int().gte(1).lte(100).optional().default(20),cursor:e.string().min(1).optional(),before:e.iso.datetime().optional(),includeInactive:e.enum([`true`,`false`]).optional().default(`false`)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({token:e.string().regex(/^0x[0-9a-fA-F]{40}$/).optional()}),e.object({id:e.string().min(1),chain:e.string().min(1)}),e.object({id:e.string().min(1),env:e.enum([`development`,`production`])}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({chain:e.string().optional()}),e.object({chain:e.string().optional()}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1),userId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({file:e.string()}),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.void(),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({bannerUrl:e.url()}),e.object({appId:e.string().min(1)}),e.void(),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({thumbnailUrl:e.url()}),e.object({appId:e.string().min(1)}),e.void(),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({thumbnailVideoUrl:e.url()}),e.object({file:e.string()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({id:e.string().min(1)}),e.object({search:e.string().optional(),offset:e.int().gte(0).nullish(),limit:e.int().gt(0).lte(100).optional()}),e.object({id:e.string().min(1)}),e.object({action:e.string().optional(),actorId:e.string().optional(),targetType:e.string().optional(),targetId:e.string().optional(),offset:e.int().gte(0).nullish(),limit:e.int().gt(0).lte(100).optional()}),e.object({status:e.enum([`pending`,`approved`,`rejected`,`cancelled`]).optional(),kind:e.enum([`role`,`production`]).optional()}),e.object({id:e.string().min(1)}),e.object({status:e.union([e.enum([`draft`,`pending_review`,`published`,`hidden`]),e.enum([`all`]),e.enum([`pending_changes`]),e.enum([`bip_pending_review`])]).optional()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({status:e.union([L,e.enum([`all`])]).optional(),limit:e.int().gte(1).lte(50).optional().default(20),offset:e.int().gte(0).nullish().default(0)}),e.object({reportId:e.uuid()}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({appId:e.string().min(1)}),e.object({processorId:e.string().min(1)}),e.object({chain:e.string().min(1).optional()}),e.object({vaultAddress:e.string().min(1)}),e.object({vaultAddress:e.string().min(1)}),e.object({vaultAddress:e.string().min(1)}),e.object({vaultAddress:e.string().min(1)}),e.object({status:e.array(e.enum([`open`,`resolved_refund`,`resolved_dismiss`,`cancelled`,`force_cancelled`])).optional(),chain:e.string().min(1).optional(),cursorFiledAt:e.iso.datetime().optional(),limit:e.int().gte(1).lte(100).optional()}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({file:e.string()}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({appealId:e.string().min(1)}),e.object({file:e.string()}),e.object({appealId:e.string().min(1)}),e.void(),e.void();const Ur=e.object({event:e.enum([`intent.completed`,`intent.denied`,`intent.expired`,`intent.txhash_indexed`]),deliveredAt:e.iso.datetime(),intent:_e});async function Wr(e){let t=e.signatureHeader;if(typeof t!=`string`||t===``)return{ok:!1,reason:`missing_signature`};let n=e.timestampHeader;if(typeof n!=`string`||n===``)return{ok:!1,reason:`missing_timestamp`};let r=Number(n);if(!Number.isFinite(r)||r<=0)return{ok:!1,reason:`invalid_timestamp`};let i=e.toleranceSeconds??300,a=Math.floor((e.now??Date.now())/1e3);if(Math.abs(a-r)>i)return{ok:!1,reason:`stale_timestamp`};if(!Kr(await Gr(e.secret,`${n}.${e.rawBody}`),t))return{ok:!1,reason:`signature_mismatch`};let o;try{o=JSON.parse(e.rawBody)}catch{return{ok:!1,reason:`schema_mismatch`}}let s=Ur.safeParse(o);return s.success?{ok:!0,body:s.data}:{ok:!1,reason:`schema_mismatch`}}async function Gr(e,t){let n=new TextEncoder,r=await crypto.subtle.importKey(`raw`,n.encode(e),{name:`HMAC`,hash:`SHA-256`},!1,[`sign`]),i=await crypto.subtle.sign(`HMAC`,r,n.encode(t)),a=new Uint8Array(i),o=``;for(let e of a)o+=e.toString(16).padStart(2,`0`);return o}function Kr(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n.length!==r.length)return!1;let i=0;for(let e=0;e<n.length;e++)i|=n.charCodeAt(e)^r.charCodeAt(e);return i===0}const qr=`x-metatron-signature`,Jr=`x-metatron-timestamp`;export{r as TRON_WS_CLOSE_CODES,t as TronError,n as TronOauthError,i as TronWsCloseError,qr as WEBHOOK_SIGNATURE_HEADER,Jr as WEBHOOK_TIMESTAMP_HEADER,o as createConsoleLogger,s as createInMemoryTokenStore,a as createNoopLogger,Ur as oauthPaymentWebhookBodySchema,Wr as verifyWebhook};