-
Notifications
You must be signed in to change notification settings - Fork 204
/
group.types.ts
101 lines (90 loc) · 2.1 KB
/
group.types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import { BigNumberish } from "ethers";
import { Contact } from "topics/badge";
export type Properties = {
accountsNumber: number;
valueDistribution: { [tier: number]: number };
minValue: string;
maxValue: string;
};
export type GroupMetadata = {
name: string;
displayName?: string;
timestamp: number;
description: string;
specs: string;
generatedBy?: string;
valueType: ValueType;
accountSources?: string[];
tags: Tags[];
publicContacts?: Contact[];
};
export type GroupWithData = GroupMetadata & {
data: FetchedData;
};
export type ResolvedGroupWithData = GroupMetadata & {
data: FetchedData;
resolvedIdentifierData: FetchedData;
};
export type Group = GroupMetadata & {
id: string;
data: () => Promise<FetchedData>;
resolvedIdentifierData: () => Promise<FetchedData>;
};
export enum Tags {
NFT = "NFT",
Mainnet = "Mainnet",
Asset = "Asset",
Builders = "Builders",
Community = "Community",
User = "User",
Vote = "Vote",
POAP = "POAP",
ENS = "ENS",
Lens = "Lens",
Web3Social = "Web3Social",
SybilResistance = "SybilResistance",
Eth2 = "Eth2",
GitcoinGrant = "GitcoinGrant",
GameJutsu = "GameJutsu",
Factory = "Factory",
BadgeHolders = "BadgeHolders",
CoreTeam = "CoreTeam",
Privacy = "Privacy",
Maintained = "Maintained",
}
export enum AccountSource {
ETHEREUM = "ethereum",
GITHUB = "github",
TELEGRAM = "telegram",
TWITTER = "twitter",
TEST = "test",
SISMO_CONNECT_APP = "sismo-connect-app",
DEV = "dev",
}
export enum AccountType {
ETHEREUM = "ethereum",
GITHUB = "github",
TELEGRAM = "telegram",
TWITTER = "twitter",
TEST = "test",
DEV = "dev",
ENS = "ens",
LENS = "lens",
SISMO_CONNECT_APP = "sismo-connect-app",
}
export enum ValueType {
// Score means the user can choose a lower score that the one in the data
// this is designed to avoid doxing
Score = "Score",
// Info means the user need to select the exact data
Info = "Info",
}
export type FetchedData = {
[address: string]: BigNumberish;
};
export type GroupSearch = {
groupName?: string;
groupId?: string;
latest?: boolean;
timestamp?: number;
};