@ledgerhq/ledger-trust-service 0.2.0 → 0.3.0-next.2
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 +2 -2
- package/CHANGELOG.md +32 -0
- package/lib/common.d.ts.map +1 -1
- package/lib/common.js +1 -3
- package/lib/common.js.map +1 -1
- package/lib/solana.integ.test.js +6 -15
- package/lib/solana.integ.test.js.map +1 -1
- package/lib/solana.js +20 -33
- package/lib/solana.js.map +1 -1
- package/lib/solana.test.js +14 -23
- package/lib/solana.test.js.map +1 -1
- package/lib-es/common.d.ts.map +1 -1
- package/lib-es/common.js +1 -3
- package/lib-es/common.js.map +1 -1
- package/lib-es/solana.integ.test.js +6 -15
- package/lib-es/solana.integ.test.js.map +1 -1
- package/lib-es/solana.js +20 -33
- package/lib-es/solana.js.map +1 -1
- package/lib-es/solana.test.js +14 -23
- package/lib-es/solana.test.js.map +1 -1
- package/package.json +6 -6
- package/src/common.ts +1 -3
- package/src/solana.test.ts +2 -2
- package/tsconfig.json +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/ledger-trust-service@0.
|
|
3
|
-
> tsc && tsc -m
|
|
2
|
+
> @ledgerhq/ledger-trust-service@0.3.0-nightly.1 build /home/runner/work/ledger-live/ledger-live/libs/ledger-services/trust
|
|
3
|
+
> tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @ledgerhq/ledger-trust-service
|
|
2
2
|
|
|
3
|
+
## 0.3.0-next.2
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#9402](https://github.com/LedgerHQ/ledger-live/pull/9402) [`bdfa413`](https://github.com/LedgerHQ/ledger-live/commit/bdfa4139fcbceabfd05a57e69b05e9ccf10efbe1) Thanks [@mcayuelas-ledger](https://github.com/mcayuelas-ledger)! - Update Staging NFT Metadata service url + Rename env variable
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`1461449`](https://github.com/LedgerHQ/ledger-live/commit/146144941c13e60182da8d79592f706d12a6f00e), [`bdfa413`](https://github.com/LedgerHQ/ledger-live/commit/bdfa4139fcbceabfd05a57e69b05e9ccf10efbe1)]:
|
|
12
|
+
- @ledgerhq/live-env@2.6.0-next.2
|
|
13
|
+
- @ledgerhq/live-network@2.0.5-next.2
|
|
14
|
+
|
|
15
|
+
## 0.3.0-nightly.1
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [#9402](https://github.com/LedgerHQ/ledger-live/pull/9402) [`bdfa413`](https://github.com/LedgerHQ/ledger-live/commit/bdfa4139fcbceabfd05a57e69b05e9ccf10efbe1) Thanks [@mcayuelas-ledger](https://github.com/mcayuelas-ledger)! - Update Staging NFT Metadata service url + Rename env variable
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [[`bdfa413`](https://github.com/LedgerHQ/ledger-live/commit/bdfa4139fcbceabfd05a57e69b05e9ccf10efbe1)]:
|
|
24
|
+
- @ledgerhq/live-env@2.6.0-nightly.1
|
|
25
|
+
- @ledgerhq/live-network@2.0.5-nightly.1
|
|
26
|
+
|
|
27
|
+
## 0.2.1-nightly.0
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- Updated dependencies [[`1461449`](https://github.com/LedgerHQ/ledger-live/commit/146144941c13e60182da8d79592f706d12a6f00e)]:
|
|
32
|
+
- @ledgerhq/live-env@2.6.0-nightly.0
|
|
33
|
+
- @ledgerhq/live-network@2.0.5-nightly.0
|
|
34
|
+
|
|
3
35
|
## 0.2.0
|
|
4
36
|
|
|
5
37
|
### Minor Changes
|
package/lib/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE7D"}
|
package/lib/common.js
CHANGED
|
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getTrustedDomain = void 0;
|
|
4
4
|
const live_env_1 = require("@ledgerhq/live-env");
|
|
5
5
|
function getTrustedDomain(env) {
|
|
6
|
-
return env === "prod"
|
|
7
|
-
? (0, live_env_1.getEnv)("NFT_ETH_METADATA_SERVICE")
|
|
8
|
-
: "https://nft.api.live.ledger-stg.com";
|
|
6
|
+
return env === "prod" ? (0, live_env_1.getEnv)("NFT_METADATA_SERVICE") : "https://nft.api.live.ledger-test.com";
|
|
9
7
|
}
|
|
10
8
|
exports.getTrustedDomain = getTrustedDomain;
|
|
11
9
|
//# sourceMappingURL=common.js.map
|
package/lib/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAE5C,SAAgB,gBAAgB,CAAC,GAAoB;IACnD,OAAO,GAAG,KAAK,MAAM
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAE5C,SAAgB,gBAAgB,CAAC,GAAoB;IACnD,OAAO,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAA,iBAAM,EAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC;AAClG,CAAC;AAFD,4CAEC"}
|
package/lib/solana.integ.test.js
CHANGED
|
@@ -1,37 +1,28 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const solana_1 = require("./solana");
|
|
13
4
|
describe("getOwnerAddress", () => {
|
|
14
|
-
it("returns expected ATA info", () =>
|
|
5
|
+
it("returns expected ATA info", async () => {
|
|
15
6
|
// When
|
|
16
|
-
const result =
|
|
7
|
+
const result = await (0, solana_1.getOwnerAddress)("EQ96zptNAWwM23m5v2ByChCMTFu6zUmJgRtUrQV1uYNM", "", "test");
|
|
17
8
|
// Then
|
|
18
9
|
expect(result).toEqual(expect.objectContaining({
|
|
19
10
|
tokenAccount: "EQ96zptNAWwM23m5v2ByChCMTFu6zUmJgRtUrQV1uYNM",
|
|
20
11
|
owner: "AS1kiySqqS6Tvv3KmBsr8Zbg4DUo5fDxDD9v1dF1TVYr",
|
|
21
12
|
contract: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
|
|
22
13
|
}));
|
|
23
|
-
})
|
|
14
|
+
});
|
|
24
15
|
});
|
|
25
16
|
describe("computedTokenAddress", () => {
|
|
26
|
-
it("returns expected ATA info", () =>
|
|
17
|
+
it("returns expected ATA info", async () => {
|
|
27
18
|
// When
|
|
28
|
-
const result =
|
|
19
|
+
const result = await (0, solana_1.computedTokenAddress)("DHTPaexpcpK58w4UpvoLnFH55jfwJdpg4R73mUwryZU8", "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", "", "test");
|
|
29
20
|
// Then
|
|
30
21
|
expect(result).toEqual(expect.objectContaining({
|
|
31
22
|
tokenAccount: "GizbHjLkKspW5XzkUsWKSoWW3VwBJMYi39NwCmppsbRs",
|
|
32
23
|
owner: "DHTPaexpcpK58w4UpvoLnFH55jfwJdpg4R73mUwryZU8",
|
|
33
24
|
contract: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
|
|
34
25
|
}));
|
|
35
|
-
})
|
|
26
|
+
});
|
|
36
27
|
});
|
|
37
28
|
//# sourceMappingURL=solana.integ.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.integ.test.js","sourceRoot":"","sources":["../src/solana.integ.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solana.integ.test.js","sourceRoot":"","sources":["../src/solana.integ.test.ts"],"names":[],"mappings":";;AAAA,qCAAiE;AAEjE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAe,EAClC,8CAA8C,EAC9C,EAAE,EACF,MAAM,CACP,CAAC;QAEF,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CACpB,MAAM,CAAC,gBAAgB,CAAC;YACtB,YAAY,EAAE,8CAA8C;YAC5D,KAAK,EAAE,8CAA8C;YACrD,QAAQ,EAAE,8CAA8C;SACzD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAoB,EACvC,8CAA8C,EAC9C,8CAA8C,EAC9C,EAAE,EACF,MAAM,CACP,CAAC;QAEF,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CACpB,MAAM,CAAC,gBAAgB,CAAC;YACtB,YAAY,EAAE,8CAA8C;YAC5D,KAAK,EAAE,8CAA8C;YACrD,QAAQ,EAAE,8CAA8C;SACzD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/solana.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -15,34 +6,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
6
|
exports.computedTokenAddress = exports.getOwnerAddress = void 0;
|
|
16
7
|
const live_network_1 = __importDefault(require("@ledgerhq/live-network"));
|
|
17
8
|
const common_1 = require("./common");
|
|
18
|
-
function getOwnerAddress(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
url: `${(0, common_1.getTrustedDomain)(env)}/v2/solana/owner/${tokenAddress}?challenge=${challenge}`,
|
|
23
|
-
});
|
|
24
|
-
return {
|
|
25
|
-
tokenAccount: data.tokenAccount,
|
|
26
|
-
owner: data.owner,
|
|
27
|
-
contract: data.contract,
|
|
28
|
-
signedDescriptor: data.signedDescriptor,
|
|
29
|
-
};
|
|
9
|
+
async function getOwnerAddress(tokenAddress, challenge, env = "prod") {
|
|
10
|
+
const { data } = await (0, live_network_1.default)({
|
|
11
|
+
method: "GET",
|
|
12
|
+
url: `${(0, common_1.getTrustedDomain)(env)}/v2/solana/owner/${tokenAddress}?challenge=${challenge}`,
|
|
30
13
|
});
|
|
14
|
+
return {
|
|
15
|
+
tokenAccount: data.tokenAccount,
|
|
16
|
+
owner: data.owner,
|
|
17
|
+
contract: data.contract,
|
|
18
|
+
signedDescriptor: data.signedDescriptor,
|
|
19
|
+
};
|
|
31
20
|
}
|
|
32
21
|
exports.getOwnerAddress = getOwnerAddress;
|
|
33
|
-
function computedTokenAddress(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
url: `${(0, common_1.getTrustedDomain)(env)}/v2/solana/computed-token-account/${address}/${mintAddress}?challenge=${challenge}`,
|
|
38
|
-
});
|
|
39
|
-
return {
|
|
40
|
-
tokenAccount: data.tokenAccount,
|
|
41
|
-
owner: data.owner,
|
|
42
|
-
contract: data.contract,
|
|
43
|
-
signedDescriptor: data.signedDescriptor,
|
|
44
|
-
};
|
|
22
|
+
async function computedTokenAddress(address, mintAddress, challenge, env = "prod") {
|
|
23
|
+
const { data } = await (0, live_network_1.default)({
|
|
24
|
+
method: "GET",
|
|
25
|
+
url: `${(0, common_1.getTrustedDomain)(env)}/v2/solana/computed-token-account/${address}/${mintAddress}?challenge=${challenge}`,
|
|
45
26
|
});
|
|
27
|
+
return {
|
|
28
|
+
tokenAccount: data.tokenAccount,
|
|
29
|
+
owner: data.owner,
|
|
30
|
+
contract: data.contract,
|
|
31
|
+
signedDescriptor: data.signedDescriptor,
|
|
32
|
+
};
|
|
46
33
|
}
|
|
47
34
|
exports.computedTokenAddress = computedTokenAddress;
|
|
48
35
|
//# sourceMappingURL=solana.js.map
|
package/lib/solana.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":";;;;;;AAAA,0EAA6C;AAC7C,qCAA4C;AAkBrC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,SAAiB,EACjB,MAAuB,MAAM;IAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAO,EAAuB;QACnD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,IAAA,yBAAgB,EAAC,GAAG,CAAC,oBAAoB,YAAY,cAAc,SAAS,EAAE;KACvF,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;AACJ,CAAC;AAhBD,0CAgBC;AAEM,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,WAAmB,EACnB,SAAiB,EACjB,MAAuB,MAAM;IAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAO,EAAuB;QACnD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,IAAA,yBAAgB,EAAC,GAAG,CAAC,qCAAqC,OAAO,IAAI,WAAW,cAAc,SAAS,EAAE;KAClH,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;AACJ,CAAC;AAjBD,oDAiBC"}
|
package/lib/solana.test.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -24,22 +15,22 @@ describe("solana", () => {
|
|
|
24
15
|
it.each([
|
|
25
16
|
["prod", "https://nft.api.live.ledger.com"],
|
|
26
17
|
[undefined, "https://nft.api.live.ledger.com"],
|
|
27
|
-
["test", "https://nft.api.live.ledger-
|
|
28
|
-
])("fetch the correct %s service environement", (env, baseUrl) =>
|
|
18
|
+
["test", "https://nft.api.live.ledger-test.com"],
|
|
19
|
+
])("fetch the correct %s service environement", async (env, baseUrl) => {
|
|
29
20
|
// Given
|
|
30
21
|
const ownerAddress = "SOL_ADDR";
|
|
31
22
|
const challenge = "WHATEVER_CHALLENGE";
|
|
32
23
|
const mockResponse = {};
|
|
33
24
|
live_network_1.default.mockResolvedValue({ data: mockResponse });
|
|
34
25
|
// When
|
|
35
|
-
|
|
26
|
+
await (0, solana_1.getOwnerAddress)(ownerAddress, challenge, env);
|
|
36
27
|
// Then
|
|
37
28
|
expect(live_network_1.default).toHaveBeenCalledWith({
|
|
38
29
|
method: "GET",
|
|
39
30
|
url: `${baseUrl}/v2/solana/owner/${ownerAddress}?challenge=${challenge}`,
|
|
40
31
|
});
|
|
41
|
-
})
|
|
42
|
-
it("transforms data as expected", () =>
|
|
32
|
+
});
|
|
33
|
+
it("transforms data as expected", async () => {
|
|
43
34
|
// Given
|
|
44
35
|
const ownerAddress = "SOL_ADDR";
|
|
45
36
|
const challenge = "WHATEVER_CHALLENGE";
|
|
@@ -55,7 +46,7 @@ describe("solana", () => {
|
|
|
55
46
|
};
|
|
56
47
|
live_network_1.default.mockResolvedValue({ data: mockResponse });
|
|
57
48
|
// When
|
|
58
|
-
const result =
|
|
49
|
+
const result = await (0, solana_1.getOwnerAddress)(ownerAddress, challenge);
|
|
59
50
|
// Then
|
|
60
51
|
expect(result).toEqual({
|
|
61
52
|
contract: mintAddress,
|
|
@@ -63,14 +54,14 @@ describe("solana", () => {
|
|
|
63
54
|
tokenAccount: tokenAddress,
|
|
64
55
|
signedDescriptor: "SIGNATURE",
|
|
65
56
|
});
|
|
66
|
-
})
|
|
57
|
+
});
|
|
67
58
|
});
|
|
68
59
|
describe("computedTokenAddress", () => {
|
|
69
60
|
it.each([
|
|
70
61
|
["prod", "https://nft.api.live.ledger.com"],
|
|
71
62
|
[undefined, "https://nft.api.live.ledger.com"],
|
|
72
|
-
["test", "https://nft.api.live.ledger-
|
|
73
|
-
])("fetch the correct %s service environement", (env, baseUrl) =>
|
|
63
|
+
["test", "https://nft.api.live.ledger-test.com"],
|
|
64
|
+
])("fetch the correct %s service environement", async (env, baseUrl) => {
|
|
74
65
|
// Given
|
|
75
66
|
const ownerAddress = "SOL_ADDR";
|
|
76
67
|
const mintAddress = "MINT_ADDR";
|
|
@@ -78,14 +69,14 @@ describe("solana", () => {
|
|
|
78
69
|
const mockResponse = {};
|
|
79
70
|
live_network_1.default.mockResolvedValue({ data: mockResponse });
|
|
80
71
|
// When
|
|
81
|
-
|
|
72
|
+
await (0, solana_1.computedTokenAddress)(ownerAddress, mintAddress, challenge, env);
|
|
82
73
|
// Then
|
|
83
74
|
expect(live_network_1.default).toHaveBeenCalledWith({
|
|
84
75
|
method: "GET",
|
|
85
76
|
url: `${baseUrl}/v2/solana/computed-token-account/${ownerAddress}/${mintAddress}?challenge=${challenge}`,
|
|
86
77
|
});
|
|
87
|
-
})
|
|
88
|
-
it("transforms data as expected", () =>
|
|
78
|
+
});
|
|
79
|
+
it("transforms data as expected", async () => {
|
|
89
80
|
// Given
|
|
90
81
|
const ownerAddress = "SOL_ADDR";
|
|
91
82
|
const challenge = "WHATEVER_CHALLENGE";
|
|
@@ -101,7 +92,7 @@ describe("solana", () => {
|
|
|
101
92
|
};
|
|
102
93
|
live_network_1.default.mockResolvedValue({ data: mockResponse });
|
|
103
94
|
// When
|
|
104
|
-
const result =
|
|
95
|
+
const result = await (0, solana_1.computedTokenAddress)(ownerAddress, mintAddress, challenge);
|
|
105
96
|
// Then
|
|
106
97
|
expect(result).toEqual({
|
|
107
98
|
contract: mintAddress,
|
|
@@ -109,7 +100,7 @@ describe("solana", () => {
|
|
|
109
100
|
tokenAccount: tokenAddress,
|
|
110
101
|
signedDescriptor: "SIGNATURE",
|
|
111
102
|
});
|
|
112
|
-
})
|
|
103
|
+
});
|
|
113
104
|
});
|
|
114
105
|
});
|
|
115
106
|
//# sourceMappingURL=solana.test.js.map
|
package/lib/solana.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../src/solana.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../src/solana.test.ts"],"names":[],"mappings":"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"}
|
package/lib-es/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE7D"}
|
package/lib-es/common.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { getEnv } from "@ledgerhq/live-env";
|
|
2
2
|
export function getTrustedDomain(env) {
|
|
3
|
-
return env === "prod"
|
|
4
|
-
? getEnv("NFT_ETH_METADATA_SERVICE")
|
|
5
|
-
: "https://nft.api.live.ledger-stg.com";
|
|
3
|
+
return env === "prod" ? getEnv("NFT_METADATA_SERVICE") : "https://nft.api.live.ledger-test.com";
|
|
6
4
|
}
|
|
7
5
|
//# sourceMappingURL=common.js.map
|
package/lib-es/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,gBAAgB,CAAC,GAAoB;IACnD,OAAO,GAAG,KAAK,MAAM
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,gBAAgB,CAAC,GAAoB;IACnD,OAAO,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC;AAClG,CAAC"}
|
|
@@ -1,35 +1,26 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { computedTokenAddress, getOwnerAddress } from "./solana";
|
|
11
2
|
describe("getOwnerAddress", () => {
|
|
12
|
-
it("returns expected ATA info", () =>
|
|
3
|
+
it("returns expected ATA info", async () => {
|
|
13
4
|
// When
|
|
14
|
-
const result =
|
|
5
|
+
const result = await getOwnerAddress("EQ96zptNAWwM23m5v2ByChCMTFu6zUmJgRtUrQV1uYNM", "", "test");
|
|
15
6
|
// Then
|
|
16
7
|
expect(result).toEqual(expect.objectContaining({
|
|
17
8
|
tokenAccount: "EQ96zptNAWwM23m5v2ByChCMTFu6zUmJgRtUrQV1uYNM",
|
|
18
9
|
owner: "AS1kiySqqS6Tvv3KmBsr8Zbg4DUo5fDxDD9v1dF1TVYr",
|
|
19
10
|
contract: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
|
|
20
11
|
}));
|
|
21
|
-
})
|
|
12
|
+
});
|
|
22
13
|
});
|
|
23
14
|
describe("computedTokenAddress", () => {
|
|
24
|
-
it("returns expected ATA info", () =>
|
|
15
|
+
it("returns expected ATA info", async () => {
|
|
25
16
|
// When
|
|
26
|
-
const result =
|
|
17
|
+
const result = await computedTokenAddress("DHTPaexpcpK58w4UpvoLnFH55jfwJdpg4R73mUwryZU8", "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", "", "test");
|
|
27
18
|
// Then
|
|
28
19
|
expect(result).toEqual(expect.objectContaining({
|
|
29
20
|
tokenAccount: "GizbHjLkKspW5XzkUsWKSoWW3VwBJMYi39NwCmppsbRs",
|
|
30
21
|
owner: "DHTPaexpcpK58w4UpvoLnFH55jfwJdpg4R73mUwryZU8",
|
|
31
22
|
contract: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
|
|
32
23
|
}));
|
|
33
|
-
})
|
|
24
|
+
});
|
|
34
25
|
});
|
|
35
26
|
//# sourceMappingURL=solana.integ.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.integ.test.js","sourceRoot":"","sources":["../src/solana.integ.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solana.integ.test.js","sourceRoot":"","sources":["../src/solana.integ.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEjE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,8CAA8C,EAC9C,EAAE,EACF,MAAM,CACP,CAAC;QAEF,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CACpB,MAAM,CAAC,gBAAgB,CAAC;YACtB,YAAY,EAAE,8CAA8C;YAC5D,KAAK,EAAE,8CAA8C;YACrD,QAAQ,EAAE,8CAA8C;SACzD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,8CAA8C,EAC9C,8CAA8C,EAC9C,EAAE,EACF,MAAM,CACP,CAAC;QAEF,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CACpB,MAAM,CAAC,gBAAgB,CAAC;YACtB,YAAY,EAAE,8CAA8C;YAC5D,KAAK,EAAE,8CAA8C;YACrD,QAAQ,EAAE,8CAA8C;SACzD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib-es/solana.js
CHANGED
|
@@ -1,40 +1,27 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import network from "@ledgerhq/live-network";
|
|
11
2
|
import { getTrustedDomain } from "./common";
|
|
12
|
-
export function getOwnerAddress(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
url: `${getTrustedDomain(env)}/v2/solana/owner/${tokenAddress}?challenge=${challenge}`,
|
|
17
|
-
});
|
|
18
|
-
return {
|
|
19
|
-
tokenAccount: data.tokenAccount,
|
|
20
|
-
owner: data.owner,
|
|
21
|
-
contract: data.contract,
|
|
22
|
-
signedDescriptor: data.signedDescriptor,
|
|
23
|
-
};
|
|
3
|
+
export async function getOwnerAddress(tokenAddress, challenge, env = "prod") {
|
|
4
|
+
const { data } = await network({
|
|
5
|
+
method: "GET",
|
|
6
|
+
url: `${getTrustedDomain(env)}/v2/solana/owner/${tokenAddress}?challenge=${challenge}`,
|
|
24
7
|
});
|
|
8
|
+
return {
|
|
9
|
+
tokenAccount: data.tokenAccount,
|
|
10
|
+
owner: data.owner,
|
|
11
|
+
contract: data.contract,
|
|
12
|
+
signedDescriptor: data.signedDescriptor,
|
|
13
|
+
};
|
|
25
14
|
}
|
|
26
|
-
export function computedTokenAddress(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
url: `${getTrustedDomain(env)}/v2/solana/computed-token-account/${address}/${mintAddress}?challenge=${challenge}`,
|
|
31
|
-
});
|
|
32
|
-
return {
|
|
33
|
-
tokenAccount: data.tokenAccount,
|
|
34
|
-
owner: data.owner,
|
|
35
|
-
contract: data.contract,
|
|
36
|
-
signedDescriptor: data.signedDescriptor,
|
|
37
|
-
};
|
|
15
|
+
export async function computedTokenAddress(address, mintAddress, challenge, env = "prod") {
|
|
16
|
+
const { data } = await network({
|
|
17
|
+
method: "GET",
|
|
18
|
+
url: `${getTrustedDomain(env)}/v2/solana/computed-token-account/${address}/${mintAddress}?challenge=${challenge}`,
|
|
38
19
|
});
|
|
20
|
+
return {
|
|
21
|
+
tokenAccount: data.tokenAccount,
|
|
22
|
+
owner: data.owner,
|
|
23
|
+
contract: data.contract,
|
|
24
|
+
signedDescriptor: data.signedDescriptor,
|
|
25
|
+
};
|
|
39
26
|
}
|
|
40
27
|
//# sourceMappingURL=solana.js.map
|
package/lib-es/solana.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAkB5C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,SAAiB,EACjB,MAAuB,MAAM;IAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAuB;QACnD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,oBAAoB,YAAY,cAAc,SAAS,EAAE;KACvF,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,WAAmB,EACnB,SAAiB,EACjB,MAAuB,MAAM;IAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAuB;QACnD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,qCAAqC,OAAO,IAAI,WAAW,cAAc,SAAS,EAAE;KAClH,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;AACJ,CAAC"}
|
package/lib-es/solana.test.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { computedTokenAddress, getOwnerAddress } from "./solana";
|
|
11
2
|
import network from "@ledgerhq/live-network";
|
|
12
3
|
jest.mock("@ledgerhq/live-network");
|
|
@@ -19,22 +10,22 @@ describe("solana", () => {
|
|
|
19
10
|
it.each([
|
|
20
11
|
["prod", "https://nft.api.live.ledger.com"],
|
|
21
12
|
[undefined, "https://nft.api.live.ledger.com"],
|
|
22
|
-
["test", "https://nft.api.live.ledger-
|
|
23
|
-
])("fetch the correct %s service environement", (env, baseUrl) =>
|
|
13
|
+
["test", "https://nft.api.live.ledger-test.com"],
|
|
14
|
+
])("fetch the correct %s service environement", async (env, baseUrl) => {
|
|
24
15
|
// Given
|
|
25
16
|
const ownerAddress = "SOL_ADDR";
|
|
26
17
|
const challenge = "WHATEVER_CHALLENGE";
|
|
27
18
|
const mockResponse = {};
|
|
28
19
|
network.mockResolvedValue({ data: mockResponse });
|
|
29
20
|
// When
|
|
30
|
-
|
|
21
|
+
await getOwnerAddress(ownerAddress, challenge, env);
|
|
31
22
|
// Then
|
|
32
23
|
expect(network).toHaveBeenCalledWith({
|
|
33
24
|
method: "GET",
|
|
34
25
|
url: `${baseUrl}/v2/solana/owner/${ownerAddress}?challenge=${challenge}`,
|
|
35
26
|
});
|
|
36
|
-
})
|
|
37
|
-
it("transforms data as expected", () =>
|
|
27
|
+
});
|
|
28
|
+
it("transforms data as expected", async () => {
|
|
38
29
|
// Given
|
|
39
30
|
const ownerAddress = "SOL_ADDR";
|
|
40
31
|
const challenge = "WHATEVER_CHALLENGE";
|
|
@@ -50,7 +41,7 @@ describe("solana", () => {
|
|
|
50
41
|
};
|
|
51
42
|
network.mockResolvedValue({ data: mockResponse });
|
|
52
43
|
// When
|
|
53
|
-
const result =
|
|
44
|
+
const result = await getOwnerAddress(ownerAddress, challenge);
|
|
54
45
|
// Then
|
|
55
46
|
expect(result).toEqual({
|
|
56
47
|
contract: mintAddress,
|
|
@@ -58,14 +49,14 @@ describe("solana", () => {
|
|
|
58
49
|
tokenAccount: tokenAddress,
|
|
59
50
|
signedDescriptor: "SIGNATURE",
|
|
60
51
|
});
|
|
61
|
-
})
|
|
52
|
+
});
|
|
62
53
|
});
|
|
63
54
|
describe("computedTokenAddress", () => {
|
|
64
55
|
it.each([
|
|
65
56
|
["prod", "https://nft.api.live.ledger.com"],
|
|
66
57
|
[undefined, "https://nft.api.live.ledger.com"],
|
|
67
|
-
["test", "https://nft.api.live.ledger-
|
|
68
|
-
])("fetch the correct %s service environement", (env, baseUrl) =>
|
|
58
|
+
["test", "https://nft.api.live.ledger-test.com"],
|
|
59
|
+
])("fetch the correct %s service environement", async (env, baseUrl) => {
|
|
69
60
|
// Given
|
|
70
61
|
const ownerAddress = "SOL_ADDR";
|
|
71
62
|
const mintAddress = "MINT_ADDR";
|
|
@@ -73,14 +64,14 @@ describe("solana", () => {
|
|
|
73
64
|
const mockResponse = {};
|
|
74
65
|
network.mockResolvedValue({ data: mockResponse });
|
|
75
66
|
// When
|
|
76
|
-
|
|
67
|
+
await computedTokenAddress(ownerAddress, mintAddress, challenge, env);
|
|
77
68
|
// Then
|
|
78
69
|
expect(network).toHaveBeenCalledWith({
|
|
79
70
|
method: "GET",
|
|
80
71
|
url: `${baseUrl}/v2/solana/computed-token-account/${ownerAddress}/${mintAddress}?challenge=${challenge}`,
|
|
81
72
|
});
|
|
82
|
-
})
|
|
83
|
-
it("transforms data as expected", () =>
|
|
73
|
+
});
|
|
74
|
+
it("transforms data as expected", async () => {
|
|
84
75
|
// Given
|
|
85
76
|
const ownerAddress = "SOL_ADDR";
|
|
86
77
|
const challenge = "WHATEVER_CHALLENGE";
|
|
@@ -96,7 +87,7 @@ describe("solana", () => {
|
|
|
96
87
|
};
|
|
97
88
|
network.mockResolvedValue({ data: mockResponse });
|
|
98
89
|
// When
|
|
99
|
-
const result =
|
|
90
|
+
const result = await computedTokenAddress(ownerAddress, mintAddress, challenge);
|
|
100
91
|
// Then
|
|
101
92
|
expect(result).toEqual({
|
|
102
93
|
contract: mintAddress,
|
|
@@ -104,7 +95,7 @@ describe("solana", () => {
|
|
|
104
95
|
tokenAccount: tokenAddress,
|
|
105
96
|
signedDescriptor: "SIGNATURE",
|
|
106
97
|
});
|
|
107
|
-
})
|
|
98
|
+
});
|
|
108
99
|
});
|
|
109
100
|
});
|
|
110
101
|
//# sourceMappingURL=solana.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../src/solana.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../src/solana.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/ledger-trust-service",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-next.2",
|
|
4
4
|
"description": "Ledger Trust service client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -55,12 +55,12 @@
|
|
|
55
55
|
},
|
|
56
56
|
"license": "Apache-2.0",
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@ledgerhq/live-env": "2.
|
|
59
|
-
"@ledgerhq/live-network": "2.0.
|
|
58
|
+
"@ledgerhq/live-env": "2.6.0-next.2",
|
|
59
|
+
"@ledgerhq/live-network": "2.0.5-next.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@types/jest": "^29.5.10",
|
|
63
|
-
"@types/node": "^
|
|
63
|
+
"@types/node": "^22.10.10",
|
|
64
64
|
"dotenv": "^16.4.5",
|
|
65
65
|
"expect": "^27.5.1",
|
|
66
66
|
"jest": "^29.7.0",
|
|
@@ -70,11 +70,11 @@
|
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"clean": "rimraf lib lib-es",
|
|
73
|
-
"build": "tsc && tsc -m
|
|
73
|
+
"build": "tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es",
|
|
74
74
|
"coverage": "jest --coverage --passWithNoTests",
|
|
75
75
|
"prewatch": "pnpm build",
|
|
76
76
|
"watch": "tsc --watch",
|
|
77
|
-
"watch:es": "tsc --watch -m
|
|
77
|
+
"watch:es": "tsc --watch -m esnext --moduleResolution bundler --outDir lib-es",
|
|
78
78
|
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts --cache",
|
|
79
79
|
"lint:fix": "pnpm lint --fix",
|
|
80
80
|
"typecheck": "tsc --noEmit",
|
package/src/common.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { getEnv } from "@ledgerhq/live-env";
|
|
2
2
|
|
|
3
3
|
export function getTrustedDomain(env: "prod" | "test"): string {
|
|
4
|
-
return env === "prod"
|
|
5
|
-
? getEnv("NFT_ETH_METADATA_SERVICE")
|
|
6
|
-
: "https://nft.api.live.ledger-stg.com";
|
|
4
|
+
return env === "prod" ? getEnv("NFT_METADATA_SERVICE") : "https://nft.api.live.ledger-test.com";
|
|
7
5
|
}
|
package/src/solana.test.ts
CHANGED
|
@@ -13,7 +13,7 @@ describe("solana", () => {
|
|
|
13
13
|
it.each([
|
|
14
14
|
["prod", "https://nft.api.live.ledger.com"],
|
|
15
15
|
[undefined, "https://nft.api.live.ledger.com"],
|
|
16
|
-
["test", "https://nft.api.live.ledger-
|
|
16
|
+
["test", "https://nft.api.live.ledger-test.com"],
|
|
17
17
|
])("fetch the correct %s service environement", async (env, baseUrl) => {
|
|
18
18
|
// Given
|
|
19
19
|
const ownerAddress = "SOL_ADDR";
|
|
@@ -64,7 +64,7 @@ describe("solana", () => {
|
|
|
64
64
|
it.each([
|
|
65
65
|
["prod", "https://nft.api.live.ledger.com"],
|
|
66
66
|
[undefined, "https://nft.api.live.ledger.com"],
|
|
67
|
-
["test", "https://nft.api.live.ledger-
|
|
67
|
+
["test", "https://nft.api.live.ledger-test.com"],
|
|
68
68
|
])("fetch the correct %s service environement", async (env, baseUrl) => {
|
|
69
69
|
// Given
|
|
70
70
|
const ownerAddress = "SOL_ADDR";
|