@ledgerhq/context-module 0.0.0-develop-20241007001127 → 0.0.0-develop-20241009001110
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/cjs/src/typed-data/data/FiltersDto.d.ts +39 -19
- package/lib/cjs/src/typed-data/data/FiltersDto.d.ts.map +1 -1
- package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.d.ts +4 -3
- package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
- package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +59 -39
- package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +1 -1
- package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/esm/src/typed-data/data/FiltersDto.d.ts +39 -19
- package/lib/esm/src/typed-data/data/FiltersDto.d.ts.map +1 -1
- package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.d.ts +4 -3
- package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
- package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +59 -39
- package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1,33 +1,53 @@
|
|
|
1
|
-
export type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export type InstructionSignatures = {
|
|
2
|
+
prod: string;
|
|
3
|
+
test: string;
|
|
4
|
+
};
|
|
5
|
+
export type InstructionFieldV1 = {
|
|
6
|
+
display_name: string;
|
|
7
|
+
field_mappers_count?: never;
|
|
8
|
+
field_path: string;
|
|
9
|
+
signatures: InstructionSignatures;
|
|
10
|
+
type: "field" | "message";
|
|
5
11
|
format?: never;
|
|
6
12
|
};
|
|
7
|
-
export type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
export type InstructionFieldV2 = {
|
|
14
|
+
display_name: string;
|
|
15
|
+
field_mappers_count?: never;
|
|
16
|
+
field_path: string;
|
|
17
|
+
descriptor: string;
|
|
18
|
+
signatures: InstructionSignatures;
|
|
11
19
|
format: "raw" | "datetime";
|
|
12
20
|
coin_ref?: never;
|
|
21
|
+
type: "field" | "message";
|
|
13
22
|
};
|
|
14
|
-
export type
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
signature: string;
|
|
23
|
+
export type InstructionFieldV2WithCoinRef = {
|
|
24
|
+
display_name: string;
|
|
25
|
+
field_mappers_count?: never;
|
|
18
26
|
format: "token" | "amount";
|
|
27
|
+
field_path: string;
|
|
19
28
|
coin_ref: number;
|
|
29
|
+
descriptor: string;
|
|
30
|
+
signatures: InstructionSignatures;
|
|
31
|
+
type: "field";
|
|
32
|
+
};
|
|
33
|
+
export type InstructionContractInfo = {
|
|
34
|
+
display_name: string;
|
|
35
|
+
field_mappers_count: number;
|
|
36
|
+
field_path?: never;
|
|
37
|
+
descriptor: string;
|
|
38
|
+
signatures: InstructionSignatures;
|
|
39
|
+
type: "message";
|
|
20
40
|
};
|
|
21
|
-
export type
|
|
41
|
+
export type InstructionField = InstructionFieldV1 | InstructionFieldV2 | InstructionFieldV2WithCoinRef | InstructionContractInfo;
|
|
22
42
|
export type FiltersDto = {
|
|
23
|
-
|
|
43
|
+
descriptors_eip712: {
|
|
24
44
|
[contractAddress: string]: {
|
|
25
45
|
[schemaHash: string]: {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
46
|
+
schema: Record<string, {
|
|
47
|
+
name: string;
|
|
48
|
+
type: string;
|
|
49
|
+
}[]>;
|
|
50
|
+
instructions: InstructionField[];
|
|
31
51
|
};
|
|
32
52
|
};
|
|
33
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersDto.d.ts","sourceRoot":"","sources":["../../../../../src/typed-data/data/FiltersDto.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"FiltersDto.d.ts","sourceRoot":"","sources":["../../../../../src/typed-data/data/FiltersDto.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,qBAAqB,CAAC;IAClC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,qBAAqB,CAAC;IAClC,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,qBAAqB,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,qBAAqB,CAAC;IAClC,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,6BAA6B,GAC7B,uBAAuB,CAAC;AAE5B,MAAM,MAAM,UAAU,GAAG;IACvB,kBAAkB,EAAE;QAClB,CAAC,eAAe,EAAE,MAAM,GAAG;YACzB,CAAC,UAAU,EAAE,MAAM,GAAG;gBACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,MAAM,CAAC;oBAAC,IAAI,EAAE,MAAM,CAAA;iBAAE,EAAE,CAAC,CAAC;gBACzD,YAAY,EAAE,gBAAgB,EAAE,CAAC;aAClC,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -5,9 +5,10 @@ export declare class HttpTypedDataDataSource implements TypedDataDataSource {
|
|
|
5
5
|
private readonly config;
|
|
6
6
|
constructor(config: ContextModuleConfig);
|
|
7
7
|
getTypedDataFilters({ chainId, address, schema, version, }: GetTypedDataFiltersParams): Promise<Either<Error, GetTypedDataFiltersResult>>;
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
private
|
|
8
|
+
private isInstructionFieldV1;
|
|
9
|
+
private isInstructionFieldV2;
|
|
10
|
+
private isInstructionFieldV2WithCoinRef;
|
|
11
|
+
private isInstructionContractInfo;
|
|
11
12
|
private sortTypes;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=HttpTypedDataDataSource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpTypedDataDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/typed-data/data/HttpTypedDataDataSource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAGhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpTypedDataDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/typed-data/data/HttpTypedDataDataSource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAGhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAgB9E,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,qBACa,uBAAwB,YAAW,mBAAmB;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAG7D,mBAAmB,CAAC,EAC/B,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CACpC,MAAM,CAAC,KAAK,EAAE,yBAAyB,CAAC,CACzC;IAoGD,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,SAAS;CAUlB"}
|
|
@@ -28,6 +28,7 @@ let HttpTypedDataDataSource = class HttpTypedDataDataSource {
|
|
|
28
28
|
this.config = config;
|
|
29
29
|
}
|
|
30
30
|
async getTypedDataFilters({ chainId, address, schema, version, }) {
|
|
31
|
+
let messageInfo = undefined;
|
|
31
32
|
try {
|
|
32
33
|
const response = await axios_1.default.request({
|
|
33
34
|
method: "GET",
|
|
@@ -35,8 +36,9 @@ let HttpTypedDataDataSource = class HttpTypedDataDataSource {
|
|
|
35
36
|
params: {
|
|
36
37
|
contracts: address,
|
|
37
38
|
chain_id: chainId,
|
|
38
|
-
output: "
|
|
39
|
-
|
|
39
|
+
output: "descriptors_eip712",
|
|
40
|
+
descriptors_eip712_version: version,
|
|
41
|
+
descriptors_eip712: "<set>",
|
|
40
42
|
},
|
|
41
43
|
headers: {
|
|
42
44
|
"X-Ledger-Client-Version": `context-module/${package_json_1.default.version}`,
|
|
@@ -44,47 +46,46 @@ let HttpTypedDataDataSource = class HttpTypedDataDataSource {
|
|
|
44
46
|
});
|
|
45
47
|
// Try to get the filters JSON descriptor, from address and schema hash
|
|
46
48
|
const schemaHash = (0, sha224_1.default)(JSON.stringify(this.sortTypes(schema)).replace(" ", "")).toString();
|
|
47
|
-
const filtersJson = response.data?.[0]?.
|
|
49
|
+
const filtersJson = response.data?.[0]?.descriptors_eip712?.[address]?.[schemaHash];
|
|
48
50
|
if (!filtersJson) {
|
|
49
51
|
return (0, purify_ts_1.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${address} on chain ${chainId} for schema ${schemaHash}`));
|
|
50
52
|
}
|
|
51
53
|
// Parse the message type, if available
|
|
52
|
-
if (!filtersJson.
|
|
53
|
-
typeof filtersJson.contractName.label !== "string" ||
|
|
54
|
-
typeof filtersJson.contractName.signature !== "string" ||
|
|
55
|
-
!Array.isArray(filtersJson.fields)) {
|
|
54
|
+
if (!filtersJson.schema || !Array.isArray(filtersJson.instructions)) {
|
|
56
55
|
return (0, purify_ts_1.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`));
|
|
57
56
|
}
|
|
58
|
-
const messageInfo = {
|
|
59
|
-
displayName: filtersJson.contractName.label,
|
|
60
|
-
filtersCount: filtersJson.fields.length,
|
|
61
|
-
signature: filtersJson.contractName.signature,
|
|
62
|
-
};
|
|
63
57
|
// Parse all the filters
|
|
64
58
|
const filters = [];
|
|
65
|
-
for (const field of filtersJson.
|
|
66
|
-
if (this.
|
|
59
|
+
for (const field of filtersJson.instructions) {
|
|
60
|
+
if (this.isInstructionContractInfo(field)) {
|
|
61
|
+
messageInfo = {
|
|
62
|
+
displayName: field.display_name,
|
|
63
|
+
signature: field.signatures[this.config.cal.mode],
|
|
64
|
+
filtersCount: field.field_mappers_count,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
else if (version === "v1" && this.isInstructionFieldV1(field)) {
|
|
67
68
|
filters.push({
|
|
68
69
|
type: "raw",
|
|
69
|
-
displayName: field.
|
|
70
|
-
path: field.
|
|
71
|
-
signature: field.
|
|
70
|
+
displayName: field.display_name,
|
|
71
|
+
path: field.field_path,
|
|
72
|
+
signature: field.signatures[this.config.cal.mode],
|
|
72
73
|
});
|
|
73
74
|
}
|
|
74
|
-
else if (this.
|
|
75
|
+
else if (this.isInstructionFieldV2(field)) {
|
|
75
76
|
filters.push({
|
|
76
77
|
type: field.format,
|
|
77
|
-
displayName: field.
|
|
78
|
-
path: field.
|
|
79
|
-
signature: field.
|
|
78
|
+
displayName: field.display_name,
|
|
79
|
+
path: field.field_path,
|
|
80
|
+
signature: field.signatures[this.config.cal.mode],
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
|
-
else if (this.
|
|
83
|
+
else if (this.isInstructionFieldV2WithCoinRef(field)) {
|
|
83
84
|
filters.push({
|
|
84
85
|
type: field.format,
|
|
85
|
-
displayName: field.
|
|
86
|
-
path: field.
|
|
87
|
-
signature: field.
|
|
86
|
+
displayName: field.display_name,
|
|
87
|
+
path: field.field_path,
|
|
88
|
+
signature: field.signatures[this.config.cal.mode],
|
|
88
89
|
tokenIndex: field.coin_ref,
|
|
89
90
|
});
|
|
90
91
|
}
|
|
@@ -92,37 +93,56 @@ let HttpTypedDataDataSource = class HttpTypedDataDataSource {
|
|
|
92
93
|
return (0, purify_ts_1.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${address} on chain ${chainId} for schema ${schemaHash}`));
|
|
93
94
|
}
|
|
94
95
|
}
|
|
96
|
+
if (!messageInfo) {
|
|
97
|
+
return (0, purify_ts_1.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`));
|
|
98
|
+
}
|
|
95
99
|
return (0, purify_ts_1.Right)({ messageInfo, filters });
|
|
96
100
|
}
|
|
97
101
|
catch (_error) {
|
|
98
102
|
return (0, purify_ts_1.Left)(new Error("[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations"));
|
|
99
103
|
}
|
|
100
104
|
}
|
|
101
|
-
|
|
105
|
+
isInstructionFieldV1(data) {
|
|
106
|
+
// NOTE: Currently the backend return the same structure for V1 and V2,
|
|
107
|
+
// so we can't distinguish them here, but we can still check the required fields
|
|
102
108
|
return (typeof data === "object" &&
|
|
103
|
-
typeof data.
|
|
104
|
-
typeof data.
|
|
105
|
-
typeof data.
|
|
106
|
-
|
|
109
|
+
typeof data.display_name === "string" &&
|
|
110
|
+
typeof data.field_path === "string" &&
|
|
111
|
+
typeof data.signatures === "object" &&
|
|
112
|
+
typeof data.signatures.prod === "string" &&
|
|
113
|
+
typeof data.signatures.test === "string");
|
|
107
114
|
}
|
|
108
|
-
|
|
115
|
+
isInstructionFieldV2(data) {
|
|
109
116
|
return (typeof data === "object" &&
|
|
110
|
-
typeof data.
|
|
111
|
-
typeof data.
|
|
112
|
-
typeof data.
|
|
117
|
+
typeof data.display_name === "string" &&
|
|
118
|
+
typeof data.field_path === "string" &&
|
|
119
|
+
typeof data.signatures === "object" &&
|
|
120
|
+
typeof data.signatures.prod === "string" &&
|
|
121
|
+
typeof data.signatures.test === "string" &&
|
|
113
122
|
typeof data.format === "string" &&
|
|
114
123
|
["raw", "datetime"].includes(data.format) &&
|
|
115
|
-
|
|
124
|
+
data.coin_ref === undefined);
|
|
116
125
|
}
|
|
117
|
-
|
|
126
|
+
isInstructionFieldV2WithCoinRef(data) {
|
|
118
127
|
return (typeof data === "object" &&
|
|
119
|
-
typeof data.
|
|
120
|
-
typeof data.
|
|
121
|
-
typeof data.
|
|
128
|
+
typeof data.display_name === "string" &&
|
|
129
|
+
typeof data.field_path === "string" &&
|
|
130
|
+
typeof data.signatures === "object" &&
|
|
131
|
+
typeof data.signatures.prod === "string" &&
|
|
132
|
+
typeof data.signatures.test === "string" &&
|
|
122
133
|
typeof data.format === "string" &&
|
|
123
134
|
["token", "amount"].includes(data.format) &&
|
|
124
135
|
typeof data.coin_ref === "number");
|
|
125
136
|
}
|
|
137
|
+
isInstructionContractInfo(data) {
|
|
138
|
+
return (typeof data === "object" &&
|
|
139
|
+
typeof data.display_name === "string" &&
|
|
140
|
+
typeof data.field_mappers_count === "number" &&
|
|
141
|
+
typeof data.signatures === "object" &&
|
|
142
|
+
typeof data.signatures.prod === "string" &&
|
|
143
|
+
typeof data.signatures.test === "string" &&
|
|
144
|
+
data.field_path === undefined);
|
|
145
|
+
}
|
|
126
146
|
sortTypes(types) {
|
|
127
147
|
return Object.fromEntries(Object.entries(types)
|
|
128
148
|
.sort(([aKey], [bKey]) => aKey.localeCompare(bKey))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpTypedDataDataSource.js","sourceRoot":"","sources":["../../../../../src/typed-data/data/HttpTypedDataDataSource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,8DAAsC;AACtC,yCAA+C;AAC/C,yCAAgD;AAEhD,yDAAsD;AAOtD,sEAAyC;
|
|
1
|
+
{"version":3,"file":"HttpTypedDataDataSource.js","sourceRoot":"","sources":["../../../../../src/typed-data/data/HttpTypedDataDataSource.ts"],"names":[],"mappings":"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"}
|