on df0c310 help sign in
bridge/src/urbit-key-generation.d.ts
125 lines 2.7 kB history raw
1type ValueOf<T> = T[keyof T];
3type CHILD_SEED_TYPES = {
4 OWNERSHIP: 'ownership';
5 TRANSFER: 'transfer';
6 SPAWN: 'spawn';
7 VOTING: 'voting';
8 MANAGEMENT: 'management';
9 NETWORK: 'network';
10 BITCOIN_MAINNET: 'bitcoinMainnet';
11 BITCOIN_TESTNET: 'bitcoinTestnet';
12};
14type ChildSeedType = ValueOf<CHILD_SEED_TYPES>;
16interface NetworkKeys {
17 crypt: {
18 private: string;
19 public: string;
20 };
21 auth: {
22 private: string;
23 public: string;
24 };
27interface WalletNodeKeys {
28 public: string;
29 private: string;
30 chain: string;
31 address: string;
34interface WalletNode {
35 type: string;
36 seed: string;
37 keys: WalletNodeKeys;
38 derivationPath: string;
41interface BitcoinWallet extends WalletNode {}
43interface WalletConfig {
44 ticket: string;
45 ship: number;
46 passphrase?: string;
47 boot?: boolean;
50interface UrbitWallet {
51 meta: {
52 generator: {
53 name: string;
54 version: string;
55 };
56 spec: string;
57 ship: string;
58 patp: string;
59 tier: string;
60 passphrase: string;
61 };
62 masterSeed: string;
63 ownership: WalletNode;
64 management: WalletNode;
65 transfer: WalletNode;
66 network:
67 | {
68 type: string;
69 seed: string;
70 keys: string;
71 }
72 | {};
73 voting?: WalletNode;
74 spawn?: WalletNode;
75 bitcoinTestnet: BitcoinWallet;
76 bitcoinMainnet: BitcoinWallet;
79declare module 'urbit-key-generation' {
80 const CHILD_SEED_TYPES: CHILD_SEED_TYPES;
81 function addressFromSecp256k1Public(pub: string): string;
82 function argon2u(entropy: Buffer, ship: number): Promise<Uint8Array>;
83 function combine(shards: string[]): string;
84 function deriveNetworkInfo(
85 mnemonic: string,
86 revision: number,
87 passphrase?: string
88 ): { type: 'network'; seed: string; keys: WalletNodeKeys };
89 function deriveNetworkKeys(hex: string): NetworkKeys;
90 function deriveNetworkSeed(
91 mnemonic: string,
92 passphrase: string,
93 revision: number
94 ): string;
95 function deriveNode(
96 master: Uint8Array,
97 type: ChildSeedType,
98 derivationPath: string,
99 passphrase?: string
100 ): WalletNode;
101 function deriveNodeKeys(
102 mnemonic: string,
103 derivationPath: string,
104 passphrase?: string
105 ): WalletNodeKeys;
106 function deriveNodeSeed(master: Uint8Array, type: ChildSeedType): string;
107 function generateCode(pair: NetworkKeys, step: number): string;
108 function generateKeyfile(
109 pair: NetworkKeys,
110 point: number,
111 revision: number
112 ): string;
113 function generateOwnershipWallet({
114 ticket,
115 ship,
116 passphrase,
117 }: WalletConfig): UrbitWallet;
118 function generateWallet({
119 ticket,
120 ship,
121 passphrase,
122 boot,
123 }: WalletConfig): UrbitWallet;
124 function shard(ticket: string): string[];