@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.
Files changed (130) hide show
  1. package/lib/ContextModule.d.ts +7 -0
  2. package/lib/ContextModule.d.ts.map +1 -0
  3. package/lib/ContextModule.js +3 -0
  4. package/lib/ContextModule.js.map +1 -0
  5. package/lib/DefaultContextModule.d.ts +15 -0
  6. package/lib/DefaultContextModule.d.ts.map +1 -0
  7. package/lib/DefaultContextModule.js +41 -0
  8. package/lib/DefaultContextModule.js.map +1 -0
  9. package/lib/DefaultContextModule.test.d.ts +2 -0
  10. package/lib/DefaultContextModule.test.d.ts.map +1 -0
  11. package/lib/DefaultContextModule.test.js +55 -0
  12. package/lib/DefaultContextModule.test.js.map +1 -0
  13. package/lib/external-plugin/__tests__/abi.json +92 -0
  14. package/lib/external-plugin/data/DAppDto.d.ts +38 -0
  15. package/lib/external-plugin/data/DAppDto.d.ts.map +1 -0
  16. package/lib/external-plugin/data/DAppDto.js +3 -0
  17. package/lib/external-plugin/data/DAppDto.js.map +1 -0
  18. package/lib/external-plugin/data/ExternalPluginDataSource.d.ts +10 -0
  19. package/lib/external-plugin/data/ExternalPluginDataSource.d.ts.map +1 -0
  20. package/lib/external-plugin/data/ExternalPluginDataSource.js +3 -0
  21. package/lib/external-plugin/data/ExternalPluginDataSource.js.map +1 -0
  22. package/lib/external-plugin/data/HttpExternalPluginDataSource.d.ts +7 -0
  23. package/lib/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -0
  24. package/lib/external-plugin/data/HttpExternalPluginDataSource.js +55 -0
  25. package/lib/external-plugin/data/HttpExternalPluginDataSource.js.map +1 -0
  26. package/lib/external-plugin/data/HttpExternalPluginDataSource.test.d.ts +2 -0
  27. package/lib/external-plugin/data/HttpExternalPluginDataSource.test.d.ts.map +1 -0
  28. package/lib/external-plugin/data/HttpExternalPluginDataSource.test.js +268 -0
  29. package/lib/external-plugin/data/HttpExternalPluginDataSource.test.js.map +1 -0
  30. package/lib/external-plugin/domain/ExternalPluginContextLoader.d.ts +15 -0
  31. package/lib/external-plugin/domain/ExternalPluginContextLoader.d.ts.map +1 -0
  32. package/lib/external-plugin/domain/ExternalPluginContextLoader.js +96 -0
  33. package/lib/external-plugin/domain/ExternalPluginContextLoader.js.map +1 -0
  34. package/lib/external-plugin/domain/ExternalPluginContextLoader.test.d.ts +2 -0
  35. package/lib/external-plugin/domain/ExternalPluginContextLoader.test.d.ts.map +1 -0
  36. package/lib/external-plugin/domain/ExternalPluginContextLoader.test.js +345 -0
  37. package/lib/external-plugin/domain/ExternalPluginContextLoader.test.js.map +1 -0
  38. package/lib/external-plugin/model/DappInfos.d.ts +6 -0
  39. package/lib/external-plugin/model/DappInfos.d.ts.map +1 -0
  40. package/lib/external-plugin/model/DappInfos.js +3 -0
  41. package/lib/external-plugin/model/DappInfos.js.map +1 -0
  42. package/lib/external-plugin/model/SelectorDetails.d.ts +8 -0
  43. package/lib/external-plugin/model/SelectorDetails.d.ts.map +1 -0
  44. package/lib/external-plugin/model/SelectorDetails.js +3 -0
  45. package/lib/external-plugin/model/SelectorDetails.js.map +1 -0
  46. package/lib/forward-domain/data/ForwardDomainDataSource.d.ts +8 -0
  47. package/lib/forward-domain/data/ForwardDomainDataSource.d.ts.map +1 -0
  48. package/lib/forward-domain/data/ForwardDomainDataSource.js +3 -0
  49. package/lib/forward-domain/data/ForwardDomainDataSource.js.map +1 -0
  50. package/lib/forward-domain/data/HttpForwardDomainDataSource.d.ts +5 -0
  51. package/lib/forward-domain/data/HttpForwardDomainDataSource.d.ts.map +1 -0
  52. package/lib/forward-domain/data/HttpForwardDomainDataSource.js +36 -0
  53. package/lib/forward-domain/data/HttpForwardDomainDataSource.js.map +1 -0
  54. package/lib/forward-domain/data/HttpForwardDomainDataSource.test.d.ts +2 -0
  55. package/lib/forward-domain/data/HttpForwardDomainDataSource.test.d.ts.map +1 -0
  56. package/lib/forward-domain/data/HttpForwardDomainDataSource.test.js +53 -0
  57. package/lib/forward-domain/data/HttpForwardDomainDataSource.test.js.map +1 -0
  58. package/lib/forward-domain/domain/ForwardDomainContextLoader.d.ts +12 -0
  59. package/lib/forward-domain/domain/ForwardDomainContextLoader.d.ts.map +1 -0
  60. package/lib/forward-domain/domain/ForwardDomainContextLoader.js +58 -0
  61. package/lib/forward-domain/domain/ForwardDomainContextLoader.js.map +1 -0
  62. package/lib/forward-domain/domain/ForwardDomainContextLoader.test.d.ts +2 -0
  63. package/lib/forward-domain/domain/ForwardDomainContextLoader.test.d.ts.map +1 -0
  64. package/lib/forward-domain/domain/ForwardDomainContextLoader.test.js +99 -0
  65. package/lib/forward-domain/domain/ForwardDomainContextLoader.test.js.map +1 -0
  66. package/lib/index.d.ts +8 -0
  67. package/lib/index.d.ts.map +1 -0
  68. package/lib/index.js +24 -0
  69. package/lib/index.js.map +1 -0
  70. package/lib/nft/data/HttpNftDataSource.d.ts +6 -0
  71. package/lib/nft/data/HttpNftDataSource.d.ts.map +1 -0
  72. package/lib/nft/data/HttpNftDataSource.js +51 -0
  73. package/lib/nft/data/HttpNftDataSource.js.map +1 -0
  74. package/lib/nft/data/HttpNftDataSource.test.d.ts +2 -0
  75. package/lib/nft/data/HttpNftDataSource.test.d.ts.map +1 -0
  76. package/lib/nft/data/HttpNftDataSource.test.js +62 -0
  77. package/lib/nft/data/HttpNftDataSource.test.js.map +1 -0
  78. package/lib/nft/data/NftDataSource.d.ts +14 -0
  79. package/lib/nft/data/NftDataSource.d.ts.map +1 -0
  80. package/lib/nft/data/NftDataSource.js +3 -0
  81. package/lib/nft/data/NftDataSource.js.map +1 -0
  82. package/lib/nft/domain/NftContextLoader.d.ts +12 -0
  83. package/lib/nft/domain/NftContextLoader.d.ts.map +1 -0
  84. package/lib/nft/domain/NftContextLoader.js +79 -0
  85. package/lib/nft/domain/NftContextLoader.js.map +1 -0
  86. package/lib/nft/domain/NftContextLoader.test.d.ts +2 -0
  87. package/lib/nft/domain/NftContextLoader.test.d.ts.map +1 -0
  88. package/lib/nft/domain/NftContextLoader.test.js +113 -0
  89. package/lib/nft/domain/NftContextLoader.test.js.map +1 -0
  90. package/lib/shared/domain/ContextLoader.d.ts +7 -0
  91. package/lib/shared/domain/ContextLoader.d.ts.map +1 -0
  92. package/lib/shared/domain/ContextLoader.js +3 -0
  93. package/lib/shared/domain/ContextLoader.js.map +1 -0
  94. package/lib/shared/model/ContextResponse.d.ts +11 -0
  95. package/lib/shared/model/ContextResponse.d.ts.map +1 -0
  96. package/lib/shared/model/ContextResponse.js +3 -0
  97. package/lib/shared/model/ContextResponse.js.map +1 -0
  98. package/lib/shared/model/LoaderOptions.d.ts +10 -0
  99. package/lib/shared/model/LoaderOptions.d.ts.map +1 -0
  100. package/lib/shared/model/LoaderOptions.js +3 -0
  101. package/lib/shared/model/LoaderOptions.js.map +1 -0
  102. package/lib/shared/model/Transaction.d.ts +2 -0
  103. package/lib/shared/model/Transaction.d.ts.map +1 -0
  104. package/lib/shared/model/Transaction.js +3 -0
  105. package/lib/shared/model/Transaction.js.map +1 -0
  106. package/lib/token/data/HttpTokenDataSource.d.ts +5 -0
  107. package/lib/token/data/HttpTokenDataSource.d.ts.map +1 -0
  108. package/lib/token/data/HttpTokenDataSource.js +68 -0
  109. package/lib/token/data/HttpTokenDataSource.js.map +1 -0
  110. package/lib/token/data/HttpTokenDataSource.test.d.ts +2 -0
  111. package/lib/token/data/HttpTokenDataSource.test.d.ts.map +1 -0
  112. package/lib/token/data/HttpTokenDataSource.test.js +87 -0
  113. package/lib/token/data/HttpTokenDataSource.test.js.map +1 -0
  114. package/lib/token/data/TokenDataSource.d.ts +8 -0
  115. package/lib/token/data/TokenDataSource.d.ts.map +1 -0
  116. package/lib/token/data/TokenDataSource.js +3 -0
  117. package/lib/token/data/TokenDataSource.js.map +1 -0
  118. package/lib/token/data/TokenDto.d.ts +6 -0
  119. package/lib/token/data/TokenDto.d.ts.map +1 -0
  120. package/lib/token/data/TokenDto.js +3 -0
  121. package/lib/token/data/TokenDto.js.map +1 -0
  122. package/lib/token/domain/TokenContextLoader.d.ts +16 -0
  123. package/lib/token/domain/TokenContextLoader.d.ts.map +1 -0
  124. package/lib/token/domain/TokenContextLoader.js +52 -0
  125. package/lib/token/domain/TokenContextLoader.js.map +1 -0
  126. package/lib/token/domain/TokenContextLoader.test.d.ts +2 -0
  127. package/lib/token/domain/TokenContextLoader.test.d.ts.map +1 -0
  128. package/lib/token/domain/TokenContextLoader.test.js +97 -0
  129. package/lib/token/domain/TokenContextLoader.test.js.map +1 -0
  130. package/package.json +4 -2
@@ -0,0 +1,7 @@
1
+ import { ContextResponse } from "./shared/model/ContextResponse";
2
+ import { LoaderOptions } from "./shared/model/LoaderOptions";
3
+ import { Transaction } from "./shared/model/Transaction";
4
+ export interface ContextModule {
5
+ getContexts(transaction: Transaction, options: LoaderOptions): Promise<ContextResponse[]>;
6
+ }
7
+ //# sourceMappingURL=ContextModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextModule.d.ts","sourceRoot":"","sources":["../src/ContextModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAC3F"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ContextModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextModule.js","sourceRoot":"","sources":["../src/ContextModule.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { ContextModule } from "./ContextModule";
2
+ import { ContextLoader } from "./shared/domain/ContextLoader";
3
+ import { ContextResponse } from "./shared/model/ContextResponse";
4
+ import { LoaderOptions } from "./shared/model/LoaderOptions";
5
+ import { Transaction } from "./shared/model/Transaction";
6
+ type DefaultContextModuleConstructorArgs = {
7
+ loaders: ContextLoader[];
8
+ };
9
+ export declare class DefaultContextModule implements ContextModule {
10
+ private _loaders;
11
+ constructor(args?: DefaultContextModuleConstructorArgs);
12
+ getContexts(transaction: Transaction, options: LoaderOptions): Promise<ContextResponse[]>;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=DefaultContextModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultContextModule.d.ts","sourceRoot":"","sources":["../src/DefaultContextModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIzD,KAAK,mCAAmC,GAAG;IACzC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC;AAEF,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,IAAI,CAAC,EAAE,mCAAmC;IAUzC,WAAW,CACtB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,EAAE,CAAC;CAK9B"}
@@ -0,0 +1,41 @@
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.DefaultContextModule = void 0;
13
+ const HttpExternalPluginDataSource_1 = require("./external-plugin/data/HttpExternalPluginDataSource");
14
+ const ExternalPluginContextLoader_1 = require("./external-plugin/domain/ExternalPluginContextLoader");
15
+ const HttpForwardDomainDataSource_1 = require("./forward-domain/data/HttpForwardDomainDataSource");
16
+ const ForwardDomainContextLoader_1 = require("./forward-domain/domain/ForwardDomainContextLoader");
17
+ const HttpNftDataSource_1 = require("./nft/data/HttpNftDataSource");
18
+ const NftContextLoader_1 = require("./nft/domain/NftContextLoader");
19
+ const HttpTokenDataSource_1 = require("./token/data/HttpTokenDataSource");
20
+ const TokenContextLoader_1 = require("./token/domain/TokenContextLoader");
21
+ class DefaultContextModule {
22
+ constructor(args) {
23
+ var _a;
24
+ const tokenDataSource = new HttpTokenDataSource_1.HttpTokenDataSource();
25
+ this._loaders = (_a = args === null || args === void 0 ? void 0 : args.loaders) !== null && _a !== void 0 ? _a : [
26
+ new TokenContextLoader_1.TokenContextLoader(tokenDataSource),
27
+ new NftContextLoader_1.NftContextLoader(new HttpNftDataSource_1.HttpNftDataSource()),
28
+ new ForwardDomainContextLoader_1.ForwardDomainContextLoader(new HttpForwardDomainDataSource_1.HttpForwardDomainDataSource()),
29
+ new ExternalPluginContextLoader_1.ExternalPluginContextLoader(new HttpExternalPluginDataSource_1.HttpExternalPluginDataSource(), tokenDataSource),
30
+ ];
31
+ }
32
+ getContexts(transaction, options) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const promises = this._loaders.map(fetcher => fetcher.load(transaction, options));
35
+ const responses = yield Promise.all(promises);
36
+ return responses.flat();
37
+ });
38
+ }
39
+ }
40
+ exports.DefaultContextModule = DefaultContextModule;
41
+ //# sourceMappingURL=DefaultContextModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultContextModule.js","sourceRoot":"","sources":["../src/DefaultContextModule.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,sGAAmG;AACnG,sGAAmG;AACnG,mGAAgG;AAChG,mGAAgG;AAChG,oEAAiE;AACjE,oEAAiE;AAKjE,0EAAuE;AACvE,0EAAuE;AAMvE,MAAa,oBAAoB;IAG/B,YAAY,IAA0C;;QACpD,MAAM,eAAe,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI;YAC/B,IAAI,uCAAkB,CAAC,eAAe,CAAC;YACvC,IAAI,mCAAgB,CAAC,IAAI,qCAAiB,EAAE,CAAC;YAC7C,IAAI,uDAA0B,CAAC,IAAI,yDAA2B,EAAE,CAAC;YACjE,IAAI,yDAA2B,CAAC,IAAI,2DAA4B,EAAE,EAAE,eAAe,CAAC;SACrF,CAAC;IACJ,CAAC;IAEY,WAAW,CACtB,WAAwB,EACxB,OAAsB;;YAEtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAClF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;KAAA;CACF;AArBD,oDAqBC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DefaultContextModule.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultContextModule.test.d.ts","sourceRoot":"","sources":["../src/DefaultContextModule.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
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 DefaultContextModule_1 = require("./DefaultContextModule");
13
+ const contextLoaderStubBuilder = () => {
14
+ return { load: jest.fn() };
15
+ };
16
+ describe("DefaultContextModule", () => {
17
+ beforeEach(() => {
18
+ jest.restoreAllMocks();
19
+ });
20
+ it("should initialize the context module with all the default loaders", () => __awaiter(void 0, void 0, void 0, function* () {
21
+ const contextModule = new DefaultContextModule_1.DefaultContextModule();
22
+ const res = yield contextModule.getContexts({}, {});
23
+ expect(res).toEqual([]);
24
+ }));
25
+ it("should return an empty array when no loaders", () => __awaiter(void 0, void 0, void 0, function* () {
26
+ const contextModule = new DefaultContextModule_1.DefaultContextModule({ loaders: [] });
27
+ const res = yield contextModule.getContexts({}, {});
28
+ expect(res).toEqual([]);
29
+ }));
30
+ it("should call all fetch method from metadata fetcher", () => __awaiter(void 0, void 0, void 0, function* () {
31
+ const loader = contextLoaderStubBuilder();
32
+ const contextModule = new DefaultContextModule_1.DefaultContextModule({ loaders: [loader, loader] });
33
+ yield contextModule.getContexts({}, {});
34
+ expect(loader.load).toHaveBeenCalledTimes(2);
35
+ }));
36
+ it("should return an array of context response", () => __awaiter(void 0, void 0, void 0, function* () {
37
+ const loader = contextLoaderStubBuilder();
38
+ const responses = [
39
+ [{ type: "provideERC20Info", payload: "payload1" }],
40
+ [
41
+ { type: "provideERC20Info", payload: "payload2" },
42
+ { type: "setPlugin", payload: "payload3" },
43
+ ],
44
+ ];
45
+ jest
46
+ .spyOn(loader, "load")
47
+ .mockResolvedValueOnce(responses[0])
48
+ .mockResolvedValueOnce(responses[1]);
49
+ const contextModule = new DefaultContextModule_1.DefaultContextModule({ loaders: [loader, loader] });
50
+ const res = yield contextModule.getContexts({}, {});
51
+ expect(loader.load).toHaveBeenCalledTimes(2);
52
+ expect(res).toEqual(responses.flat());
53
+ }));
54
+ });
55
+ //# sourceMappingURL=DefaultContextModule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultContextModule.test.js","sourceRoot":"","sources":["../src/DefaultContextModule.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iEAA8D;AAI9D,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAS,EAAE;QACjF,MAAM,aAAa,GAAG,IAAI,2CAAoB,EAAE,CAAC;QAEjD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,EAAiB,EAAE,EAAmB,CAAC,CAAC;QAEpF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAS,EAAE;QAC5D,MAAM,aAAa,GAAG,IAAI,2CAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAEhE,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,EAAiB,EAAE,EAAmB,CAAC,CAAC;QAEpF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAS,EAAE;QAClE,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,2CAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAE9E,MAAM,aAAa,CAAC,WAAW,CAAC,EAAiB,EAAE,EAAmB,CAAC,CAAC;QAExE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAS,EAAE;QAC1D,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG;YAChB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YACnD;gBACE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE;gBACjD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE;aAC3C;SACF,CAAC;QACF,IAAI;aACD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;aACrB,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACnC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,2CAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAE9E,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,EAAiB,EAAE,EAAmB,CAAC,CAAC;QAEpF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,92 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "address[]",
6
+ "name": "fromToken",
7
+ "type": "address[]"
8
+ }
9
+ ],
10
+ "name": "arrayParam",
11
+ "outputs": [],
12
+ "stateMutability": "nonpayable",
13
+ "type": "function"
14
+ },
15
+ {
16
+ "inputs": [
17
+ {
18
+ "components": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "address1",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "components": [
26
+ {
27
+ "components": [
28
+ {
29
+ "components": [
30
+ {
31
+ "internalType": "address[]",
32
+ "name": "addresses",
33
+ "type": "address[]"
34
+ }
35
+ ],
36
+ "internalType": "struct SimpleContract.Struct3",
37
+ "name": "param3",
38
+ "type": "tuple"
39
+ }
40
+ ],
41
+ "internalType": "struct SimpleContract.Struct2[]",
42
+ "name": "param2",
43
+ "type": "tuple[]"
44
+ }
45
+ ],
46
+ "internalType": "struct SimpleContract.Struct1",
47
+ "name": "param1",
48
+ "type": "tuple"
49
+ }
50
+ ],
51
+ "internalType": "struct SimpleContract.ComplexStruct",
52
+ "name": "complexStruct",
53
+ "type": "tuple"
54
+ }
55
+ ],
56
+ "name": "complexStructParam",
57
+ "outputs": [],
58
+ "stateMutability": "nonpayable",
59
+ "type": "function"
60
+ },
61
+ {
62
+ "inputs": [
63
+ {
64
+ "internalType": "address",
65
+ "name": "fromToken",
66
+ "type": "address"
67
+ },
68
+ {
69
+ "internalType": "address",
70
+ "name": "toToken",
71
+ "type": "address"
72
+ }
73
+ ],
74
+ "name": "multipleParams",
75
+ "outputs": [],
76
+ "stateMutability": "nonpayable",
77
+ "type": "function"
78
+ },
79
+ {
80
+ "inputs": [
81
+ {
82
+ "internalType": "address",
83
+ "name": "fromToken",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "name": "singleParam",
88
+ "outputs": [],
89
+ "stateMutability": "nonpayable",
90
+ "type": "function"
91
+ }
92
+ ]
@@ -0,0 +1,38 @@
1
+ export interface DAppDto {
2
+ b2c: B2c;
3
+ abis: Abis;
4
+ b2c_signatures: B2cSignatures;
5
+ }
6
+ export interface B2c {
7
+ blockchainName: string;
8
+ chainId: number;
9
+ contracts: Contract[];
10
+ name: string;
11
+ }
12
+ interface Contract {
13
+ address: string;
14
+ contractName: string;
15
+ selectors: {
16
+ [selector: string]: ContractSelector;
17
+ };
18
+ }
19
+ interface ContractSelector {
20
+ erc20OfInterest: string[];
21
+ method: string;
22
+ plugin: string;
23
+ }
24
+ export interface Abis {
25
+ [address: string]: object[];
26
+ }
27
+ export interface B2cSignatures {
28
+ [address: string]: {
29
+ [selector: string]: B2cSignature;
30
+ };
31
+ }
32
+ interface B2cSignature {
33
+ plugin: string;
34
+ serialized_data: string;
35
+ signature: string;
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=DAppDto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DAppDto.d.ts","sourceRoot":"","sources":["../../../src/external-plugin/data/DAppDto.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,GAAG;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;CACrD;AAED,UAAU,gBAAgB;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,OAAO,EAAE,MAAM,GAAG;QACjB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC;KAClC,CAAC;CACH;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DAppDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DAppDto.js","sourceRoot":"","sources":["../../../src/external-plugin/data/DAppDto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { DappInfos } from "../model/DappInfos";
2
+ export type GetDappInfos = {
3
+ address: string;
4
+ selector: `0x${string}`;
5
+ chainId: number;
6
+ };
7
+ export interface ExternalPluginDataSource {
8
+ getDappInfos(params: GetDappInfos): Promise<DappInfos | undefined>;
9
+ }
10
+ //# sourceMappingURL=ExternalPluginDataSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalPluginDataSource.d.ts","sourceRoot":"","sources":["../../../src/external-plugin/data/ExternalPluginDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CACpE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ExternalPluginDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalPluginDataSource.js","sourceRoot":"","sources":["../../../src/external-plugin/data/ExternalPluginDataSource.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ExternalPluginDataSource, GetDappInfos } from "./ExternalPluginDataSource";
2
+ import { DappInfos } from "../model/DappInfos";
3
+ export declare class HttpExternalPluginDataSource implements ExternalPluginDataSource {
4
+ constructor();
5
+ getDappInfos({ chainId, address, selector }: GetDappInfos): Promise<DappInfos | undefined>;
6
+ }
7
+ //# sourceMappingURL=HttpExternalPluginDataSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpExternalPluginDataSource.d.ts","sourceRoot":"","sources":["../../../src/external-plugin/data/HttpExternalPluginDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,qBAAa,4BAA6B,YAAW,wBAAwB;;IAGrE,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CAqCjG"}
@@ -0,0 +1,55 @@
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.HttpExternalPluginDataSource = void 0;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const package_json_1 = __importDefault(require("../../../package.json"));
18
+ class HttpExternalPluginDataSource {
19
+ constructor() { }
20
+ getDappInfos(_a) {
21
+ return __awaiter(this, arguments, void 0, function* ({ chainId, address, selector }) {
22
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
23
+ try {
24
+ const dappInfos = yield axios_1.default.request({
25
+ method: "GET",
26
+ url: "https://crypto-assets-service.api.ledger.com/v1/dapps",
27
+ params: { output: "b2c,b2c_signatures,abis", chain_id: chainId, contracts: address },
28
+ headers: { "X-Ledger-Client-Version": `context-module/${package_json_1.default.version}` },
29
+ });
30
+ const { erc20OfInterest, method, plugin } = ((_f = (_e = (_d = (_c = (_b = dappInfos.data[0]) === null || _b === void 0 ? void 0 : _b.b2c) === null || _c === void 0 ? void 0 : _c.contracts) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.selectors) === null || _f === void 0 ? void 0 : _f[selector]) || {};
31
+ const { signature, serialized_data: serializedData } = ((_j = (_h = (_g = dappInfos.data[0]) === null || _g === void 0 ? void 0 : _g.b2c_signatures) === null || _h === void 0 ? void 0 : _h[address]) === null || _j === void 0 ? void 0 : _j[selector]) || {};
32
+ if (!erc20OfInterest || !method || !plugin || !signature || !serializedData) {
33
+ return;
34
+ }
35
+ const abi = (_k = dappInfos.data[0].abis) === null || _k === void 0 ? void 0 : _k[address];
36
+ if (!abi) {
37
+ return;
38
+ }
39
+ const selectorDetails = {
40
+ method,
41
+ plugin,
42
+ erc20OfInterest,
43
+ signature,
44
+ serializedData,
45
+ };
46
+ return { selectorDetails, abi };
47
+ }
48
+ catch (error) {
49
+ return;
50
+ }
51
+ });
52
+ }
53
+ }
54
+ exports.HttpExternalPluginDataSource = HttpExternalPluginDataSource;
55
+ //# sourceMappingURL=HttpExternalPluginDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpExternalPluginDataSource.js","sourceRoot":"","sources":["../../../src/external-plugin/data/HttpExternalPluginDataSource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAK1B,yEAA4C;AAE5C,MAAa,4BAA4B;IACvC,gBAAe,CAAC;IAEV,YAAY;6DAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAgB;;YAC7D,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,eAAK,CAAC,OAAO,CAAY;oBAC/C,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,uDAAuD;oBAC5D,MAAM,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;oBACpF,OAAO,EAAE,EAAE,yBAAyB,EAAE,kBAAkB,sBAAO,CAAC,OAAO,EAAE,EAAE;iBAC5E,CAAC,CAAC;gBAEH,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,GACvC,CAAA,MAAA,MAAA,MAAA,MAAA,MAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,GAAG,0CAAE,SAAS,0CAAG,CAAC,CAAC,0CAAE,SAAS,0CAAG,QAAQ,CAAC,KAAI,EAAE,CAAC;gBACtE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,GAClD,CAAA,MAAA,MAAA,MAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,cAAc,0CAAG,OAAO,CAAC,0CAAG,QAAQ,CAAC,KAAI,EAAE,CAAC;gBAEjE,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5E,OAAO;gBACT,CAAC;gBAED,MAAM,GAAG,GAAG,MAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,0CAAG,OAAO,CAAC,CAAC;gBAE9C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAO;gBACT,CAAC;gBAED,MAAM,eAAe,GAAoB;oBACvC,MAAM;oBACN,MAAM;oBACN,eAAe;oBACf,SAAS;oBACT,cAAc;iBACf,CAAC;gBAEF,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;QACH,CAAC;KAAA;CACF;AAxCD,oEAwCC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HttpExternalPluginDataSource.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpExternalPluginDataSource.test.d.ts","sourceRoot":"","sources":["../../../src/external-plugin/data/HttpExternalPluginDataSource.test.ts"],"names":[],"mappings":""}