@ledgerhq/live-common 31.6.0-next.0 → 31.6.0-next.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.
- package/lib/families/solana/banner.js +1 -1
- package/lib/families/solana/banner.js.map +1 -1
- package/lib/families/solana/react.integration.test.js +1 -1
- package/lib/families/solana/react.integration.test.js.map +1 -1
- package/lib/families/solana/utils.d.ts +1 -1
- package/lib/families/solana/utils.d.ts.map +1 -1
- package/lib/families/solana/utils.js +17 -5
- package/lib/families/solana/utils.js.map +1 -1
- package/lib/families/solana/validator-app/index.d.ts.map +1 -1
- package/lib/families/solana/validator-app/index.js +0 -2
- package/lib/families/solana/validator-app/index.js.map +1 -1
- package/lib-es/families/solana/banner.js +2 -2
- package/lib-es/families/solana/banner.js.map +1 -1
- package/lib-es/families/solana/js-preload.js +1 -1
- package/lib-es/families/solana/js-preload.js.map +1 -1
- package/lib-es/families/solana/react.integration.test.js +2 -2
- package/lib-es/families/solana/react.integration.test.js.map +1 -1
- package/lib-es/families/solana/utils.d.ts +1 -1
- package/lib-es/families/solana/utils.d.ts.map +1 -1
- package/lib-es/families/solana/utils.js +16 -4
- package/lib-es/families/solana/utils.js.map +1 -1
- package/lib-es/families/solana/validator-app/index.d.ts.map +1 -1
- package/lib-es/families/solana/validator-app/index.js +0 -2
- package/lib-es/families/solana/validator-app/index.js.map +1 -1
- package/package.json +1 -1
- package/src/families/solana/banner.ts +2 -2
- package/src/families/solana/js-preload.ts +1 -1
- package/src/families/solana/react.integration.test.ts +2 -2
- package/src/families/solana/utils.ts +17 -4
- package/src/families/solana/validator-app/index.ts +0 -2
|
@@ -16,7 +16,7 @@ function getAccountBannerState(account) {
|
|
|
16
16
|
const { validators } = (_a = (0, js_preload_data_1.getCurrentSolanaPreloadData)(account.currency)) !== null && _a !== void 0 ? _a : {
|
|
17
17
|
validators: [],
|
|
18
18
|
};
|
|
19
|
-
const ledgerValidator = validators.find(validator => validator.voteAccount === utils_1.
|
|
19
|
+
const ledgerValidator = validators.find(validator => validator.voteAccount === utils_1.LEDGER_VALIDATOR.voteAccount);
|
|
20
20
|
// If Ledger doesn't provide validator, we don't display banner
|
|
21
21
|
if (!ledgerValidator) {
|
|
22
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/families/solana/banner.ts"],"names":[],"mappings":";;;AAAA,uDAAgE;AAChE,mCAAuC;AACvC,2CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/families/solana/banner.ts"],"names":[],"mappings":";;;AAAA,uDAAgE;AAChE,mCAAuC;AACvC,2CAA+C;AAC/C,mCAA2C;AAW3C,SAAgB,qBAAqB,CAAC,OAAsB;;IAC1D,0BAA0B;IAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,WAAW,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC3D,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAA,IAAA,6CAA2B,EAAC,OAAO,CAAC,QAAQ,CAAC,mCAAI;QACtE,UAAU,EAAE,EAAE;KACf,CAAC;IACF,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CACrC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,wBAAgB,CAAC,WAAW,CACpE,CAAC;IAEF,+DAA+D;IAC/D,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,EAAE;YAChB,eAAe;SAChB,CAAC;KACH;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,kEAAkE;IAClE,IAAI,cAAc,GAAG,eAAe,CAAC;IACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,eAAe,GAAG,MAAA,UAAU,CAAC,UAAU,0CAAE,WAAW,CAAC;QAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,eAAe,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,UAAU,CAAC,CAAC;QACzC,MAAM,mBAAmB,GACvB,SAAS;YACT,eAAe,KAAK,eAAe,CAAC,WAAW;YAC/C,cAAc,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU;YACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,mBAAmB,EAAE;YACvB,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YACvC,cAAc,GAAG,SAAS,CAAC;SAC5B;KACF;IACD,IAAI,cAAc,EAAE;QAClB,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,OAAK,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,CAAA,EAAE;YAChE,IAAI,CAAC,IAAA,wBAAc,EAAC,OAAO,CAAC,EAAE;gBAC5B,OAAO,GAAG,IAAI,CAAC;aAChB;SACF;aAAM;YACL,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,GAAG,IAAI,CAAC;SAChB;KACF;IAED,OAAO;QACL,OAAO;QACP,UAAU;QACV,YAAY;QACZ,eAAe;KAChB,CAAC;AACJ,CAAC;AA9DD,sDA8DC"}
|
|
@@ -65,7 +65,7 @@ describe("solana/react", () => {
|
|
|
65
65
|
const { prepare, account } = setup();
|
|
66
66
|
yield prepare();
|
|
67
67
|
const { result } = (0, react_hooks_1.renderHook)(() => hooks.useValidators(account.currency, "Ledger"));
|
|
68
|
-
expect(result.current.some(validator => validator.voteAccount === utils_1.
|
|
68
|
+
expect(result.current.some(validator => validator.voteAccount === utils_1.LEDGER_VALIDATOR.voteAccount)).toBe(true);
|
|
69
69
|
}));
|
|
70
70
|
});
|
|
71
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.integration.test.js","sourceRoot":"","sources":["../../../src/families/solana/react.integration.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA0D;AAC1D,yCAAmE;AACnE,iDAAyD;AACzD,iDAA4C;AAC5C,8CAA2D;AAC3D,gDAA8E;AAG9E,uDAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"react.integration.test.js","sourceRoot":"","sources":["../../../src/families/solana/react.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Cluster } from "@solana/web3.js";
|
|
2
2
|
import { ValidatorsAppValidator } from "./validator-app";
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const LEDGER_VALIDATOR: ValidatorsAppValidator;
|
|
4
4
|
export declare const assertUnreachable: (_: never) => never;
|
|
5
5
|
export declare function drainSeqAsyncGen<T>(...asyncGens: AsyncGenerator<T>[]): Promise<T[]>;
|
|
6
6
|
export declare function drainSeq<T>(jobs: (() => Promise<T>)[]): Promise<T[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,eAAO,MAAM,gBAAgB,EAAE,sBAS9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,KAAK,KAAG,KAE5C,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAQzF;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,gBAM3D;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAc/D;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAc/D;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcrF;AAQD,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG;IAChE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACjD,CAqCA;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,QAIpD;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM;KAE9B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAGF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,sBAAsB,EAAE,GACnC,sBAAsB,EAAE,CAQ1B;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,EAAE,4BAExE;AAGD,eAAO,MAAM,YAAY,6MAKhB,CAAC;AAEV,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAE/E"}
|
|
@@ -16,11 +16,21 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
16
16
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.sweetch = exports.tupleOfUnion = exports.profitableValidators = exports.ledgerFirstValidators = exports.swap = exports.asyncQueue = exports.defaultVoteAccAddrByCurrencyId = exports.clusterByCurrencyId = exports.endpointByCurrencyId = exports.drainSeq = exports.drainSeqAsyncGen = exports.assertUnreachable = exports.
|
|
19
|
+
exports.sweetch = exports.tupleOfUnion = exports.profitableValidators = exports.ledgerFirstValidators = exports.swap = exports.asyncQueue = exports.defaultVoteAccAddrByCurrencyId = exports.clusterByCurrencyId = exports.endpointByCurrencyId = exports.drainSeq = exports.drainSeqAsyncGen = exports.assertUnreachable = exports.LEDGER_VALIDATOR = void 0;
|
|
20
20
|
const web3_js_1 = require("@solana/web3.js");
|
|
21
21
|
const fp_1 = require("lodash/fp");
|
|
22
22
|
const live_env_1 = require("@ledgerhq/live-env");
|
|
23
|
-
|
|
23
|
+
// Hardcoding the Ledger validator info as backup,
|
|
24
|
+
// because backend is flaky and sometimes doesn't return it anymore
|
|
25
|
+
exports.LEDGER_VALIDATOR = {
|
|
26
|
+
voteAccount: "26pV97Ce83ZQ6Kz9XT4td8tdoUFPTng8Fb8gPyc53dJx",
|
|
27
|
+
name: "Ledger by Figment",
|
|
28
|
+
avatarUrl: "https://s3.amazonaws.com/keybase_processed_uploads/3c47b62f3d28ecfd821536f69be82905_360_360.jpg",
|
|
29
|
+
wwwUrl: "https://www.ledger.com/staking",
|
|
30
|
+
activeStake: 4784119000000000,
|
|
31
|
+
commission: 7,
|
|
32
|
+
totalScore: 6,
|
|
33
|
+
};
|
|
24
34
|
const assertUnreachable = (_) => {
|
|
25
35
|
throw new Error("unreachable assertion failed");
|
|
26
36
|
};
|
|
@@ -86,7 +96,7 @@ function clusterByCurrencyId(currencyId) {
|
|
|
86
96
|
exports.clusterByCurrencyId = clusterByCurrencyId;
|
|
87
97
|
function defaultVoteAccAddrByCurrencyId(currencyId) {
|
|
88
98
|
const voteAccAddrs = {
|
|
89
|
-
solana: exports.
|
|
99
|
+
solana: exports.LEDGER_VALIDATOR.voteAccount,
|
|
90
100
|
solana_devnet: undefined,
|
|
91
101
|
solana_testnet: undefined,
|
|
92
102
|
};
|
|
@@ -141,8 +151,10 @@ function swap(arr, i, j) {
|
|
|
141
151
|
exports.swap = swap;
|
|
142
152
|
// move Ledger validator to the first position
|
|
143
153
|
function ledgerFirstValidators(validators) {
|
|
144
|
-
const [ledgerValidator, restValidators] = (0, fp_1.partition)(v => v.voteAccount === exports.
|
|
145
|
-
return ledgerValidator.
|
|
154
|
+
const [ledgerValidator, restValidators] = (0, fp_1.partition)(v => v.voteAccount === exports.LEDGER_VALIDATOR.voteAccount, validators);
|
|
155
|
+
return ledgerValidator.length
|
|
156
|
+
? ledgerValidator.concat(restValidators)
|
|
157
|
+
: [exports.LEDGER_VALIDATOR].concat(restValidators);
|
|
146
158
|
}
|
|
147
159
|
exports.ledgerFirstValidators = ledgerFirstValidators;
|
|
148
160
|
function profitableValidators(validators) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,6CAAyD;AACzD,kCAAsC;AACtC,iDAA4C;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAO1C,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CA6BzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAUF,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC,GACpD,OAAO,CAAC,sBAAsB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAO1C,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CA6BzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAUF,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC,GACpD,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAoCnC"}
|
|
@@ -53,8 +53,6 @@ function getValidators(cluster) {
|
|
|
53
53
|
}
|
|
54
54
|
return undefined;
|
|
55
55
|
};
|
|
56
|
-
// FIXME Ordering of validators must be always the same, for this test to be stable:
|
|
57
|
-
// https://github.com/LedgerHQ/ledger-live-common/blob/develop/src/__tests__/test-helpers/bridge.ts#L171-L188
|
|
58
56
|
return (0, fp_1.compact)(allRawValidators.map(tryFromRawValidator));
|
|
59
57
|
});
|
|
60
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6EAAqD;AAGrD,kCAAoC;AACpC,iDAA4C;AAE5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,oCAAoC;AAmDpE,MAAM,IAAI,GAAG;IACX,aAAa,EAAE,CAAC,OAAqD,EAAE,EAAE;QACvE,MAAM,WAAW,GAAG,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,MAAM,OAAO,GAAG,IAAA,iBAAM,EAAC,gCAAgC,CAAC,CAAC;QACzD,OAAO,GAAG,OAAO,IAAI,WAAW,2BAA2B,iBAAiB,EAAE,CAAC;IACjF,CAAC;CACF,CAAC;AAEF,SAAsB,aAAa,CACjC,OAAqD;;QAErD,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SACjC,CAAC;QAEF,MAAM,QAAQ,GAA+C,MAAM,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC;QAEnF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,2EAA2E;QAC3E,wBAAwB;QACxB,MAAM,mBAAmB,GAAG,CAC1B,CAA4B,EACQ,EAAE;;YACtC,IACE,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;gBAChC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;gBACjC,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,CAAC,CAAC,UAAU,KAAK,IAAI,EACrB;gBACA,OAAO;oBACL,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,CAAC,CAAC,WAAW;oBACzB,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,IAAI,EAAE,MAAA,CAAC,CAAC,IAAI,mCAAI,SAAS;oBACzB,SAAS,EAAE,MAAA,CAAC,CAAC,UAAU,mCAAI,SAAS;oBACpC,MAAM,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,SAAS;iBAC/B,CAAC;aACH;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6EAAqD;AAGrD,kCAAoC;AACpC,iDAA4C;AAE5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,oCAAoC;AAmDpE,MAAM,IAAI,GAAG;IACX,aAAa,EAAE,CAAC,OAAqD,EAAE,EAAE;QACvE,MAAM,WAAW,GAAG,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,MAAM,OAAO,GAAG,IAAA,iBAAM,EAAC,gCAAgC,CAAC,CAAC;QACzD,OAAO,GAAG,OAAO,IAAI,WAAW,2BAA2B,iBAAiB,EAAE,CAAC;IACjF,CAAC;CACF,CAAC;AAEF,SAAsB,aAAa,CACjC,OAAqD;;QAErD,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SACjC,CAAC;QAEF,MAAM,QAAQ,GAA+C,MAAM,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC;QAEnF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,2EAA2E;QAC3E,wBAAwB;QACxB,MAAM,mBAAmB,GAAG,CAC1B,CAA4B,EACQ,EAAE;;YACtC,IACE,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;gBAChC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;gBACjC,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,CAAC,CAAC,UAAU,KAAK,IAAI,EACrB;gBACA,OAAO;oBACL,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,CAAC,CAAC,WAAW;oBACzB,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,IAAI,EAAE,MAAA,CAAC,CAAC,IAAI,mCAAI,SAAS;oBACzB,SAAS,EAAE,MAAA,CAAC,CAAC,UAAU,mCAAI,SAAS;oBACpC,MAAM,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,SAAS;iBAC/B,CAAC;aACH;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,OAAO,IAAA,YAAO,EAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5D,CAAC;CAAA;AAtCD,sCAsCC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getCurrentSolanaPreloadData } from "./js-preload-data";
|
|
2
2
|
import { stakeActions } from "./logic";
|
|
3
3
|
import { isAccountEmpty } from "../../account";
|
|
4
|
-
import {
|
|
4
|
+
import { LEDGER_VALIDATOR } from "./utils";
|
|
5
5
|
export function getAccountBannerState(account) {
|
|
6
6
|
var _a, _b;
|
|
7
7
|
// Group current validator
|
|
@@ -13,7 +13,7 @@ export function getAccountBannerState(account) {
|
|
|
13
13
|
const { validators } = (_a = getCurrentSolanaPreloadData(account.currency)) !== null && _a !== void 0 ? _a : {
|
|
14
14
|
validators: [],
|
|
15
15
|
};
|
|
16
|
-
const ledgerValidator = validators.find(validator => validator.voteAccount ===
|
|
16
|
+
const ledgerValidator = validators.find(validator => validator.voteAccount === LEDGER_VALIDATOR.voteAccount);
|
|
17
17
|
// If Ledger doesn't provide validator, we don't display banner
|
|
18
18
|
if (!ledgerValidator) {
|
|
19
19
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/families/solana/banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/families/solana/banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAW3C,MAAM,UAAU,qBAAqB,CAAC,OAAsB;;IAC1D,0BAA0B;IAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,WAAW,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC3D,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAA,2BAA2B,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAI;QACtE,UAAU,EAAE,EAAE;KACf,CAAC;IACF,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CACrC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,gBAAgB,CAAC,WAAW,CACpE,CAAC;IAEF,+DAA+D;IAC/D,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,EAAE;YAChB,eAAe;SAChB,CAAC;KACH;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,kEAAkE;IAClE,IAAI,cAAc,GAAG,eAAe,CAAC;IACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,eAAe,GAAG,MAAA,UAAU,CAAC,UAAU,0CAAE,WAAW,CAAC;QAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,eAAe,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,mBAAmB,GACvB,SAAS;YACT,eAAe,KAAK,eAAe,CAAC,WAAW;YAC/C,cAAc,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU;YACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,mBAAmB,EAAE;YACvB,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YACvC,cAAc,GAAG,SAAS,CAAC;SAC5B;KACF;IACD,IAAI,cAAc,EAAE;QAClB,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,OAAK,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,CAAA,EAAE;YAChE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;gBAC5B,OAAO,GAAG,IAAI,CAAC;aAChB;SACF;aAAM;YACL,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,GAAG,IAAI,CAAC;SAChB;KACF;IAED,OAAO;QACL,OAAO;QACP,UAAU;QACV,YAAY;QACZ,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { flow } from "lodash/fp";
|
|
11
11
|
import { setSolanaPreloadData as setPreloadData } from "./js-preload-data";
|
|
12
|
-
import { assertUnreachable, clusterByCurrencyId,
|
|
12
|
+
import { assertUnreachable, clusterByCurrencyId, profitableValidators, ledgerFirstValidators, } from "./utils";
|
|
13
13
|
import { getValidators } from "./validator-app";
|
|
14
14
|
export const PRELOAD_MAX_AGE = 15 * 60 * 1000; // 15min
|
|
15
15
|
export function preloadWithAPI(currency, getAPI) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js-preload.js","sourceRoot":"","sources":["../../../src/families/solana/js-preload.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"js-preload.js","sourceRoot":"","sources":["../../../src/families/solana/js-preload.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAExE,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;AAEvD,MAAM,UAAgB,cAAc,CAClC,QAAwB,EACxB,MAA+B;;QAE/B,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAE3B,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEjD,MAAM,UAAU,GACd,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAExF,MAAM,IAAI,GAAsB;YAC9B,OAAO,EAAE,GAAG;YACZ,kBAAkB,EAAE,EAAE;YACtB,UAAU,EAAE,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;SAC9F,CAAC;QAEF,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC;IACd,CAAC;CAAA;AAED,SAAS,2BAA2B,CAClC,UAAoC;IAEpC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,SAAe,oBAAoB,CAAC,GAAa;;QAC/C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,UAAU,GAA6B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,WAAW,EAAE,GAAG,CAAC,cAAc;YAC/B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,GAAG,CAAC,UAAU;SAC5B,CAAC,CAAC,CAAC;QACJ,OAAO,UAAU,CAAC;IACpB,CAAC;CAAA;AAED,MAAM,UAAU,OAAO,CAAC,IAAmC,EAAE,QAAwB;IACnF,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO;KACR;IAED,QAAQ,IAAI,CAAC,OAAO,EAAE;QACpB,KAAK,GAAG;YACN,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1B,OAAO;QACT,KAAK,GAAG;YACN,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF;YACE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAClC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAyB,EAAE,QAAwB;IACpE,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -14,7 +14,7 @@ import { setEnv } from "@ledgerhq/live-env";
|
|
|
14
14
|
import { makeBridgeCacheSystem } from "../../bridge/cache";
|
|
15
15
|
import { genAccount, genAddingOperationsInAccount } from "../../mock/account";
|
|
16
16
|
import { getCurrentSolanaPreloadData } from "./js-preload-data";
|
|
17
|
-
import {
|
|
17
|
+
import { LEDGER_VALIDATOR } from "./utils";
|
|
18
18
|
import * as hooks from "./react";
|
|
19
19
|
jest.setTimeout(2 * 60 * 1000);
|
|
20
20
|
const localCache = {};
|
|
@@ -40,7 +40,7 @@ describe("solana/react", () => {
|
|
|
40
40
|
const { prepare, account } = setup();
|
|
41
41
|
yield prepare();
|
|
42
42
|
const { result } = renderHook(() => hooks.useValidators(account.currency, "Ledger"));
|
|
43
|
-
expect(result.current.some(validator => validator.voteAccount ===
|
|
43
|
+
expect(result.current.some(validator => validator.voteAccount === LEDGER_VALIDATOR.voteAccount)).toBe(true);
|
|
44
44
|
}));
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.integration.test.js","sourceRoot":"","sources":["../../../src/families/solana/react.integration.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"react.integration.test.js","sourceRoot":"","sources":["../../../src/families/solana/react.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Cluster } from "@solana/web3.js";
|
|
2
2
|
import { ValidatorsAppValidator } from "./validator-app";
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const LEDGER_VALIDATOR: ValidatorsAppValidator;
|
|
4
4
|
export declare const assertUnreachable: (_: never) => never;
|
|
5
5
|
export declare function drainSeqAsyncGen<T>(...asyncGens: AsyncGenerator<T>[]): Promise<T[]>;
|
|
6
6
|
export declare function drainSeq<T>(jobs: (() => Promise<T>)[]): Promise<T[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,eAAO,MAAM,gBAAgB,EAAE,sBAS9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,KAAK,KAAG,KAE5C,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAQzF;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,gBAM3D;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAc/D;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAc/D;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcrF;AAQD,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG;IAChE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACjD,CAqCA;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,QAIpD;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM;KAE9B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAGF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,sBAAsB,EAAE,GACnC,sBAAsB,EAAE,CAQ1B;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,EAAE,4BAExE;AAGD,eAAO,MAAM,YAAY,6MAKhB,CAAC;AAEV,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAE/E"}
|
|
@@ -17,7 +17,17 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
17
17
|
import { clusterApiUrl } from "@solana/web3.js";
|
|
18
18
|
import { partition } from "lodash/fp";
|
|
19
19
|
import { getEnv } from "@ledgerhq/live-env";
|
|
20
|
-
|
|
20
|
+
// Hardcoding the Ledger validator info as backup,
|
|
21
|
+
// because backend is flaky and sometimes doesn't return it anymore
|
|
22
|
+
export const LEDGER_VALIDATOR = {
|
|
23
|
+
voteAccount: "26pV97Ce83ZQ6Kz9XT4td8tdoUFPTng8Fb8gPyc53dJx",
|
|
24
|
+
name: "Ledger by Figment",
|
|
25
|
+
avatarUrl: "https://s3.amazonaws.com/keybase_processed_uploads/3c47b62f3d28ecfd821536f69be82905_360_360.jpg",
|
|
26
|
+
wwwUrl: "https://www.ledger.com/staking",
|
|
27
|
+
activeStake: 4784119000000000,
|
|
28
|
+
commission: 7,
|
|
29
|
+
totalScore: 6,
|
|
30
|
+
};
|
|
21
31
|
export const assertUnreachable = (_) => {
|
|
22
32
|
throw new Error("unreachable assertion failed");
|
|
23
33
|
};
|
|
@@ -78,7 +88,7 @@ export function clusterByCurrencyId(currencyId) {
|
|
|
78
88
|
}
|
|
79
89
|
export function defaultVoteAccAddrByCurrencyId(currencyId) {
|
|
80
90
|
const voteAccAddrs = {
|
|
81
|
-
solana:
|
|
91
|
+
solana: LEDGER_VALIDATOR.voteAccount,
|
|
82
92
|
solana_devnet: undefined,
|
|
83
93
|
solana_testnet: undefined,
|
|
84
94
|
};
|
|
@@ -130,8 +140,10 @@ export function swap(arr, i, j) {
|
|
|
130
140
|
}
|
|
131
141
|
// move Ledger validator to the first position
|
|
132
142
|
export function ledgerFirstValidators(validators) {
|
|
133
|
-
const [ledgerValidator, restValidators] = partition(v => v.voteAccount ===
|
|
134
|
-
return ledgerValidator.
|
|
143
|
+
const [ledgerValidator, restValidators] = partition(v => v.voteAccount === LEDGER_VALIDATOR.voteAccount, validators);
|
|
144
|
+
return ledgerValidator.length
|
|
145
|
+
? ledgerValidator.concat(restValidators)
|
|
146
|
+
: [LEDGER_VALIDATOR].concat(restValidators);
|
|
135
147
|
}
|
|
136
148
|
export function profitableValidators(validators) {
|
|
137
149
|
return validators.filter(v => v.commission < 100);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,EAAW,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/families/solana/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAO1C,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CA6BzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAUF,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC,GACpD,OAAO,CAAC,sBAAsB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAO1C,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CA6BzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAUF,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC,GACpD,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAoCnC"}
|
|
@@ -47,8 +47,6 @@ export function getValidators(cluster) {
|
|
|
47
47
|
}
|
|
48
48
|
return undefined;
|
|
49
49
|
};
|
|
50
|
-
// FIXME Ordering of validators must be always the same, for this test to be stable:
|
|
51
|
-
// https://github.com/LedgerHQ/ledger-live-common/blob/develop/src/__tests__/test-helpers/bridge.ts#L171-L188
|
|
52
50
|
return compact(allRawValidators.map(tryFromRawValidator));
|
|
53
51
|
});
|
|
54
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,oCAAoC;AAmDpE,MAAM,IAAI,GAAG;IACX,aAAa,EAAE,CAAC,OAAqD,EAAE,EAAE;QACvE,MAAM,WAAW,GAAG,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACzD,OAAO,GAAG,OAAO,IAAI,WAAW,2BAA2B,iBAAiB,EAAE,CAAC;IACjF,CAAC;CACF,CAAC;AAEF,MAAM,UAAgB,aAAa,CACjC,OAAqD;;QAErD,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SACjC,CAAC;QAEF,MAAM,QAAQ,GAA+C,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,2EAA2E;QAC3E,wBAAwB;QACxB,MAAM,mBAAmB,GAAG,CAC1B,CAA4B,EACQ,EAAE;;YACtC,IACE,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;gBAChC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;gBACjC,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,CAAC,CAAC,UAAU,KAAK,IAAI,EACrB;gBACA,OAAO;oBACL,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,CAAC,CAAC,WAAW;oBACzB,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,IAAI,EAAE,MAAA,CAAC,CAAC,IAAI,mCAAI,SAAS;oBACzB,SAAS,EAAE,MAAA,CAAC,CAAC,UAAU,mCAAI,SAAS;oBACpC,MAAM,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,SAAS;iBAC/B,CAAC;aACH;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/families/solana/validator-app/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,oCAAoC;AAmDpE,MAAM,IAAI,GAAG;IACX,aAAa,EAAE,CAAC,OAAqD,EAAE,EAAE;QACvE,MAAM,WAAW,GAAG,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACzD,OAAO,GAAG,OAAO,IAAI,WAAW,2BAA2B,iBAAiB,EAAE,CAAC;IACjF,CAAC;CACF,CAAC;AAEF,MAAM,UAAgB,aAAa,CACjC,OAAqD;;QAErD,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SACjC,CAAC;QAEF,MAAM,QAAQ,GAA+C,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,2EAA2E;QAC3E,wBAAwB;QACxB,MAAM,mBAAmB,GAAG,CAC1B,CAA4B,EACQ,EAAE;;YACtC,IACE,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;gBAChC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;gBACjC,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAClC,CAAC,CAAC,UAAU,KAAK,IAAI,EACrB;gBACA,OAAO;oBACL,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,CAAC,CAAC,WAAW;oBACzB,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,IAAI,EAAE,MAAA,CAAC,CAAC,IAAI,mCAAI,SAAS;oBACzB,SAAS,EAAE,MAAA,CAAC,CAAC,UAAU,mCAAI,SAAS;oBACpC,MAAM,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,SAAS;iBAC/B,CAAC;aACH;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5D,CAAC;CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getCurrentSolanaPreloadData } from "./js-preload-data";
|
|
2
2
|
import { stakeActions } from "./logic";
|
|
3
3
|
import { isAccountEmpty } from "../../account";
|
|
4
|
-
import {
|
|
4
|
+
import { LEDGER_VALIDATOR } from "./utils";
|
|
5
5
|
import type { SolanaAccount } from "./types";
|
|
6
6
|
import { ValidatorsAppValidator } from "./validator-app";
|
|
7
7
|
|
|
@@ -24,7 +24,7 @@ export function getAccountBannerState(account: SolanaAccount): AccountBannerStat
|
|
|
24
24
|
validators: [],
|
|
25
25
|
};
|
|
26
26
|
const ledgerValidator = validators.find(
|
|
27
|
-
validator => validator.voteAccount ===
|
|
27
|
+
validator => validator.voteAccount === LEDGER_VALIDATOR.voteAccount,
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
// If Ledger doesn't provide validator, we don't display banner
|
|
@@ -6,8 +6,8 @@ import { SolanaPreloadData, SolanaPreloadDataV1 } from "./types";
|
|
|
6
6
|
import {
|
|
7
7
|
assertUnreachable,
|
|
8
8
|
clusterByCurrencyId,
|
|
9
|
-
ledgerFirstValidators,
|
|
10
9
|
profitableValidators,
|
|
10
|
+
ledgerFirstValidators,
|
|
11
11
|
} from "./utils";
|
|
12
12
|
import { getValidators, ValidatorsAppValidator } from "./validator-app";
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ import { genAccount, genAddingOperationsInAccount } from "../../mock/account";
|
|
|
7
7
|
import type { Account, CurrencyBridge } from "@ledgerhq/types-live";
|
|
8
8
|
import type { Transaction } from "./types";
|
|
9
9
|
import { getCurrentSolanaPreloadData } from "./js-preload-data";
|
|
10
|
-
import {
|
|
10
|
+
import { LEDGER_VALIDATOR } from "./utils";
|
|
11
11
|
import * as hooks from "./react";
|
|
12
12
|
|
|
13
13
|
jest.setTimeout(2 * 60 * 1000);
|
|
@@ -40,7 +40,7 @@ describe("solana/react", () => {
|
|
|
40
40
|
const { result } = renderHook(() => hooks.useValidators(account.currency, "Ledger"));
|
|
41
41
|
|
|
42
42
|
expect(
|
|
43
|
-
result.current.some(validator => validator.voteAccount ===
|
|
43
|
+
result.current.some(validator => validator.voteAccount === LEDGER_VALIDATOR.voteAccount),
|
|
44
44
|
).toBe(true);
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -3,7 +3,18 @@ import { partition } from "lodash/fp";
|
|
|
3
3
|
import { getEnv } from "@ledgerhq/live-env";
|
|
4
4
|
import { ValidatorsAppValidator } from "./validator-app";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// Hardcoding the Ledger validator info as backup,
|
|
7
|
+
// because backend is flaky and sometimes doesn't return it anymore
|
|
8
|
+
export const LEDGER_VALIDATOR: ValidatorsAppValidator = {
|
|
9
|
+
voteAccount: "26pV97Ce83ZQ6Kz9XT4td8tdoUFPTng8Fb8gPyc53dJx",
|
|
10
|
+
name: "Ledger by Figment",
|
|
11
|
+
avatarUrl:
|
|
12
|
+
"https://s3.amazonaws.com/keybase_processed_uploads/3c47b62f3d28ecfd821536f69be82905_360_360.jpg",
|
|
13
|
+
wwwUrl: "https://www.ledger.com/staking",
|
|
14
|
+
activeStake: 4784119000000000,
|
|
15
|
+
commission: 7,
|
|
16
|
+
totalScore: 6,
|
|
17
|
+
};
|
|
7
18
|
|
|
8
19
|
export const assertUnreachable = (_: never): never => {
|
|
9
20
|
throw new Error("unreachable assertion failed");
|
|
@@ -61,7 +72,7 @@ export function clusterByCurrencyId(currencyId: string): Cluster {
|
|
|
61
72
|
|
|
62
73
|
export function defaultVoteAccAddrByCurrencyId(currencyId: string): string | undefined {
|
|
63
74
|
const voteAccAddrs: Record<string, string | undefined> = {
|
|
64
|
-
solana:
|
|
75
|
+
solana: LEDGER_VALIDATOR.voteAccount,
|
|
65
76
|
solana_devnet: undefined,
|
|
66
77
|
solana_testnet: undefined,
|
|
67
78
|
};
|
|
@@ -138,10 +149,12 @@ export function ledgerFirstValidators(
|
|
|
138
149
|
validators: ValidatorsAppValidator[],
|
|
139
150
|
): ValidatorsAppValidator[] {
|
|
140
151
|
const [ledgerValidator, restValidators] = partition(
|
|
141
|
-
v => v.voteAccount ===
|
|
152
|
+
v => v.voteAccount === LEDGER_VALIDATOR.voteAccount,
|
|
142
153
|
validators,
|
|
143
154
|
);
|
|
144
|
-
return ledgerValidator.
|
|
155
|
+
return ledgerValidator.length
|
|
156
|
+
? ledgerValidator.concat(restValidators)
|
|
157
|
+
: [LEDGER_VALIDATOR].concat(restValidators);
|
|
145
158
|
}
|
|
146
159
|
|
|
147
160
|
export function profitableValidators(validators: ValidatorsAppValidator[]) {
|
|
@@ -100,7 +100,5 @@ export async function getValidators(
|
|
|
100
100
|
return undefined;
|
|
101
101
|
};
|
|
102
102
|
|
|
103
|
-
// FIXME Ordering of validators must be always the same, for this test to be stable:
|
|
104
|
-
// https://github.com/LedgerHQ/ledger-live-common/blob/develop/src/__tests__/test-helpers/bridge.ts#L171-L188
|
|
105
103
|
return compact(allRawValidators.map(tryFromRawValidator));
|
|
106
104
|
}
|