on master help sign in
bridge/src/lib/constants.ts
287 lines 7.2 kB history raw
1import { isDevelopment } from './flags';
3const CHECK_BLOCK_EVERY_MS = isDevelopment ? 1000 : 10000;
4const DEFAULT_GAS_PRICE_GWEI = 40;
5const MAX_GAS_PRICE_GWEI = 400;
7const MIN_GALAXY = 0;
8const MAX_GALAXY = 255;
9const MIN_STAR = 256;
10const MAX_STAR = 65535;
11const MIN_PLANET = 65536;
12const MAX_PLANET = 4294967297;
14const ZOD = MIN_GALAXY;
16const PLANET_ENTROPY_BITS = 64;
17const STAR_ENTROPY_BITS = 128;
18const GALAXY_ENTROPY_BITS = 384;
20const SEED_ENTROPY_BITS = 128;
22//TODO move into azimuth-js
23const GAS_LIMITS = {
24 SPAWN: 250000,
25 TRANSFER: 560000, //NOTE biggest, also update gas tank's max
26 CONFIGURE_KEYS: 100000,
27 SET_PROXY: 150000,
28 //
29 ESCAPE: 115000, //NOTE low sample size
30 ADOPT: 100000, //NOTE low sample size
31 CANCEL_ESCAPE: 200000, //NOTE no samples
32 REJECT: 200000, //NOTE no samples
33 DETACH: 200000, //NOTE no samples
34 //
35 GIFT_PLANET: 450000, //NOTE low sample size, //NOTE also update in gas tank
36 //
37 TRANSFER_LOCKUP: 700000, //NOTE low sample size
38 //
39 SEND_ETH: 21000,
40 //
41 DEFAULT: 550000,
42};
44// TODO: this is walletgen-ui specific, move into a wallet router later
45const GEN_STATES = {
46 ENY_NOSTART: Symbol('ENY_NOSTART'),
47 ENY_PENDING: Symbol('ENY_PENDING'),
48 ENY_SUCCESS: Symbol('ENY_SUCCESS'),
49 ENY_FAILURE: Symbol('ENY_FAILURE'),
50 DERIVATION_NOSTART: Symbol('DERIVATION_NOSTART'),
51 DERIVATION_PENDING: Symbol('DERIVATION_PENDING'),
52 DERIVATION_SUCCESS: Symbol('DERIVATION_SUCCESS'),
53 DERIVATION_FAILURE: Symbol('DERIVATION_FAILURE'),
54 PAPER_NOSTART: Symbol('PAPER_NOSTART'),
55 PAPER_PENDING: Symbol('PAPER_PENDING'),
56 PAPER_SUCCESS: Symbol('PAPER_SUCCESS'),
57 PAPER_FAILURE: Symbol('PAPER_FAILURE'),
58};
60const BUTTON_STATES = {
61 NOSTART: Symbol('NOSTART'),
62 SUCCESS: Symbol('SUCCESS'),
63 ERROR: Symbol('ERROR'),
64 PENDING: Symbol('PENDING'),
65};
67const PROFILE_STATES = {
68 NOSTART: Symbol('NOSTART'),
69 UPLOAD_SUCCESS: Symbol('UPLOAD_SUCCESS'),
70 UPLOAD_ERROR: Symbol('UPLOAD_ERROR'),
71 INPUT_SUCCESS: Symbol('INPUT_SUCCESS'),
72 INPUT_ERROR: Symbol('INPUT_ERROR'),
73};
75const PROGRESS_ANIMATION_DELAY_MS = 500; // .animated-width
77const DEFAULT_HD_PATH = "m/44'/60'/0'/0/0";
78const ETH_ZERO_ADDR = '0x0000000000000000000000000000000000000000';
79const ETH_ZERO_ADDR_SHORT = '0x0';
81const LINEAR_STAR_RELEASE = '0x86cd9cd0992f04231751e3761de45cecea5d1801';
82const CONDITIONAL_STAR_RELEASE = '0x8c241098c3d3498fe1261421633fd57986d74aea';
84const WALLET_TYPES = {
85 MNEMONIC: Symbol('MNEMONIC'),
86 TICKET: Symbol('TICKET'),
87 SHARDS: Symbol('SHARDS'),
88 LEDGER: Symbol('LEDGER'),
89 TREZOR: Symbol('TREZOR'),
90 PRIVATE_KEY: Symbol('PRIVATE_KEY'),
91 KEYSTORE: Symbol('KEYSTORE'),
92 METAMASK: Symbol('METAMASK'),
93 WALLET_CONNECT: Symbol('WALLET_CONNECT'),
94};
96const NONCUSTODIAL_WALLETS = new Set([
97 WALLET_TYPES.METAMASK,
98 WALLET_TYPES.TREZOR,
99 WALLET_TYPES.LEDGER,
100 WALLET_TYPES.WALLET_CONNECT,
101]);
103const ROLLER_HOSTS = {
104 LOCAL: 'localhost',
105 GOERLI: 'roller-tmp.urbit.org',
106 MAINNET: 'roller.urbit.org',
107};
109const ROLLER_PATH = '/v1/roller';
111const POINT_DOMINIONS = {
112 L1: 'l1',
113 L2: 'l2',
114 SPAWN: 'spawn',
115};
117const POINT_PROXIES = {
118 OWN: 'own',
119 MANAGE: 'manage',
120 TRANSFER: 'transfer',
121 VOTE: 'vote',
122 SPAWN: 'spawn',
123};
125// In ms
126const DEFAULT_FADE_TIMEOUT = 300;
127const MASTER_KEY_DURATION = 850;
129const INVITES_PER_PAGE = 7;
130const DEFAULT_NUM_INVITES = 5;
131const DEFAULT_CSV_NAME = 'urbit_invites.csv';
133const TRANSACTION_STATUS_ICONS: {
134 [key: string]:
135 | 'Checkmark'
136 | 'ArrowNorth'
137 | 'Clock'
138 | 'ExclaimationMark'
139 | 'NullIcon';
140} = {
141 confirmed: 'Checkmark',
142 pending: 'Clock',
143 sending: 'ArrowNorth',
144 failed: 'ExclaimationMark',
145 unknown: 'NullIcon',
146};
148const TRANSACTION_TYPE_ICONS: {
149 [key: string]:
150 | 'ArrowRefresh'
151 | 'BootNode'
152 | 'Delete'
153 | 'EjectedSponsor'
154 | 'EscapeApproved'
155 | 'EscapeRejected'
156 | 'EscapeRequested'
157 | 'ShipSpawned'
158 | 'Swap';
159} = {
160 adopt: 'EscapeApproved',
161 'cancel-escape': 'EscapeRejected',
162 'cancel-transfer': 'Delete',
163 'configure-keys': 'BootNode',
164 detach: 'EjectedSponsor',
165 escape: 'EscapeRequested',
166 migrate: 'Swap',
167 reject: 'EscapeRejected',
168 'set-management-proxy': 'ArrowRefresh',
169 'set-spawn-proxy': 'ArrowRefresh',
170 'set-transfer-proxy': 'ArrowRefresh',
171 'set-voting-proxy': 'ArrowRefresh',
172 spawn: 'ShipSpawned',
173 'transfer-point': 'Swap',
174};
176const TRANSACTION_TYPE_TITLES: {
177 [key: string]:
178 | 'Ship Sponsored'
179 | 'Escape Canceled'
180 | 'Transfer Canceled'
181 | 'Network Keys Configured'
182 | 'Sponsee Detached'
183 | 'Escaped Sponsor'
184 | 'Migrating to Layer 2'
185 | 'Sponsorship Rejected'
186 | 'Management Proxy Changed'
187 | 'Spawn Proxy Changed'
188 | 'Transfer Proxy Changed'
189 | 'Voting Proxy Changed'
190 | 'Ship Spawned'
191 | 'Ship Transferred';
192} = {
193 adopt: 'Ship Sponsored',
194 'cancel-escape': 'Escape Canceled',
195 'cancel-transfer': 'Transfer Canceled',
196 'configure-keys': 'Network Keys Configured',
197 detach: 'Sponsee Detached',
198 escape: 'Escaped Sponsor',
199 migrate: 'Migrating to Layer 2',
200 reject: 'Sponsorship Rejected',
201 'set-management-proxy': 'Management Proxy Changed',
202 'set-spawn-proxy': 'Spawn Proxy Changed',
203 'set-transfer-proxy': 'Transfer Proxy Changed',
204 'set-voting-proxy': 'Voting Proxy Changed',
205 spawn: 'Ship Spawned',
206 'transfer-point': 'Ship Transferred',
207};
208const DUMMY_L2_ADDRESS = '0x1111111111111111111111111111111111111111';
210const ONE_SECOND = 1000;
211const TWO_SECONDS = 2 * ONE_SECOND;
212const TEN_SECONDS = 10 * ONE_SECOND;
213const ONE_MINUTE = 60 * ONE_SECOND;
215const MASTER_TICKET_TOOLTIP =
216 'Your Master Ticket is your 4-word password for your Urbit';
218const PASSPORT_TOOLTIP =
219 'Your Passport contains all of the address information for your wallet';
221const LOCKUP_TOOLTIP =
222 'Stars in a lockup schedule can be withdrawn after a set time duration. The duration is predetermined by the issuer';
224// the initial network key revision is always 1
225const INITIAL_NETWORK_KEY_REVISION = 1;
227const EIP1559_TRANSACTION_TYPE = 2;
229// Chain IDs
230// https://chainlist.org/?testnets=true
231const ETHEREUM_MAINNET_CHAIN_ID = '0x1';
232const ETHEREUM_GOERLI_CHAIN_ID = '0x5';
233const ETHEREUM_LOCAL_CHAIN_ID = '0x539';
235export {
236 CHECK_BLOCK_EVERY_MS,
237 DEFAULT_GAS_PRICE_GWEI,
238 DEFAULT_HD_PATH,
239 EIP1559_TRANSACTION_TYPE,
240 ETH_ZERO_ADDR,
241 ETH_ZERO_ADDR_SHORT,
242 LINEAR_STAR_RELEASE,
243 CONDITIONAL_STAR_RELEASE,
244 MAX_GAS_PRICE_GWEI,
245 GAS_LIMITS,
246 GEN_STATES,
247 BUTTON_STATES,
248 PROFILE_STATES,
249 MIN_GALAXY,
250 MAX_GALAXY,
251 MIN_STAR,
252 MAX_STAR,
253 MIN_PLANET,
254 MAX_PLANET,
255 NONCUSTODIAL_WALLETS,
256 PLANET_ENTROPY_BITS,
257 STAR_ENTROPY_BITS,
258 GALAXY_ENTROPY_BITS,
259 SEED_ENTROPY_BITS,
260 WALLET_TYPES,
261 ZOD,
262 PROGRESS_ANIMATION_DELAY_MS,
263 ROLLER_HOSTS,
264 ROLLER_PATH,
265 POINT_DOMINIONS,
266 POINT_PROXIES,
267 DEFAULT_FADE_TIMEOUT,
268 MASTER_KEY_DURATION,
269 INVITES_PER_PAGE,
270 DEFAULT_NUM_INVITES,
271 DEFAULT_CSV_NAME,
272 TRANSACTION_STATUS_ICONS,
273 TRANSACTION_TYPE_ICONS,
274 TRANSACTION_TYPE_TITLES,
275 DUMMY_L2_ADDRESS,
276 ONE_SECOND,
277 TWO_SECONDS,
278 TEN_SECONDS,
279 ONE_MINUTE,
280 MASTER_TICKET_TOOLTIP,
281 PASSPORT_TOOLTIP,
282 LOCKUP_TOOLTIP,
283 INITIAL_NETWORK_KEY_REVISION,
284 ETHEREUM_MAINNET_CHAIN_ID,
285 ETHEREUM_GOERLI_CHAIN_ID,
286 ETHEREUM_LOCAL_CHAIN_ID,
287};