UNPKG

@guildxyz/types

Version:

Types related to the Guild.xyz API

439 lines (410 loc) 11.6 kB
import { UnionToTuple } from "./utils"; export const SocialLinks = [ "TWITTER", "LENS", "YOUTUBE", "SPOTIFY", "MIRROR", "MEDIUM", "SUBSTACK", "SNAPSHOT", "SOUND", "GITHUB", "WARPCAST", "WEBSITE", ] as const; export const Visibility = ["PUBLIC", "PRIVATE", "HIDDEN"] as const; export const ChainIds = { ETHEREUM: 1, POLYGON: 137, BSC: 56, FANTOM: 250, ARBITRUM: 42161, NOVA: 42170, CELO: 42220, HARMONY: 1666600000, 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: 5000, 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: 7000, CORE_DAO: 1116, LISK_SEPOLIA: 4202, FORM: 478, METIS_SEPOLIA: 59902, OP_BNB: 204, X1: 196, CYBER: 7560, TAIKO: 167000, 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, } as const; export const Chain = Object.keys(ChainIds) as (keyof typeof ChainIds)[]; export const 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", ] as const satisfies (typeof Chain)[number][]; export const 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, } as const; export const PlatformName = Object.keys(PLATFORM_NAMES_IDS) as UnionToTuple< keyof typeof PLATFORM_NAMES_IDS >; export const Logic = ["AND", "OR", "ANY_OF"] as const; export const 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", }; export const GuildPinAction = ["JOINED_GUILD", "IS_OWNER", "IS_ADMIN"] as const; export const XPEventType = [ "USER_REFERRAL", "JOIN_GUILD", "GET_ROLE", "SUBMIT_FORM", "COLLECT_PIN", "COLLECT_NFT", "OWN_GUILD_VERIFIED", ] as const; export const PinSupportedChains: { [key: number]: (typeof Chain)[number] | "FUEL"; } = { 10: "OPTIMISM", 25: "CRONOS", 56: "BSC", 58: "ONTOLOGY", 137: "POLYGON", 146: "SONIC", 185: "MINT", 324: "ZKSYNC_ERA", 478: "FORM", 1135: "LISK", 5000: "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", } as const; export const 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", } as const satisfies Partial< Record<(typeof PinSupportedChains)[number], `0x${string}`> >; export const 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", ] as const; export const 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", } as const satisfies Record< (typeof NFTRewardSupportedChains)[number], `0x${string}` >; export const GuildSortType = ["NEWEST", "VERIFIED", "FEATURED"] as const; export const ContactType = ["EMAIL", "TELEGRAM"] as const; export const AuthMethod = { EOA: "1", KeyPair: "2", EIP1271: "3", } as const; export const PARAMS_HEADER_NAME = "x-guild-params"; export const SIG_HEADER_NAME = "x-guild-sig"; export const AUTH_HEADER_NAME = "x-guild-auth"; export const SERVICE_HEADER_NAME = "x-guild-service"; export const PRIVILEGED_USER_ID_HEADER = "x-guild-privileged-user-id"; export const CORRELATION_ID_HEADER_NAME = "x-correlation-id"; export const SDK_VERSION_HEADER_NAME = "x-guild-sdk-version"; export const SDK_PROJECT_NAME_HEADER_NAME = "x-guild-sdk-project-name"; export const VISIBILITY_FILTERED_COUNT_HEADER_NAME = "x-guild-visibility-filtered"; export const unimplementedRequirementTypes = [ "ERC721", "ERC1155", "NOUNS", "ERC20", "SOUND_ARTIST_BACKED", "SOUND_COLLECTED", "SOUND_ARTIST", "SOUND_TOP_COLLECTOR", "SOUND_NFTS", "UNLOCK", "NOOX", "YUP", ] as const; export const UniswapV3PositionsChains = [ "ETHEREUM", "ARBITRUM", "OPTIMISM", "POLYGON", "BASE_MAINNET", "BSC", "AVALANCHE", "CELO", "BLAST_MAINNET", "SEPOLIA", "BASE_SEPOLIA", ] as const satisfies (typeof Chain)[number][]; /** * "NonfungiblePositionManager" addresses from here: * https://docs.uniswap.org/contracts/v3/reference/deployments */ export const 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", } as const satisfies Record< (typeof UniswapV3PositionsChains)[number], `0x${string}` >; /** * "UniswapV3Factory" addresses from here: * https://docs.uniswap.org/contracts/v3/reference/deployments */ export const 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", } as const satisfies Record< (typeof UniswapV3PositionsChains)[number], `0x${string}` >; export const PaymentSupportedChains = [ "ETHEREUM", "POLYGON", "OPTIMISM", "SEPOLIA", ] as const satisfies (typeof Chain)[number][]; export const FeeCollectorContracts = { ETHEREUM: "0xe4b4c6a7c6b6396032096c12adf46b7f14a70f4d", POLYGON: "0xe4b4c6a7c6b6396032096c12adf46b7f14a70f4d", OPTIMISM: "0xf7c2baa81feb6dd7bda0b3a03afbc1e13f955da5", SEPOLIA: "0xc3563655d35397b77228c07a7f5301b0e0fa417d", } as const satisfies Record< (typeof PaymentSupportedChains)[number], `0x${string}` >; export const walletTypes = ["EVM", "FUEL"] as const;