Skip to content

Commit 6e736ff

Browse files
committed
feat: restore claims inside lit actions signature aggregation
1 parent fcc5757 commit 6e736ff

File tree

5 files changed

+185
-109
lines changed

5 files changed

+185
-109
lines changed

packages/lit-node-client-nodejs/src/lib/helpers/get-claims-list.test.ts

Lines changed: 86 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,142 @@
1-
import { NodeShare } from '@lit-protocol/types';
1+
import { ExecuteJsValueResponse } from '@lit-protocol/types';
2+
23
import { getClaimsList } from './get-claims-list';
34

45
describe('getClaimsList', () => {
56
it('should return an empty array if responseData is empty', () => {
6-
const responseData: NodeShare[] = [];
7+
const responseData: ExecuteJsValueResponse[] = [];
78
const result = getClaimsList(responseData);
89
expect(result).toEqual([]);
910
});
1011

1112
it('should parse the real data correctly', () => {
12-
const responseData = [
13+
const responseData: ExecuteJsValueResponse[] = [
1314
{
1415
success: true,
15-
signedData: {},
16+
signedData: {
17+
signEcdsa: {
18+
sigType: 'EcdsaK256Sha256',
19+
signatureShare:
20+
'{"EcdsaSignedMessageShare":{"digest":"7d87c5ea75f7378bb701e404c50639161af3eff66293e9f375b5f17eb50476f4","result":"success","share_id":"\\"816E54B265612C92CD87FC32892C024C9E2DD5FA67AA20FED4816A49A560FC03\\"","peer_id":"b104a1b35585fec58cbb632d17fbe60b10297d7853261ea9054d5e372952936a","signature_share":"\\"B4C05B5662A5FA4316E818DEDDA26FE49BC255FD18CEAAE737918B76860E0603\\"","big_r":"\\"025C4C4E1C1450CF2BB52A6D9B47E351FCB6AD61721F6EB1D1B9D07885FEEF17BF\\"","compressed_public_key":"\\"0250a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da95081\\"","public_key":"\\"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e\\"","sig_type":"EcdsaK256Sha256"}}',
21+
publicKey:
22+
'"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e"',
23+
sigName: 'signEcdsa',
24+
},
25+
ethPersonalSignMessageEcdsa: {
26+
sigType: 'EcdsaK256Sha256',
27+
signatureShare:
28+
'{"EcdsaSignedMessageShare":{"digest":"04f09ca42a7f2d7268e756c590c5e29de79dcb28b55b01f8c1211a31438a3e62","result":"success","share_id":"\\"816E54B265612C92CD87FC32892C024C9E2DD5FA67AA20FED4816A49A560FC03\\"","peer_id":"b104a1b35585fec58cbb632d17fbe60b10297d7853261ea9054d5e372952936a","signature_share":"\\"F8C932F4D1CD0590EE602E3BD38DF8E654D60CD92D118FCCBF5E0D1F6F5DC9C6\\"","big_r":"\\"031B4BFE05DA0235CEEED499049FA415FE9C1D03BE6DD149EB5740972655628F42\\"","compressed_public_key":"\\"0250a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da95081\\"","public_key":"\\"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e\\"","sig_type":"EcdsaK256Sha256"}}',
29+
publicKey:
30+
'"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e"',
31+
sigName: 'ethPersonalSignMessageEcdsa',
32+
},
33+
},
1634
decryptedData: {},
1735
claimData: {
18-
foo: {
36+
claimKey: {
1937
signature:
20-
'36ffccaec30f52730dcc6fa411383dd23233be55da5bce7e9e0161dc88cfd0541a7f18f9dbb37677f660bc812ff6d29c1c3f92cb7245c0e20f97787ff3324ad31c',
38+
'09c8030422c182ff583005e1f28649f37543d6c7486a0b750a95e31b9b374ebe7d5636c962c493ef5caa2bbb0795f86668e4ffd1de3bea8606aefbc0d8e88bd31b',
2139
derivedKeyId:
22-
'22c14f271322473459c456056ffc6e1c0dc1efcb2d15e5be538ad081b224b3d0',
40+
'cd27cca0fcb92698b199970c75a560437d32f39849acea8f0cb0adea745dd5ea',
2341
},
2442
},
25-
response: '',
26-
logs: '',
43+
response:
44+
'{"signAndCombineEcdsa":"{\\"r\\":\\"944a5b7290ea8d887156644d0a080561c87e1487459ffe8b31330e4e18a92588\\",\\"s\\":\\"66bf328efe592b25a3e134f66a8e7e6364c9f6787082fe34dcefaed3facee7dc\\",\\"v\\":1}","signEcdsa":"success","ethPersonalSignMessageEcdsa":"success","foo":"bar"}',
45+
logs: '===== starting\n===== responding\n',
2746
},
2847
{
2948
success: true,
30-
signedData: {},
49+
signedData: {
50+
signEcdsa: {
51+
sigType: 'EcdsaK256Sha256',
52+
signatureShare:
53+
'{"EcdsaSignedMessageShare":{"digest":"7d87c5ea75f7378bb701e404c50639161af3eff66293e9f375b5f17eb50476f4","result":"success","share_id":"\\"989DD924B8821903330AC0801F99EB27E3E5235EE299B2A06A611780EC0C7AE1\\"","peer_id":"5d6549a90c835b672953dec25b20f278de72b5a47019c74a2e4e8207e01b684a","signature_share":"\\"193837FC7153CBDFEC9A358FAD6EB2919DD10C66CA1B81F65245DBE6C352EA0E\\"","big_r":"\\"025C4C4E1C1450CF2BB52A6D9B47E351FCB6AD61721F6EB1D1B9D07885FEEF17BF\\"","compressed_public_key":"\\"0250a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da95081\\"","public_key":"\\"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e\\"","sig_type":"EcdsaK256Sha256"}}',
54+
publicKey:
55+
'"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e"',
56+
sigName: 'signEcdsa',
57+
},
58+
ethPersonalSignMessageEcdsa: {
59+
sigType: 'EcdsaK256Sha256',
60+
signatureShare:
61+
'{"EcdsaSignedMessageShare":{"digest":"04f09ca42a7f2d7268e756c590c5e29de79dcb28b55b01f8c1211a31438a3e62","result":"success","share_id":"\\"989DD924B8821903330AC0801F99EB27E3E5235EE299B2A06A611780EC0C7AE1\\"","peer_id":"5d6549a90c835b672953dec25b20f278de72b5a47019c74a2e4e8207e01b684a","signature_share":"\\"6D088286CEED1699BB8B4B49E2343EE7A34B29030B8A10E03C50C19C25C9D164\\"","big_r":"\\"031B4BFE05DA0235CEEED499049FA415FE9C1D03BE6DD149EB5740972655628F42\\"","compressed_public_key":"\\"0250a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da95081\\"","public_key":"\\"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e\\"","sig_type":"EcdsaK256Sha256"}}',
62+
publicKey:
63+
'"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e"',
64+
sigName: 'ethPersonalSignMessageEcdsa',
65+
},
66+
},
3167
decryptedData: {},
3268
claimData: {
33-
foo: {
69+
claimKey: {
3470
signature:
35-
'ac4e1b37a969af3a03331dabb9418d137cec9e8b366ff7cafcf6688ff07b15d070c42c8c16b0f945ea03653a0d286f2f59fdef529db38e7c33b65aae4b287ce71b',
71+
'c8395ddc0b3fd9de46e4342656eddf13750f34d8b062d32a31dfa15430d6c4d901245be4aaa17a316124057740f3166c249fae93a1fa826b7f60aea4783fc9ca1b',
3672
derivedKeyId:
37-
'22c14f271322473459c456056ffc6e1c0dc1efcb2d15e5be538ad081b224b3d0',
73+
'cd27cca0fcb92698b199970c75a560437d32f39849acea8f0cb0adea745dd5ea',
3874
},
3975
},
40-
response: '',
41-
logs: '',
76+
response:
77+
'{"signAndCombineEcdsa":"{\\"r\\":\\"944a5b7290ea8d887156644d0a080561c87e1487459ffe8b31330e4e18a92588\\",\\"s\\":\\"66bf328efe592b25a3e134f66a8e7e6364c9f6787082fe34dcefaed3facee7dc\\",\\"v\\":1}","signEcdsa":"success","ethPersonalSignMessageEcdsa":"success","foo":"bar"}',
78+
logs: '===== starting\n===== responding\n',
4279
},
4380
{
4481
success: true,
45-
signedData: {},
82+
signedData: {
83+
signEcdsa: {
84+
sigType: 'EcdsaK256Sha256',
85+
signatureShare:
86+
'{"EcdsaSignedMessageShare":{"digest":"7d87c5ea75f7378bb701e404c50639161af3eff66293e9f375b5f17eb50476f4","result":"success","share_id":"\\"B8EF7C21FAF54664646B64869D1B12861F6D905F1F1F095E60F7238806252AE3\\"","peer_id":"6555c8c26671f5e21611adba0a3c31b28128443f2d76c2818db169efcff38151","signature_share":"\\"AC369404EAAC0E47153FFCF2D79769C1EEFC4709053E985B69ADA4076693BE56\\"","big_r":"\\"025C4C4E1C1450CF2BB52A6D9B47E351FCB6AD61721F6EB1D1B9D07885FEEF17BF\\"","compressed_public_key":"\\"0250a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da95081\\"","public_key":"\\"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e\\"","sig_type":"EcdsaK256Sha256"}}',
87+
publicKey:
88+
'"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e"',
89+
sigName: 'signEcdsa',
90+
},
91+
ethPersonalSignMessageEcdsa: {
92+
sigType: 'EcdsaK256Sha256',
93+
signatureShare:
94+
'{"EcdsaSignedMessageShare":{"digest":"04f09ca42a7f2d7268e756c590c5e29de79dcb28b55b01f8c1211a31438a3e62","result":"success","share_id":"\\"B8EF7C21FAF54664646B64869D1B12861F6D905F1F1F095E60F7238806252AE3\\"","peer_id":"6555c8c26671f5e21611adba0a3c31b28128443f2d76c2818db169efcff38151","signature_share":"\\"0ECCE198FEBD337740DB617ADEB558CF8E00EC18A6783D88AAD8F73A31A0F4B1\\"","big_r":"\\"031B4BFE05DA0235CEEED499049FA415FE9C1D03BE6DD149EB5740972655628F42\\"","compressed_public_key":"\\"0250a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da95081\\"","public_key":"\\"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e\\"","sig_type":"EcdsaK256Sha256"}}',
95+
publicKey:
96+
'"0450a6083580384cbcddd0d809165ba8ee53b5e768724c7b6080ae55790da9508125810f89bab7d56077e37be1681463a6262108e50fba439d94808f3cb1cc704e"',
97+
sigName: 'ethPersonalSignMessageEcdsa',
98+
},
99+
},
46100
decryptedData: {},
47101
claimData: {
48-
foo: {
102+
claimKey: {
49103
signature:
50-
'fd5bad778bd70ece43616c0531b13a70bf9b0a853d38aa7b92560a0070e59e7b619979bc79b1ac2dc6886b44a2bdb402e5804a00d010f415d8cf5c6673540d131c',
104+
'96972387c7322f29172936baebd516461fff7e0dee7f378bb258d88bd0109e582425e0211db85fce47da34729bb70b8aed07b79d6be6b1553907e21069e4186e1b',
51105
derivedKeyId:
52-
'22c14f271322473459c456056ffc6e1c0dc1efcb2d15e5be538ad081b224b3d0',
106+
'cd27cca0fcb92698b199970c75a560437d32f39849acea8f0cb0adea745dd5ea',
53107
},
54108
},
55-
response: '',
56-
logs: '',
109+
response:
110+
'{"signAndCombineEcdsa":"{\\"r\\":\\"944a5b7290ea8d887156644d0a080561c87e1487459ffe8b31330e4e18a92588\\",\\"s\\":\\"66bf328efe592b25a3e134f66a8e7e6364c9f6787082fe34dcefaed3facee7dc\\",\\"v\\":1}","signEcdsa":"success","ethPersonalSignMessageEcdsa":"success","foo":"bar"}',
111+
logs: '===== starting\n===== responding\n',
57112
},
58-
] as NodeShare[];
113+
];
59114

60115
const result = getClaimsList(responseData);
61116

62117
expect(result).toEqual([
63118
{
64-
foo: {
119+
claimKey: {
65120
signature:
66-
'36ffccaec30f52730dcc6fa411383dd23233be55da5bce7e9e0161dc88cfd0541a7f18f9dbb37677f660bc812ff6d29c1c3f92cb7245c0e20f97787ff3324ad31c',
121+
'09c8030422c182ff583005e1f28649f37543d6c7486a0b750a95e31b9b374ebe7d5636c962c493ef5caa2bbb0795f86668e4ffd1de3bea8606aefbc0d8e88bd31b',
67122
derivedKeyId:
68-
'22c14f271322473459c456056ffc6e1c0dc1efcb2d15e5be538ad081b224b3d0',
123+
'cd27cca0fcb92698b199970c75a560437d32f39849acea8f0cb0adea745dd5ea',
69124
},
70125
},
71126
{
72-
foo: {
127+
claimKey: {
73128
signature:
74-
'ac4e1b37a969af3a03331dabb9418d137cec9e8b366ff7cafcf6688ff07b15d070c42c8c16b0f945ea03653a0d286f2f59fdef529db38e7c33b65aae4b287ce71b',
129+
'c8395ddc0b3fd9de46e4342656eddf13750f34d8b062d32a31dfa15430d6c4d901245be4aaa17a316124057740f3166c249fae93a1fa826b7f60aea4783fc9ca1b',
75130
derivedKeyId:
76-
'22c14f271322473459c456056ffc6e1c0dc1efcb2d15e5be538ad081b224b3d0',
131+
'cd27cca0fcb92698b199970c75a560437d32f39849acea8f0cb0adea745dd5ea',
77132
},
78133
},
79134
{
80-
foo: {
135+
claimKey: {
81136
signature:
82-
'fd5bad778bd70ece43616c0531b13a70bf9b0a853d38aa7b92560a0070e59e7b619979bc79b1ac2dc6886b44a2bdb402e5804a00d010f415d8cf5c6673540d131c',
137+
'96972387c7322f29172936baebd516461fff7e0dee7f378bb258d88bd0109e582425e0211db85fce47da34729bb70b8aed07b79d6be6b1553907e21069e4186e1b',
83138
derivedKeyId:
84-
'22c14f271322473459c456056ffc6e1c0dc1efcb2d15e5be538ad081b224b3d0',
139+
'cd27cca0fcb92698b199970c75a560437d32f39849acea8f0cb0adea745dd5ea',
85140
},
86141
},
87142
]);

packages/lit-node-client-nodejs/src/lib/helpers/get-claims-list.ts

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,14 @@
1-
import { ClaimsList, NodeShare } from '@lit-protocol/types';
1+
import { applyTransformations, cleanStringValues } from '@lit-protocol/misc';
2+
import { ClaimsList, ExecuteJsValueResponse } from '@lit-protocol/types';
23

34
/**
45
* Retrieves a list of claims from the provided response data.
56
* @param responseData The response data containing the claims.
67
* @returns An array of claims.
78
*/
8-
export const getClaimsList = (responseData: NodeShare[]): ClaimsList => {
9+
export const getClaimsList = (responseData: ExecuteJsValueResponse[]): ClaimsList => {
910
const claimsList = responseData
10-
.map((r) => {
11-
const { claimData } = r;
12-
if (claimData) {
13-
for (const key of Object.keys(claimData)) {
14-
for (const subkey of Object.keys(claimData[key])) {
15-
if (typeof claimData[key][subkey] == 'string') {
16-
claimData[key][subkey] = claimData[key][subkey].replaceAll(
17-
'"',
18-
''
19-
);
20-
}
21-
}
22-
}
23-
return claimData;
24-
}
25-
return null;
26-
})
11+
.map(rd => applyTransformations(rd.claimData, [cleanStringValues]))
2712
.filter((item) => item !== null);
2813

2914
return claimsList as unknown as ClaimsList;

0 commit comments

Comments
 (0)