@ledgerhq/context-module 0.0.2-nightly.0 → 0.0.2-nightly.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/lib/ContextModule.d.ts +7 -0
- package/lib/ContextModule.d.ts.map +1 -0
- package/lib/ContextModule.js +3 -0
- package/lib/ContextModule.js.map +1 -0
- package/lib/DefaultContextModule.d.ts +15 -0
- package/lib/DefaultContextModule.d.ts.map +1 -0
- package/lib/DefaultContextModule.js +41 -0
- package/lib/DefaultContextModule.js.map +1 -0
- package/lib/DefaultContextModule.test.d.ts +2 -0
- package/lib/DefaultContextModule.test.d.ts.map +1 -0
- package/lib/DefaultContextModule.test.js +55 -0
- package/lib/DefaultContextModule.test.js.map +1 -0
- package/lib/external-plugin/__tests__/abi.json +92 -0
- package/lib/external-plugin/data/DAppDto.d.ts +38 -0
- package/lib/external-plugin/data/DAppDto.d.ts.map +1 -0
- package/lib/external-plugin/data/DAppDto.js +3 -0
- package/lib/external-plugin/data/DAppDto.js.map +1 -0
- package/lib/external-plugin/data/ExternalPluginDataSource.d.ts +10 -0
- package/lib/external-plugin/data/ExternalPluginDataSource.d.ts.map +1 -0
- package/lib/external-plugin/data/ExternalPluginDataSource.js +3 -0
- package/lib/external-plugin/data/ExternalPluginDataSource.js.map +1 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.d.ts +7 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.js +55 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.js.map +1 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.test.d.ts +2 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.test.d.ts.map +1 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.test.js +268 -0
- package/lib/external-plugin/data/HttpExternalPluginDataSource.test.js.map +1 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.d.ts +15 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.d.ts.map +1 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.js +96 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.js.map +1 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.test.d.ts +2 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.test.d.ts.map +1 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.test.js +345 -0
- package/lib/external-plugin/domain/ExternalPluginContextLoader.test.js.map +1 -0
- package/lib/external-plugin/model/DappInfos.d.ts +6 -0
- package/lib/external-plugin/model/DappInfos.d.ts.map +1 -0
- package/lib/external-plugin/model/DappInfos.js +3 -0
- package/lib/external-plugin/model/DappInfos.js.map +1 -0
- package/lib/external-plugin/model/SelectorDetails.d.ts +8 -0
- package/lib/external-plugin/model/SelectorDetails.d.ts.map +1 -0
- package/lib/external-plugin/model/SelectorDetails.js +3 -0
- package/lib/external-plugin/model/SelectorDetails.js.map +1 -0
- package/lib/forward-domain/data/ForwardDomainDataSource.d.ts +8 -0
- package/lib/forward-domain/data/ForwardDomainDataSource.d.ts.map +1 -0
- package/lib/forward-domain/data/ForwardDomainDataSource.js +3 -0
- package/lib/forward-domain/data/ForwardDomainDataSource.js.map +1 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.d.ts +5 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.d.ts.map +1 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.js +36 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.js.map +1 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.test.d.ts +2 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.test.d.ts.map +1 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.test.js +53 -0
- package/lib/forward-domain/data/HttpForwardDomainDataSource.test.js.map +1 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.d.ts +12 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.d.ts.map +1 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.js +58 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.js.map +1 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.test.d.ts +2 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.test.d.ts.map +1 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.test.js +99 -0
- package/lib/forward-domain/domain/ForwardDomainContextLoader.test.js.map +1 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +24 -0
- package/lib/index.js.map +1 -0
- package/lib/nft/data/HttpNftDataSource.d.ts +6 -0
- package/lib/nft/data/HttpNftDataSource.d.ts.map +1 -0
- package/lib/nft/data/HttpNftDataSource.js +51 -0
- package/lib/nft/data/HttpNftDataSource.js.map +1 -0
- package/lib/nft/data/HttpNftDataSource.test.d.ts +2 -0
- package/lib/nft/data/HttpNftDataSource.test.d.ts.map +1 -0
- package/lib/nft/data/HttpNftDataSource.test.js +62 -0
- package/lib/nft/data/HttpNftDataSource.test.js.map +1 -0
- package/lib/nft/data/NftDataSource.d.ts +14 -0
- package/lib/nft/data/NftDataSource.d.ts.map +1 -0
- package/lib/nft/data/NftDataSource.js +3 -0
- package/lib/nft/data/NftDataSource.js.map +1 -0
- package/lib/nft/domain/NftContextLoader.d.ts +12 -0
- package/lib/nft/domain/NftContextLoader.d.ts.map +1 -0
- package/lib/nft/domain/NftContextLoader.js +79 -0
- package/lib/nft/domain/NftContextLoader.js.map +1 -0
- package/lib/nft/domain/NftContextLoader.test.d.ts +2 -0
- package/lib/nft/domain/NftContextLoader.test.d.ts.map +1 -0
- package/lib/nft/domain/NftContextLoader.test.js +113 -0
- package/lib/nft/domain/NftContextLoader.test.js.map +1 -0
- package/lib/shared/domain/ContextLoader.d.ts +7 -0
- package/lib/shared/domain/ContextLoader.d.ts.map +1 -0
- package/lib/shared/domain/ContextLoader.js +3 -0
- package/lib/shared/domain/ContextLoader.js.map +1 -0
- package/lib/shared/model/ContextResponse.d.ts +11 -0
- package/lib/shared/model/ContextResponse.d.ts.map +1 -0
- package/lib/shared/model/ContextResponse.js +3 -0
- package/lib/shared/model/ContextResponse.js.map +1 -0
- package/lib/shared/model/LoaderOptions.d.ts +10 -0
- package/lib/shared/model/LoaderOptions.d.ts.map +1 -0
- package/lib/shared/model/LoaderOptions.js +3 -0
- package/lib/shared/model/LoaderOptions.js.map +1 -0
- package/lib/shared/model/Transaction.d.ts +2 -0
- package/lib/shared/model/Transaction.d.ts.map +1 -0
- package/lib/shared/model/Transaction.js +3 -0
- package/lib/shared/model/Transaction.js.map +1 -0
- package/lib/token/data/HttpTokenDataSource.d.ts +5 -0
- package/lib/token/data/HttpTokenDataSource.d.ts.map +1 -0
- package/lib/token/data/HttpTokenDataSource.js +68 -0
- package/lib/token/data/HttpTokenDataSource.js.map +1 -0
- package/lib/token/data/HttpTokenDataSource.test.d.ts +2 -0
- package/lib/token/data/HttpTokenDataSource.test.d.ts.map +1 -0
- package/lib/token/data/HttpTokenDataSource.test.js +87 -0
- package/lib/token/data/HttpTokenDataSource.test.js.map +1 -0
- package/lib/token/data/TokenDataSource.d.ts +8 -0
- package/lib/token/data/TokenDataSource.d.ts.map +1 -0
- package/lib/token/data/TokenDataSource.js +3 -0
- package/lib/token/data/TokenDataSource.js.map +1 -0
- package/lib/token/data/TokenDto.d.ts +6 -0
- package/lib/token/data/TokenDto.d.ts.map +1 -0
- package/lib/token/data/TokenDto.js +3 -0
- package/lib/token/data/TokenDto.js.map +1 -0
- package/lib/token/domain/TokenContextLoader.d.ts +16 -0
- package/lib/token/domain/TokenContextLoader.d.ts.map +1 -0
- package/lib/token/domain/TokenContextLoader.js +52 -0
- package/lib/token/domain/TokenContextLoader.js.map +1 -0
- package/lib/token/domain/TokenContextLoader.test.d.ts +2 -0
- package/lib/token/domain/TokenContextLoader.test.d.ts.map +1 -0
- package/lib/token/domain/TokenContextLoader.test.js +97 -0
- package/lib/token/domain/TokenContextLoader.test.js.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoaderOptions.js","sourceRoot":"","sources":["../../../src/shared/model/LoaderOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../src/shared/model/Transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/shared/model/Transaction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GetTokenInfosParams, TokenDataSource } from "./TokenDataSource";
|
|
2
|
+
export declare class HttpTokenDataSource implements TokenDataSource {
|
|
3
|
+
getTokenInfosPayload({ chainId, address, }: GetTokenInfosParams): Promise<string | undefined>;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=HttpTokenDataSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpTokenDataSource.d.ts","sourceRoot":"","sources":["../../../src/token/data/HttpTokenDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzE,qBAAa,mBAAoB,YAAW,eAAe;IAC5C,oBAAoB,CAAC,EAChC,OAAO,EACP,OAAO,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAmDrD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.HttpTokenDataSource = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
const package_json_1 = __importDefault(require("../../../package.json"));
|
|
18
|
+
class HttpTokenDataSource {
|
|
19
|
+
getTokenInfosPayload(_a) {
|
|
20
|
+
return __awaiter(this, arguments, void 0, function* ({ chainId, address, }) {
|
|
21
|
+
var _b;
|
|
22
|
+
try {
|
|
23
|
+
const response = yield axios_1.default.request({
|
|
24
|
+
method: "GET",
|
|
25
|
+
url: `https://crypto-assets-service.api.ledger.com/v1/tokens`,
|
|
26
|
+
params: {
|
|
27
|
+
contract_address: address,
|
|
28
|
+
chain_id: chainId,
|
|
29
|
+
output: "live_signature,ticker,decimals",
|
|
30
|
+
},
|
|
31
|
+
headers: { "X-Ledger-Client-Version": `context-module/${package_json_1.default.version}` },
|
|
32
|
+
});
|
|
33
|
+
const tokenInfos = (_b = response.data) === null || _b === void 0 ? void 0 : _b[0];
|
|
34
|
+
if (!tokenInfos || !tokenInfos.live_signature || !tokenInfos.ticker || !tokenInfos.decimals) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// 1 byte for the length of the ticker
|
|
38
|
+
const tickerLengthBuff = Buffer.alloc(1);
|
|
39
|
+
tickerLengthBuff.writeUintBE(tokenInfos.ticker.length, 0, 1);
|
|
40
|
+
// ticker ascii
|
|
41
|
+
const tickerBuff = Buffer.from(tokenInfos.ticker);
|
|
42
|
+
// bufferized address
|
|
43
|
+
const addressBuff = Buffer.from(address.slice(2), "hex");
|
|
44
|
+
// 4 bytes for the decimals
|
|
45
|
+
const decimalsBuff = Buffer.alloc(4);
|
|
46
|
+
decimalsBuff.writeUintBE(tokenInfos.decimals, 0, 4);
|
|
47
|
+
// 4 bytes for the chainId
|
|
48
|
+
const chainIdBuff = Buffer.alloc(4);
|
|
49
|
+
chainIdBuff.writeUintBE(chainId, 0, 4);
|
|
50
|
+
// bufferized live signature
|
|
51
|
+
const liveSignatureBuff = Buffer.from(tokenInfos.live_signature, "hex");
|
|
52
|
+
return Buffer.concat([
|
|
53
|
+
tickerLengthBuff,
|
|
54
|
+
tickerBuff,
|
|
55
|
+
addressBuff,
|
|
56
|
+
decimalsBuff,
|
|
57
|
+
chainIdBuff,
|
|
58
|
+
liveSignatureBuff,
|
|
59
|
+
]).toString("hex");
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.HttpTokenDataSource = HttpTokenDataSource;
|
|
68
|
+
//# sourceMappingURL=HttpTokenDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpTokenDataSource.js","sourceRoot":"","sources":["../../../src/token/data/HttpTokenDataSource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAG1B,yEAA4C;AAE5C,MAAa,mBAAmB;IACjB,oBAAoB;6DAAC,EAChC,OAAO,EACP,OAAO,GACa;;YACpB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,OAAO,CAAa;oBAC/C,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,wDAAwD;oBAC7D,MAAM,EAAE;wBACN,gBAAgB,EAAE,OAAO;wBACzB,QAAQ,EAAE,OAAO;wBACjB,MAAM,EAAE,gCAAgC;qBACzC;oBACD,OAAO,EAAE,EAAE,yBAAyB,EAAE,kBAAkB,sBAAO,CAAC,OAAO,EAAE,EAAE;iBAC5E,CAAC,CAAC;gBACH,MAAM,UAAU,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAG,CAAC,CAAC,CAAC;gBAEtC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAC5F,OAAO;gBACT,CAAC;gBAED,sCAAsC;gBACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE7D,eAAe;gBACf,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAElD,qBAAqB;gBACrB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAEzD,2BAA2B;gBAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEpD,0BAA0B;gBAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEvC,4BAA4B;gBAC5B,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBAExE,OAAO,MAAM,CAAC,MAAM,CAAC;oBACnB,gBAAgB;oBAChB,UAAU;oBACV,WAAW;oBACX,YAAY;oBACZ,WAAW;oBACX,iBAAiB;iBAClB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;QACH,CAAC;KAAA;CACF;AAvDD,kDAuDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpTokenDataSource.test.d.ts","sourceRoot":"","sources":["../../../src/token/data/HttpTokenDataSource.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const axios_1 = __importDefault(require("axios"));
|
|
16
|
+
const HttpTokenDataSource_1 = require("./HttpTokenDataSource");
|
|
17
|
+
const package_json_1 = __importDefault(require("../../../package.json"));
|
|
18
|
+
jest.mock("axios");
|
|
19
|
+
describe("HttpTokenDataSource", () => {
|
|
20
|
+
let datasource;
|
|
21
|
+
beforeAll(() => {
|
|
22
|
+
datasource = new HttpTokenDataSource_1.HttpTokenDataSource();
|
|
23
|
+
jest.clearAllMocks();
|
|
24
|
+
});
|
|
25
|
+
it("should call axios with the ledger client version header", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
// GIVEN
|
|
27
|
+
const version = `context-module/${package_json_1.default.version}`;
|
|
28
|
+
const requestSpy = jest.fn(() => Promise.resolve({ data: [] }));
|
|
29
|
+
jest.spyOn(axios_1.default, "request").mockImplementation(requestSpy);
|
|
30
|
+
// WHEN
|
|
31
|
+
yield datasource.getTokenInfosPayload({ address: "0x00", chainId: 1 });
|
|
32
|
+
// THEN
|
|
33
|
+
expect(requestSpy).toHaveBeenCalledWith(expect.objectContaining({ headers: { "X-Ledger-Client-Version": version } }));
|
|
34
|
+
}));
|
|
35
|
+
it("should return a string when axios response is correct", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
// GIVEN
|
|
37
|
+
const tokenDTO = { live_signature: "0x0", decimals: 8, ticker: "USDC" };
|
|
38
|
+
jest.spyOn(axios_1.default, "request").mockResolvedValue({ data: [tokenDTO] });
|
|
39
|
+
// WHEN
|
|
40
|
+
const result = yield datasource.getTokenInfosPayload({ address: "0x00", chainId: 1 });
|
|
41
|
+
// THEN
|
|
42
|
+
expect(result).toEqual("0455534443000000000800000001");
|
|
43
|
+
}));
|
|
44
|
+
it("should return undefined when data is empty", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
// GIVEN
|
|
46
|
+
jest.spyOn(axios_1.default, "request").mockResolvedValue({ data: undefined });
|
|
47
|
+
// WHEN
|
|
48
|
+
const result = yield datasource.getTokenInfosPayload({ address: "0x00", chainId: 1 });
|
|
49
|
+
// THEN
|
|
50
|
+
expect(result).toEqual(undefined);
|
|
51
|
+
}));
|
|
52
|
+
it("should return undefined when no signature", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
+
// GIVEN
|
|
54
|
+
jest.spyOn(axios_1.default, "request").mockResolvedValue({ data: [{}] });
|
|
55
|
+
// WHEN
|
|
56
|
+
const result = yield datasource.getTokenInfosPayload({ address: "0x00", chainId: 1 });
|
|
57
|
+
// THEN
|
|
58
|
+
expect(result).toEqual(undefined);
|
|
59
|
+
}));
|
|
60
|
+
it("should return undefined when no ticker", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
|
+
// GIVEN
|
|
62
|
+
jest.spyOn(axios_1.default, "request").mockResolvedValue({ data: [{ live_signature: "0x0" }] });
|
|
63
|
+
// WHEN
|
|
64
|
+
const result = yield datasource.getTokenInfosPayload({ address: "0x00", chainId: 1 });
|
|
65
|
+
// THEN
|
|
66
|
+
expect(result).toEqual(undefined);
|
|
67
|
+
}));
|
|
68
|
+
it("should return undefined when no decimals", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
// GIVEN
|
|
70
|
+
jest
|
|
71
|
+
.spyOn(axios_1.default, "request")
|
|
72
|
+
.mockResolvedValue({ data: [{ live_signature: "0x0", ticker: "USDC" }] });
|
|
73
|
+
// WHEN
|
|
74
|
+
const result = yield datasource.getTokenInfosPayload({ address: "0x00", chainId: 1 });
|
|
75
|
+
// THEN
|
|
76
|
+
expect(result).toEqual(undefined);
|
|
77
|
+
}));
|
|
78
|
+
it("should return undefined when axios throws an error", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
|
+
// GIVEN
|
|
80
|
+
jest.spyOn(axios_1.default, "request").mockRejectedValue(new Error());
|
|
81
|
+
// WHEN
|
|
82
|
+
const result = yield datasource.getTokenInfosPayload({ address: "0x00", chainId: 1 });
|
|
83
|
+
// THEN
|
|
84
|
+
expect(result).toEqual(undefined);
|
|
85
|
+
}));
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=HttpTokenDataSource.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpTokenDataSource.test.js","sourceRoot":"","sources":["../../../src/token/data/HttpTokenDataSource.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenDataSource.d.ts","sourceRoot":"","sources":["../../../src/token/data/TokenDataSource.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenDataSource.js","sourceRoot":"","sources":["../../../src/token/data/TokenDataSource.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenDto.d.ts","sourceRoot":"","sources":["../../../src/token/data/TokenDto.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenDto.js","sourceRoot":"","sources":["../../../src/token/data/TokenDto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ContextLoader } from "../../shared/domain/ContextLoader";
|
|
2
|
+
import { ContextResponse } from "../../shared/model/ContextResponse";
|
|
3
|
+
import { LoaderOptions } from "../../shared/model/LoaderOptions";
|
|
4
|
+
import { Transaction } from "../../shared/model/Transaction";
|
|
5
|
+
import { TokenDataSource } from "../data/TokenDataSource";
|
|
6
|
+
export declare enum ERC20_SUPPORTED_SELECTORS {
|
|
7
|
+
Approve = "0x095ea7b3",
|
|
8
|
+
Transfer = "0xa9059cbb"
|
|
9
|
+
}
|
|
10
|
+
export declare class TokenContextLoader implements ContextLoader {
|
|
11
|
+
private _dataSource;
|
|
12
|
+
constructor(dataSource: TokenDataSource);
|
|
13
|
+
load(transaction: Transaction, _options: LoaderOptions): Promise<ContextResponse[]>;
|
|
14
|
+
private isSelectorSupported;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=TokenContextLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenContextLoader.d.ts","sourceRoot":"","sources":["../../../src/token/domain/TokenContextLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,oBAAY,yBAAyB;IACnC,OAAO,eAAe;IACtB,QAAQ,eAAe;CACxB;AAID,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;gBAEzB,UAAU,EAAE,eAAe;IAIjC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4BzF,OAAO,CAAC,mBAAmB;CAG5B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TokenContextLoader = exports.ERC20_SUPPORTED_SELECTORS = void 0;
|
|
13
|
+
var ERC20_SUPPORTED_SELECTORS;
|
|
14
|
+
(function (ERC20_SUPPORTED_SELECTORS) {
|
|
15
|
+
ERC20_SUPPORTED_SELECTORS["Approve"] = "0x095ea7b3";
|
|
16
|
+
ERC20_SUPPORTED_SELECTORS["Transfer"] = "0xa9059cbb";
|
|
17
|
+
})(ERC20_SUPPORTED_SELECTORS || (exports.ERC20_SUPPORTED_SELECTORS = ERC20_SUPPORTED_SELECTORS = {}));
|
|
18
|
+
const SUPPORTED_SELECTORS = Object.values(ERC20_SUPPORTED_SELECTORS);
|
|
19
|
+
class TokenContextLoader {
|
|
20
|
+
constructor(dataSource) {
|
|
21
|
+
this._dataSource = dataSource;
|
|
22
|
+
}
|
|
23
|
+
load(transaction, _options) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
if (!transaction.to || !transaction.data || transaction.data === "0x") {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
const selector = transaction.data.slice(0, 10);
|
|
29
|
+
if (!this.isSelectorSupported(selector)) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
const payload = yield this._dataSource.getTokenInfosPayload({
|
|
33
|
+
address: transaction.to,
|
|
34
|
+
chainId: transaction.chainId,
|
|
35
|
+
});
|
|
36
|
+
if (!payload) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
return [
|
|
40
|
+
{
|
|
41
|
+
type: "provideERC20TokenInformation",
|
|
42
|
+
payload,
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
isSelectorSupported(selector) {
|
|
48
|
+
return Object.values(SUPPORTED_SELECTORS).includes(selector);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.TokenContextLoader = TokenContextLoader;
|
|
52
|
+
//# sourceMappingURL=TokenContextLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenContextLoader.js","sourceRoot":"","sources":["../../../src/token/domain/TokenContextLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,mDAAsB,CAAA;IACtB,oDAAuB,CAAA;AACzB,CAAC,EAHW,yBAAyB,yCAAzB,yBAAyB,QAGpC;AAED,MAAM,mBAAmB,GAAoB,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAEtF,MAAa,kBAAkB;IAG7B,YAAY,UAA2B;QACrC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAEK,IAAI,CAAC,WAAwB,EAAE,QAAuB;;YAC1D,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtE,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAkB,CAAC;YAEhE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;gBAC1D,OAAO,EAAE,WAAW,CAAC,EAAE;gBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO;gBACL;oBACE,IAAI,EAAE,8BAAuC;oBAC7C,OAAO;iBACR;aACF,CAAC;QACJ,CAAC;KAAA;IAEO,mBAAmB,CAAC,QAAuB;QACjD,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACF;AAtCD,gDAsCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenContextLoader.test.d.ts","sourceRoot":"","sources":["../../../src/token/domain/TokenContextLoader.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const TokenContextLoader_1 = require("./TokenContextLoader");
|
|
13
|
+
describe("TokenContextLoader", () => {
|
|
14
|
+
const mockTokenDataSource = { getTokenInfosPayload: jest.fn() };
|
|
15
|
+
const loader = new TokenContextLoader_1.TokenContextLoader(mockTokenDataSource);
|
|
16
|
+
const emptyOptions = {};
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
jest.restoreAllMocks();
|
|
19
|
+
jest
|
|
20
|
+
.spyOn(mockTokenDataSource, "getTokenInfosPayload")
|
|
21
|
+
.mockImplementation(({ address }) => Promise.resolve(`payload-${address}`));
|
|
22
|
+
});
|
|
23
|
+
describe("load function", () => {
|
|
24
|
+
it("should return an empty array if transaction dest is undefined", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
// GIVEN
|
|
26
|
+
const transaction = { to: undefined, data: "0x01" };
|
|
27
|
+
// WHEN
|
|
28
|
+
const result = yield loader.load(transaction, emptyOptions);
|
|
29
|
+
// THEN
|
|
30
|
+
expect(result).toEqual([]);
|
|
31
|
+
}));
|
|
32
|
+
it("should return an empty array if transaction data is undefined", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
// GIVEN
|
|
34
|
+
const transaction = {
|
|
35
|
+
to: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
36
|
+
data: undefined,
|
|
37
|
+
};
|
|
38
|
+
// WHEN
|
|
39
|
+
const result = yield loader.load(transaction, emptyOptions);
|
|
40
|
+
// THEN
|
|
41
|
+
expect(result).toEqual([]);
|
|
42
|
+
}));
|
|
43
|
+
it("should return an empty array if transaction data is empty", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
// GIVEN
|
|
45
|
+
const transaction = {
|
|
46
|
+
to: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
47
|
+
data: "0x",
|
|
48
|
+
};
|
|
49
|
+
// WHEN
|
|
50
|
+
const result = yield loader.load(transaction, emptyOptions);
|
|
51
|
+
// THEN
|
|
52
|
+
expect(result).toEqual([]);
|
|
53
|
+
}));
|
|
54
|
+
it("should return an empty array if the selector is not supported", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
|
+
// GIVEN
|
|
56
|
+
const transaction = {
|
|
57
|
+
to: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
58
|
+
data: "0x095ea7b20000000000000",
|
|
59
|
+
};
|
|
60
|
+
// WHEN
|
|
61
|
+
const result = yield loader.load(transaction, emptyOptions);
|
|
62
|
+
// THEN
|
|
63
|
+
expect(result).toEqual([]);
|
|
64
|
+
}));
|
|
65
|
+
it("should return undefined if the token is not supported by the CAL service", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
// GIVEN
|
|
67
|
+
const transaction = {
|
|
68
|
+
to: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
69
|
+
data: "0x095ea7b30000000000",
|
|
70
|
+
chainId: 1,
|
|
71
|
+
};
|
|
72
|
+
jest.spyOn(mockTokenDataSource, "getTokenInfosPayload").mockResolvedValue(undefined);
|
|
73
|
+
// WHEN
|
|
74
|
+
const result = yield loader.load(transaction, emptyOptions);
|
|
75
|
+
// THEN
|
|
76
|
+
expect(result).toEqual([]);
|
|
77
|
+
}));
|
|
78
|
+
it("should return a correct response", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
|
+
// GIVEN
|
|
80
|
+
const transaction = {
|
|
81
|
+
to: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
82
|
+
data: "0x095ea7b30000000000",
|
|
83
|
+
chainId: 1,
|
|
84
|
+
};
|
|
85
|
+
// WHEN
|
|
86
|
+
const result = yield loader.load(transaction, emptyOptions);
|
|
87
|
+
// THEN
|
|
88
|
+
expect(result).toEqual([
|
|
89
|
+
{
|
|
90
|
+
type: "provideERC20TokenInformation",
|
|
91
|
+
payload: "payload-0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
92
|
+
},
|
|
93
|
+
]);
|
|
94
|
+
}));
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=TokenContextLoader.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenContextLoader.test.js","sourceRoot":"","sources":["../../../src/token/domain/TokenContextLoader.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/context-module",
|
|
3
|
-
"version": "0.0.2-nightly.
|
|
3
|
+
"version": "0.0.2-nightly.2",
|
|
4
4
|
"description": "Ledger context module",
|
|
5
5
|
"files": [
|
|
6
6
|
"./lib"
|
|
@@ -24,7 +24,9 @@
|
|
|
24
24
|
"ethers": "^5.7.2"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"
|
|
27
|
+
"clean": "rimraf lib lib-es",
|
|
28
|
+
"build": "tsc -p src && tsc -p src -m ES6 --outDir lib-es",
|
|
29
|
+
"watch": "tsc --watch",
|
|
28
30
|
"test": "jest"
|
|
29
31
|
}
|
|
30
32
|
}
|