@ledgerhq/coin-solana 0.35.0-nightly.8 → 0.35.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +28 -80
- package/lib/__fixtures__/solana-spl-epjfwdd5aufqssqem2qn1xzybapc8g4weggkzwytdt1v.json +50 -0
- package/lib/__tests__/fixtures/helpers.fixture.d.ts +138 -0
- package/lib/__tests__/fixtures/helpers.fixture.d.ts.map +1 -0
- package/lib/__tests__/fixtures/helpers.fixture.js +124 -0
- package/lib/__tests__/fixtures/helpers.fixture.js.map +1 -0
- package/lib/__tests__/scan-accounts.test.d.ts +2 -0
- package/lib/__tests__/scan-accounts.test.d.ts.map +1 -0
- package/lib/__tests__/scan-accounts.test.js +426 -0
- package/lib/__tests__/scan-accounts.test.js.map +1 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.js +91 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.js.map +1 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.js +147 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.js.map +1 -0
- package/lib/__tests__/unit/utils.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/utils.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/utils.unit.test.js +16 -0
- package/lib/__tests__/unit/utils.unit.test.js.map +1 -0
- package/lib/__tests__/unit/validator-app.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/validator-app.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/validator-app.unit.test.js +169 -0
- package/lib/__tests__/unit/validator-app.unit.test.js.map +1 -0
- package/lib/bridge.integration.test.d.ts +4 -0
- package/lib/bridge.integration.test.d.ts.map +1 -0
- package/lib/bridge.integration.test.js +870 -0
- package/lib/bridge.integration.test.js.map +1 -0
- package/lib/buildTransaction.test.d.ts +2 -0
- package/lib/buildTransaction.test.d.ts.map +1 -0
- package/lib/buildTransaction.test.js +164 -0
- package/lib/buildTransaction.test.js.map +1 -0
- package/lib/cryptoAssetsStore.test.d.ts +2 -0
- package/lib/cryptoAssetsStore.test.d.ts.map +1 -0
- package/lib/cryptoAssetsStore.test.js +15 -0
- package/lib/cryptoAssetsStore.test.js.map +1 -0
- package/lib/network/chain/account/parser.d.ts +1 -1
- package/lib/network/chain/account/stake.d.ts +23 -23
- package/lib/network/chain/account/token.d.ts +7 -7
- package/lib/network/chain/instruction/stake/types.d.ts +8 -8
- package/lib/network/chain/instruction/system/types.d.ts +10 -10
- package/lib/network/chain/web3.integration.test.d.ts +2 -0
- package/lib/network/chain/web3.integration.test.d.ts.map +1 -0
- package/lib/network/chain/web3.integration.test.js +70 -0
- package/lib/network/chain/web3.integration.test.js.map +1 -0
- package/lib/offchainMessage/format.unit.test.d.ts +2 -0
- package/lib/offchainMessage/format.unit.test.d.ts.map +1 -0
- package/lib/offchainMessage/format.unit.test.js +124 -0
- package/lib/offchainMessage/format.unit.test.js.map +1 -0
- package/lib/preload.test.d.ts +2 -0
- package/lib/preload.test.d.ts.map +1 -0
- package/lib/preload.test.js +9 -0
- package/lib/preload.test.js.map +1 -0
- package/lib/prepareTransaction.d.ts.map +1 -1
- package/lib/prepareTransaction.js +0 -4
- package/lib/prepareTransaction.js.map +1 -1
- package/lib/prepareTransaction.test.d.ts +2 -0
- package/lib/prepareTransaction.test.d.ts.map +1 -0
- package/lib/prepareTransaction.test.js +139 -0
- package/lib/prepareTransaction.test.js.map +1 -0
- package/lib/signOperation.d.ts.map +1 -1
- package/lib/signOperation.js +0 -2
- package/lib/signOperation.js.map +1 -1
- package/lib/signOperation.test.d.ts +3 -0
- package/lib/signOperation.test.d.ts.map +1 -0
- package/lib/signOperation.test.js +139 -0
- package/lib/signOperation.test.js.map +1 -0
- package/lib/signer.d.ts +0 -1
- package/lib/signer.d.ts.map +1 -1
- package/lib/signer.js.map +1 -1
- package/lib/tests/preload.fixtures.d.ts +5 -0
- package/lib/tests/preload.fixtures.d.ts.map +1 -0
- package/lib/tests/preload.fixtures.js +28 -0
- package/lib/tests/preload.fixtures.js.map +1 -0
- package/lib/tests/preload.unit.test.d.ts +2 -0
- package/lib/tests/preload.unit.test.d.ts.map +1 -0
- package/lib/tests/preload.unit.test.js +175 -0
- package/lib/tests/preload.unit.test.js.map +1 -0
- package/lib/tests/stakes-bridge.unit.test.d.ts +2 -0
- package/lib/tests/stakes-bridge.unit.test.d.ts.map +1 -0
- package/lib/tests/stakes-bridge.unit.test.js +166 -0
- package/lib/tests/stakes-bridge.unit.test.js.map +1 -0
- package/lib/tests/test-onchain-data.fixture.d.ts +20 -0
- package/lib/tests/test-onchain-data.fixture.d.ts.map +1 -0
- package/lib/tests/test-onchain-data.fixture.js +34 -0
- package/lib/tests/test-onchain-data.fixture.js.map +1 -0
- package/lib/tests/tokens-bridge.unit.test.d.ts +2 -0
- package/lib/tests/tokens-bridge.unit.test.d.ts.map +1 -0
- package/lib/tests/tokens-bridge.unit.test.js +615 -0
- package/lib/tests/tokens-bridge.unit.test.js.map +1 -0
- package/lib/tx-fees.js +0 -2
- package/lib/tx-fees.js.map +1 -1
- package/lib/types.d.ts +1 -2
- package/lib/types.d.ts.map +1 -1
- package/lib-es/__fixtures__/solana-spl-epjfwdd5aufqssqem2qn1xzybapc8g4weggkzwytdt1v.json +50 -0
- package/lib-es/__tests__/fixtures/helpers.fixture.d.ts +138 -0
- package/lib-es/__tests__/fixtures/helpers.fixture.d.ts.map +1 -0
- package/lib-es/__tests__/fixtures/helpers.fixture.js +110 -0
- package/lib-es/__tests__/fixtures/helpers.fixture.js.map +1 -0
- package/lib-es/__tests__/scan-accounts.test.d.ts +2 -0
- package/lib-es/__tests__/scan-accounts.test.d.ts.map +1 -0
- package/lib-es/__tests__/scan-accounts.test.js +398 -0
- package/lib-es/__tests__/scan-accounts.test.js.map +1 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts +2 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.js +86 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts +2 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.js +142 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/utils.unit.test.d.ts +2 -0
- package/lib-es/__tests__/unit/utils.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/utils.unit.test.js +14 -0
- package/lib-es/__tests__/unit/utils.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/validator-app.unit.test.d.ts +2 -0
- package/lib-es/__tests__/unit/validator-app.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/validator-app.unit.test.js +144 -0
- package/lib-es/__tests__/unit/validator-app.unit.test.js.map +1 -0
- package/lib-es/bridge.integration.test.d.ts +4 -0
- package/lib-es/bridge.integration.test.d.ts.map +1 -0
- package/lib-es/bridge.integration.test.js +864 -0
- package/lib-es/bridge.integration.test.js.map +1 -0
- package/lib-es/buildTransaction.test.d.ts +2 -0
- package/lib-es/buildTransaction.test.d.ts.map +1 -0
- package/lib-es/buildTransaction.test.js +162 -0
- package/lib-es/buildTransaction.test.js.map +1 -0
- package/lib-es/cryptoAssetsStore.test.d.ts +2 -0
- package/lib-es/cryptoAssetsStore.test.d.ts.map +1 -0
- package/lib-es/cryptoAssetsStore.test.js +13 -0
- package/lib-es/cryptoAssetsStore.test.js.map +1 -0
- package/lib-es/network/chain/account/parser.d.ts +1 -1
- package/lib-es/network/chain/account/stake.d.ts +23 -23
- package/lib-es/network/chain/account/token.d.ts +7 -7
- package/lib-es/network/chain/instruction/stake/types.d.ts +8 -8
- package/lib-es/network/chain/instruction/system/types.d.ts +10 -10
- package/lib-es/network/chain/web3.integration.test.d.ts +2 -0
- package/lib-es/network/chain/web3.integration.test.d.ts.map +1 -0
- package/lib-es/network/chain/web3.integration.test.js +68 -0
- package/lib-es/network/chain/web3.integration.test.js.map +1 -0
- package/lib-es/offchainMessage/format.unit.test.d.ts +2 -0
- package/lib-es/offchainMessage/format.unit.test.d.ts.map +1 -0
- package/lib-es/offchainMessage/format.unit.test.js +122 -0
- package/lib-es/offchainMessage/format.unit.test.js.map +1 -0
- package/lib-es/preload.test.d.ts +2 -0
- package/lib-es/preload.test.d.ts.map +1 -0
- package/lib-es/preload.test.js +7 -0
- package/lib-es/preload.test.js.map +1 -0
- package/lib-es/prepareTransaction.d.ts.map +1 -1
- package/lib-es/prepareTransaction.js +0 -4
- package/lib-es/prepareTransaction.js.map +1 -1
- package/lib-es/prepareTransaction.test.d.ts +2 -0
- package/lib-es/prepareTransaction.test.d.ts.map +1 -0
- package/lib-es/prepareTransaction.test.js +134 -0
- package/lib-es/prepareTransaction.test.js.map +1 -0
- package/lib-es/signOperation.d.ts.map +1 -1
- package/lib-es/signOperation.js +0 -2
- package/lib-es/signOperation.js.map +1 -1
- package/lib-es/signOperation.test.d.ts +3 -0
- package/lib-es/signOperation.test.d.ts.map +1 -0
- package/lib-es/signOperation.test.js +135 -0
- package/lib-es/signOperation.test.js.map +1 -0
- package/lib-es/signer.d.ts +0 -1
- package/lib-es/signer.d.ts.map +1 -1
- package/lib-es/signer.js.map +1 -1
- package/lib-es/tests/preload.fixtures.d.ts +5 -0
- package/lib-es/tests/preload.fixtures.d.ts.map +1 -0
- package/lib-es/tests/preload.fixtures.js +25 -0
- package/lib-es/tests/preload.fixtures.js.map +1 -0
- package/lib-es/tests/preload.unit.test.d.ts +2 -0
- package/lib-es/tests/preload.unit.test.d.ts.map +1 -0
- package/lib-es/tests/preload.unit.test.js +147 -0
- package/lib-es/tests/preload.unit.test.js.map +1 -0
- package/lib-es/tests/stakes-bridge.unit.test.d.ts +2 -0
- package/lib-es/tests/stakes-bridge.unit.test.d.ts.map +1 -0
- package/lib-es/tests/stakes-bridge.unit.test.js +161 -0
- package/lib-es/tests/stakes-bridge.unit.test.js.map +1 -0
- package/lib-es/tests/test-onchain-data.fixture.d.ts +20 -0
- package/lib-es/tests/test-onchain-data.fixture.d.ts.map +1 -0
- package/lib-es/tests/test-onchain-data.fixture.js +28 -0
- package/lib-es/tests/test-onchain-data.fixture.js.map +1 -0
- package/lib-es/tests/tokens-bridge.unit.test.d.ts +2 -0
- package/lib-es/tests/tokens-bridge.unit.test.d.ts.map +1 -0
- package/lib-es/tests/tokens-bridge.unit.test.js +610 -0
- package/lib-es/tests/tokens-bridge.unit.test.js.map +1 -0
- package/lib-es/tx-fees.js +0 -2
- package/lib-es/tx-fees.js.map +1 -1
- package/lib-es/types.d.ts +1 -2
- package/lib-es/types.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/prepareTransaction.ts +0 -4
- package/src/signOperation.ts +0 -2
- package/src/signer.ts +0 -1
- package/src/tests/preload.fixtures.ts +1 -1
- package/src/tx-fees.ts +0 -2
- package/src/types.ts +1 -2
|
@@ -0,0 +1,147 @@
|
|
|
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
|
+
const assert_1 = require("assert");
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const live_env_1 = require("@ledgerhq/live-env");
|
|
9
|
+
const nftResolvers_1 = require("../../nftResolvers");
|
|
10
|
+
jest.mock("axios");
|
|
11
|
+
const mockedAxios = jest.mocked(axios_1.default);
|
|
12
|
+
// Add solana manually to the env until officially supported
|
|
13
|
+
(0, live_env_1.setEnv)("NFT_CURRENCIES", [...(0, live_env_1.getEnv)("NFT_CURRENCIES"), "solana"]);
|
|
14
|
+
const currencyId = "solana";
|
|
15
|
+
const wrongCurrencyId = "bitcoin";
|
|
16
|
+
const randomNftContract = "13vQFDKvvmebfFQdN4XVS7jDuzXoThm2DMn5SxPJhWmA";
|
|
17
|
+
const randomTokenId = "0";
|
|
18
|
+
const metadata = {
|
|
19
|
+
description: "desc",
|
|
20
|
+
links: {
|
|
21
|
+
explorer: "explorer",
|
|
22
|
+
opensea: null,
|
|
23
|
+
rarible: null,
|
|
24
|
+
etherscan: null,
|
|
25
|
+
},
|
|
26
|
+
medias: {
|
|
27
|
+
big: {
|
|
28
|
+
mediaType: "png",
|
|
29
|
+
uri: "big",
|
|
30
|
+
},
|
|
31
|
+
original: {
|
|
32
|
+
mediaType: "png",
|
|
33
|
+
uri: "original",
|
|
34
|
+
},
|
|
35
|
+
preview: {
|
|
36
|
+
mediaType: "png",
|
|
37
|
+
uri: "preview",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
nftName: "name",
|
|
41
|
+
properties: [],
|
|
42
|
+
tokenName: "collectionName",
|
|
43
|
+
};
|
|
44
|
+
describe("Solana Family", () => {
|
|
45
|
+
beforeAll(() => {
|
|
46
|
+
mockedAxios.mockResolvedValue({ data: [{}] });
|
|
47
|
+
});
|
|
48
|
+
beforeEach(() => {
|
|
49
|
+
jest.clearAllMocks();
|
|
50
|
+
});
|
|
51
|
+
afterAll(() => {
|
|
52
|
+
jest.restoreAllMocks();
|
|
53
|
+
});
|
|
54
|
+
describe("nftResolvers", () => {
|
|
55
|
+
describe("nftMetadata", () => {
|
|
56
|
+
it("should reject a currency when NFT is not activated on it", async () => {
|
|
57
|
+
try {
|
|
58
|
+
await (0, nftResolvers_1.nftMetadata)({
|
|
59
|
+
contract: randomNftContract,
|
|
60
|
+
currencyId: wrongCurrencyId,
|
|
61
|
+
tokenId: randomTokenId,
|
|
62
|
+
});
|
|
63
|
+
(0, assert_1.fail)("Promise should have been rejected");
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
if (e instanceof assert_1.AssertionError) {
|
|
67
|
+
throw e;
|
|
68
|
+
}
|
|
69
|
+
expect(e).toBeInstanceOf(Error);
|
|
70
|
+
expect(e.message).toBe(`Solana Bridge NFT Resolver: Unsupported currency (${wrongCurrencyId})`);
|
|
71
|
+
expect(axios_1.default).not.toHaveBeenCalled();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
it("should return nft metadata", async () => {
|
|
75
|
+
mockedAxios.mockResolvedValueOnce({
|
|
76
|
+
data: [
|
|
77
|
+
{
|
|
78
|
+
status: 200,
|
|
79
|
+
result: {
|
|
80
|
+
contract: randomNftContract,
|
|
81
|
+
tokenId: randomTokenId,
|
|
82
|
+
...metadata,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
});
|
|
87
|
+
const result = await (0, nftResolvers_1.nftMetadata)({
|
|
88
|
+
contract: randomNftContract,
|
|
89
|
+
currencyId,
|
|
90
|
+
tokenId: randomTokenId,
|
|
91
|
+
});
|
|
92
|
+
expect(result).toEqual({
|
|
93
|
+
status: 200,
|
|
94
|
+
result: {
|
|
95
|
+
contract: randomNftContract,
|
|
96
|
+
tokenId: randomTokenId,
|
|
97
|
+
...metadata,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe("collectionMetadata", () => {
|
|
103
|
+
it("should reject a currency when NFT is not activated on it", async () => {
|
|
104
|
+
try {
|
|
105
|
+
await (0, nftResolvers_1.collectionMetadata)({
|
|
106
|
+
contract: randomNftContract,
|
|
107
|
+
currencyId: wrongCurrencyId,
|
|
108
|
+
});
|
|
109
|
+
(0, assert_1.fail)("Promise should have been rejected");
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
if (e instanceof assert_1.AssertionError) {
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
115
|
+
expect(e).toBeInstanceOf(Error);
|
|
116
|
+
expect(e.message).toBe(`Solana Bridge NFT Resolver: Unsupported currency (${wrongCurrencyId})`);
|
|
117
|
+
expect(axios_1.default).not.toHaveBeenCalled();
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
it("should return nft metadata", async () => {
|
|
121
|
+
mockedAxios.mockResolvedValueOnce({
|
|
122
|
+
data: [
|
|
123
|
+
{
|
|
124
|
+
status: 200,
|
|
125
|
+
result: {
|
|
126
|
+
contract: randomNftContract,
|
|
127
|
+
tokenName: "CollectionName",
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
});
|
|
132
|
+
const result = await (0, nftResolvers_1.collectionMetadata)({
|
|
133
|
+
contract: randomNftContract,
|
|
134
|
+
currencyId,
|
|
135
|
+
});
|
|
136
|
+
expect(result).toEqual({
|
|
137
|
+
status: 200,
|
|
138
|
+
result: {
|
|
139
|
+
contract: randomNftContract,
|
|
140
|
+
tokenName: "CollectionName",
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=nftResolvers.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nftResolvers.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/nftResolvers.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.unit.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/utils.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../../utils");
|
|
4
|
+
describe("utils - Default Validators", () => {
|
|
5
|
+
it("should have APY property", () => {
|
|
6
|
+
expect(utils_1.LEDGER_VALIDATOR_BY_FIGMENT).toMatchObject({ apy: expect.any(Number) });
|
|
7
|
+
expect(utils_1.LEDGER_VALIDATOR_BY_CHORUS_ONE).toMatchObject({ apy: expect.any(Number) });
|
|
8
|
+
});
|
|
9
|
+
it("should have different APY values", () => {
|
|
10
|
+
expect(utils_1.LEDGER_VALIDATOR_BY_FIGMENT.apy).not.toBe(utils_1.LEDGER_VALIDATOR_BY_CHORUS_ONE.apy);
|
|
11
|
+
});
|
|
12
|
+
it("should reference correct default", () => {
|
|
13
|
+
expect(utils_1.LEDGER_VALIDATOR_DEFAULT).toBe(utils_1.LEDGER_VALIDATOR_BY_FIGMENT);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=utils.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/utils.unit.test.ts"],"names":[],"mappings":";;AAAA,uCAIqB;AAErB,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,mCAA2B,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,sCAA8B,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,mCAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,sCAA8B,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,gCAAwB,CAAC,CAAC,IAAI,CAAC,mCAA2B,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-app.unit.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/validator-app.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const validator_app_1 = require("../../network/validator-app");
|
|
27
|
+
const network = __importStar(require("@ledgerhq/live-network"));
|
|
28
|
+
const live_env_1 = require("@ledgerhq/live-env");
|
|
29
|
+
jest.spyOn({ getEnv: live_env_1.getEnv }, "getEnv").mockImplementation((key) => {
|
|
30
|
+
const testUrls = {
|
|
31
|
+
SOLANA_VALIDATORS_APP_BASE_URL: "https://validators-solana.coin.ledger.com/api/v1/validators",
|
|
32
|
+
SOLANA_TESTNET_VALIDATORS_APP_BASE_URL: "https://validators-solana.coin.ledger.com/api/v1/validators",
|
|
33
|
+
SOLANA_VALIDATORS_SUMMARY_BASE_URL: "https://earn-dashboard.aws.stg.ldg-tech.com/figment/solana/validators_summary",
|
|
34
|
+
};
|
|
35
|
+
return testUrls[key] || "";
|
|
36
|
+
});
|
|
37
|
+
const mockValidator = (overrides = {}) => ({
|
|
38
|
+
active_stake: 1000000,
|
|
39
|
+
commission: 5,
|
|
40
|
+
total_score: 8,
|
|
41
|
+
vote_account: "test-validator",
|
|
42
|
+
name: "Test Validator",
|
|
43
|
+
delinquent: false,
|
|
44
|
+
...overrides,
|
|
45
|
+
});
|
|
46
|
+
const mockApyData = (overrides = {}) => ({
|
|
47
|
+
address: "test-validator",
|
|
48
|
+
delegator_apy: 0.075,
|
|
49
|
+
name: "Test Validator",
|
|
50
|
+
...overrides,
|
|
51
|
+
});
|
|
52
|
+
describe("validator-app", () => {
|
|
53
|
+
beforeEach(() => {
|
|
54
|
+
jest.clearAllMocks();
|
|
55
|
+
// Suppress console.warn for cleaner test output
|
|
56
|
+
jest.spyOn(console, "warn").mockImplementation(() => { });
|
|
57
|
+
});
|
|
58
|
+
describe("APY integration", () => {
|
|
59
|
+
it("should work for testnet without APY", async () => {
|
|
60
|
+
jest.spyOn(network, "default").mockResolvedValue({ status: 200, data: [] });
|
|
61
|
+
const result = await (0, validator_app_1.getValidators)("testnet");
|
|
62
|
+
expect(network.default).toHaveBeenCalledTimes(1);
|
|
63
|
+
expect(network.default).toHaveBeenCalledWith({
|
|
64
|
+
method: "GET",
|
|
65
|
+
url: "https://validators-solana.coin.ledger.com/api/v1/validators/testnet.json?order=score&limit=1000",
|
|
66
|
+
});
|
|
67
|
+
expect(result).toEqual([]);
|
|
68
|
+
});
|
|
69
|
+
it("should fetch and integrate APY for mainnet", async () => {
|
|
70
|
+
const validator = mockValidator();
|
|
71
|
+
const apyData = mockApyData();
|
|
72
|
+
jest
|
|
73
|
+
.spyOn(network, "default")
|
|
74
|
+
.mockResolvedValueOnce({ status: 200, data: [validator] })
|
|
75
|
+
.mockResolvedValueOnce({ status: 200, data: [apyData] });
|
|
76
|
+
const result = await (0, validator_app_1.getValidators)("mainnet-beta");
|
|
77
|
+
expect(network.default).toHaveBeenCalledTimes(2);
|
|
78
|
+
expect(result[0]).toMatchObject({
|
|
79
|
+
activeStake: 1000000,
|
|
80
|
+
voteAccount: "test-validator",
|
|
81
|
+
apy: 0.075,
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
it("should handle APY fetch errors gracefully", async () => {
|
|
85
|
+
const validator = mockValidator();
|
|
86
|
+
jest
|
|
87
|
+
.spyOn(network, "default")
|
|
88
|
+
.mockResolvedValueOnce({ status: 200, data: [validator] })
|
|
89
|
+
.mockRejectedValueOnce(new Error("Network error"));
|
|
90
|
+
const result = await (0, validator_app_1.getValidators)("mainnet-beta");
|
|
91
|
+
expect(result[0]).toMatchObject({
|
|
92
|
+
name: "Test Validator",
|
|
93
|
+
apy: undefined,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
it("should handle invalid APY data", async () => {
|
|
97
|
+
const validator = mockValidator();
|
|
98
|
+
jest
|
|
99
|
+
.spyOn(network, "default")
|
|
100
|
+
.mockResolvedValueOnce({ status: 200, data: [validator] })
|
|
101
|
+
.mockResolvedValueOnce({ status: 200, data: "invalid" });
|
|
102
|
+
const result = await (0, validator_app_1.getValidators)("mainnet-beta");
|
|
103
|
+
expect(result[0]).toMatchObject({
|
|
104
|
+
name: "Test Validator",
|
|
105
|
+
apy: undefined,
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
it("should filter invalid APY entries", async () => {
|
|
109
|
+
const validator = mockValidator({ vote_account: "valid-validator" });
|
|
110
|
+
const apyData = [
|
|
111
|
+
mockApyData({ address: "valid-validator", delegator_apy: 0.075 }),
|
|
112
|
+
mockApyData({ address: null, delegator_apy: 0.08 }),
|
|
113
|
+
mockApyData({ address: "other", delegator_apy: "invalid" }),
|
|
114
|
+
];
|
|
115
|
+
jest
|
|
116
|
+
.spyOn(network, "default")
|
|
117
|
+
.mockResolvedValueOnce({ status: 200, data: [validator] })
|
|
118
|
+
.mockResolvedValueOnce({ status: 200, data: apyData });
|
|
119
|
+
const result = await (0, validator_app_1.getValidators)("mainnet-beta");
|
|
120
|
+
expect(result).toEqual([
|
|
121
|
+
{
|
|
122
|
+
activeStake: 1000000,
|
|
123
|
+
voteAccount: "valid-validator",
|
|
124
|
+
apy: 0.075,
|
|
125
|
+
name: "Test Validator",
|
|
126
|
+
avatarUrl: undefined,
|
|
127
|
+
wwwUrl: undefined,
|
|
128
|
+
totalScore: 8,
|
|
129
|
+
commission: 5,
|
|
130
|
+
},
|
|
131
|
+
]);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
describe("validator filtering", () => {
|
|
135
|
+
it("should filter delinquent and incomplete validators", async () => {
|
|
136
|
+
const validators = [
|
|
137
|
+
mockValidator({ vote_account: "good", delinquent: false }),
|
|
138
|
+
mockValidator({ vote_account: "bad", delinquent: true }),
|
|
139
|
+
mockValidator({ vote_account: "incomplete", active_stake: null }),
|
|
140
|
+
];
|
|
141
|
+
jest
|
|
142
|
+
.spyOn(network, "default")
|
|
143
|
+
.mockResolvedValueOnce({ status: 200, data: validators })
|
|
144
|
+
.mockResolvedValueOnce({ status: 200, data: [] });
|
|
145
|
+
const result = await (0, validator_app_1.getValidators)("mainnet-beta");
|
|
146
|
+
expect(result).toEqual([
|
|
147
|
+
{
|
|
148
|
+
activeStake: 1000000,
|
|
149
|
+
commission: 5,
|
|
150
|
+
totalScore: 8,
|
|
151
|
+
voteAccount: "good",
|
|
152
|
+
name: "Test Validator",
|
|
153
|
+
avatarUrl: undefined,
|
|
154
|
+
wwwUrl: undefined,
|
|
155
|
+
apy: undefined,
|
|
156
|
+
},
|
|
157
|
+
]);
|
|
158
|
+
});
|
|
159
|
+
it("should handle failed API calls", async () => {
|
|
160
|
+
jest
|
|
161
|
+
.spyOn(network, "default")
|
|
162
|
+
.mockResolvedValueOnce({ status: 500, data: null })
|
|
163
|
+
.mockResolvedValueOnce({ status: 200, data: [] });
|
|
164
|
+
const result = await (0, validator_app_1.getValidators)("mainnet-beta");
|
|
165
|
+
expect(result).toHaveLength(0);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
//# sourceMappingURL=validator-app.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-app.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/validator-app.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.integration.test.d.ts","sourceRoot":"","sources":["../src/bridge.integration.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,WAAW,EAAoB,MAAM,SAAS,CAAC;AAU/E,OAAO,KAAK,EAA8B,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA0FpF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAK5C,CAAC"}
|