@wireio/stake 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +203 -13
  2. package/lib/stake.browser.js +2800 -3329
  3. package/lib/stake.browser.js.map +1 -1
  4. package/lib/stake.d.ts +376 -6261
  5. package/lib/stake.js +2937 -3476
  6. package/lib/stake.js.map +1 -1
  7. package/lib/stake.m.js +2800 -3329
  8. package/lib/stake.m.js.map +1 -1
  9. package/package.json +2 -2
  10. package/src/assets/solana/idl/deposit.json +46 -10
  11. package/src/assets/solana/idl/distribution.json +40 -8
  12. package/src/assets/solana/idl/liq_sol_token.json +25 -2
  13. package/src/assets/solana/idl/mint_helper.json +110 -0
  14. package/src/assets/solana/idl/read_tracked_balance.json +140 -0
  15. package/src/assets/solana/idl/stake_controller.json +1141 -780
  16. package/src/assets/solana/idl/treasury.json +1 -227
  17. package/src/assets/solana/idl/validator_leaderboard.json +88 -47
  18. package/src/assets/solana/idl/validator_registry.json +115 -46
  19. package/src/assets/solana/idl/yield_oracle.json +1 -1
  20. package/src/assets/solana/types/deposit.ts +46 -10
  21. package/src/assets/solana/types/distribution.ts +40 -8
  22. package/src/assets/solana/types/liq_sol_token.ts +25 -2
  23. package/src/assets/solana/types/mint_helper.ts +116 -0
  24. package/src/assets/solana/types/read_tracked_balance.ts +146 -0
  25. package/src/assets/solana/types/stake_controller.ts +1141 -780
  26. package/src/assets/solana/types/treasury.ts +1 -227
  27. package/src/assets/solana/types/validator_leaderboard.ts +88 -47
  28. package/src/assets/solana/types/validator_registry.ts +115 -46
  29. package/src/assets/solana/types/yield_oracle.ts +1 -1
  30. package/src/index.ts +3 -4
  31. package/src/networks/ethereum/ethereum.ts +2 -2
  32. package/src/networks/solana/clients/deposit.client.ts +71 -80
  33. package/src/networks/solana/clients/distribution.client.ts +392 -141
  34. package/src/networks/solana/clients/leaderboard.client.ts +82 -107
  35. package/src/networks/solana/constants.ts +141 -56
  36. package/src/networks/solana/program.ts +36 -89
  37. package/src/networks/solana/solana.ts +168 -34
  38. package/src/networks/solana/types.ts +57 -0
  39. package/src/scripts/fetch-artifacts.sh +24 -0
  40. package/src/staker/staker.ts +32 -28
  41. package/src/staker/types.ts +24 -21
  42. package/src/assets/solana/idl/stake_registry.json +0 -435
  43. package/src/networks/solana/utils.ts +0 -122
  44. /package/src/{utils.ts → common/utils.ts} +0 -0
@@ -1,435 +0,0 @@
1
- {
2
- "address": "EMqsNbWdCcpLoHUDKqiPkyGmKnryHkdDB2nBf12tKwii",
3
- "metadata": {
4
- "name": "stake_registry",
5
- "version": "0.1.0",
6
- "spec": "0.1.0"
7
- },
8
- "instructions": [
9
- {
10
- "name": "batch_update_counts",
11
- "discriminator": [
12
- 104,
13
- 19,
14
- 52,
15
- 137,
16
- 229,
17
- 21,
18
- 133,
19
- 22
20
- ],
21
- "accounts": [
22
- {
23
- "name": "stake_stats",
24
- "writable": true,
25
- "pda": {
26
- "seeds": [
27
- {
28
- "kind": "const",
29
- "value": [
30
- 115,
31
- 116,
32
- 97,
33
- 107,
34
- 101,
35
- 95,
36
- 115,
37
- 116,
38
- 97,
39
- 116,
40
- 115
41
- ]
42
- }
43
- ]
44
- }
45
- },
46
- {
47
- "name": "authority"
48
- }
49
- ],
50
- "args": [
51
- {
52
- "name": "small_increment",
53
- "type": "u32"
54
- },
55
- {
56
- "name": "medium_increment",
57
- "type": "u32"
58
- },
59
- {
60
- "name": "large_increment",
61
- "type": "u32"
62
- }
63
- ]
64
- },
65
- {
66
- "name": "create_stake_record",
67
- "discriminator": [
68
- 217,
69
- 173,
70
- 207,
71
- 22,
72
- 40,
73
- 104,
74
- 79,
75
- 19
76
- ],
77
- "accounts": [
78
- {
79
- "name": "stake_record",
80
- "writable": true,
81
- "pda": {
82
- "seeds": [
83
- {
84
- "kind": "const",
85
- "value": [
86
- 115,
87
- 116,
88
- 97,
89
- 107,
90
- 101,
91
- 95,
92
- 114,
93
- 101,
94
- 99,
95
- 111,
96
- 114,
97
- 100
98
- ]
99
- },
100
- {
101
- "kind": "arg",
102
- "path": "stake_account"
103
- }
104
- ]
105
- }
106
- },
107
- {
108
- "name": "payer",
109
- "writable": true,
110
- "signer": true
111
- },
112
- {
113
- "name": "system_program",
114
- "address": "11111111111111111111111111111111"
115
- }
116
- ],
117
- "args": [
118
- {
119
- "name": "stake_account",
120
- "type": "pubkey"
121
- },
122
- {
123
- "name": "amount",
124
- "type": "u64"
125
- }
126
- ]
127
- },
128
- {
129
- "name": "increment_large_count",
130
- "discriminator": [
131
- 212,
132
- 166,
133
- 130,
134
- 170,
135
- 170,
136
- 112,
137
- 177,
138
- 109
139
- ],
140
- "accounts": [
141
- {
142
- "name": "stake_stats",
143
- "writable": true,
144
- "pda": {
145
- "seeds": [
146
- {
147
- "kind": "const",
148
- "value": [
149
- 115,
150
- 116,
151
- 97,
152
- 107,
153
- 101,
154
- 95,
155
- 115,
156
- 116,
157
- 97,
158
- 116,
159
- 115
160
- ]
161
- }
162
- ]
163
- }
164
- },
165
- {
166
- "name": "authority"
167
- }
168
- ],
169
- "args": []
170
- },
171
- {
172
- "name": "increment_medium_count",
173
- "discriminator": [
174
- 62,
175
- 212,
176
- 67,
177
- 199,
178
- 207,
179
- 49,
180
- 32,
181
- 49
182
- ],
183
- "accounts": [
184
- {
185
- "name": "stake_stats",
186
- "writable": true,
187
- "pda": {
188
- "seeds": [
189
- {
190
- "kind": "const",
191
- "value": [
192
- 115,
193
- 116,
194
- 97,
195
- 107,
196
- 101,
197
- 95,
198
- 115,
199
- 116,
200
- 97,
201
- 116,
202
- 115
203
- ]
204
- }
205
- ]
206
- }
207
- },
208
- {
209
- "name": "authority"
210
- }
211
- ],
212
- "args": []
213
- },
214
- {
215
- "name": "increment_small_count",
216
- "discriminator": [
217
- 130,
218
- 136,
219
- 212,
220
- 234,
221
- 218,
222
- 166,
223
- 127,
224
- 152
225
- ],
226
- "accounts": [
227
- {
228
- "name": "stake_stats",
229
- "writable": true,
230
- "pda": {
231
- "seeds": [
232
- {
233
- "kind": "const",
234
- "value": [
235
- 115,
236
- 116,
237
- 97,
238
- 107,
239
- 101,
240
- 95,
241
- 115,
242
- 116,
243
- 97,
244
- 116,
245
- 115
246
- ]
247
- }
248
- ]
249
- }
250
- },
251
- {
252
- "name": "authority"
253
- }
254
- ],
255
- "args": []
256
- },
257
- {
258
- "name": "initialize_stake_stats",
259
- "discriminator": [
260
- 80,
261
- 195,
262
- 137,
263
- 200,
264
- 187,
265
- 221,
266
- 47,
267
- 188
268
- ],
269
- "accounts": [
270
- {
271
- "name": "stake_stats",
272
- "writable": true,
273
- "pda": {
274
- "seeds": [
275
- {
276
- "kind": "const",
277
- "value": [
278
- 115,
279
- 116,
280
- 97,
281
- 107,
282
- 101,
283
- 95,
284
- 115,
285
- 116,
286
- 97,
287
- 116,
288
- 115
289
- ]
290
- }
291
- ]
292
- }
293
- },
294
- {
295
- "name": "payer",
296
- "writable": true,
297
- "signer": true
298
- },
299
- {
300
- "name": "system_program",
301
- "address": "11111111111111111111111111111111"
302
- }
303
- ],
304
- "args": []
305
- },
306
- {
307
- "name": "mark_merged",
308
- "discriminator": [
309
- 211,
310
- 51,
311
- 56,
312
- 137,
313
- 181,
314
- 222,
315
- 140,
316
- 131
317
- ],
318
- "accounts": [
319
- {
320
- "name": "stake_record",
321
- "writable": true
322
- },
323
- {
324
- "name": "authority",
325
- "signer": true
326
- }
327
- ],
328
- "args": [
329
- {
330
- "name": "merged_into_account",
331
- "type": "pubkey"
332
- }
333
- ]
334
- }
335
- ],
336
- "accounts": [
337
- {
338
- "name": "StakeRecord",
339
- "discriminator": [
340
- 174,
341
- 163,
342
- 11,
343
- 208,
344
- 150,
345
- 236,
346
- 11,
347
- 205
348
- ]
349
- },
350
- {
351
- "name": "StakeStats",
352
- "discriminator": [
353
- 140,
354
- 141,
355
- 193,
356
- 39,
357
- 230,
358
- 223,
359
- 242,
360
- 46
361
- ]
362
- }
363
- ],
364
- "errors": [
365
- {
366
- "code": 6000,
367
- "name": "InvalidStakeRecord",
368
- "msg": "Invalid stake record"
369
- },
370
- {
371
- "code": 6001,
372
- "name": "Unauthorized",
373
- "msg": "Unauthorized"
374
- },
375
- {
376
- "code": 6002,
377
- "name": "ArithmeticOverflow",
378
- "msg": "Arithmetic overflow"
379
- }
380
- ],
381
- "types": [
382
- {
383
- "name": "StakeRecord",
384
- "type": {
385
- "kind": "struct",
386
- "fields": [
387
- {
388
- "name": "initial_amount",
389
- "type": "u64"
390
- },
391
- {
392
- "name": "created_epoch",
393
- "type": "u64"
394
- },
395
- {
396
- "name": "merged_into",
397
- "type": {
398
- "option": "pubkey"
399
- }
400
- },
401
- {
402
- "name": "merged_epoch",
403
- "type": {
404
- "option": "u64"
405
- }
406
- }
407
- ]
408
- }
409
- },
410
- {
411
- "name": "StakeStats",
412
- "type": {
413
- "kind": "struct",
414
- "fields": [
415
- {
416
- "name": "small_count",
417
- "type": "u64"
418
- },
419
- {
420
- "name": "medium_count",
421
- "type": "u64"
422
- },
423
- {
424
- "name": "large_count",
425
- "type": "u64"
426
- },
427
- {
428
- "name": "bump",
429
- "type": "u8"
430
- }
431
- ]
432
- }
433
- }
434
- ]
435
- }
@@ -1,122 +0,0 @@
1
- // src/solana/utils.ts
2
- import { AnchorProvider, Program } from '@coral-xyz/anchor'
3
- import { PublicKey } from '@solana/web3.js'
4
- import { getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'
5
- import {
6
- DEPOSIT_PROGRAM_ID,
7
- DISTRIBUTION_PROGRAM_ID,
8
- STAKE_CONTROLLER_PROGRAM_ID,
9
- VALIDATOR_LEADERBOARD_PROGRAM_ID,
10
- LIQSOL_MINT_ADDRESS,
11
- DepositIDL,
12
- Deposit
13
- } from './constants'
14
-
15
- // -- Program factories ------------------------------------------------------
16
- /**
17
- * Create an Anchor Program client for the Deposit program
18
- */
19
- export function getDepositProgram(provider: AnchorProvider): Program<Deposit> {
20
- // Ensure the IDL has the correct program address
21
- const idlWithAddress = {
22
- ...JSON.parse(JSON.stringify(DepositIDL)),
23
- address: DEPOSIT_PROGRAM_ID.toString(),
24
- }
25
- return new Program(idlWithAddress as any, provider) as Program<Deposit>
26
- }
27
-
28
- // (Other program factories can go here if needed)
29
-
30
- // -- PDA derivation helpers ------------------------------------------------
31
- export function deriveDepositAuthorityPDA(
32
- programId: PublicKey = DEPOSIT_PROGRAM_ID
33
- ): [PublicKey, number] {
34
- return PublicKey.findProgramAddressSync(
35
- [Buffer.from('program_authority')],
36
- programId
37
- )
38
- }
39
-
40
- export function deriveLiqsolMintAuthorityPDA(
41
- programId: PublicKey = LIQSOL_MINT_ADDRESS
42
- ): [PublicKey, number] {
43
- return PublicKey.findProgramAddressSync(
44
- [Buffer.from('mint_authority')],
45
- programId
46
- )
47
- }
48
-
49
- export function deriveStakeControllerVaultPDA(): [PublicKey, number] {
50
- return PublicKey.findProgramAddressSync(
51
- [Buffer.from('vault')],
52
- STAKE_CONTROLLER_PROGRAM_ID
53
- )
54
- }
55
-
56
- export function deriveStakeControllerReservePoolPDA(): [PublicKey, number] {
57
- return PublicKey.findProgramAddressSync(
58
- [Buffer.from('reserve_pool')],
59
- STAKE_CONTROLLER_PROGRAM_ID
60
- )
61
- }
62
-
63
- export function deriveStakeControllerStatePDA(): [PublicKey, number] {
64
- return PublicKey.findProgramAddressSync(
65
- [Buffer.from('stake_controller')],
66
- STAKE_CONTROLLER_PROGRAM_ID
67
- )
68
- }
69
-
70
- export function deriveDistributionStatePDA(): [PublicKey, number] {
71
- return PublicKey.findProgramAddressSync(
72
- [Buffer.from('distribution_state')],
73
- DISTRIBUTION_PROGRAM_ID
74
- )
75
- }
76
-
77
- export function deriveUserRecordPDA(
78
- user: PublicKey
79
- ): [PublicKey, number] {
80
- return PublicKey.findProgramAddressSync(
81
- [Buffer.from('user_record'), user.toBuffer()],
82
- DISTRIBUTION_PROGRAM_ID
83
- )
84
- }
85
-
86
- export function deriveLeaderboardHeadPDA(): [PublicKey, number] {
87
- return PublicKey.findProgramAddressSync(
88
- [Buffer.from('leaderboard_head')],
89
- VALIDATOR_LEADERBOARD_PROGRAM_ID
90
- )
91
- }
92
-
93
- export function deriveValidatorRecordPDA(
94
- voteAccount: PublicKey
95
- ): [PublicKey, number] {
96
- return PublicKey.findProgramAddressSync(
97
- [Buffer.from('validator_record'), voteAccount.toBuffer()],
98
- VALIDATOR_LEADERBOARD_PROGRAM_ID
99
- )
100
- }
101
-
102
- export function deriveTop10CachePDA(): [PublicKey, number] {
103
- return PublicKey.findProgramAddressSync(
104
- [Buffer.from('top_10_cache')],
105
- VALIDATOR_LEADERBOARD_PROGRAM_ID
106
- )
107
- }
108
-
109
- // -- SPL Token helper -------------------------------------------------------
110
- export function getUserLiqsolATA(
111
- user: PublicKey
112
- ): PublicKey {
113
- return getAssociatedTokenAddressSync(
114
- LIQSOL_MINT_ADDRESS,
115
- user,
116
- false,
117
- TOKEN_2022_PROGRAM_ID,
118
- ASSOCIATED_TOKEN_PROGRAM_ID
119
- )
120
- }
121
-
122
- // seedToPID(seed: string): PublicKey
File without changes