@ledgerhq/coin-solana 0.7.6 → 0.7.7-next.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.
- package/CHANGELOG.md +12 -0
- package/lib/api/chain/account/index.d.ts +1 -1
- package/lib/api/chain/account/index.d.ts.map +1 -1
- package/lib/api/chain/account/index.js +3 -1
- package/lib/api/chain/account/index.js.map +1 -1
- package/lib/api/chain/account/parser.d.ts +7 -0
- package/lib/api/chain/account/parser.d.ts.map +1 -1
- package/lib/api/chain/account/parser.js +14 -1
- package/lib/api/chain/account/parser.js.map +1 -1
- package/lib/api/chain/account/stake.d.ts +60 -34
- package/lib/api/chain/account/stake.d.ts.map +1 -1
- package/lib/api/chain/account/stake.js +15 -8
- package/lib/api/chain/account/stake.js.map +1 -1
- package/lib/api/chain/account/token.d.ts +6 -6
- package/lib/api/chain/index.d.ts +2 -1
- package/lib/api/chain/index.d.ts.map +1 -1
- package/lib/api/chain/index.js +2 -1
- package/lib/api/chain/index.js.map +1 -1
- package/lib/api/chain/instruction/token/types.d.ts +21 -21
- package/lib/api/chain/stake-activation/delegation.d.ts +9 -0
- package/lib/api/chain/stake-activation/delegation.d.ts.map +1 -0
- package/lib/api/chain/stake-activation/delegation.js +139 -0
- package/lib/api/chain/stake-activation/delegation.js.map +1 -0
- package/lib/api/chain/stake-activation/index.d.ts +2 -0
- package/lib/api/chain/stake-activation/index.d.ts.map +1 -0
- package/lib/api/chain/stake-activation/index.js +6 -0
- package/lib/api/chain/stake-activation/index.js.map +1 -0
- package/lib/api/chain/stake-activation/rpc.d.ts +10 -0
- package/lib/api/chain/stake-activation/rpc.d.ts.map +1 -0
- package/lib/api/chain/stake-activation/rpc.js +79 -0
- package/lib/api/chain/stake-activation/rpc.js.map +1 -0
- package/lib/api/chain/validators/bignum.d.ts +1 -0
- package/lib/api/chain/validators/bignum.d.ts.map +1 -1
- package/lib/api/chain/validators/bignum.js +6 -1
- package/lib/api/chain/validators/bignum.js.map +1 -1
- package/lib-es/api/chain/account/index.d.ts +1 -1
- package/lib-es/api/chain/account/index.d.ts.map +1 -1
- package/lib-es/api/chain/account/index.js +1 -1
- package/lib-es/api/chain/account/index.js.map +1 -1
- package/lib-es/api/chain/account/parser.d.ts +7 -0
- package/lib-es/api/chain/account/parser.d.ts.map +1 -1
- package/lib-es/api/chain/account/parser.js +12 -1
- package/lib-es/api/chain/account/parser.js.map +1 -1
- package/lib-es/api/chain/account/stake.d.ts +60 -34
- package/lib-es/api/chain/account/stake.d.ts.map +1 -1
- package/lib-es/api/chain/account/stake.js +15 -8
- package/lib-es/api/chain/account/stake.js.map +1 -1
- package/lib-es/api/chain/account/token.d.ts +6 -6
- package/lib-es/api/chain/index.d.ts +2 -1
- package/lib-es/api/chain/index.d.ts.map +1 -1
- package/lib-es/api/chain/index.js +2 -1
- package/lib-es/api/chain/index.js.map +1 -1
- package/lib-es/api/chain/instruction/token/types.d.ts +21 -21
- package/lib-es/api/chain/stake-activation/delegation.d.ts +9 -0
- package/lib-es/api/chain/stake-activation/delegation.d.ts.map +1 -0
- package/lib-es/api/chain/stake-activation/delegation.js +132 -0
- package/lib-es/api/chain/stake-activation/delegation.js.map +1 -0
- package/lib-es/api/chain/stake-activation/index.d.ts +2 -0
- package/lib-es/api/chain/stake-activation/index.d.ts.map +1 -0
- package/lib-es/api/chain/stake-activation/index.js +2 -0
- package/lib-es/api/chain/stake-activation/index.js.map +1 -0
- package/lib-es/api/chain/stake-activation/rpc.d.ts +10 -0
- package/lib-es/api/chain/stake-activation/rpc.d.ts.map +1 -0
- package/lib-es/api/chain/stake-activation/rpc.js +75 -0
- package/lib-es/api/chain/stake-activation/rpc.js.map +1 -0
- package/lib-es/api/chain/validators/bignum.d.ts +1 -0
- package/lib-es/api/chain/validators/bignum.d.ts.map +1 -1
- package/lib-es/api/chain/validators/bignum.js +6 -1
- package/lib-es/api/chain/validators/bignum.js.map +1 -1
- package/package.json +5 -5
- package/src/api/chain/account/index.ts +7 -1
- package/src/api/chain/account/parser.ts +17 -1
- package/src/api/chain/account/stake.ts +19 -8
- package/src/api/chain/index.ts +3 -2
- package/src/api/chain/stake-activation/delegation.ts +169 -0
- package/src/api/chain/stake-activation/index.ts +1 -0
- package/src/api/chain/stake-activation/rpc.ts +90 -0
- package/src/api/chain/validators/bignum.ts +6 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { Infer } from "superstruct";
|
|
3
3
|
export type TokenAmountUi = Infer<typeof TokenAmountUi>;
|
|
4
4
|
export declare const TokenAmountUi: import("superstruct").Struct<{
|
|
5
|
-
amount: string;
|
|
6
5
|
decimals: number;
|
|
7
6
|
uiAmountString: string;
|
|
7
|
+
amount: string;
|
|
8
8
|
}, {
|
|
9
9
|
amount: import("superstruct").Struct<string, null>;
|
|
10
10
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -30,9 +30,9 @@ export type TransferChecked = Infer<typeof TransferChecked>;
|
|
|
30
30
|
export declare const TransferChecked: import("superstruct").Struct<{
|
|
31
31
|
mint: import("@solana/web3.js").PublicKey;
|
|
32
32
|
tokenAmount: {
|
|
33
|
-
amount: string;
|
|
34
33
|
decimals: number;
|
|
35
34
|
uiAmountString: string;
|
|
35
|
+
amount: string;
|
|
36
36
|
};
|
|
37
37
|
source: import("@solana/web3.js").PublicKey;
|
|
38
38
|
destination: import("@solana/web3.js").PublicKey;
|
|
@@ -47,9 +47,9 @@ export declare const TransferChecked: import("superstruct").Struct<{
|
|
|
47
47
|
multisigAuthority: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
48
48
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
49
49
|
tokenAmount: import("superstruct").Struct<{
|
|
50
|
-
amount: string;
|
|
51
50
|
decimals: number;
|
|
52
51
|
uiAmountString: string;
|
|
52
|
+
amount: string;
|
|
53
53
|
}, {
|
|
54
54
|
amount: import("superstruct").Struct<string, null>;
|
|
55
55
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -180,8 +180,8 @@ export declare const IX_STRUCTS: {
|
|
|
180
180
|
}>;
|
|
181
181
|
mintTo: import("superstruct").Struct<{
|
|
182
182
|
mint: import("@solana/web3.js").PublicKey;
|
|
183
|
-
amount: string | number;
|
|
184
183
|
account: import("@solana/web3.js").PublicKey;
|
|
184
|
+
amount: string | number;
|
|
185
185
|
mintAuthority?: import("@solana/web3.js").PublicKey | undefined;
|
|
186
186
|
signers?: import("@solana/web3.js").PublicKey[] | undefined;
|
|
187
187
|
multisigMintAuthority?: import("@solana/web3.js").PublicKey | undefined;
|
|
@@ -195,8 +195,8 @@ export declare const IX_STRUCTS: {
|
|
|
195
195
|
}>;
|
|
196
196
|
burn: import("superstruct").Struct<{
|
|
197
197
|
mint: import("@solana/web3.js").PublicKey;
|
|
198
|
-
amount: string | number;
|
|
199
198
|
account: import("@solana/web3.js").PublicKey;
|
|
199
|
+
amount: string | number;
|
|
200
200
|
signers?: import("@solana/web3.js").PublicKey[] | undefined;
|
|
201
201
|
authority?: import("@solana/web3.js").PublicKey | undefined;
|
|
202
202
|
multisigAuthority?: import("@solana/web3.js").PublicKey | undefined;
|
|
@@ -250,9 +250,9 @@ export declare const IX_STRUCTS: {
|
|
|
250
250
|
transfer2: import("superstruct").Struct<{
|
|
251
251
|
mint: import("@solana/web3.js").PublicKey;
|
|
252
252
|
tokenAmount: {
|
|
253
|
-
amount: string;
|
|
254
253
|
decimals: number;
|
|
255
254
|
uiAmountString: string;
|
|
255
|
+
amount: string;
|
|
256
256
|
};
|
|
257
257
|
source: import("@solana/web3.js").PublicKey;
|
|
258
258
|
destination: import("@solana/web3.js").PublicKey;
|
|
@@ -267,9 +267,9 @@ export declare const IX_STRUCTS: {
|
|
|
267
267
|
multisigAuthority: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
268
268
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
269
269
|
tokenAmount: import("superstruct").Struct<{
|
|
270
|
-
amount: string;
|
|
271
270
|
decimals: number;
|
|
272
271
|
uiAmountString: string;
|
|
272
|
+
amount: string;
|
|
273
273
|
}, {
|
|
274
274
|
amount: import("superstruct").Struct<string, null>;
|
|
275
275
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -279,9 +279,9 @@ export declare const IX_STRUCTS: {
|
|
|
279
279
|
approve2: import("superstruct").Struct<{
|
|
280
280
|
mint: import("@solana/web3.js").PublicKey;
|
|
281
281
|
tokenAmount: {
|
|
282
|
-
amount: string;
|
|
283
282
|
decimals: number;
|
|
284
283
|
uiAmountString: string;
|
|
284
|
+
amount: string;
|
|
285
285
|
};
|
|
286
286
|
delegate: import("@solana/web3.js").PublicKey;
|
|
287
287
|
source: import("@solana/web3.js").PublicKey;
|
|
@@ -296,9 +296,9 @@ export declare const IX_STRUCTS: {
|
|
|
296
296
|
multisigOwner: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
297
297
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
298
298
|
tokenAmount: import("superstruct").Struct<{
|
|
299
|
-
amount: string;
|
|
300
299
|
decimals: number;
|
|
301
300
|
uiAmountString: string;
|
|
301
|
+
amount: string;
|
|
302
302
|
}, {
|
|
303
303
|
amount: import("superstruct").Struct<string, null>;
|
|
304
304
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -309,9 +309,9 @@ export declare const IX_STRUCTS: {
|
|
|
309
309
|
mint: import("@solana/web3.js").PublicKey;
|
|
310
310
|
account: import("@solana/web3.js").PublicKey;
|
|
311
311
|
tokenAmount: {
|
|
312
|
-
amount: string;
|
|
313
312
|
decimals: number;
|
|
314
313
|
uiAmountString: string;
|
|
314
|
+
amount: string;
|
|
315
315
|
};
|
|
316
316
|
mintAuthority?: import("@solana/web3.js").PublicKey | undefined;
|
|
317
317
|
signers?: import("@solana/web3.js").PublicKey[] | undefined;
|
|
@@ -323,9 +323,9 @@ export declare const IX_STRUCTS: {
|
|
|
323
323
|
multisigMintAuthority: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
324
324
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
325
325
|
tokenAmount: import("superstruct").Struct<{
|
|
326
|
-
amount: string;
|
|
327
326
|
decimals: number;
|
|
328
327
|
uiAmountString: string;
|
|
328
|
+
amount: string;
|
|
329
329
|
}, {
|
|
330
330
|
amount: import("superstruct").Struct<string, null>;
|
|
331
331
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -336,9 +336,9 @@ export declare const IX_STRUCTS: {
|
|
|
336
336
|
mint: import("@solana/web3.js").PublicKey;
|
|
337
337
|
account: import("@solana/web3.js").PublicKey;
|
|
338
338
|
tokenAmount: {
|
|
339
|
-
amount: string;
|
|
340
339
|
decimals: number;
|
|
341
340
|
uiAmountString: string;
|
|
341
|
+
amount: string;
|
|
342
342
|
};
|
|
343
343
|
signers?: import("@solana/web3.js").PublicKey[] | undefined;
|
|
344
344
|
authority?: import("@solana/web3.js").PublicKey | undefined;
|
|
@@ -350,9 +350,9 @@ export declare const IX_STRUCTS: {
|
|
|
350
350
|
multisigAuthority: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
351
351
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
352
352
|
tokenAmount: import("superstruct").Struct<{
|
|
353
|
-
amount: string;
|
|
354
353
|
decimals: number;
|
|
355
354
|
uiAmountString: string;
|
|
355
|
+
amount: string;
|
|
356
356
|
}, {
|
|
357
357
|
amount: import("superstruct").Struct<string, null>;
|
|
358
358
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -362,9 +362,9 @@ export declare const IX_STRUCTS: {
|
|
|
362
362
|
transferChecked: import("superstruct").Struct<{
|
|
363
363
|
mint: import("@solana/web3.js").PublicKey;
|
|
364
364
|
tokenAmount: {
|
|
365
|
-
amount: string;
|
|
366
365
|
decimals: number;
|
|
367
366
|
uiAmountString: string;
|
|
367
|
+
amount: string;
|
|
368
368
|
};
|
|
369
369
|
source: import("@solana/web3.js").PublicKey;
|
|
370
370
|
destination: import("@solana/web3.js").PublicKey;
|
|
@@ -379,9 +379,9 @@ export declare const IX_STRUCTS: {
|
|
|
379
379
|
multisigAuthority: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
380
380
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
381
381
|
tokenAmount: import("superstruct").Struct<{
|
|
382
|
-
amount: string;
|
|
383
382
|
decimals: number;
|
|
384
383
|
uiAmountString: string;
|
|
384
|
+
amount: string;
|
|
385
385
|
}, {
|
|
386
386
|
amount: import("superstruct").Struct<string, null>;
|
|
387
387
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -391,9 +391,9 @@ export declare const IX_STRUCTS: {
|
|
|
391
391
|
approveChecked: import("superstruct").Struct<{
|
|
392
392
|
mint: import("@solana/web3.js").PublicKey;
|
|
393
393
|
tokenAmount: {
|
|
394
|
-
amount: string;
|
|
395
394
|
decimals: number;
|
|
396
395
|
uiAmountString: string;
|
|
396
|
+
amount: string;
|
|
397
397
|
};
|
|
398
398
|
delegate: import("@solana/web3.js").PublicKey;
|
|
399
399
|
source: import("@solana/web3.js").PublicKey;
|
|
@@ -408,9 +408,9 @@ export declare const IX_STRUCTS: {
|
|
|
408
408
|
multisigOwner: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
409
409
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
410
410
|
tokenAmount: import("superstruct").Struct<{
|
|
411
|
-
amount: string;
|
|
412
411
|
decimals: number;
|
|
413
412
|
uiAmountString: string;
|
|
413
|
+
amount: string;
|
|
414
414
|
}, {
|
|
415
415
|
amount: import("superstruct").Struct<string, null>;
|
|
416
416
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -421,9 +421,9 @@ export declare const IX_STRUCTS: {
|
|
|
421
421
|
mint: import("@solana/web3.js").PublicKey;
|
|
422
422
|
account: import("@solana/web3.js").PublicKey;
|
|
423
423
|
tokenAmount: {
|
|
424
|
-
amount: string;
|
|
425
424
|
decimals: number;
|
|
426
425
|
uiAmountString: string;
|
|
426
|
+
amount: string;
|
|
427
427
|
};
|
|
428
428
|
mintAuthority?: import("@solana/web3.js").PublicKey | undefined;
|
|
429
429
|
signers?: import("@solana/web3.js").PublicKey[] | undefined;
|
|
@@ -435,9 +435,9 @@ export declare const IX_STRUCTS: {
|
|
|
435
435
|
multisigMintAuthority: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
436
436
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
437
437
|
tokenAmount: import("superstruct").Struct<{
|
|
438
|
-
amount: string;
|
|
439
438
|
decimals: number;
|
|
440
439
|
uiAmountString: string;
|
|
440
|
+
amount: string;
|
|
441
441
|
}, {
|
|
442
442
|
amount: import("superstruct").Struct<string, null>;
|
|
443
443
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -448,9 +448,9 @@ export declare const IX_STRUCTS: {
|
|
|
448
448
|
mint: import("@solana/web3.js").PublicKey;
|
|
449
449
|
account: import("@solana/web3.js").PublicKey;
|
|
450
450
|
tokenAmount: {
|
|
451
|
-
amount: string;
|
|
452
451
|
decimals: number;
|
|
453
452
|
uiAmountString: string;
|
|
453
|
+
amount: string;
|
|
454
454
|
};
|
|
455
455
|
signers?: import("@solana/web3.js").PublicKey[] | undefined;
|
|
456
456
|
authority?: import("@solana/web3.js").PublicKey | undefined;
|
|
@@ -462,9 +462,9 @@ export declare const IX_STRUCTS: {
|
|
|
462
462
|
multisigAuthority: import("superstruct").Struct<import("@solana/web3.js").PublicKey | undefined, null>;
|
|
463
463
|
signers: import("superstruct").Struct<import("@solana/web3.js").PublicKey[] | undefined, import("superstruct").Struct<import("@solana/web3.js").PublicKey, null>>;
|
|
464
464
|
tokenAmount: import("superstruct").Struct<{
|
|
465
|
-
amount: string;
|
|
466
465
|
decimals: number;
|
|
467
466
|
uiAmountString: string;
|
|
467
|
+
amount: string;
|
|
468
468
|
}, {
|
|
469
469
|
amount: import("superstruct").Struct<string, null>;
|
|
470
470
|
decimals: import("superstruct").Struct<number, null>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
2
|
+
import { Delegation, StakeHistoryEntry } from "../account/stake";
|
|
3
|
+
export interface StakeActivatingAndDeactivating {
|
|
4
|
+
effective: BigNumber;
|
|
5
|
+
activating: BigNumber;
|
|
6
|
+
deactivating: BigNumber;
|
|
7
|
+
}
|
|
8
|
+
export declare function getStakeActivatingAndDeactivating(delegation: Delegation, targetEpoch: BigNumber, stakeHistory: StakeHistoryEntry[]): StakeActivatingAndDeactivating;
|
|
9
|
+
//# sourceMappingURL=delegation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/stake-activation/delegation.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,YAAY,EAAE,SAAS,CAAC;CACzB;AAwFD,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,SAAS,EACtB,YAAY,EAAE,iBAAiB,EAAE,GAChC,8BAA8B,CAqEhC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getStakeActivatingAndDeactivating = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
function getStakeHistoryEntry(epoch, stakeHistory) {
|
|
9
|
+
for (const entry of stakeHistory) {
|
|
10
|
+
if (entry.epoch.eq(epoch)) {
|
|
11
|
+
return entry;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const WARMUP_COOLDOWN_RATE = 0.09;
|
|
17
|
+
function getStakeAndActivating(delegation, targetEpoch, stakeHistory) {
|
|
18
|
+
if (delegation.activationEpoch.eq(delegation.deactivationEpoch)) {
|
|
19
|
+
// activated but instantly deactivated; no stake at all regardless of target_epoch
|
|
20
|
+
return {
|
|
21
|
+
effective: (0, bignumber_js_1.default)(0),
|
|
22
|
+
activating: (0, bignumber_js_1.default)(0),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
else if (targetEpoch.eq(delegation.activationEpoch)) {
|
|
26
|
+
// all is activating
|
|
27
|
+
return {
|
|
28
|
+
effective: (0, bignumber_js_1.default)(0),
|
|
29
|
+
activating: delegation.stake,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
else if (targetEpoch.lt(delegation.activationEpoch)) {
|
|
33
|
+
// not yet enabled
|
|
34
|
+
return {
|
|
35
|
+
effective: (0, bignumber_js_1.default)(0),
|
|
36
|
+
activating: (0, bignumber_js_1.default)(0),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
let currentEpoch = delegation.activationEpoch;
|
|
40
|
+
let entry = getStakeHistoryEntry(currentEpoch, stakeHistory);
|
|
41
|
+
if (entry !== null) {
|
|
42
|
+
// target_epoch > self.activation_epoch
|
|
43
|
+
// loop from my activation epoch until the target epoch summing up my entitlement
|
|
44
|
+
// current effective stake is updated using its previous epoch's cluster stake
|
|
45
|
+
let currentEffectiveStake = (0, bignumber_js_1.default)(0);
|
|
46
|
+
while (entry !== null) {
|
|
47
|
+
currentEpoch = currentEpoch.plus(1);
|
|
48
|
+
const remaining = delegation.stake.minus(currentEffectiveStake);
|
|
49
|
+
const weight = remaining.div(entry.activating);
|
|
50
|
+
const newlyEffectiveClusterStake = entry.effective.multipliedBy(WARMUP_COOLDOWN_RATE);
|
|
51
|
+
const newlyEffectiveStake = bignumber_js_1.default.max((0, bignumber_js_1.default)(1), weight.multipliedBy(newlyEffectiveClusterStake).integerValue(bignumber_js_1.default.ROUND_HALF_CEIL));
|
|
52
|
+
currentEffectiveStake = currentEffectiveStake.plus(newlyEffectiveStake);
|
|
53
|
+
if (currentEffectiveStake.gte(delegation.stake)) {
|
|
54
|
+
currentEffectiveStake = delegation.stake;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
if (currentEpoch.gte(targetEpoch) || currentEpoch.gte(delegation.deactivationEpoch)) {
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
entry = getStakeHistoryEntry(currentEpoch, stakeHistory);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
effective: currentEffectiveStake,
|
|
64
|
+
activating: delegation.stake.minus(currentEffectiveStake),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// no history or I've dropped out of history, so assume fully effective
|
|
69
|
+
return {
|
|
70
|
+
effective: delegation.stake,
|
|
71
|
+
activating: (0, bignumber_js_1.default)(0),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function getStakeActivatingAndDeactivating(delegation, targetEpoch, stakeHistory) {
|
|
76
|
+
const { effective, activating } = getStakeAndActivating(delegation, targetEpoch, stakeHistory);
|
|
77
|
+
// then de-activate some portion if necessary
|
|
78
|
+
if (targetEpoch.lt(delegation.deactivationEpoch)) {
|
|
79
|
+
return {
|
|
80
|
+
effective,
|
|
81
|
+
activating,
|
|
82
|
+
deactivating: (0, bignumber_js_1.default)(0),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
else if (targetEpoch.eq(delegation.deactivationEpoch)) {
|
|
86
|
+
// can only deactivate what's activated
|
|
87
|
+
return {
|
|
88
|
+
effective,
|
|
89
|
+
activating: (0, bignumber_js_1.default)(0),
|
|
90
|
+
deactivating: effective,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
let currentEpoch = delegation.deactivationEpoch;
|
|
94
|
+
let entry = getStakeHistoryEntry(currentEpoch, stakeHistory);
|
|
95
|
+
if (entry !== null) {
|
|
96
|
+
// target_epoch > self.activation_epoch
|
|
97
|
+
// loop from my deactivation epoch until the target epoch
|
|
98
|
+
// current effective stake is updated using its previous epoch's cluster stake
|
|
99
|
+
let currentEffectiveStake = effective;
|
|
100
|
+
while (entry !== null) {
|
|
101
|
+
currentEpoch = currentEpoch.plus(1);
|
|
102
|
+
// if there is no deactivating stake at prev epoch, we should have been
|
|
103
|
+
// fully undelegated at this moment
|
|
104
|
+
if (entry.deactivating.eq(0)) {
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
// I'm trying to get to zero, how much of the deactivation in stake
|
|
108
|
+
// this account is entitled to take
|
|
109
|
+
const weight = currentEffectiveStake.div(entry.deactivating);
|
|
110
|
+
// portion of newly not-effective cluster stake I'm entitled to at current epoch
|
|
111
|
+
const newlyNotEffectiveClusterStake = entry.effective.multipliedBy(WARMUP_COOLDOWN_RATE);
|
|
112
|
+
const newlyNotEffectiveStake = bignumber_js_1.default.max((0, bignumber_js_1.default)(1), weight.multipliedBy(newlyNotEffectiveClusterStake).integerValue(bignumber_js_1.default.ROUND_HALF_CEIL));
|
|
113
|
+
currentEffectiveStake = currentEffectiveStake.minus(newlyNotEffectiveStake);
|
|
114
|
+
if (currentEffectiveStake.lte(0)) {
|
|
115
|
+
currentEffectiveStake = (0, bignumber_js_1.default)(0);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
if (currentEpoch.gte(targetEpoch)) {
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
entry = getStakeHistoryEntry(currentEpoch, stakeHistory);
|
|
122
|
+
}
|
|
123
|
+
// deactivating stake should equal to all of currently remaining effective stake
|
|
124
|
+
return {
|
|
125
|
+
effective: currentEffectiveStake,
|
|
126
|
+
deactivating: currentEffectiveStake,
|
|
127
|
+
activating: (0, bignumber_js_1.default)(0),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return {
|
|
132
|
+
effective: (0, bignumber_js_1.default)(0),
|
|
133
|
+
activating: (0, bignumber_js_1.default)(0),
|
|
134
|
+
deactivating: (0, bignumber_js_1.default)(0),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.getStakeActivatingAndDeactivating = getStakeActivatingAndDeactivating;
|
|
139
|
+
//# sourceMappingURL=delegation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../../../src/api/chain/stake-activation/delegation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/stake-activation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStakeActivation = void 0;
|
|
4
|
+
var rpc_1 = require("./rpc");
|
|
5
|
+
Object.defineProperty(exports, "getStakeActivation", { enumerable: true, get: function () { return rpc_1.getStakeActivation; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/chain/stake-activation/index.ts"],"names":[],"mappings":";;;AAAA,6BAA2C;AAAlC,yGAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
type StakeActivationState = "active" | "inactive" | "activating" | "deactivating";
|
|
3
|
+
export interface StakeActivationData {
|
|
4
|
+
state: StakeActivationState;
|
|
5
|
+
active: number;
|
|
6
|
+
inactive: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function getStakeActivation(connection: Connection, stakeAddress: PublicKey): Promise<StakeActivationData>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/stake-activation/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAA+B,MAAM,iBAAiB,CAAC;AAqBrF,KAAK,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAsD9B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getStakeActivation = void 0;
|
|
13
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
14
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
15
|
+
const delegation_1 = require("./delegation");
|
|
16
|
+
const account_1 = require("../account");
|
|
17
|
+
function getStakeActivationState({ activating, deactivating, effective, }) {
|
|
18
|
+
if (deactivating.gt(0)) {
|
|
19
|
+
return "deactivating";
|
|
20
|
+
}
|
|
21
|
+
else if (activating.gt(0)) {
|
|
22
|
+
return "activating";
|
|
23
|
+
}
|
|
24
|
+
else if (effective.gt(0)) {
|
|
25
|
+
return "active";
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
return "inactive";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Replacement for outdated connection.getStakeActivation rpc endpoint.
|
|
32
|
+
// Based on example from Solana team https://github.com/solana-developers/solana-rpc-get-stake-activation
|
|
33
|
+
// TODO: Install solana-rpc-get-stake-activation via npm package when it's published.
|
|
34
|
+
function getStakeActivation(connection, stakeAddress) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const [epochInfo, { stakeAccountOrErr, stakeAccountLamports }, stakeHistory] = yield Promise.all([
|
|
37
|
+
connection.getEpochInfo(),
|
|
38
|
+
(() => __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const stakeAccount = yield connection.getParsedAccountInfo(stakeAddress);
|
|
40
|
+
if (stakeAccount === null || stakeAccount.value === null) {
|
|
41
|
+
throw new Error("Account not found");
|
|
42
|
+
}
|
|
43
|
+
const stakeAccountOrErr = "parsed" in stakeAccount.value.data
|
|
44
|
+
? (0, account_1.tryParseAsStakeAccount)(stakeAccount.value.data)
|
|
45
|
+
: undefined;
|
|
46
|
+
return { stakeAccountOrErr, stakeAccountLamports: stakeAccount.value.lamports };
|
|
47
|
+
}))(),
|
|
48
|
+
(() => __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const stakeHistoryAccount = yield connection.getParsedAccountInfo(web3_js_1.SYSVAR_STAKE_HISTORY_PUBKEY);
|
|
50
|
+
if (stakeHistoryAccount.value === null || !("parsed" in stakeHistoryAccount.value.data)) {
|
|
51
|
+
throw new Error("StakeHistory not found");
|
|
52
|
+
}
|
|
53
|
+
return stakeHistoryAccount.value.data.parsed.info.map((entry) => {
|
|
54
|
+
return (0, account_1.parseStakeHistoryEntry)(Object.assign({ epoch: entry.epoch }, entry.stakeHistory));
|
|
55
|
+
});
|
|
56
|
+
}))(),
|
|
57
|
+
]);
|
|
58
|
+
if (stakeAccountOrErr instanceof Error)
|
|
59
|
+
throw stakeAccountOrErr;
|
|
60
|
+
const { effective, activating, deactivating } = (stakeAccountOrErr === null || stakeAccountOrErr === void 0 ? void 0 : stakeAccountOrErr.stake)
|
|
61
|
+
? (0, delegation_1.getStakeActivatingAndDeactivating)(stakeAccountOrErr.stake.delegation, (0, bignumber_js_1.BigNumber)(epochInfo.epoch), stakeHistory)
|
|
62
|
+
: {
|
|
63
|
+
effective: (0, bignumber_js_1.BigNumber)(0),
|
|
64
|
+
activating: (0, bignumber_js_1.BigNumber)(0),
|
|
65
|
+
deactivating: (0, bignumber_js_1.BigNumber)(0),
|
|
66
|
+
};
|
|
67
|
+
const state = getStakeActivationState({ effective, activating, deactivating });
|
|
68
|
+
const inactive = (0, bignumber_js_1.BigNumber)(stakeAccountLamports)
|
|
69
|
+
.minus(effective)
|
|
70
|
+
.minus((stakeAccountOrErr === null || stakeAccountOrErr === void 0 ? void 0 : stakeAccountOrErr.meta.rentExemptReserve) || 0);
|
|
71
|
+
return {
|
|
72
|
+
state,
|
|
73
|
+
active: effective.toNumber(),
|
|
74
|
+
inactive: inactive.toNumber(),
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
exports.getStakeActivation = getStakeActivation;
|
|
79
|
+
//# sourceMappingURL=rpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/api/chain/stake-activation/rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bignum.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/validators/bignum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,gBAAgB,+CAG3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"bignum.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/validators/bignum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,gBAAgB,+CAG3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,+CAG3B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BigNumFromString = void 0;
|
|
3
|
+
exports.BigNumFromNumber = exports.BigNumFromString = void 0;
|
|
4
4
|
const superstruct_1 = require("superstruct");
|
|
5
5
|
const bignumber_js_1 = require("bignumber.js");
|
|
6
6
|
exports.BigNumFromString = (0, superstruct_1.coerce)((0, superstruct_1.instance)(bignumber_js_1.BigNumber), (0, superstruct_1.string)(), value => {
|
|
@@ -8,4 +8,9 @@ exports.BigNumFromString = (0, superstruct_1.coerce)((0, superstruct_1.instance)
|
|
|
8
8
|
return new bignumber_js_1.BigNumber(value, 10);
|
|
9
9
|
throw new Error("invalid big num");
|
|
10
10
|
});
|
|
11
|
+
exports.BigNumFromNumber = (0, superstruct_1.coerce)((0, superstruct_1.instance)(bignumber_js_1.BigNumber), (0, superstruct_1.number)(), value => {
|
|
12
|
+
if (typeof value === "number")
|
|
13
|
+
return new bignumber_js_1.BigNumber(value, 10);
|
|
14
|
+
throw new Error("invalid big num");
|
|
15
|
+
});
|
|
11
16
|
//# sourceMappingURL=bignum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bignum.js","sourceRoot":"","sources":["../../../../src/api/chain/validators/bignum.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"bignum.js","sourceRoot":"","sources":["../../../../src/api/chain/validators/bignum.ts"],"names":[],"mappings":";;;AAAA,6CAA+D;AAC/D,+CAAyC;AAE5B,QAAA,gBAAgB,GAAG,IAAA,oBAAM,EAAC,IAAA,sBAAQ,EAAC,wBAAS,CAAC,EAAE,IAAA,oBAAM,GAAE,EAAE,KAAK,CAAC,EAAE;IAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,wBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,IAAA,oBAAM,EAAC,IAAA,sBAAQ,EAAC,wBAAS,CAAC,EAAE,IAAA,oBAAM,GAAE,EAAE,KAAK,CAAC,EAAE;IAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,wBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { tryParseAsTokenAccount, parseTokenAccountInfo, tryParseAsVoteAccount } from "./parser";
|
|
1
|
+
export { tryParseAsTokenAccount, parseTokenAccountInfo, tryParseAsVoteAccount, tryParseAsStakeAccount, parseStakeHistoryEntry, } from "./parser";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/account/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,UAAU,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { tryParseAsTokenAccount, parseTokenAccountInfo, tryParseAsVoteAccount } from "./parser";
|
|
1
|
+
export { tryParseAsTokenAccount, parseTokenAccountInfo, tryParseAsVoteAccount, tryParseAsStakeAccount, parseStakeHistoryEntry, } from "./parser";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/chain/account/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/chain/account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,UAAU,CAAC"}
|
|
@@ -7,4 +7,11 @@ export declare function tryParseAsTokenAccount(data: ParsedAccountData): TokenAc
|
|
|
7
7
|
export declare function parseVoteAccountInfo(info: unknown): VoteAccountInfo;
|
|
8
8
|
export declare function tryParseAsVoteAccount(data: ParsedAccountData): VoteAccountInfo | undefined | Error;
|
|
9
9
|
export declare function parseStakeAccountInfo(info: unknown): StakeAccountInfo;
|
|
10
|
+
export declare function tryParseAsStakeAccount(data: ParsedAccountData): StakeAccountInfo | undefined | Error;
|
|
11
|
+
export declare function parseStakeHistoryEntry(entry: unknown): {
|
|
12
|
+
activating: import("bignumber.js").BigNumber;
|
|
13
|
+
deactivating: import("bignumber.js").BigNumber;
|
|
14
|
+
epoch: import("bignumber.js").BigNumber;
|
|
15
|
+
effective: import("bignumber.js").BigNumber;
|
|
16
|
+
};
|
|
10
17
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/account/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD,OAAO,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/api/chain/account/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD,OAAO,EAAgB,gBAAgB,EAAqB,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAgB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAe,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEtD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAErE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,iBAAiB,GACtB,gBAAgB,GAAG,SAAS,GAAG,KAAK,CAetC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAEnE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,GACtB,eAAe,GAAG,SAAS,GAAG,KAAK,CAarC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAErE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,iBAAiB,GACtB,gBAAgB,GAAG,SAAS,GAAG,KAAK,CAQtC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO;;;;;EAEpD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { create } from "superstruct";
|
|
2
2
|
import { PARSED_PROGRAMS } from "../program/constants";
|
|
3
3
|
import { ParsedInfo } from "../validators";
|
|
4
|
-
import { StakeAccountInfo } from "./stake";
|
|
4
|
+
import { StakeAccount, StakeAccountInfo, StakeHistoryEntry } from "./stake";
|
|
5
5
|
import { TokenAccount, TokenAccountInfo } from "./token";
|
|
6
6
|
import { VoteAccount, VoteAccountInfo } from "./vote";
|
|
7
7
|
export function parseTokenAccountInfo(info) {
|
|
@@ -37,6 +37,17 @@ export function tryParseAsVoteAccount(data) {
|
|
|
37
37
|
export function parseStakeAccountInfo(info) {
|
|
38
38
|
return create(info, StakeAccountInfo);
|
|
39
39
|
}
|
|
40
|
+
export function tryParseAsStakeAccount(data) {
|
|
41
|
+
const routine = () => {
|
|
42
|
+
const info = create(data.parsed, ParsedInfo);
|
|
43
|
+
const parsed = create(info, StakeAccount);
|
|
44
|
+
return parseStakeAccountInfo(parsed.info);
|
|
45
|
+
};
|
|
46
|
+
return onThrowReturnError(routine);
|
|
47
|
+
}
|
|
48
|
+
export function parseStakeHistoryEntry(entry) {
|
|
49
|
+
return create(entry, StakeHistoryEntry);
|
|
50
|
+
}
|
|
40
51
|
function onThrowReturnError(fn) {
|
|
41
52
|
try {
|
|
42
53
|
return fn();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/api/chain/account/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/api/chain/account/parser.ts"],"names":[],"mappings":"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"}
|