@guildxyz/types
Version:
Types related to the Guild.xyz API
1,715 lines (1,672 loc) • 67.1 kB
JavaScript
var __defProp = Object.defineProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
// consts.ts
var consts_exports = {};
__export(consts_exports, {
AUTH_HEADER_NAME: () => AUTH_HEADER_NAME,
AuthMethod: () => AuthMethod,
CORRELATION_ID_HEADER_NAME: () => CORRELATION_ID_HEADER_NAME,
Chain: () => Chain,
ChainIds: () => ChainIds,
ContactType: () => ContactType,
ErrorMessages: () => ErrorMessages,
FeeCollectorContracts: () => FeeCollectorContracts,
GuildPinAction: () => GuildPinAction,
GuildSortType: () => GuildSortType,
Logic: () => Logic,
NFTRewardFactoryAddresses: () => NFTRewardFactoryAddresses,
NFTRewardSupportedChains: () => NFTRewardSupportedChains,
PARAMS_HEADER_NAME: () => PARAMS_HEADER_NAME,
PLATFORM_NAMES_IDS: () => PLATFORM_NAMES_IDS,
PRIVILEGED_USER_ID_HEADER: () => PRIVILEGED_USER_ID_HEADER,
PaymentSupportedChains: () => PaymentSupportedChains,
PinContractAddresses: () => PinContractAddresses,
PinSupportedChains: () => PinSupportedChains,
PlatformName: () => PlatformName,
SDK_PROJECT_NAME_HEADER_NAME: () => SDK_PROJECT_NAME_HEADER_NAME,
SDK_VERSION_HEADER_NAME: () => SDK_VERSION_HEADER_NAME,
SERVICE_HEADER_NAME: () => SERVICE_HEADER_NAME,
SIG_HEADER_NAME: () => SIG_HEADER_NAME,
SocialLinks: () => SocialLinks,
UniswapV3FactoryAddresses: () => UniswapV3FactoryAddresses,
UniswapV3PositionsAddresses: () => UniswapV3PositionsAddresses,
UniswapV3PositionsChains: () => UniswapV3PositionsChains,
VISIBILITY_FILTERED_COUNT_HEADER_NAME: () => VISIBILITY_FILTERED_COUNT_HEADER_NAME,
Visibility: () => Visibility,
WALLET_ACTIVITY_CHAINS: () => WALLET_ACTIVITY_CHAINS,
XPEventType: () => XPEventType,
unimplementedRequirementTypes: () => unimplementedRequirementTypes,
walletTypes: () => walletTypes
});
var SocialLinks = [
"TWITTER",
"LENS",
"YOUTUBE",
"SPOTIFY",
"MIRROR",
"MEDIUM",
"SUBSTACK",
"SNAPSHOT",
"SOUND",
"GITHUB",
"WARPCAST",
"WEBSITE"
];
var Visibility = ["PUBLIC", "PRIVATE", "HIDDEN"];
var ChainIds = {
ETHEREUM: 1,
POLYGON: 137,
BSC: 56,
FANTOM: 250,
ARBITRUM: 42161,
NOVA: 42170,
CELO: 42220,
HARMONY: 16666e5,
GOERLI: 5,
AVALANCHE: 43114,
OPTIMISM: 10,
MOONRIVER: 1285,
MOONBEAM: 1284,
GNOSIS: 100,
METIS: 1088,
CRONOS: 25,
BOBA: 288,
BOBA_AVAX: 43288,
PALM: 11297108109,
BASE_GOERLI: 84531,
BASE_MAINNET: 8453,
EXOSAMA: 2109,
EVMOS: 9001,
POLYGON_MUMBAI: 80001,
ZETACHAIN_ATHENS: 7001,
SCROLL_ALPHA: 534353,
ZORA: 7777777,
SEPOLIA: 11155111,
ZKSYNC_ERA: 324,
POLYGON_ZKEVM: 1101,
NEON_EVM: 245022934,
PGN: 424,
LINEA: 59144,
LUKSO: 42,
MANTLE: 5e3,
SCROLL: 534352,
SCROLL_SEPOLIA: 534351,
RONIN: 2020,
SHIMMER: 148,
KAVA: 2222,
BITFINITY_TESTNET: 355113,
X1_TESTNET: 195,
ONTOLOGY: 58,
BERA_TESTNET: 2061,
MANTA: 169,
TAIKO_KATLA: 167008,
OASIS_SAPPHIRE: 23294,
BLAST_SEPOLIA: 168587773,
BASE_SEPOLIA: 84532,
BLAST_MAINNET: 81457,
ASTAR_ZKEVM: 3776,
ZETACHAIN: 7e3,
CORE_DAO: 1116,
LISK_SEPOLIA: 4202,
FORM: 478,
METIS_SEPOLIA: 59902,
OP_BNB: 204,
X1: 196,
CYBER: 7560,
TAIKO: 167e3,
KLAYTN: 8217,
MINT: 185,
WORLD_CHAIN: 480,
SEI: 1329,
FILECOIN: 314,
ROOTSTOCK: 30,
MODE: 34443,
LISK: 1135,
CRONOS_ZKEVM: 388,
INK_SEPOLIA: 763373,
INK: 57073,
IOTA: 8822,
SONIC: 146,
SOPHON: 50104,
ZERO: 543210,
XDC: 50,
SONEIUM: 1868
};
var Chain = Object.keys(ChainIds);
var WALLET_ACTIVITY_CHAINS = [
"ETHEREUM",
"SCROLL_ALPHA",
"POLYGON",
"BASE_MAINNET",
"BASE_GOERLI",
"ZORA",
"AVALANCHE",
"ZKSYNC_ERA",
"POLYGON_ZKEVM",
"CRONOS",
"NEON_EVM",
"PGN",
"OPTIMISM",
"LINEA",
"MANTLE",
"SCROLL",
"SCROLL_SEPOLIA",
"RONIN",
"ARBITRUM",
"METIS",
"TAIKO_KATLA",
"BSC",
"BASE_SEPOLIA",
"OASIS_SAPPHIRE",
"BLAST_MAINNET",
"ZETACHAIN",
"TAIKO",
"FANTOM",
"SEI",
"ROOTSTOCK",
"MODE",
"LISK",
"CRONOS_ZKEVM",
"INK",
"INK_SEPOLIA",
"IOTA",
"SONIC",
"SOPHON",
"ZERO",
"FORM",
"XDC",
"SONEIUM"
];
var PLATFORM_NAMES_IDS = {
DISCORD: 1,
TELEGRAM: 2,
GITHUB: 3,
GOOGLE: 4,
TWITTER: 5,
// "STEAM": 6,
CONTRACT_CALL: 7,
TWITTER_V1: 8,
UNIQUE_TEXT: 9,
TEXT: 10,
GUILD_PIN: 11,
POINTS: 13,
POAP: 14,
FORM: 15,
GATHER_TOWN: 16,
ERC20: 17,
WORLD_ID: 18,
FARCASTER_CHANNEL: 19
};
var PlatformName = Object.keys(PLATFORM_NAMES_IDS);
var Logic = ["AND", "OR", "ANY_OF"];
var ErrorMessages = {
INVALID_GUILDPLATFORM_INDEX: "Invalid guildPlatformIndex. Make sure all guildPlatformIndex values reference an existing item from guildPlatforms",
EMPTY_OBJECT: "At least one of the fields must be defined",
INVALID_ADDRESS: "Invalid address",
REQUIRED_PLATFORM_GUILD_DATA: "platformGuildData is required",
ADMIN_UPDATE_IS_OWNER_FALSE: "It is only possible to update an admin to be an owner. But doing so the previous owner will lose ownership"
};
var GuildPinAction = ["JOINED_GUILD", "IS_OWNER", "IS_ADMIN"];
var XPEventType = [
"USER_REFERRAL",
"JOIN_GUILD",
"GET_ROLE",
"SUBMIT_FORM",
"COLLECT_PIN",
"COLLECT_NFT",
"OWN_GUILD_VERIFIED"
];
var PinSupportedChains = {
10: "OPTIMISM",
25: "CRONOS",
56: "BSC",
58: "ONTOLOGY",
137: "POLYGON",
146: "SONIC",
185: "MINT",
324: "ZKSYNC_ERA",
478: "FORM",
1135: "LISK",
5e3: "MANTLE",
7560: "CYBER",
8453: "BASE_MAINNET",
8822: "IOTA",
34443: "MODE",
42161: "ARBITRUM",
50104: "SOPHON",
57073: "INK",
59144: "LINEA",
543210: "ZERO",
50: "XDC",
1868: "SONEIUM",
11155111: "SEPOLIA",
// Use a fake chainId for Fuel
123456789: "FUEL"
};
var PinContractAddresses = {
POLYGON: "0xff04820c36759c9f5203021fe051239ad2dcca8a",
BASE_MAINNET: "0x326f14942f8899406e3224bd63e9f250d275a52e",
ZKSYNC_ERA: "0xd1e4254fe7e56f58777ba624e7eeb3644f872b0d",
BSC: "0x807f16eba4a2c51b86cb8ec8be8eab34305c2bfd",
ARBITRUM: "0x0e6a14106497a7de36fba446628860c062e9e302",
CRONOS: "0x4205e56a69a0130a9e0828d45d0c84e45340a196",
OPTIMISM: "0x6c2c223b84724c4b8fd41ae0142c2369dfa7e319",
MANTLE: "0x4205e56a69a0130a9e0828d45d0c84e45340a196",
ONTOLOGY: "0x4205e56a69a0130a9e0828d45d0c84e45340a196",
LINEA: "0x4205e56a69a0130a9e0828d45d0c84e45340a196",
CYBER: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
MINT: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
MODE: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
LISK: "0x73d1a63bce3083be47597E2Ef0646BbFd1907f1C",
FORM: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
INK: "0x73d1a63bce3083be47597E2Ef0646BbFd1907f1C",
IOTA: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
SONIC: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
// SOPHON: "0xTODO",
ZERO: "0x792c4f33cABa7B0631c2B6a3355fEad6D9DCaCC9",
XDC: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
SONEIUM: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
SEPOLIA: "0xac49ee0c3bda5f851eac9a3184a21041e9afe379"
};
var NFTRewardSupportedChains = [
"ETHEREUM",
"BASE_MAINNET",
"OPTIMISM",
"BSC",
"CRONOS",
"POLYGON",
"MANTLE",
"ZKSYNC_ERA",
"LINEA",
"CYBER",
"ARBITRUM",
"SCROLL",
"TAIKO",
"BLAST_MAINNET",
"X1",
"CORE_DAO",
"METIS",
"NEON_EVM",
"POLYGON_ZKEVM",
"ZETACHAIN",
"MINT",
"MODE",
"AVALANCHE",
"LISK",
"INK",
"IOTA",
"SONIC",
// "SOPHON",
"ZERO",
"XDC",
"SONEIUM",
"SEPOLIA"
];
var NFTRewardFactoryAddresses = {
ETHEREUM: "0x6ee2dd02fbfb71f518827042b6adca242f1ba0b2",
BASE_MAINNET: "0x4205e56a69a0130a9e0828d45d0c84e45340a196",
OPTIMISM: "0xe6e6b676f94a6207882ac92b6014a391766fa96e",
BSC: "0xa445e7d3af54867d14467b44d5487352403d1e59",
CRONOS: "0x6c2c223b84724c4b8fd41ae0142c2369dfa7e319",
POLYGON: "0xc1c23618110277ffe6d529816eb23de42b24cc33",
MANTLE: "0x326f14942f8899406e3224bd63E9f250D275a52e",
ZKSYNC_ERA: "0x2a1eaf11a9753a871b15e2865d8a47cf17dd9450",
LINEA: "0x326f14942f8899406e3224bd63E9f250D275a52e",
CYBER: "0x097E05f7a194a30A482CC9616460498980bE79d3",
ARBITRUM: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
SCROLL: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
TAIKO: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
BLAST_MAINNET: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
X1: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
CORE_DAO: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
METIS: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
NEON_EVM: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
POLYGON_ZKEVM: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
ZETACHAIN: "0x13ec6B98362E43Add08f7CC4f6befd02fa52eE01",
MINT: "0x097E05f7a194a30A482CC9616460498980bE79d3",
MODE: "0x097E05f7a194a30A482CC9616460498980bE79d3",
AVALANCHE: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
LISK: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
INK: "0x13ec6b98362e43add08f7cc4f6befd02fa52ee01",
SEPOLIA: "0xa9e8e62266d449b766d305075248790bdd46facb",
IOTA: "0x097E05f7a194a30A482CC9616460498980bE79d3",
SONIC: "0x070cD1FD4de1ed0259871B7d0b85C0e237702691",
// SOPHON: "0xTODO",
ZERO: "0x334f5BBDdCD9eAF0ad6B151e8D222f4fA54Fbc95",
XDC: "0x097E05f7a194a30A482CC9616460498980bE79d3",
SONEIUM: "0x097E05f7a194a30A482CC9616460498980bE79d3"
};
var GuildSortType = ["NEWEST", "VERIFIED", "FEATURED"];
var ContactType = ["EMAIL", "TELEGRAM"];
var AuthMethod = {
EOA: "1",
KeyPair: "2",
EIP1271: "3"
};
var PARAMS_HEADER_NAME = "x-guild-params";
var SIG_HEADER_NAME = "x-guild-sig";
var AUTH_HEADER_NAME = "x-guild-auth";
var SERVICE_HEADER_NAME = "x-guild-service";
var PRIVILEGED_USER_ID_HEADER = "x-guild-privileged-user-id";
var CORRELATION_ID_HEADER_NAME = "x-correlation-id";
var SDK_VERSION_HEADER_NAME = "x-guild-sdk-version";
var SDK_PROJECT_NAME_HEADER_NAME = "x-guild-sdk-project-name";
var VISIBILITY_FILTERED_COUNT_HEADER_NAME = "x-guild-visibility-filtered";
var unimplementedRequirementTypes = [
"ERC721",
"ERC1155",
"NOUNS",
"ERC20",
"SOUND_ARTIST_BACKED",
"SOUND_COLLECTED",
"SOUND_ARTIST",
"SOUND_TOP_COLLECTOR",
"SOUND_NFTS",
"UNLOCK",
"NOOX",
"YUP"
];
var UniswapV3PositionsChains = [
"ETHEREUM",
"ARBITRUM",
"OPTIMISM",
"POLYGON",
"BASE_MAINNET",
"BSC",
"AVALANCHE",
"CELO",
"BLAST_MAINNET",
"SEPOLIA",
"BASE_SEPOLIA"
];
var UniswapV3PositionsAddresses = {
ETHEREUM: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
ARBITRUM: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
OPTIMISM: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
POLYGON: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
CELO: "0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",
BSC: "0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",
BASE_MAINNET: "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
SEPOLIA: "0x1238536071E1c677A632429e3655c799b22cDA52",
BASE_SEPOLIA: "0x1238536071E1c677A632429e3655c799b22cDA52",
AVALANCHE: "0x655C406EBFa14EE2006250925e54ec43AD184f8B",
BLAST_MAINNET: "0xB218e4f7cF0533d4696fDfC419A0023D33345F28"
};
var UniswapV3FactoryAddresses = {
ETHEREUM: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
SEPOLIA: "0x0227628f3F023bb0B980b67D528571c95c6DaC1c",
ARBITRUM: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
OPTIMISM: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
POLYGON: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
BASE_MAINNET: "0x33128a8fC17869897dcE68Ed026d694621f6FDfD",
BASE_SEPOLIA: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",
BSC: "0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",
AVALANCHE: "0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",
CELO: "0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",
BLAST_MAINNET: "0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd"
};
var PaymentSupportedChains = [
"ETHEREUM",
"POLYGON",
"OPTIMISM",
"SEPOLIA"
];
var FeeCollectorContracts = {
ETHEREUM: "0xe4b4c6a7c6b6396032096c12adf46b7f14a70f4d",
POLYGON: "0xe4b4c6a7c6b6396032096c12adf46b7f14a70f4d",
OPTIMISM: "0xf7c2baa81feb6dd7bda0b3a03afbc1e13f955da5",
SEPOLIA: "0xc3563655d35397b77228c07a7f5301b0e0fa417d"
};
var walletTypes = ["EVM", "FUEL"];
// schemas/index.ts
var schemas_exports = {};
__export(schemas_exports, {
AuthenticationParamsSchema: () => AuthenticationParamsSchema,
AuthenticationSchema: () => AuthenticationSchema,
ContractCallGuildRewardSchema: () => ContractCallGuildRewardSchema,
ContributionCollectionSchema: () => ContributionCollectionSchema,
ContributionCreationSchema: () => ContributionCreationSchema,
ContributionSchema: () => ContributionSchema,
ContributionUpdateSchema: () => ContributionUpdateSchema,
DynamicAmountSchema: () => DynamicAmountSchema,
ExperienceSchema: () => ExperienceSchema,
FarcasterProfileSchema: () => FarcasterProfileSchema,
FieldCreationPayloadSchema: () => FieldCreationPayloadSchema,
FieldSchema: () => FieldSchema,
FormCreationPayloadSchema: () => FormCreationPayloadSchema,
FormSchema: () => FormSchema,
GroupCreateSchema: () => GroupCreateSchema,
GroupSchema: () => GroupSchema,
GroupUpateSchema: () => GroupUpateSchema,
GuildAdminCreationPayloadSchema: () => GuildAdminCreationPayloadSchema,
GuildAdminUpdatePayloadSchema: () => GuildAdminUpdatePayloadSchema,
GuildContactCreationPayloadSchema: () => GuildContactCreationPayloadSchema,
GuildContactUpdatePayloadSchema: () => GuildContactUpdatePayloadSchema,
GuildCreationPayloadSchema: () => GuildCreationPayloadSchema,
GuildGetManyQueryParamsSchema: () => GuildGetManyQueryParamsSchema,
GuildRewardCreationSchema: () => GuildRewardCreationSchema,
GuildRewardSchema: () => GuildRewardSchema,
GuildRewardUpdateSchema: () => GuildRewardUpdateSchema,
GuildSchema: () => GuildSchema,
GuildSearchQueryParamsSchema: () => GuildSearchQueryParamsSchema,
GuildUpdatePayloadSchema: () => GuildUpdatePayloadSchema,
IssueGuildPinPayloadSchema: () => IssueGuildPinPayloadSchema,
JoinActionPayloadSchema: () => JoinActionPayloadSchema,
LinkParamsSchema: () => LinkParamsSchema2,
PlatformAccountDetailsSchema: () => PlatformAccountDetailsSchema,
PlatformUserCreationSchema: () => PlatformUserCreationSchema,
PlatformUserDataSchema: () => PlatformUserDataSchema,
ProfileCreationSchema: () => ProfileCreationSchema,
ProfileSchema: () => ProfileSchema,
ProfileUpdateSchema: () => ProfileUpdateSchema,
ProfileUsernameSchema: () => ProfileUsernameSchema,
PublicUserSchema: () => PublicUserSchema,
RequirementCreateResponseSchema: () => RequirementCreateResponseSchema,
RequirementCreationPayloadSchema: () => RequirementCreationPayloadSchema,
RequirementSchema: () => RequirementSchema,
RequirementTypeAndDataSchema: () => RequirementTypeAndDataSchema,
RequirementUpdatePayloadSchema: () => RequirementUpdatePayloadSchema,
RoleCreationForGuildCreationPayloadSchema: () => RoleCreationForGuildCreationPayloadSchema,
RoleCreationPayloadSchema: () => RoleCreationPayloadSchema,
RolePlatformClaimPayloadSchema: () => RolePlatformClaimPayloadSchema,
RoleRewardCreationForGuildCreationPayloadSchema: () => RoleRewardCreationForGuildCreationPayloadSchema,
RoleRewardCreationPayloadSchema: () => RoleRewardCreationPayloadSchema,
RoleRewardUpdatePayloadSchema: () => RoleRewardUpdatePayloadSchema,
RoleSchema: () => RoleSchema,
RoleUpdatePayloadSchema: () => RoleUpdatePayloadSchema,
StatusUpdateActionPayloadSchema: () => StatusUpdateActionPayloadSchema,
SubmissionAnswerSchema: () => SubmissionAnswerSchema,
SubmissionCreationAnswerSchema: () => SubmissionCreationAnswerSchema,
UserAddressCreationPayloadSchema: () => UserAddressCreationPayloadSchema,
UserAddressSchema: () => UserAddressSchema,
UserAddressUpdatePayloadSchema: () => UserAddressUpdatePayloadSchema,
UserSchema: () => UserSchema,
UserSharedSocialSchema: () => UserSharedSocialSchema,
UserSubmissionCreationSchema: () => UserSubmissionCreationSchema,
UserSubmissionSchema: () => UserSubmissionSchema,
UserSubmissionsSchema: () => UserSubmissionsSchema,
VerifyKeyPayloadSchema: () => VerifyKeyPayloadSchema
});
// schemas/actions.ts
import { z } from "zod";
var JoinActionPayloadSchema = z.object({
guildId: z.number().int().positive()
});
var StatusUpdateActionPayloadSchema = z.object({
roleIds: z.array(z.number().int().positive()),
recheckAccess: z.boolean().optional(),
updateMemberships: z.boolean().optional(),
manageRewards: z.boolean().optional(),
forceRewardActions: z.boolean().optional(),
onlyForThisPlatform: z.boolean().optional()
});
// schemas/auth.ts
import { z as z3 } from "zod";
// schemas/common.ts
import { z as z2 } from "zod";
var VisibilitySchema = z2.enum(Visibility);
var ChainSchema = z2.enum(Chain);
var PlatformNameSchema = z2.enum(PlatformName);
var EvmAddressSchema = z2.string().regex(/^0x[0-9a-f]{40}$/i, ErrorMessages.INVALID_ADDRESS).toLowerCase();
var FuelAddressSchema = z2.string().regex(/^0x[0-9a-f]{64}$/i, ErrorMessages.INVALID_ADDRESS).toLowerCase();
var AnyAddressSchema = EvmAddressSchema.or(FuelAddressSchema);
var LogicSchema = z2.enum(Logic);
var GuildPinActionSchema = z2.enum(GuildPinAction);
var ContactTypeSchema = z2.enum(ContactType);
var GuildSortTypeSchema = z2.enum(GuildSortType);
var PositiveInteger = z2.number().int().positive();
var DateLike = z2.date().or(z2.string().datetime());
// schemas/auth.ts
var AuthenticationParamsSchema = z3.object({
addr: AnyAddressSchema,
nonce: z3.string(),
msg: z3.string(),
ts: z3.string(),
hash: z3.string().optional()
}).and(
z3.union([
z3.object({
chainId: z3.string(),
method: z3.literal(AuthMethod.EIP1271)
}),
z3.object({
method: z3.literal(AuthMethod.EOA)
}),
z3.object({
method: z3.literal(AuthMethod.KeyPair)
})
])
);
var AuthenticationSchema = z3.object({
params: AuthenticationParamsSchema,
sig: z3.string()
});
// schemas/contact.ts
import { z as z4 } from "zod";
var options = {
EMAIL: z4.object({ type: z4.literal("EMAIL"), contact: z4.string().email() }),
TELEGRAM: z4.object({ type: z4.literal("TELEGRAM"), contact: z4.string() })
// So we don't forget to update here in case ContactType changes
};
var GuildContactCreationPayloadSchema = z4.discriminatedUnion("type", [
options.EMAIL,
options.TELEGRAM
]);
var GuildContactUpdatePayloadSchema = GuildContactCreationPayloadSchema;
// schemas/dynamicReward.ts
import { z as z5 } from "zod";
var InputSourceSchema = z5.discriminatedUnion("type", [
z5.object({
type: z5.literal("REQUIREMENT_AMOUNT"),
roleId: PositiveInteger,
requirementId: PositiveInteger
}),
z5.object({
type: z5.literal("REQUIREMENT_ACCESS"),
roleId: PositiveInteger,
requirementId: PositiveInteger,
value: z5.number().default(1)
}),
z5.object({
type: z5.literal("POINTS"),
guildId: PositiveInteger,
guildPlatformId: PositiveInteger
}),
z5.object({
type: z5.literal("STATIC"),
value: PositiveInteger
})
]);
var Linear = z5.object({
type: z5.literal("LINEAR"),
params: z5.object({
multiplier: z5.number().default(1),
addition: z5.number().default(0),
shouldFloorResult: z5.boolean().default(false).optional()
}).default({}),
input: InputSourceSchema.or(z5.tuple([InputSourceSchema])).transform(
(_) => Array.isArray(_) ? _ : [_]
)
});
var DummyMultiInput = z5.object({
type: z5.literal("SUM"),
input: z5.array(InputSourceSchema)
});
var DynamicRewardOperation = z5.discriminatedUnion("type", [
Linear,
DummyMultiInput
]);
var DynamicAmountSchema = z5.object({
operation: DynamicRewardOperation
});
// schemas/form.ts
import { z as z6 } from "zod";
var FieldBaseSchema = z6.object({
id: z6.string().uuid().optional(),
question: z6.string().min(1),
isRequired: z6.boolean().optional().default(false)
});
var TextAndNumberFieldSchema = FieldBaseSchema.extend({
type: z6.enum(["SHORT_TEXT", "LONG_TEXT", "NUMBER"])
});
var OptionsSchema = z6.object({
options: z6.array(z6.string().or(z6.number()))
});
var SingleAndMultipleChoiceFieldSchema = FieldBaseSchema.merge(
OptionsSchema
).extend({
type: z6.enum(["SINGLE_CHOICE", "MULTIPLE_CHOICE"]),
allowOther: z6.boolean().optional().default(false)
});
var RateFieldSchema = FieldBaseSchema.merge(OptionsSchema).extend({
type: z6.enum(["RATE"]),
worstLabel: z6.string().optional(),
bestLabel: z6.string().optional()
});
var FieldCreationPayloadSchema = z6.discriminatedUnion("type", [
TextAndNumberFieldSchema,
SingleAndMultipleChoiceFieldSchema,
RateFieldSchema
]);
var FieldSchema = FieldCreationPayloadSchema.and(
z6.object({
id: z6.string().uuid().optional()
})
);
var FormCreationPayloadSchema = z6.object({
name: z6.string().min(1),
description: z6.string().max(2e3).optional(),
isEditable: z6.boolean().optional().default(false),
fields: z6.array(FieldCreationPayloadSchema)
});
var FormSchema = FormCreationPayloadSchema.extend({
id: z6.number(),
creatorUserId: z6.number().nullable(),
guildId: z6.number(),
fields: z6.array(FieldSchema),
submissionCount: z6.number().optional(),
createdAt: DateLike,
updatedAt: DateLike
}).nullable();
var SubmissionCreationAnswerSchema = z6.object({
fieldId: z6.string().uuid(),
value: z6.string().or(z6.number()).or(z6.array(z6.string().or(z6.number()))).optional().nullable().transform(
(value) => Array.isArray(value) ? JSON.stringify(value) : value
)
});
var SubmissionAnswerSchema = SubmissionCreationAnswerSchema.extend({
userSubmissionId: z6.number(),
value: z6.string().or(z6.number()).optional().nullable().transform((value) => {
if (!value)
return void 0;
let parsedValue = value;
try {
parsedValue = JSON.parse(value?.toString());
} catch {
}
return parsedValue;
})
});
var UserSubmissionCreationSchema = z6.object({
submissionAnswers: z6.array(SubmissionCreationAnswerSchema)
});
var UserSubmissionSchema = z6.object({
id: z6.number(),
formId: z6.number(),
createdAt: DateLike,
submissionAnswers: z6.array(SubmissionAnswerSchema)
}).nullable();
var UserSubmissionsSchema = z6.array(
z6.object({
userId: z6.number(),
formId: z6.number(),
platformUsers: z6.array(
z6.object({
platformId: z6.number(),
platformUserId: z6.string(),
username: z6.string().nullable()
})
).default([]),
addresses: z6.array(z6.string()),
submittedAt: z6.date(),
submissionAnswers: z6.array(SubmissionCreationAnswerSchema),
isShared: z6.boolean().nullable()
})
).default([]);
// schemas/guild.ts
import { z as z41 } from "zod";
// utils.ts
var ZERO_CODE = 48;
var NINE_CODE = ZERO_CODE + 9;
var isCharNumeric = (char) => char.charCodeAt(0) >= ZERO_CODE && char.charCodeAt(0) <= NINE_CODE;
var isNumeric = (str) => [...str].every((char) => isCharNumeric(char));
var nonEmptyRefine = (message = ErrorMessages.EMPTY_OBJECT) => [
(someObject) => Object.keys(someObject).length > 0,
{ message }
];
function toTupleType(v) {
return v;
}
function createZodSafeEnumValues(arr) {
if (arr.length < 2)
throw new Error(
`zod enum safe array must have at least 2 elements, received ${arr.length}`
);
return [arr[0], ...arr.slice(1)];
}
// schemas/guildReward.ts
import { z as z7 } from "zod";
var DiscordGuildRewardSchema = z7.object({
platformName: z7.literal("DISCORD"),
platformGuildData: z7.object({
inviteChannel: z7.string().optional(),
// Custom invite link, can be modified on our frontend
invite: z7.string().optional(),
joinButton: z7.boolean().optional(),
needCaptcha: z7.boolean().optional(),
name: z7.string().optional()
}).default({})
});
var TelegramGuildRewardSchema = z7.object({
platformName: z7.literal("TELEGRAM")
});
var GitHubGuildRewardSchema = z7.object({
platformName: z7.literal("GITHUB"),
platformGuildData: z7.object({
// Optional, because we don't need to send it when creating a reward, but our backend will save this data here
platformUserId: z7.number().int().optional()
}).default({})
});
var GoogleGuildRewardSchema = z7.object({
platformName: z7.literal("GOOGLE"),
platformGuildData: z7.object({
role: z7.enum(["reader", "commenter", "writer"]).optional().default("reader"),
mimeType: z7.string(),
iconLink: z7.string()
})
});
var ContractCallGuildRewardSchema = z7.object({
platformName: z7.literal("CONTRACT_CALL"),
platformGuildData: z7.object({
chain: ChainSchema.extract(NFTRewardSupportedChains),
contractAddress: EvmAddressSchema,
function: z7.enum([
"function claim(address payToken, address receiver, bytes calldata signature) payable",
"function claim(uint256 amount, address receiver, uint256 userId, uint256 signedAt, bytes calldata signature) payable"
]),
argsToSign: z7.array(z7.string()),
name: z7.string().optional(),
symbol: z7.string().optional(),
imageUrl: z7.string().optional(),
description: z7.string().optional()
})
});
var UniqueTextGuildRewardSchema = z7.object({
platformName: z7.literal("UNIQUE_TEXT"),
platformGuildData: z7.object({
texts: z7.array(z7.string()),
name: z7.string().optional(),
imageUrl: z7.string().optional()
})
});
var TextGuildRewardSchema = z7.object({
platformName: z7.literal("TEXT"),
platformGuildData: z7.object({
text: z7.string(),
name: z7.string().optional(),
imageUrl: z7.string().optional()
})
});
var GuildPinGuildRewardSchema = z7.object({
platformName: z7.literal("GUILD_PIN"),
platformGuildData: z7.object({
pinChain: z7.enum(
createZodSafeEnumValues(Object.values(PinSupportedChains))
),
contractAddress: AnyAddressSchema
})
});
var PointsGuildRewardSchema = z7.object({
platformName: z7.literal("POINTS"),
platformGuildData: z7.object({
name: z7.string().optional(),
imageUrl: z7.string().optional()
}).default({})
});
var PoapGuildRewardSchema = z7.object({
platformName: z7.literal("POAP"),
platformGuildData: z7.object({
fancyId: z7.string(),
eventId: z7.number(),
name: z7.string().optional(),
imageUrl: z7.string().optional()
})
});
var FormGuildRewardSchema = z7.object({
platformName: z7.literal("FORM"),
platformGuildData: z7.object({
formId: z7.number()
})
});
var GatherTownGuildRewardSchema = z7.object({
platformName: z7.literal("GATHER_TOWN"),
platformGuildData: z7.object({
name: z7.string(),
gatherSpaceId: z7.string(),
gatherApiKey: z7.string(),
gatherAffiliation: z7.string(),
gatherRole: z7.string()
})
});
var ERC20GuildRewardSchema = z7.object({
platformName: z7.literal("ERC20"),
platformGuildData: z7.object({
poolId: z7.number(),
chain: ChainSchema.extract([
"BASE_MAINNET",
"BSC",
"MANTLE",
"OPTIMISM",
"POLYGON",
"SEPOLIA"
]),
contractAddress: EvmAddressSchema,
name: z7.string(),
imageUrl: z7.string(),
description: z7.string(),
tokenAddress: EvmAddressSchema
})
});
var FarcasterChannelGuildRewardSchema = z7.object({
platformName: z7.literal("FARCASTER_CHANNEL"),
platformGuildData: z7.object({
moderatorUserId: PositiveInteger
})
});
var BasicGuildRewardSchema = z7.discriminatedUnion("platformName", [
DiscordGuildRewardSchema,
TelegramGuildRewardSchema,
GitHubGuildRewardSchema,
GoogleGuildRewardSchema,
ContractCallGuildRewardSchema,
UniqueTextGuildRewardSchema,
TextGuildRewardSchema,
GuildPinGuildRewardSchema,
PointsGuildRewardSchema,
PoapGuildRewardSchema,
FormGuildRewardSchema,
GatherTownGuildRewardSchema,
ERC20GuildRewardSchema,
FarcasterChannelGuildRewardSchema
]).and(
z7.object({
platformGuildId: z7.string().transform(
(value) => value.includes("/") ? encodeURIComponent(value) : value
)
})
);
var GuildRewardSchema = BasicGuildRewardSchema.and(
z7.object({
id: PositiveInteger,
// We'll probably deprecate this, left here to support older platforms too
platformGuildName: z7.string().optional(),
// We only append the invite for the Discord reward in our DB in case there's no specified `platformGuildData.invite`
invite: z7.string().optional(),
// In some cases we'll fetch the platform's name request-time, in that case it'll be added here
name: z7.string().optional()
})
);
var GuildRewardCreationSchema = BasicGuildRewardSchema.and(
z7.object({
roleIds: z7.array(z7.number().int().positive()).optional()
})
);
var GuildRewardUpdateSchema = z7.object({
platformGuildData: z7.any()
}).refine(...nonEmptyRefine(ErrorMessages.REQUIRED_PLATFORM_GUILD_DATA));
// schemas/role.ts
import { z as z40 } from "zod";
// schemas/requirement.ts
import { z as z38 } from "zod";
// schemas/requirements/alchemy.ts
import { z as z8 } from "zod";
var AlchemyChains = z8.enum([
"ETHEREUM",
"POLYGON",
"ARBITRUM",
"OPTIMISM",
"GOERLI",
"POLYGON_MUMBAI"
]);
var EthIndexerChains = z8.enum(["BASE_GOERLI"]);
var alchemy_default = [
z8.object({
type: z8.enum(["ALCHEMY_FIRST_TX", "ALCHEMY_FIRST_TX_RELATIVE"]),
chain: AlchemyChains.or(EthIndexerChains).default("ETHEREUM"),
data: z8.object({
maxAmount: z8.number()
})
}),
z8.object({
type: z8.enum([
"ALCHEMY_CONTRACT_DEPLOY",
"ALCHEMY_CONTRACT_DEPLOY_RELATIVE",
"ALCHEMY_TX_COUNT",
"ALCHEMY_TX_COUNT_RELATIVE"
]),
chain: AlchemyChains.or(EthIndexerChains).default("ETHEREUM"),
address: EvmAddressSchema.nullable().optional(),
data: z8.object({
txCount: z8.number(),
maxAmount: z8.number().optional(),
minAmount: z8.number().optional()
})
}),
z8.object({
type: z8.enum(["ALCHEMY_TX_VALUE", "ALCHEMY_TX_VALUE_RELATIVE"]),
chain: AlchemyChains.default("ETHEREUM"),
address: EvmAddressSchema.nullable().optional(),
data: z8.object({
txValue: z8.number(),
maxAmount: z8.number().optional(),
minAmount: z8.number().optional()
})
})
];
// schemas/requirements/allowlist.ts
import { z as z9 } from "zod";
var AllowlistSchema = z9.object({
addresses: z9.array(AnyAddressSchema).default([]),
fileId: z9.string().min(1).optional(),
hideAllowlist: z9.boolean().optional()
}).default({});
var allowlist_default = [
z9.object({
type: z9.literal("ALLOWLIST"),
data: AllowlistSchema
}),
z9.object({
type: z9.literal("ALLOWLIST_EMAIL"),
data: z9.object({
addresses: z9.array(z9.string().email().toLowerCase()).default([]),
hideAllowlist: z9.boolean().optional(),
fileId: z9.string().min(1).optional()
}).default({})
})
];
// schemas/requirements/captcha.ts
import { z as z10 } from "zod";
var captcha_default = z10.object({
type: z10.literal("CAPTCHA"),
data: z10.object({
maxAmount: z10.number().int().nonnegative().optional()
}).default({})
});
// schemas/requirements/coin.ts
import { z as z11 } from "zod";
var coin_default = z11.object({
type: z11.literal("COIN"),
chain: ChainSchema,
data: z11.object({
minAmount: z11.number(),
maxAmount: z11.number().optional()
})
});
// schemas/requirements/contract.ts
import { z as z12 } from "zod";
var contract_default = z12.object({
type: z12.literal("CONTRACT"),
data: z12.object({
id: z12.string().trim().min(1),
resultIndex: z12.number().int().nonnegative().optional(),
params: z12.array(z12.string().or(z12.number()).or(z12.boolean())),
resultMatch: z12.enum(["=", ">", "<", ">=", "<="]),
expected: z12.string()
}),
address: EvmAddressSchema,
chain: ChainSchema
});
// schemas/requirements/covalent.ts
import { z as z13 } from "zod";
var CovalentChains = z13.enum(WALLET_ACTIVITY_CHAINS);
var Timestamps = z13.object({
minAmount: z13.number(),
maxAmount: z13.number()
}).partial().default({});
var methodInput = z13.object({
index: z13.number().int().nonnegative(),
value: z13.string(),
operator: z13.enum([
"equal",
"not_equal",
"greater",
"greater_or_equal",
"less",
"less_or_equal",
"array_last_equal"
])
});
var covalent_default = [
z13.object({
type: z13.enum(["COVALENT_FIRST_TX", "COVALENT_FIRST_TX_RELATIVE"]),
chain: CovalentChains.default("ETHEREUM"),
data: z13.object({
timestamps: Timestamps
}).default({})
}),
z13.object({
type: z13.enum([
"COVALENT_CONTRACT_DEPLOY",
"COVALENT_CONTRACT_DEPLOY_RELATIVE",
"COVALENT_TX_COUNT",
"COVALENT_TX_COUNT_RELATIVE"
]),
chain: CovalentChains.default("ETHEREUM"),
address: EvmAddressSchema.nullable().optional(),
data: z13.object({
txCount: z13.number().int().nonnegative(),
maxAmount: z13.number().optional(),
minAmount: z13.number().optional(),
timestamps: Timestamps
})
}),
z13.object({
type: z13.enum(["COVALENT_TX_VALUE", "COVALENT_TX_VALUE_RELATIVE"]),
chain: CovalentChains.default("ETHEREUM"),
address: EvmAddressSchema.nullable().optional(),
data: z13.object({
txValue: z13.number(),
maxAmount: z13.number().optional(),
minAmount: z13.number().optional(),
timestamps: Timestamps
})
}),
z13.object({
type: z13.enum([
"COVALENT_CONTRACT_CALL_COUNT",
"COVALENT_CONTRACT_CALL_COUNT_RELATIVE"
]),
chain: CovalentChains.extract(["INK", "INK_SEPOLIA", "SONIC"]).default(
"INK"
),
address: EvmAddressSchema,
data: z13.object({
method: z13.string(),
inputs: z13.array(methodInput).default([]),
txCount: z13.number(),
timestamps: Timestamps,
maxAmount: z13.number().optional(),
minAmount: z13.number().optional()
}).refine(
({ method, inputs }) => !method.startsWith("0x") || !inputs?.length,
{
message: "Cannot define inputs if method is defined as a raw byte signature"
}
)
})
];
// schemas/requirements/discord.ts
import { z as z14 } from "zod";
var discord_default = [
z14.object({
type: z14.literal("DISCORD_ROLE"),
data: z14.object({
serverId: z14.string().min(1),
roleId: z14.string().min(1),
serverName: z14.string().min(1).optional(),
roleName: z14.string().min(1).optional()
})
}),
z14.object({
type: z14.enum(["DISCORD_JOIN", "DISCORD_JOIN_FROM_NOW"]),
data: z14.object({
memberSince: z14.number()
// fromNow: z.boolean().optional(),
})
}),
z14.object({
type: z14.literal("DISCORD_MEMBER_SINCE"),
data: z14.object({
serverId: z14.string().min(1),
serverName: z14.string().min(1).optional(),
memberSince: z14.number().optional()
})
})
];
// schemas/requirements/eas.ts
import { z as z15 } from "zod";
var EasChains = z15.enum([
"ETHEREUM",
"OPTIMISM",
"ARBITRUM",
"SEPOLIA",
"BASE_GOERLI",
"BASE_MAINNET",
"BASE_SEPOLIA",
"LINEA"
]);
var EasCommonFields = z15.object({
schemaId: z15.string().min(1)
}).and(
z15.object({ key: z15.string().min(1), val: z15.string().min(1) }).or(
z15.object({
key: z15.undefined().or(z15.literal("")),
val: z15.undefined().or(z15.literal(""))
}).transform(() => ({ key: void 0, val: void 0 }))
)
);
var eas_default = [
z15.object({
type: z15.enum(["EAS_ATTESTED_BY", "COINBASE_EAS_ATTESTED_BY"]),
chain: EasChains.default("ETHEREUM"),
data: EasCommonFields.and(
z15.object({
attester: EvmAddressSchema
})
)
}),
z15.object({
chain: EasChains.default("ETHEREUM"),
type: z15.literal("EAS_ATTEST"),
data: EasCommonFields.and(
z15.object({
recipient: EvmAddressSchema
})
)
})
];
// schemas/requirements/email.ts
import { z as z16 } from "zod";
var email_default = [
z16.object({
type: z16.literal("EMAIL_DOMAIN"),
data: z16.object({
domain: z16.string().toLowerCase()
})
}),
z16.object({
type: z16.literal("EMAIL_VERIFIED"),
data: z16.object({}).default({})
})
];
// schemas/requirements/farcaster.ts
import { z as z17 } from "zod";
var FarcasterLikeOrRecast = z17.object({
type: z17.enum(["FARCASTER_LIKE", "FARCASTER_RECAST"]),
data: z17.object({
hash: z17.string().min(1),
url: z17.undefined()
}).or(
z17.object({
url: z17.string().url(),
hash: z17.undefined()
})
)
// z
// .object({
// hash: z.string(),
// url: z.string().url(),
// })
// .partial()
// .refine((val) => Object.keys(val).length === 1, {
// message: "Please specify either a url, or a hash",
// })
// .transform(
// (val) =>
// val as { hash: string; url: never } | { url: string; hash: never }
// ),
});
var FarcasterFollow = z17.object({
type: z17.enum(["FARCASTER_FOLLOW", "FARCASTER_FOLLOWED_BY"]),
data: z17.object({
id: z17.number()
})
});
var FarcasterStringId = z17.object({
type: z17.enum([
"FARCASTER_FOLLOW_CHANNEL",
"FARCASTER_USERNAME",
"FARCASTER_BIO"
]),
data: z17.object({
id: z17.string().min(1)
})
});
var FarcasterTotalFollowers = z17.object({
type: z17.literal("FARCASTER_TOTAL_FOLLOWERS"),
data: z17.object({
min: z17.number().int()
})
});
var FarcasterProfile = z17.object({
type: z17.literal("FARCASTER_PROFILE"),
data: z17.object({}).default({})
});
var farcaster_default = [
FarcasterProfile,
FarcasterFollow,
FarcasterLikeOrRecast,
FarcasterTotalFollowers,
FarcasterStringId
];
// schemas/requirements/form.ts
import { z as z18 } from "zod";
var FormSubmissionDetailedAnswerSchema = z18.object({
fieldId: z18.string()
});
var FormSubmissionDetailedGeneralAnswerSchema = FormSubmissionDetailedAnswerSchema.extend({
value: z18.string().or(z18.number())
}).strict();
var FormSubmissionDetailedRateAnswerSchema = FormSubmissionDetailedAnswerSchema.and(
z18.object({
minAmount: z18.number().int().positive().or(z18.string().pipe(z18.coerce.number())).optional(),
maxAmount: z18.number().int().positive().or(z18.string().pipe(z18.coerce.number())).optional()
}).refine(...nonEmptyRefine("Invalid value for minAmount/maxAmount"))
);
var FormSubmissionDetailedMultipleChoiceAnswerSchema = FormSubmissionDetailedAnswerSchema.and(
z18.object({
acceptedAnswers: z18.array(z18.string()).optional(),
rejectedAnswers: z18.array(z18.string()).optional()
}).refine(
...nonEmptyRefine("Invalid value for acceptedAnswers/rejectedAnswers")
)
);
var FormSubmissionSchema = z18.object({
id: z18.number().int().positive(),
guildId: z18.number().int().positive(),
answers: z18.array(
z18.union([
FormSubmissionDetailedGeneralAnswerSchema,
FormSubmissionDetailedRateAnswerSchema,
FormSubmissionDetailedMultipleChoiceAnswerSchema
])
).optional()
});
var form_default = [
z18.object({
type: z18.literal("FORM_SUBMISSION"),
data: FormSubmissionSchema
}),
z18.object({
type: z18.literal("FORM_APPROVAL"),
data: AllowlistSchema
})
];
// schemas/requirements/free.ts
import { z as z19 } from "zod";
var free_default = z19.object({
type: z19.literal("FREE"),
data: z19.object({}).default({})
});
// schemas/requirements/fuel.ts
import { z as z20 } from "zod";
var fuel_default = [
z20.object({
type: z20.literal("FUEL_BALANCE"),
data: z20.object({
minAmount: z20.number(),
maxAmount: z20.number().optional()
})
}),
z20.object({
type: z20.literal("FUEL_TRANSACTIONS"),
data: z20.object({
id: z20.enum(["script", "mint", "create"]).optional(),
minAmount: z20.number().int().optional(),
maxAmount: z20.number().int().optional()
})
})
];
// schemas/requirements/galaxy.ts
import { z as z21 } from "zod";
var galaxy_default = z21.object({
type: z21.enum(["GALAXY", "GALAXY_PARTICIPATION"]),
data: z21.object({
galaxyId: z21.string().min(1)
})
});
// schemas/requirements/gitcoin.ts
import { z as z22 } from "zod";
var gitcoin_default = [
z22.object({
type: z22.literal("GITCOIN_PASS"),
data: z22.object({}).default({})
}),
z22.object({
type: z22.literal("GITCOIN_STAMP"),
data: z22.object({
stamp: z22.string(),
minAmount: z22.number(),
maxAmount: z22.number(),
credType: z22.string(),
issuer: z22.string()
}).partial().default({})
}),
z22.object({
type: z22.literal("GITCOIN_SCORE"),
data: z22.object({
id: z22.string().min(1),
score: z22.number()
})
})
];
// schemas/requirements/github.ts
import { z as z23 } from "zod";
var GithubStarringSchema = z23.object({
type: z23.literal("GITHUB_STARRING"),
data: z23.object({
id: z23.string().url()
})
});
var GithubAccountAgeSchema = z23.object({
type: z23.enum(["GITHUB_ACCOUNT_AGE", "GITHUB_ACCOUNT_AGE_RELATIVE"]),
data: z23.object({
minAmount: z23.number().int().positive().optional(),
maxAmount: z23.number().int().positive().optional()
}).default({})
});
var GithubCommitCountSchema = z23.object({
type: z23.enum(["GITHUB_COMMIT_COUNT", "GITHUB_COMMIT_COUNT_RELATIVE"]),
data: z23.object({
id: z23.number().int().positive(),
minAmount: z23.number().int().positive().optional(),
maxAmount: z23.number().int().positive().optional()
})
});
var github_default = [
GithubStarringSchema,
GithubAccountAgeSchema,
GithubCommitCountSchema
];
// schemas/requirements/guild.ts
import { z as z24 } from "zod";
var guild_default = [
z24.object({
type: z24.literal("GUILD_MEMBER"),
data: z24.object({
guildId: z24.number().int().positive()
})
}),
z24.object({
type: z24.literal("GUILD_ROLE"),
data: z24.object({
guildId: z24.number().int().positive(),
roleId: z24.number().int().positive(),
minAmount: z24.number().int().positive().optional(),
maxAmount: z24.number().int().positive().optional()
})
}),
z24.object({
type: z24.literal("GUILD_ROLE_RELATIVE"),
data: z24.object({
guildId: z24.number().int().positive(),
roleId: z24.number().int().positive(),
minAmount: z24.number().int().positive().optional(),
maxAmount: z24.number().int().positive().optional()
})
}),
z24.object({
type: z24.literal("GUILD_ADMIN"),
data: z24.object({
minAmount: z24.number().int().nonnegative()
})
}),
z24.object({
type: z24.literal("GUILD_USER_SINCE"),
data: z24.object({
creationDate: z24.coerce.date().or(z24.number()).or(z24.string()).pipe(z24.coerce.date())
})
}),
z24.object({
type: z24.literal("GUILD_MINGUILDS"),
data: z24.object({
minAmount: z24.number().int().positive()
})
})
];
// schemas/requirements/guildSnapshot.ts
import { z as z25 } from "zod";
var Snapshot = z25.array(
z25.object({
key: z25.string().min(1).toLowerCase(),
value: z25.number()
})
);
var SnapshotRequirementData = z25.object({
snapshot: Snapshot.default([]),
fileId: z25.string().min(1).optional(),
isHidden: z25.boolean().default(false),
guildPlatformId: PositiveInteger.optional()
}).default({});
var AddressSnapshot = z25.object({
type: z25.literal("GUILD_SNAPSHOT"),
data: SnapshotRequirementData
});
var guildSnapshot_default = [AddressSnapshot];
// schemas/requirements/jumper.ts
import { z as z26 } from "zod";
var JumperLevelSchema = z26.object({
type: z26.literal("JUMPER_LEVEL"),
data: z26.object({
minAmount: PositiveInteger
})
});
var JumperRewardTypeSchema = z26.object({
type: z26.literal("JUMPER_TYPE"),
data: z26.object({
rewardType: z26.string().min(1)
})
});
var JumperTraitsCategorySchema = z26.object({
category: z26.string().min(1)
});
var JumperTraitsNameSchema = z26.object({
name: z26.string().min(1)
});
var JumperTraitsCategoryNameSchema = z26.object({
category: z26.string().min(1),
name: z26.string().min(1)
});
var JumperTraitsSchema = z26.object({
type: z26.literal("JUMPER_TRAITS"),
data: z26.union([
JumperTraitsCategorySchema,
JumperTraitsNameSchema,
JumperTraitsCategoryNameSchema
])
});
var jumper_default = [JumperLevelSchema, JumperRewardTypeSchema, JumperTraitsSchema];
// schemas/requirements/lens.ts
import { z as z27 } from "zod";
var lens_default = [
z27.object({
type: z27.literal("LENS_PROFILE"),
data: z27.object({}).default({})
}),
z27.object({
type: z27.enum(["LENS_TOTAL_POSTS", "LENS_TOTAL_FOLLOWERS"]),
data: z27.object({
min: z27.number().int()
})
}),
z27.object({
type: z27.enum(["LENS_FOLLOWED_BY", "LENS_FOLLOW", "LENS_COLLECT"]),
data: z27.object({
id: z27.string().min(1)
})
}),
z27.object({
type: z27.literal("LENS_REACT"),
data: z27.object({
id: z27.string().min(1),
reaction: z27.enum(["ANY", "UPVOTE", "DOWNVOTE"])
})
}),
z27.object({
type: z27.literal("LENS_ACTION"),
data: z27.object({
id: z27.string().min(1),
action: z27.enum(["MIRROR", "QUOTE", "COMMENT"]),
publishedOn: z27.string().min(1).optional()
})
})
];
// schemas/requirements/linea.ts
import { z as z28 } from "zod";
var LineaPoh = z28.object({
type: z28.literal("LINEA_POH")
});
var linea_default = LineaPoh;
// schemas/requirements/poap.ts
import { z as z29 } from "zod";
var poap_default = z29.object({
type: z29.enum(["POAP", "GITPOAP"]),
data: z29.object({
id: z29.string().min(1)
})
});
// schemas/requirements/points.ts
import { z as z31 } from "zod";
// schemas/requirements/common.ts
import { z as z30 } from "zod";
var RequirementCustomizationSchema = z30.object({
customName: z30.string().optional(),
customImage: z30.string().optional()
});
var MinMaxAmount = z30.object({ minAmount: z30.number(), maxAmount: z30.undefined() }).or(
z30.object({
minAmount: z30.undefined(),
maxAmount: z30.number()
})
).or(
z30.object({
minAmount: z30.number(),
maxAmount: z30.number()
}).refine((input) => input.maxAmount >= input.minAmount, {
message: "If both maxAmount and minAmount are defined, the former cannot be a smaller number"
})
).or(
z30.object({
minAmount: z30.undefined(),
maxAmount: z30.undefined()
}).transform(() => ({ minAmount: 0, maxAmount: void 0 }))
);
// schemas/requirements/points.ts
var PointsTotalAmountDataSchema = z31.object({
guildId: z31.number().int().positive()
}).and(MinMaxAmount);
var PointsAmountDataSchema = z31.object({
guildPlatformId: z31.number().int().positive(),
guildId: z31.number().int().positive()
}).and(MinMaxAmount);
var points_default = [
z31.object({
type: z31.literal("POINTS_TOTAL_AMOUNT"),
data: PointsTotalAmountDataSchema
}),
z31.object({
type: z31.literal("POINTS_AMOUNT"),
data: PointsAmountDataSchema
}),
z31.object({
type: z31.literal("POINTS_RANK"),
data: PointsAmountDataSchema
})
];
// schemas/requirements/snapshot.ts
import { z as z32 } from "zod";
var snapshot_default = [
z32.object({
type: z32.enum([
"SNAPSHOT_FOLLOW",
"SNAPSHOT_SPACE_ADMIN",
"SNAPSHOT_SPACE_AUTHOR"
]),
data: z32.object({
space: z32.string().min(1)
})
}),
z32.object({
type: z32.literal("SNAPSHOT_FOLLOW_SINCE"),
data: z32.object({
space: z32.string().min(1),
since: z32.number()
})
}),
z32.object({
type: z32.literal("SNAPSHOT_USER_SINCE"),
data: z32.object({
since: z32.number()
})
}),
z32.object({
type: z32.literal("SNAPSHOT_MAJORITY_VOTES"),
data: z32.object({
minRatio: z32.number().min(0).max(1)
})
}),
z32.object({
type: z32.literal("SNAPSHOT_VOTES"),
data: z32.object({
minAmount: z32.number().min(1),
space: z32.string().min(1).optional(),
proposal: z32.string().min(1).optional()
})
}),
z32.object({
type: z32.literal("SNAPSHOT_PROPOSALS"),
data: z32.object({
minAmount: z32.number().min(1),
space: z32.string().min(1).optional(),
state: z32.enum(["active", "pending", "closed"]).optional(),
successfulOnly: z32.boolean().optional()
})
}),
z32.object({
type: z32.literal("SNAPSHOT_STRATEGY"),
chain: ChainSchema,
data: z32.object({
block: z32.number().or(z32.literal("latest")),
strategies: z32.array(
z32.object({
name: z32.string().min(1),
params: z32.any().optional()
})
),
space: z32.string().min(1).optional()
})
})
];
// schemas/requirements/twitter.ts
import { z as z33 } from "zod";
var TwitterBasicSchema = z33.object({
type: z33.enum([
"TWITTER_FOLLOW",
"TWITTER_FOLLOWED_BY",
"TWITTER_NAME",
"TWITTER_BIO",
"TWITTER_LIKE",
"TWITTER_RETWEET",
"TWITTER_LIST_MEMBER",
"TWITTER_LIST_FOLLOW"
]),
data: z33.object({
id: z33.string().trim().min(1)
})
});
var TwitterCountSchema = z33.object({
type: z33.enum([
"TWITTER_FOLLOWER_COUNT",
"TWITTER_FOLLOWING_COUNT",
"TWITTER_TWEET_COUNT",
"TWITTER_LIKE_COUNT"
]),
data: z33.object({
minAmount: z33.number().int().positive()
})
});
var TwitterAccountAgeSchema = z33.object({
type: z33.enum(["TWITTER_ACCOUNT_AGE_RELATIVE", "TWITTER_ACCOUNT_AGE"]),
data: z33.object({
minAmount: z33.number().int().positive(),
fromNow: z33.boolean().optional()
})
});
var TwitterAccountVerifiedSchema = z33.object({
type: z33.literal("TWITTER_ACCOUNT_VERIFIED"),
data: z33.object({
id: z33.enum(["any", "blue", "business", "government"])
})
});
var TwitterAccountProtectedSchema = z33.object({
type: z33.literal("TWITTER_ACCOUNT_PROTECTED"),
data: z33.object({}).default({})
});
var TwitterV2Schema = z33.object({
type: z33.enum([
"TWITTER_FOLLOW_V2",
"TWITTER_LIKE_V2",
"TWITTER_RETWEET_V2",
"LINK_VISIT"
]),
data: z33.object({
id: z33.string().trim().min(1),
maxAmount: z33.number().optional()
})
});
var twitter_default = [
TwitterBasicSchema,
TwitterCountSchema,
TwitterAccountAgeSchema,
TwitterAccountVerifiedSchema,
TwitterAccountProtectedSchema,
TwitterV2Schema
];
// schemas/requirements/uniswap.ts
import { z as z34 } from "zod";
var UniswapChains = ChainSchema.extract(UniswapV3PositionsChains);
var UniswapV3Positions = z34.object({
type: z34.literal("UNISWAP_V3_POSITIONS"),