summaryrefslogtreecommitdiff
path: root/lib/urbit/constants.ts
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-07-16 11:59:08 +0700
committerpolwex <polwex@sortug.com>2025-07-16 11:59:08 +0700
commit9c2fba56e0f68f976c1abe486f9fd3c6e93b437e (patch)
tree22470efb92a9f1b673136d7c0bdadc06abb3ba35 /lib/urbit/constants.ts
parent8ae0d2779c26f74e64a1db2b028bd2ac2f599cb4 (diff)
'm'
Diffstat (limited to 'lib/urbit/constants.ts')
-rw-r--r--lib/urbit/constants.ts288
1 files changed, 288 insertions, 0 deletions
diff --git a/lib/urbit/constants.ts b/lib/urbit/constants.ts
new file mode 100644
index 0000000..38ece6c
--- /dev/null
+++ b/lib/urbit/constants.ts
@@ -0,0 +1,288 @@
+// const isDevelopment = import.meta.env.DEV === true;
+const isDevelopment = true;
+export const CRYPTO_SUITE_VERSION = 1;
+const CHECK_BLOCK_EVERY_MS = isDevelopment ? 1000 : 10000;
+const DEFAULT_GAS_PRICE_GWEI = 40;
+const MAX_GAS_PRICE_GWEI = 400;
+
+const MIN_GALAXY = 0;
+const MAX_GALAXY = 255;
+const MIN_STAR = 256;
+const MAX_STAR = 65535;
+const MIN_PLANET = 65536;
+const MAX_PLANET = 4294967297;
+
+const ZOD = MIN_GALAXY;
+
+const PLANET_ENTROPY_BITS = 64;
+const STAR_ENTROPY_BITS = 128;
+const GALAXY_ENTROPY_BITS = 384;
+
+const SEED_ENTROPY_BITS = 128;
+
+//TODO move into azimuth-js
+const GAS_LIMITS = {
+ SPAWN: 250000,
+ TRANSFER: 560000, //NOTE biggest, also update gas tank's max
+ CONFIGURE_KEYS: 100000,
+ SET_PROXY: 150000,
+ //
+ ESCAPE: 115000, //NOTE low sample size
+ ADOPT: 100000, //NOTE low sample size
+ CANCEL_ESCAPE: 200000, //NOTE no samples
+ REJECT: 200000, //NOTE no samples
+ DETACH: 200000, //NOTE no samples
+ //
+ GIFT_PLANET: 450000, //NOTE low sample size, //NOTE also update in gas tank
+ //
+ TRANSFER_LOCKUP: 700000, //NOTE low sample size
+ //
+ SEND_ETH: 21000,
+ //
+ DEFAULT: 550000,
+};
+
+// TODO: this is walletgen-ui specific, move into a wallet router later
+const GEN_STATES = {
+ ENY_NOSTART: Symbol("ENY_NOSTART"),
+ ENY_PENDING: Symbol("ENY_PENDING"),
+ ENY_SUCCESS: Symbol("ENY_SUCCESS"),
+ ENY_FAILURE: Symbol("ENY_FAILURE"),
+ DERIVATION_NOSTART: Symbol("DERIVATION_NOSTART"),
+ DERIVATION_PENDING: Symbol("DERIVATION_PENDING"),
+ DERIVATION_SUCCESS: Symbol("DERIVATION_SUCCESS"),
+ DERIVATION_FAILURE: Symbol("DERIVATION_FAILURE"),
+ PAPER_NOSTART: Symbol("PAPER_NOSTART"),
+ PAPER_PENDING: Symbol("PAPER_PENDING"),
+ PAPER_SUCCESS: Symbol("PAPER_SUCCESS"),
+ PAPER_FAILURE: Symbol("PAPER_FAILURE"),
+};
+
+const BUTTON_STATES = {
+ NOSTART: Symbol("NOSTART"),
+ SUCCESS: Symbol("SUCCESS"),
+ ERROR: Symbol("ERROR"),
+ PENDING: Symbol("PENDING"),
+};
+
+const PROFILE_STATES = {
+ NOSTART: Symbol("NOSTART"),
+ UPLOAD_SUCCESS: Symbol("UPLOAD_SUCCESS"),
+ UPLOAD_ERROR: Symbol("UPLOAD_ERROR"),
+ INPUT_SUCCESS: Symbol("INPUT_SUCCESS"),
+ INPUT_ERROR: Symbol("INPUT_ERROR"),
+};
+
+const PROGRESS_ANIMATION_DELAY_MS = 500; // .animated-width
+
+const DEFAULT_HD_PATH = "m/44'/60'/0'/0/0";
+const ETH_ZERO_ADDR = "0x0000000000000000000000000000000000000000";
+const ETH_ZERO_ADDR_SHORT = "0x0";
+
+const LINEAR_STAR_RELEASE = "0x86cd9cd0992f04231751e3761de45cecea5d1801";
+const CONDITIONAL_STAR_RELEASE = "0x8c241098c3d3498fe1261421633fd57986d74aea";
+
+const WALLET_TYPES = {
+ MNEMONIC: Symbol("MNEMONIC"),
+ TICKET: Symbol("TICKET"),
+ SHARDS: Symbol("SHARDS"),
+ LEDGER: Symbol("LEDGER"),
+ TREZOR: Symbol("TREZOR"),
+ PRIVATE_KEY: Symbol("PRIVATE_KEY"),
+ KEYSTORE: Symbol("KEYSTORE"),
+ METAMASK: Symbol("METAMASK"),
+ WALLET_CONNECT: Symbol("WALLET_CONNECT"),
+};
+
+const NONCUSTODIAL_WALLETS = new Set([
+ WALLET_TYPES.METAMASK,
+ WALLET_TYPES.TREZOR,
+ WALLET_TYPES.LEDGER,
+ WALLET_TYPES.WALLET_CONNECT,
+]);
+
+const ROLLER_HOSTS = {
+ LOCAL: "localhost",
+ GOERLI: "roller-tmp.urbit.org",
+ MAINNET: "roller.urbit.org",
+};
+
+const ROLLER_PATH = "/v1/roller";
+
+const POINT_DOMINIONS = {
+ L1: "l1",
+ L2: "l2",
+ SPAWN: "spawn",
+};
+
+const POINT_PROXIES = {
+ OWN: "own",
+ MANAGE: "manage",
+ TRANSFER: "transfer",
+ VOTE: "vote",
+ SPAWN: "spawn",
+};
+
+// In ms
+const DEFAULT_FADE_TIMEOUT = 300;
+const MASTER_KEY_DURATION = 850;
+
+const INVITES_PER_PAGE = 7;
+const DEFAULT_NUM_INVITES = 5;
+const DEFAULT_CSV_NAME = "urbit_invites.csv";
+
+const TRANSACTION_STATUS_ICONS: {
+ [key: string]:
+ | "Checkmark"
+ | "ArrowNorth"
+ | "Clock"
+ | "ExclaimationMark"
+ | "NullIcon";
+} = {
+ confirmed: "Checkmark",
+ pending: "Clock",
+ sending: "ArrowNorth",
+ failed: "ExclaimationMark",
+ unknown: "NullIcon",
+};
+
+const TRANSACTION_TYPE_ICONS: {
+ [key: string]:
+ | "ArrowRefresh"
+ | "BootNode"
+ | "Delete"
+ | "EjectedSponsor"
+ | "EscapeApproved"
+ | "EscapeRejected"
+ | "EscapeRequested"
+ | "ShipSpawned"
+ | "Swap";
+} = {
+ adopt: "EscapeApproved",
+ "cancel-escape": "EscapeRejected",
+ "cancel-transfer": "Delete",
+ "configure-keys": "BootNode",
+ detach: "EjectedSponsor",
+ escape: "EscapeRequested",
+ migrate: "Swap",
+ reject: "EscapeRejected",
+ "set-management-proxy": "ArrowRefresh",
+ "set-spawn-proxy": "ArrowRefresh",
+ "set-transfer-proxy": "ArrowRefresh",
+ "set-voting-proxy": "ArrowRefresh",
+ spawn: "ShipSpawned",
+ "transfer-point": "Swap",
+};
+
+const TRANSACTION_TYPE_TITLES: {
+ [key: string]:
+ | "Ship Sponsored"
+ | "Escape Canceled"
+ | "Transfer Canceled"
+ | "Network Keys Configured"
+ | "Sponsee Detached"
+ | "Escaped Sponsor"
+ | "Migrating to Layer 2"
+ | "Sponsorship Rejected"
+ | "Management Proxy Changed"
+ | "Spawn Proxy Changed"
+ | "Transfer Proxy Changed"
+ | "Voting Proxy Changed"
+ | "Ship Spawned"
+ | "Ship Transferred";
+} = {
+ adopt: "Ship Sponsored",
+ "cancel-escape": "Escape Canceled",
+ "cancel-transfer": "Transfer Canceled",
+ "configure-keys": "Network Keys Configured",
+ detach: "Sponsee Detached",
+ escape: "Escaped Sponsor",
+ migrate: "Migrating to Layer 2",
+ reject: "Sponsorship Rejected",
+ "set-management-proxy": "Management Proxy Changed",
+ "set-spawn-proxy": "Spawn Proxy Changed",
+ "set-transfer-proxy": "Transfer Proxy Changed",
+ "set-voting-proxy": "Voting Proxy Changed",
+ spawn: "Ship Spawned",
+ "transfer-point": "Ship Transferred",
+};
+const DUMMY_L2_ADDRESS = "0x1111111111111111111111111111111111111111";
+
+const ONE_SECOND = 1000;
+const TWO_SECONDS = 2 * ONE_SECOND;
+const TEN_SECONDS = 10 * ONE_SECOND;
+const ONE_MINUTE = 60 * ONE_SECOND;
+
+const MASTER_TICKET_TOOLTIP =
+ "Your Master Ticket is your 4-word password for your Urbit";
+
+const PASSPORT_TOOLTIP =
+ "Your Passport contains all of the address information for your wallet";
+
+const LOCKUP_TOOLTIP =
+ "Stars in a lockup schedule can be withdrawn after a set time duration. The duration is predetermined by the issuer";
+
+// the initial network key revision is always 1
+const INITIAL_NETWORK_KEY_REVISION = 1;
+
+const EIP1559_TRANSACTION_TYPE = 2;
+
+// Chain IDs
+// https://chainlist.org/?testnets=true
+const ETHEREUM_MAINNET_CHAIN_ID = "0x1";
+const ETHEREUM_GOERLI_CHAIN_ID = "0x5";
+const ETHEREUM_LOCAL_CHAIN_ID = "0x539";
+
+export {
+ CHECK_BLOCK_EVERY_MS,
+ DEFAULT_GAS_PRICE_GWEI,
+ DEFAULT_HD_PATH,
+ EIP1559_TRANSACTION_TYPE,
+ ETH_ZERO_ADDR,
+ ETH_ZERO_ADDR_SHORT,
+ LINEAR_STAR_RELEASE,
+ CONDITIONAL_STAR_RELEASE,
+ MAX_GAS_PRICE_GWEI,
+ GAS_LIMITS,
+ GEN_STATES,
+ BUTTON_STATES,
+ PROFILE_STATES,
+ MIN_GALAXY,
+ MAX_GALAXY,
+ MIN_STAR,
+ MAX_STAR,
+ MIN_PLANET,
+ MAX_PLANET,
+ NONCUSTODIAL_WALLETS,
+ PLANET_ENTROPY_BITS,
+ STAR_ENTROPY_BITS,
+ GALAXY_ENTROPY_BITS,
+ SEED_ENTROPY_BITS,
+ WALLET_TYPES,
+ ZOD,
+ PROGRESS_ANIMATION_DELAY_MS,
+ ROLLER_HOSTS,
+ ROLLER_PATH,
+ POINT_DOMINIONS,
+ POINT_PROXIES,
+ DEFAULT_FADE_TIMEOUT,
+ MASTER_KEY_DURATION,
+ INVITES_PER_PAGE,
+ DEFAULT_NUM_INVITES,
+ DEFAULT_CSV_NAME,
+ TRANSACTION_STATUS_ICONS,
+ TRANSACTION_TYPE_ICONS,
+ TRANSACTION_TYPE_TITLES,
+ DUMMY_L2_ADDRESS,
+ ONE_SECOND,
+ TWO_SECONDS,
+ TEN_SECONDS,
+ ONE_MINUTE,
+ MASTER_TICKET_TOOLTIP,
+ PASSPORT_TOOLTIP,
+ LOCKUP_TOOLTIP,
+ INITIAL_NETWORK_KEY_REVISION,
+ ETHEREUM_MAINNET_CHAIN_ID,
+ ETHEREUM_GOERLI_CHAIN_ID,
+ ETHEREUM_LOCAL_CHAIN_ID,
+};