1pub const BYTES_PER_G1_POINT: usize = 48;
2pub const BYTES_PER_G2_POINT: usize = 96;
3pub const BYTES_PER_FIELD_ELEMENT: usize = 32;
4pub const NUM_G1_POINTS: usize = 4096;
5pub const NUM_G2_POINTS: usize = 65;
6pub const NUM_ROOTS_OF_UNITY: usize = 4096;
7pub const NUM_FIELD_ELEMENTS_PER_BLOB: usize = 4096;
8pub const BYTES_PER_BLOB: usize = NUM_FIELD_ELEMENTS_PER_BLOB * BYTES_PER_FIELD_ELEMENT;
9pub const BYTES_PER_COMMITMENT: usize = 48;
10pub const BYTES_PER_PROOF: usize = 48;
11pub const DOMAIN_STR_LENGTH: usize = 16;
12pub const CHALLENGE_INPUT_SIZE: usize =
13 DOMAIN_STR_LENGTH + 16 + BYTES_PER_BLOB + BYTES_PER_COMMITMENT;
14pub const FIAT_SHAMIR_PROTOCOL_DOMAIN: &str = "FSBLOBVERIFY_V1_";
15pub const RANDOM_CHALLENGE_KZG_BATCH_DOMAIN: &str = "RCKZGBATCH___V1_";
16
17pub const SCALE2_ROOT_OF_UNITY: [[u64; 4]; 32] = [
18 [
19 0x0000000000000001,
20 0x0000000000000000,
21 0x0000000000000000,
22 0x0000000000000000,
23 ],
24 [
25 0xffffffff00000000,
26 0x53bda402fffe5bfe,
27 0x3339d80809a1d805,
28 0x73eda753299d7d48,
29 ],
30 [
31 0x0001000000000000,
32 0xec03000276030000,
33 0x8d51ccce760304d0,
34 0x0000000000000000,
35 ],
36 [
37 0x7228fd3397743f7a,
38 0xb38b21c28713b700,
39 0x8c0625cd70d77ce2,
40 0x345766f603fa66e7,
41 ],
42 [
43 0x53ea61d87742bcce,
44 0x17beb312f20b6f76,
45 0xdd1c0af834cec32c,
46 0x20b1ce9140267af9,
47 ],
48 [
49 0x360c60997369df4e,
50 0xbf6e88fb4c38fb8a,
51 0xb4bcd40e22f55448,
52 0x50e0903a157988ba,
53 ],
54 [
55 0x8140d032f0a9ee53,
56 0x2d967f4be2f95155,
57 0x14a1e27164d8fdbd,
58 0x45af6345ec055e4d,
59 ],
60 [
61 0x5130c2c1660125be,
62 0x98d0caac87f5713c,
63 0xb7c68b4d7fdd60d0,
64 0x6898111413588742,
65 ],
66 [
67 0x4935bd2f817f694b,
68 0x0a0865a899e8deff,
69 0x6b368121ac0cf4ad,
70 0x4f9b4098e2e9f12e,
71 ],
72 [
73 0x4541b8ff2ee0434e,
74 0xd697168a3a6000fe,
75 0x39feec240d80689f,
76 0x095166525526a654,
77 ],
78 [
79 0x3c28d666a5c2d854,
80 0xea437f9626fc085e,
81 0x8f4de02c0f776af3,
82 0x325db5c3debf77a1,
83 ],
84 [
85 0x4a838b5d59cd79e5,
86 0x55ea6811be9c622d,
87 0x09f1ca610a08f166,
88 0x6d031f1b5c49c834,
89 ],
90 [
91 0xe206da11a5d36306,
92 0x0ad1347b378fbf96,
93 0xfc3e8acfe0f8245f,
94 0x564c0a11a0f704f4,
95 ],
96 [
97 0x6fdd00bfc78c8967,
98 0x146b58bc434906ac,
99 0x2ccddea2972e89ed,
100 0x485d512737b1da3d,
101 ],
102 [
103 0x034d2ff22a5ad9e1,
104 0xae4622f6a9152435,
105 0xdc86b01c0d477fa6,
106 0x56624634b500a166,
107 ],
108 [
109 0xfbd047e11279bb6e,
110 0xc8d5f51db3f32699,
111 0x483405417a0cbe39,
112 0x3291357ee558b50d,
113 ],
114 [
115 0xd7118f85cd96b8ad,
116 0x67a665ae1fcadc91,
117 0x88f39a78f1aeb578,
118 0x2155379d12180caa,
119 ],
120 [
121 0x08692405f3b70f10,
122 0xcd7f2bd6d0711b7d,
123 0x473a2eef772c33d6,
124 0x224262332d8acbf4,
125 ],
126 [
127 0x6f421a7d8ef674fb,
128 0xbb97a3bf30ce40fd,
129 0x652f717ae1c34bb0,
130 0x2d3056a530794f01,
131 ],
132 [
133 0x194e8c62ecb38d9d,
134 0xad8e16e84419c750,
135 0xdf625e80d0adef90,
136 0x520e587a724a6955,
137 ],
138 [
139 0xfece7e0e39898d4b,
140 0x2f69e02d265e09d9,
141 0xa57a6e07cb98de4a,
142 0x03e1c54bcb947035,
143 ],
144 [
145 0xcd3979122d3ea03a,
146 0x46b3105f04db5844,
147 0xc70d0874b0691d4e,
148 0x47c8b5817018af4f,
149 ],
150 [
151 0xc6e7a6ffb08e3363,
152 0xe08fec7c86389bee,
153 0xf2d38f10fbb8d1bb,
154 0x0abe6a5e5abcaa32,
155 ],
156 [
157 0x5616c57de0ec9eae,
158 0xc631ffb2585a72db,
159 0x5121af06a3b51e3c,
160 0x73560252aa0655b2,
161 ],
162 [
163 0x92cf4deb77bd779c,
164 0x72cf6a8029b7d7bc,
165 0x6e0bcd91ee762730,
166 0x291cf6d68823e687,
167 ],
168 [
169 0xce32ef844e11a51e,
170 0xc0ba12bb3da64ca5,
171 0x0454dc1edc61a1a3,
172 0x019fe632fd328739,
173 ],
174 [
175 0x531a11a0d2d75182,
176 0x02c8118402867ddc,
177 0x116168bffbedc11d,
178 0x0a0a77a3b1980c0d,
179 ],
180 [
181 0xe2d0a7869f0319ed,
182 0xb94f1101b1d7a628,
183 0xece8ea224f31d25d,
184 0x23397a9300f8f98b,
185 ],
186 [
187 0xd7b688830a4f2089,
188 0x6558e9e3f6ac7b41,
189 0x99e276b571905a7d,
190 0x52dd465e2f094256,
191 ],
192 [
193 0x474650359d8e211b,
194 0x84d37b826214abc6,
195 0x8da40c1ef2bb4598,
196 0x0c83ea7744bf1bee,
197 ],
198 [
199 0x694341f608c9dd56,
200 0xed3a181fabb30adc,
201 0x1339a815da8b398f,
202 0x2c6d4e4511657e1e,
203 ],
204 [
205 0x63e7cb4906ffc93f,
206 0xf070bb00e28a193d,
207 0xad1715b02e5713b5,
208 0x4b5371495990693f,
209 ],
210];
211
212pub const MODULUS: [u64; 4] = [
215 0xffff_ffff_0000_0001,
216 0x53bd_a402_fffe_5bfe,
217 0x3339_d808_09a1_d805,
218 0x73ed_a753_299d_7d48,
219];