@wireio/stake 0.0.1

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 (48) hide show
  1. package/LICENSE.md +114 -0
  2. package/README.md +28 -0
  3. package/lib/stake.browser.js +6875 -0
  4. package/lib/stake.browser.js.map +1 -0
  5. package/lib/stake.d.ts +6759 -0
  6. package/lib/stake.js +7178 -0
  7. package/lib/stake.js.map +1 -0
  8. package/lib/stake.m.js +6875 -0
  9. package/lib/stake.m.js.map +1 -0
  10. package/package.json +102 -0
  11. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  12. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  13. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  14. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +330 -0
  15. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  16. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +449 -0
  17. package/src/assets/solana/idl/deposit.json +260 -0
  18. package/src/assets/solana/idl/distribution.json +736 -0
  19. package/src/assets/solana/idl/liq_sol_token.json +275 -0
  20. package/src/assets/solana/idl/stake_controller.json +1788 -0
  21. package/src/assets/solana/idl/stake_registry.json +435 -0
  22. package/src/assets/solana/idl/treasury.json +336 -0
  23. package/src/assets/solana/idl/validator_leaderboard.json +528 -0
  24. package/src/assets/solana/idl/validator_registry.json +418 -0
  25. package/src/assets/solana/idl/yield_oracle.json +32 -0
  26. package/src/assets/solana/types/deposit.ts +266 -0
  27. package/src/assets/solana/types/distribution.ts +742 -0
  28. package/src/assets/solana/types/liq_sol_token.ts +281 -0
  29. package/src/assets/solana/types/stake_controller.ts +1794 -0
  30. package/src/assets/solana/types/stake_registry.ts +441 -0
  31. package/src/assets/solana/types/treasury.ts +342 -0
  32. package/src/assets/solana/types/validator_leaderboard.ts +534 -0
  33. package/src/assets/solana/types/validator_registry.ts +424 -0
  34. package/src/assets/solana/types/yield_oracle.ts +38 -0
  35. package/src/index.ts +21 -0
  36. package/src/networks/ethereum/contract.ts +167 -0
  37. package/src/networks/ethereum/ethereum.ts +64 -0
  38. package/src/networks/ethereum/types.ts +6 -0
  39. package/src/networks/solana/clients/deposit.client.ts +178 -0
  40. package/src/networks/solana/clients/distribution.client.ts +230 -0
  41. package/src/networks/solana/clients/leaderboard.client.ts +179 -0
  42. package/src/networks/solana/constants.ts +73 -0
  43. package/src/networks/solana/program.ts +113 -0
  44. package/src/networks/solana/solana.ts +84 -0
  45. package/src/networks/solana/utils.ts +122 -0
  46. package/src/staker/staker.ts +38 -0
  47. package/src/staker/types.ts +26 -0
  48. package/src/utils.ts +9 -0
@@ -0,0 +1,418 @@
1
+ {
2
+ "address": "DqaNZkyhg6ASSkut8tyQGjwMtv35Yj5rA9JZvzmzZb3e",
3
+ "metadata": {
4
+ "name": "validator_registry",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Created with Anchor"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "add_validator",
12
+ "discriminator": [
13
+ 250,
14
+ 113,
15
+ 53,
16
+ 54,
17
+ 141,
18
+ 117,
19
+ 215,
20
+ 185
21
+ ],
22
+ "accounts": [
23
+ {
24
+ "name": "authority",
25
+ "signer": true
26
+ },
27
+ {
28
+ "name": "validator_registry",
29
+ "writable": true
30
+ }
31
+ ],
32
+ "args": [
33
+ {
34
+ "name": "vote_account",
35
+ "type": "pubkey"
36
+ },
37
+ {
38
+ "name": "name",
39
+ "type": "string"
40
+ },
41
+ {
42
+ "name": "performance_score",
43
+ "type": "u32"
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "name": "get_validators",
49
+ "discriminator": [
50
+ 74,
51
+ 81,
52
+ 116,
53
+ 129,
54
+ 224,
55
+ 19,
56
+ 17,
57
+ 238
58
+ ],
59
+ "accounts": [
60
+ {
61
+ "name": "validator_registry"
62
+ }
63
+ ],
64
+ "args": []
65
+ },
66
+ {
67
+ "name": "initialize",
68
+ "discriminator": [
69
+ 175,
70
+ 175,
71
+ 109,
72
+ 31,
73
+ 13,
74
+ 152,
75
+ 155,
76
+ 237
77
+ ],
78
+ "accounts": [
79
+ {
80
+ "name": "payer",
81
+ "writable": true,
82
+ "signer": true
83
+ },
84
+ {
85
+ "name": "validator_registry",
86
+ "writable": true,
87
+ "pda": {
88
+ "seeds": [
89
+ {
90
+ "kind": "const",
91
+ "value": [
92
+ 118,
93
+ 97,
94
+ 108,
95
+ 105,
96
+ 100,
97
+ 97,
98
+ 116,
99
+ 111,
100
+ 114,
101
+ 95,
102
+ 114,
103
+ 101,
104
+ 103,
105
+ 105,
106
+ 115,
107
+ 116,
108
+ 114,
109
+ 121
110
+ ]
111
+ }
112
+ ]
113
+ }
114
+ },
115
+ {
116
+ "name": "system_program",
117
+ "address": "11111111111111111111111111111111"
118
+ }
119
+ ],
120
+ "args": [
121
+ {
122
+ "name": "authority",
123
+ "type": "pubkey"
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "name": "sync_validators_from_chain",
129
+ "discriminator": [
130
+ 247,
131
+ 11,
132
+ 19,
133
+ 18,
134
+ 37,
135
+ 20,
136
+ 245,
137
+ 232
138
+ ],
139
+ "accounts": [
140
+ {
141
+ "name": "authority",
142
+ "signer": true
143
+ },
144
+ {
145
+ "name": "validator_registry",
146
+ "writable": true
147
+ },
148
+ {
149
+ "name": "stake_controller_program"
150
+ }
151
+ ],
152
+ "args": [
153
+ {
154
+ "name": "vote_accounts",
155
+ "type": {
156
+ "vec": "pubkey"
157
+ }
158
+ },
159
+ {
160
+ "name": "validator_metrics",
161
+ "type": {
162
+ "vec": {
163
+ "defined": {
164
+ "name": "ValidatorMetrics"
165
+ }
166
+ }
167
+ }
168
+ }
169
+ ]
170
+ },
171
+ {
172
+ "name": "update_performance",
173
+ "discriminator": [
174
+ 11,
175
+ 251,
176
+ 66,
177
+ 148,
178
+ 20,
179
+ 86,
180
+ 149,
181
+ 20
182
+ ],
183
+ "accounts": [
184
+ {
185
+ "name": "authority",
186
+ "signer": true
187
+ },
188
+ {
189
+ "name": "validator_registry",
190
+ "writable": true
191
+ }
192
+ ],
193
+ "args": [
194
+ {
195
+ "name": "vote_account",
196
+ "type": "pubkey"
197
+ },
198
+ {
199
+ "name": "performance_score",
200
+ "type": "u32"
201
+ },
202
+ {
203
+ "name": "active_stake",
204
+ "type": "u64"
205
+ },
206
+ {
207
+ "name": "commission",
208
+ "type": "u64"
209
+ }
210
+ ]
211
+ }
212
+ ],
213
+ "accounts": [
214
+ {
215
+ "name": "ValidatorRegistry",
216
+ "discriminator": [
217
+ 168,
218
+ 113,
219
+ 195,
220
+ 186,
221
+ 62,
222
+ 121,
223
+ 163,
224
+ 230
225
+ ]
226
+ }
227
+ ],
228
+ "events": [
229
+ {
230
+ "name": "ValidatorsSyncedEvent",
231
+ "discriminator": [
232
+ 119,
233
+ 121,
234
+ 49,
235
+ 120,
236
+ 230,
237
+ 132,
238
+ 109,
239
+ 214
240
+ ]
241
+ }
242
+ ],
243
+ "errors": [
244
+ {
245
+ "code": 6000,
246
+ "name": "Unauthorized",
247
+ "msg": "Unauthorized access"
248
+ },
249
+ {
250
+ "code": 6001,
251
+ "name": "MaxValidatorsReached",
252
+ "msg": "Maximum validators reached"
253
+ },
254
+ {
255
+ "code": 6002,
256
+ "name": "ValidatorAlreadyExists",
257
+ "msg": "Validator already exists"
258
+ },
259
+ {
260
+ "code": 6003,
261
+ "name": "ValidatorNotFound",
262
+ "msg": "Validator not found"
263
+ },
264
+ {
265
+ "code": 6004,
266
+ "name": "InvalidStakeUpdateType",
267
+ "msg": "Invalid stake update type"
268
+ },
269
+ {
270
+ "code": 6005,
271
+ "name": "InvalidVoteAccount",
272
+ "msg": "Invalid vote account provided"
273
+ },
274
+ {
275
+ "code": 6006,
276
+ "name": "InvalidInputLength",
277
+ "msg": "Invalid input length - all vectors must have same length"
278
+ },
279
+ {
280
+ "code": 6007,
281
+ "name": "InvalidStakeAccount",
282
+ "msg": "Invalid Stake Account"
283
+ }
284
+ ],
285
+ "types": [
286
+ {
287
+ "name": "ValidatorInfo",
288
+ "type": {
289
+ "kind": "struct",
290
+ "fields": [
291
+ {
292
+ "name": "vote_account",
293
+ "type": "pubkey"
294
+ },
295
+ {
296
+ "name": "name",
297
+ "type": {
298
+ "array": [
299
+ "u8",
300
+ 32
301
+ ]
302
+ }
303
+ },
304
+ {
305
+ "name": "performance_score",
306
+ "type": "u32"
307
+ },
308
+ {
309
+ "name": "active_stake",
310
+ "type": "u64"
311
+ },
312
+ {
313
+ "name": "activating_stake",
314
+ "type": "u64"
315
+ },
316
+ {
317
+ "name": "deactivating_stake",
318
+ "type": "u64"
319
+ },
320
+ {
321
+ "name": "commission",
322
+ "type": "u64"
323
+ },
324
+ {
325
+ "name": "last_updated_epoch",
326
+ "type": "u64"
327
+ },
328
+ {
329
+ "name": "initial_stake",
330
+ "type": "u64"
331
+ },
332
+ {
333
+ "name": "previous_epoch_active_stake",
334
+ "type": "u64"
335
+ },
336
+ {
337
+ "name": "previous_epoch_snapshot",
338
+ "type": "u64"
339
+ }
340
+ ]
341
+ }
342
+ },
343
+ {
344
+ "name": "ValidatorMetrics",
345
+ "type": {
346
+ "kind": "struct",
347
+ "fields": [
348
+ {
349
+ "name": "commission",
350
+ "type": "u8"
351
+ },
352
+ {
353
+ "name": "skip_rate_bps",
354
+ "type": "u32"
355
+ },
356
+ {
357
+ "name": "is_delinquent",
358
+ "type": "bool"
359
+ },
360
+ {
361
+ "name": "activated_stake",
362
+ "type": "u64"
363
+ }
364
+ ]
365
+ }
366
+ },
367
+ {
368
+ "name": "ValidatorRegistry",
369
+ "type": {
370
+ "kind": "struct",
371
+ "fields": [
372
+ {
373
+ "name": "authority",
374
+ "type": "pubkey"
375
+ },
376
+ {
377
+ "name": "validators",
378
+ "type": {
379
+ "vec": {
380
+ "defined": {
381
+ "name": "ValidatorInfo"
382
+ }
383
+ }
384
+ }
385
+ },
386
+ {
387
+ "name": "last_update_epoch",
388
+ "type": "u64"
389
+ },
390
+ {
391
+ "name": "bump",
392
+ "type": "u8"
393
+ }
394
+ ]
395
+ }
396
+ },
397
+ {
398
+ "name": "ValidatorsSyncedEvent",
399
+ "type": {
400
+ "kind": "struct",
401
+ "fields": [
402
+ {
403
+ "name": "updated_count",
404
+ "type": "u32"
405
+ },
406
+ {
407
+ "name": "not_found_count",
408
+ "type": "u32"
409
+ },
410
+ {
411
+ "name": "epoch",
412
+ "type": "u64"
413
+ }
414
+ ]
415
+ }
416
+ }
417
+ ]
418
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "address": "ABMUzgJCoJ17WPYvxZg4Biuo5oCaEbuD4svUVGFBTWCz",
3
+ "metadata": {
4
+ "name": "yield_oracle",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Created with Anchor"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "calculate_yield_per_sol",
12
+ "discriminator": [
13
+ 51,
14
+ 25,
15
+ 150,
16
+ 38,
17
+ 173,
18
+ 32,
19
+ 27,
20
+ 202
21
+ ],
22
+ "accounts": [
23
+ {
24
+ "name": "system_program",
25
+ "address": "11111111111111111111111111111111"
26
+ }
27
+ ],
28
+ "args": [],
29
+ "returns": "u64"
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Program IDL in camelCase format in order to be used in JS/TS.
3
+ *
4
+ * Note that this is only a type helper and is not the actual IDL. The original
5
+ * IDL can be found at `target/idl/deposit.json`.
6
+ */
7
+ export type Deposit = {
8
+ "address": "8dtZVExD471mgT5hx8PWMZQT1YJ6aBbTdYw8BbydCdFJ",
9
+ "metadata": {
10
+ "name": "deposit",
11
+ "version": "0.1.0",
12
+ "spec": "0.1.0",
13
+ "description": "Created with Anchor"
14
+ },
15
+ "instructions": [
16
+ {
17
+ "name": "deposit",
18
+ "discriminator": [
19
+ 242,
20
+ 35,
21
+ 198,
22
+ 137,
23
+ 82,
24
+ 225,
25
+ 242,
26
+ 182
27
+ ],
28
+ "accounts": [
29
+ {
30
+ "name": "user",
31
+ "writable": true,
32
+ "signer": true
33
+ },
34
+ {
35
+ "name": "programAuthority",
36
+ "writable": true,
37
+ "pda": {
38
+ "seeds": [
39
+ {
40
+ "kind": "const",
41
+ "value": [
42
+ 112,
43
+ 114,
44
+ 111,
45
+ 103,
46
+ 114,
47
+ 97,
48
+ 109,
49
+ 95,
50
+ 97,
51
+ 117,
52
+ 116,
53
+ 104,
54
+ 111,
55
+ 114,
56
+ 105,
57
+ 116,
58
+ 121
59
+ ]
60
+ }
61
+ ]
62
+ }
63
+ },
64
+ {
65
+ "name": "treasuryWallet",
66
+ "writable": true
67
+ },
68
+ {
69
+ "name": "systemProgram",
70
+ "address": "11111111111111111111111111111111"
71
+ },
72
+ {
73
+ "name": "tokenProgram"
74
+ },
75
+ {
76
+ "name": "associatedTokenProgram",
77
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
78
+ },
79
+ {
80
+ "name": "stakeControllerProgram",
81
+ "address": "2BLSWVneoJAFXTDW2siQuEaZ7RUPTb9df482VChToK7K"
82
+ },
83
+ {
84
+ "name": "liqsolProgram"
85
+ },
86
+ {
87
+ "name": "yieldOracleProgram",
88
+ "address": "ABMUzgJCoJ17WPYvxZg4Biuo5oCaEbuD4svUVGFBTWCz"
89
+ },
90
+ {
91
+ "name": "stakeProgram",
92
+ "address": "Stake11111111111111111111111111111111111111"
93
+ },
94
+ {
95
+ "name": "distributionProgram",
96
+ "address": "4MAXmFPeLotiGBt1BRWQwUYrWcsvGKrWWKxMwiMgKfci"
97
+ },
98
+ {
99
+ "name": "liqsolMint",
100
+ "writable": true
101
+ },
102
+ {
103
+ "name": "userAta",
104
+ "writable": true,
105
+ "pda": {
106
+ "seeds": [
107
+ {
108
+ "kind": "account",
109
+ "path": "user"
110
+ },
111
+ {
112
+ "kind": "account",
113
+ "path": "tokenProgram"
114
+ },
115
+ {
116
+ "kind": "account",
117
+ "path": "liqsolMint"
118
+ }
119
+ ],
120
+ "program": {
121
+ "kind": "const",
122
+ "value": [
123
+ 140,
124
+ 151,
125
+ 37,
126
+ 143,
127
+ 78,
128
+ 36,
129
+ 137,
130
+ 241,
131
+ 187,
132
+ 61,
133
+ 16,
134
+ 41,
135
+ 20,
136
+ 142,
137
+ 13,
138
+ 131,
139
+ 11,
140
+ 90,
141
+ 19,
142
+ 153,
143
+ 218,
144
+ 255,
145
+ 16,
146
+ 132,
147
+ 4,
148
+ 142,
149
+ 123,
150
+ 216,
151
+ 219,
152
+ 233,
153
+ 248,
154
+ 89
155
+ ]
156
+ }
157
+ }
158
+ },
159
+ {
160
+ "name": "liqsolMintAuthority"
161
+ },
162
+ {
163
+ "name": "reservePool",
164
+ "writable": true
165
+ },
166
+ {
167
+ "name": "vault",
168
+ "writable": true
169
+ },
170
+ {
171
+ "name": "ephemeralStake",
172
+ "writable": true
173
+ },
174
+ {
175
+ "name": "controllerState"
176
+ },
177
+ {
178
+ "name": "userRecord",
179
+ "writable": true
180
+ },
181
+ {
182
+ "name": "distributionState",
183
+ "writable": true
184
+ },
185
+ {
186
+ "name": "instructionsSysvar",
187
+ "address": "Sysvar1nstructions1111111111111111111111111"
188
+ },
189
+ {
190
+ "name": "clock",
191
+ "address": "SysvarC1ock11111111111111111111111111111111"
192
+ },
193
+ {
194
+ "name": "stakeHistory",
195
+ "address": "SysvarStakeHistory1111111111111111111111111"
196
+ },
197
+ {
198
+ "name": "rent",
199
+ "address": "SysvarRent111111111111111111111111111111111"
200
+ }
201
+ ],
202
+ "args": [
203
+ {
204
+ "name": "amount",
205
+ "type": "u64"
206
+ },
207
+ {
208
+ "name": "seed",
209
+ "type": "u32"
210
+ }
211
+ ]
212
+ }
213
+ ],
214
+ "errors": [
215
+ {
216
+ "code": 6000,
217
+ "name": "depositTooSmall",
218
+ "msg": "Deposit amount is below minimum required"
219
+ },
220
+ {
221
+ "code": 6001,
222
+ "name": "notInitialized",
223
+ "msg": "Deposit Router not initialized"
224
+ },
225
+ {
226
+ "code": 6002,
227
+ "name": "invalidAuthority",
228
+ "msg": "Invalid authority"
229
+ },
230
+ {
231
+ "code": 6003,
232
+ "name": "insufficientFunds",
233
+ "msg": "Insufficient funds"
234
+ },
235
+ {
236
+ "code": 6004,
237
+ "name": "overflow",
238
+ "msg": "Arithmetic overflow"
239
+ },
240
+ {
241
+ "code": 6005,
242
+ "name": "calculationFailure",
243
+ "msg": "Calculation failure"
244
+ },
245
+ {
246
+ "code": 6006,
247
+ "name": "nothingToMint",
248
+ "msg": "Cannot mint zero tokens"
249
+ },
250
+ {
251
+ "code": 6007,
252
+ "name": "invalidAccount",
253
+ "msg": "Invalid account provided"
254
+ },
255
+ {
256
+ "code": 6008,
257
+ "name": "insufficientFundsForStake",
258
+ "msg": "Insufficient funds remaining after reserving fees to proceed with staking"
259
+ },
260
+ {
261
+ "code": 6009,
262
+ "name": "unauthorizedProgram",
263
+ "msg": "Unauthorized program attempting to call this instruction"
264
+ }
265
+ ]
266
+ };