@openzeppelin/miden-multisig-client 0.14.5 → 0.14.6
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/README.md +32 -0
- package/dist/client.d.ts +21 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +20 -0
- package/dist/client.js.map +1 -1
- package/dist/client.test.js +77 -0
- package/dist/client.test.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lookupAuth.d.ts +29 -0
- package/dist/lookupAuth.d.ts.map +1 -0
- package/dist/lookupAuth.js +85 -0
- package/dist/lookupAuth.js.map +1 -0
- package/dist/lookupAuth.test.d.ts +2 -0
- package/dist/lookupAuth.test.d.ts.map +1 -0
- package/dist/lookupAuth.test.js +137 -0
- package/dist/lookupAuth.test.js.map +1 -0
- package/dist/signers/ecdsa.d.ts +5 -0
- package/dist/signers/ecdsa.d.ts.map +1 -1
- package/dist/signers/ecdsa.js +9 -0
- package/dist/signers/ecdsa.js.map +1 -1
- package/dist/signers/falcon.d.ts +5 -0
- package/dist/signers/falcon.d.ts.map +1 -1
- package/dist/signers/falcon.js +9 -0
- package/dist/signers/falcon.js.map +1 -1
- package/dist/signers/miden-wallet.d.ts +5 -0
- package/dist/signers/miden-wallet.d.ts.map +1 -1
- package/dist/signers/miden-wallet.js +12 -0
- package/dist/signers/miden-wallet.js.map +1 -1
- package/dist/signers/miden-wallet.test.js +36 -0
- package/dist/signers/miden-wallet.test.js.map +1 -1
- package/dist/signers/para.d.ts +5 -0
- package/dist/signers/para.d.ts.map +1 -1
- package/dist/signers/para.js +9 -0
- package/dist/signers/para.js.map +1 -1
- package/dist/signers/para.test.js +19 -0
- package/dist/signers/para.test.js.map +1 -1
- package/package.json +3 -3
- package/src/client.test.ts +97 -0
- package/src/client.ts +36 -0
- package/src/index.ts +6 -1
- package/src/lookupAuth.test.ts +184 -0
- package/src/lookupAuth.ts +93 -0
- package/src/signers/ecdsa.ts +10 -0
- package/src/signers/falcon.ts +10 -0
- package/src/signers/miden-wallet.test.ts +48 -0
- package/src/signers/miden-wallet.ts +13 -0
- package/src/signers/para.test.ts +26 -0
- package/src/signers/para.ts +10 -0
package/dist/signers/ecdsa.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AccountId } from '@miden-sdk/miden-sdk';
|
|
2
2
|
import { bytesToHex, normalizeHexWord } from '../utils/encoding.js';
|
|
3
3
|
import { AuthDigest } from '../utils/digest.js';
|
|
4
|
+
import { lookupAuthDigest } from '../lookupAuth.js';
|
|
4
5
|
export class EcdsaSigner {
|
|
5
6
|
commitment;
|
|
6
7
|
publicKey;
|
|
@@ -27,6 +28,14 @@ export class EcdsaSigner {
|
|
|
27
28
|
const word = AuthDigest.fromCommitmentHex(commitmentHex);
|
|
28
29
|
return this.signWord(word);
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Sign a `LookupAuthMessage` digest for the `/state/lookup` endpoint.
|
|
33
|
+
* Account-less; used directly by `recoverByKey`.
|
|
34
|
+
*/
|
|
35
|
+
async signLookupMessage(keyCommitmentHex, timestampMs) {
|
|
36
|
+
const digest = lookupAuthDigest(timestampMs, keyCommitmentHex);
|
|
37
|
+
return this.signWord(digest);
|
|
38
|
+
}
|
|
30
39
|
async bindAccountKey(midenClient, accountId) {
|
|
31
40
|
const targetAccountId = AccountId.fromHex(accountId);
|
|
32
41
|
const existingAccountId = await midenClient.keystore.getAccountId(this.publicKeyCommitment);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../src/signers/ecdsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA8C,MAAM,sBAAsB,CAAC;AAE7F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../src/signers/ecdsa.ts"],"names":[],"mappings":"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"}
|
package/dist/signers/falcon.d.ts
CHANGED
|
@@ -11,6 +11,11 @@ export declare class FalconSigner implements Signer {
|
|
|
11
11
|
signAccountIdWithTimestamp(accountId: string, timestamp: number): Promise<string>;
|
|
12
12
|
signRequest(accountId: string, timestamp: number, requestPayload: RequestAuthPayload): Promise<string>;
|
|
13
13
|
signCommitment(commitmentHex: string): Promise<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Sign a `LookupAuthMessage` digest for the `/state/lookup` endpoint.
|
|
16
|
+
* Account-less; used directly by `recoverByKey`.
|
|
17
|
+
*/
|
|
18
|
+
signLookupMessage(keyCommitmentHex: string, timestampMs: number): Promise<string>;
|
|
14
19
|
bindAccountKey(midenClient: MidenClient, accountId: string): Promise<void>;
|
|
15
20
|
private signWord;
|
|
16
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"falcon.d.ts","sourceRoot":"","sources":["../../src/signers/falcon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAa,aAAa,EAAE,KAAK,WAAW,EAAa,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"falcon.d.ts","sourceRoot":"","sources":["../../src/signers/falcon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAa,aAAa,EAAE,KAAK,WAAW,EAAa,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK3D,qBAAa,YAAa,YAAW,MAAM;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAO;gBAE/B,SAAS,EAAE,aAAa;IAU9B,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjF,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,kBAAkB,GACjC,OAAO,CAAC,MAAM,CAAC;IAKZ,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D;;;OAGG;IACG,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjF,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchF,OAAO,CAAC,QAAQ;CAMjB"}
|
package/dist/signers/falcon.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AccountId } from '@miden-sdk/miden-sdk';
|
|
2
2
|
import { bytesToHex } from '../utils/encoding.js';
|
|
3
3
|
import { AuthDigest } from '../utils/digest.js';
|
|
4
|
+
import { lookupAuthDigest } from '../lookupAuth.js';
|
|
4
5
|
export class FalconSigner {
|
|
5
6
|
commitment;
|
|
6
7
|
publicKey;
|
|
@@ -28,6 +29,14 @@ export class FalconSigner {
|
|
|
28
29
|
const word = AuthDigest.fromCommitmentHex(commitmentHex);
|
|
29
30
|
return this.signWord(word);
|
|
30
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Sign a `LookupAuthMessage` digest for the `/state/lookup` endpoint.
|
|
34
|
+
* Account-less; used directly by `recoverByKey`.
|
|
35
|
+
*/
|
|
36
|
+
async signLookupMessage(keyCommitmentHex, timestampMs) {
|
|
37
|
+
const digest = lookupAuthDigest(timestampMs, keyCommitmentHex);
|
|
38
|
+
return this.signWord(digest);
|
|
39
|
+
}
|
|
31
40
|
async bindAccountKey(midenClient, accountId) {
|
|
32
41
|
const targetAccountId = AccountId.fromHex(accountId);
|
|
33
42
|
const existingAccountId = await midenClient.keystore.getAccountId(this.publicKeyCommitment);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"falcon.js","sourceRoot":"","sources":["../../src/signers/falcon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA8C,MAAM,sBAAsB,CAAC;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"falcon.js","sourceRoot":"","sources":["../../src/signers/falcon.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,11 @@ export declare class MidenWalletSigner implements Signer {
|
|
|
13
13
|
signAccountIdWithTimestamp(accountId: string, timestamp: number): Promise<string>;
|
|
14
14
|
signRequest(accountId: string, timestamp: number, requestPayload: RequestAuthPayload): Promise<string>;
|
|
15
15
|
signCommitment(commitmentHex: string): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Sign a `LookupAuthMessage` digest for the `/state/lookup` endpoint.
|
|
18
|
+
* Account-less; used directly by `recoverByKey`.
|
|
19
|
+
*/
|
|
20
|
+
signLookupMessage(keyCommitmentHex: string, timestampMs: number): Promise<string>;
|
|
16
21
|
private signWord;
|
|
17
22
|
}
|
|
18
23
|
//# sourceMappingURL=miden-wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miden-wallet.d.ts","sourceRoot":"","sources":["../../src/signers/miden-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"miden-wallet.d.ts","sourceRoot":"","sources":["../../src/signers/miden-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAM3D,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAClF;AAED,qBAAa,iBAAkB,YAAW,MAAM;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;gBAG9C,MAAM,EAAE,oBAAoB,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,eAAe,CAAC,EAAE,MAAM,EACxB,SAAS,CAAC,EAAE,MAAM;IASd,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjF,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,kBAAkB,GACjC,OAAO,CAAC,MAAM,CAAC;IAWZ,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D;;;OAGG;IACG,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAQzE,QAAQ;CAMvB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AuthDigest } from '../utils/digest.js';
|
|
2
2
|
import { bytesToHex } from '../utils/encoding.js';
|
|
3
|
+
import { lookupAuthDigest } from '../lookupAuth.js';
|
|
3
4
|
import { wordToBytes } from '../utils/word.js';
|
|
4
5
|
export class MidenWalletSigner {
|
|
5
6
|
commitment;
|
|
@@ -34,6 +35,17 @@ export class MidenWalletSigner {
|
|
|
34
35
|
const word = AuthDigest.fromCommitmentHex(commitmentHex);
|
|
35
36
|
return this.signWord(word);
|
|
36
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Sign a `LookupAuthMessage` digest for the `/state/lookup` endpoint.
|
|
40
|
+
* Account-less; used directly by `recoverByKey`.
|
|
41
|
+
*/
|
|
42
|
+
async signLookupMessage(keyCommitmentHex, timestampMs) {
|
|
43
|
+
if (this.localAuthSigner?.signLookupMessage) {
|
|
44
|
+
return this.localAuthSigner.signLookupMessage(keyCommitmentHex, timestampMs);
|
|
45
|
+
}
|
|
46
|
+
const digest = lookupAuthDigest(timestampMs, keyCommitmentHex);
|
|
47
|
+
return this.signWord(digest);
|
|
48
|
+
}
|
|
37
49
|
async signWord(word) {
|
|
38
50
|
const bytes = wordToBytes(word);
|
|
39
51
|
const signatureBytes = await this.wallet.signBytes(bytes, 'word');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miden-wallet.js","sourceRoot":"","sources":["../../src/signers/miden-wallet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM/C,MAAM,OAAO,iBAAiB;IACnB,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,MAAM,CAAkB;IAChB,MAAM,CAAuB;IAC7B,eAAe,CAAgB;IAEhD,YACE,MAA4B,EAC5B,UAAkB,EAClB,MAAuB,EACvB,eAAwB,EACxB,SAAkB;QAElB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,eAAe,EAAE,SAAS,IAAI,UAAU,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,SAAiB,EAAE,SAAiB;QACnE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,SAAiB,EACjB,cAAkC;QAElC,IAAI,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,aAAqB;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAuD;QAC5E,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"miden-wallet.js","sourceRoot":"","sources":["../../src/signers/miden-wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,42 @@ describe('MidenWalletSigner', () => {
|
|
|
121
121
|
expect(mockWallet.signBytes).toHaveBeenCalledWith(expect.any(Uint8Array), 'word');
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
|
+
describe('signLookupMessage', () => {
|
|
125
|
+
it('delegates to localAuthSigner when present', async () => {
|
|
126
|
+
const localSigner = {
|
|
127
|
+
commitment: '0xlocal',
|
|
128
|
+
publicKey: '0xlocalpubkey',
|
|
129
|
+
scheme: 'ecdsa',
|
|
130
|
+
signAccountIdWithTimestamp: vi.fn(),
|
|
131
|
+
signCommitment: vi.fn(),
|
|
132
|
+
signLookupMessage: vi.fn().mockResolvedValue('0xlocallookupsig'),
|
|
133
|
+
};
|
|
134
|
+
const signer = new MidenWalletSigner(mockWallet, '0xcommitment', 'ecdsa', localSigner);
|
|
135
|
+
const result = await signer.signLookupMessage('0x' + 'cc'.repeat(32), 1700000000);
|
|
136
|
+
expect(result).toBe('0xlocallookupsig');
|
|
137
|
+
expect(localSigner.signLookupMessage).toHaveBeenCalledWith('0x' + 'cc'.repeat(32), 1700000000);
|
|
138
|
+
expect(mockWallet.signBytes).not.toHaveBeenCalled();
|
|
139
|
+
});
|
|
140
|
+
it('uses wallet signing over the LookupAuthMessage digest when no localAuthSigner', async () => {
|
|
141
|
+
const signer = new MidenWalletSigner(mockWallet, '0xcommitment', 'falcon');
|
|
142
|
+
const result = await signer.signLookupMessage('0x' + 'cc'.repeat(32), 1700000000);
|
|
143
|
+
expect(mockWallet.signBytes).toHaveBeenCalledTimes(1);
|
|
144
|
+
expect(mockWallet.signBytes).toHaveBeenCalledWith(expect.any(Uint8Array), 'word');
|
|
145
|
+
expect(result).toMatch(/^0x/);
|
|
146
|
+
});
|
|
147
|
+
it('falls back to wallet signing when localAuthSigner does not implement signLookupMessage', async () => {
|
|
148
|
+
const localSigner = {
|
|
149
|
+
commitment: '0xlocal',
|
|
150
|
+
publicKey: '0xlocalpubkey',
|
|
151
|
+
scheme: 'ecdsa',
|
|
152
|
+
signAccountIdWithTimestamp: vi.fn(),
|
|
153
|
+
signCommitment: vi.fn(),
|
|
154
|
+
};
|
|
155
|
+
const signer = new MidenWalletSigner(mockWallet, '0xcommitment', 'ecdsa', localSigner);
|
|
156
|
+
await signer.signLookupMessage('0x' + 'cc'.repeat(32), 1700000000);
|
|
157
|
+
expect(mockWallet.signBytes).toHaveBeenCalledTimes(1);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
124
160
|
describe('signature byte stripping', () => {
|
|
125
161
|
it('should strip the first byte from wallet signature response', async () => {
|
|
126
162
|
mockWallet.signBytes.mockResolvedValue(new Uint8Array([0x00, 0xaa, 0xbb, 0xcc]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miden-wallet.test.js","sourceRoot":"","sources":["../../src/signers/miden-wallet.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"miden-wallet.test.js","sourceRoot":"","sources":["../../src/signers/miden-wallet.test.ts"],"names":[],"mappings":"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"}
|
package/dist/signers/para.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export declare class ParaSigner implements Signer {
|
|
|
16
16
|
signAccountIdWithTimestamp(accountId: string, timestamp: number): Promise<string>;
|
|
17
17
|
signRequest(accountId: string, timestamp: number, requestPayload: RequestAuthPayload): Promise<string>;
|
|
18
18
|
signCommitment(commitmentHex: string): Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Sign a `LookupAuthMessage` digest for the `/state/lookup` endpoint.
|
|
21
|
+
* Account-less; used directly by `recoverByKey`.
|
|
22
|
+
*/
|
|
23
|
+
signLookupMessage(keyCommitmentHex: string, timestampMs: number): Promise<string>;
|
|
19
24
|
private signWord;
|
|
20
25
|
}
|
|
21
26
|
//# sourceMappingURL=para.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"para.d.ts","sourceRoot":"","sources":["../../src/signers/para.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"para.d.ts","sourceRoot":"","sources":["../../src/signers/para.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO3D,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpF;AAWD,qBAAa,UAAW,YAAW,MAAM;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGhC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM;IAWb,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjF,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,kBAAkB,GACjC,OAAO,CAAC,MAAM,CAAC;IAKZ,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D;;;OAGG;IACG,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAKzE,QAAQ;CAiBvB"}
|
package/dist/signers/para.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AuthDigest } from '../utils/digest.js';
|
|
2
2
|
import { EcdsaFormat } from '../utils/ecdsa.js';
|
|
3
3
|
import { hexToBytes, uint8ArrayToBase64 } from '../utils/encoding.js';
|
|
4
|
+
import { lookupAuthDigest } from '../lookupAuth.js';
|
|
4
5
|
import { wordToBytes } from '../utils/word.js';
|
|
5
6
|
function extractSignature(response) {
|
|
6
7
|
if (!response || typeof response !== 'object') {
|
|
@@ -36,6 +37,14 @@ export class ParaSigner {
|
|
|
36
37
|
const word = AuthDigest.fromCommitmentHex(commitmentHex);
|
|
37
38
|
return this.signWord(word);
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Sign a `LookupAuthMessage` digest for the `/state/lookup` endpoint.
|
|
42
|
+
* Account-less; used directly by `recoverByKey`.
|
|
43
|
+
*/
|
|
44
|
+
async signLookupMessage(keyCommitmentHex, timestampMs) {
|
|
45
|
+
const digest = lookupAuthDigest(timestampMs, keyCommitmentHex);
|
|
46
|
+
return this.signWord(digest);
|
|
47
|
+
}
|
|
39
48
|
async signWord(word) {
|
|
40
49
|
const messageBase64 = uint8ArrayToBase64(hexToBytes(EcdsaFormat.keccakDigestHex(wordToBytes(word))));
|
|
41
50
|
const res = await this.para.signMessage({
|
package/dist/signers/para.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"para.js","sourceRoot":"","sources":["../../src/signers/para.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM/C,SAAS,gBAAgB,CAAC,QAAiB;IACzC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAI,QAAoC,CAAC,SAAS,CAAC;IAClE,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,UAAU;IACZ,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,MAAM,GAAoB,OAAO,CAAC;IAC1B,IAAI,CAAqB;IACzB,QAAQ,CAAS;IAElC,YACE,IAAwB,EACxB,QAAgB,EAChB,UAAkB,EAClB,SAAiB;QAEjB,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,SAAiB,EAAE,SAAiB;QACnE,MAAM,MAAM,GAAG,UAAU,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,SAAiB,EACjB,cAAkC;QAElC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,aAAqB;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAA4E;QACjG,MAAM,aAAa,GAAG,kBAAkB,CACtC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3D,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa;SACd,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"para.js","sourceRoot":"","sources":["../../src/signers/para.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,6 +116,25 @@ describe('ParaSigner', () => {
|
|
|
116
116
|
expect(mockPara.signMessage).toHaveBeenCalled();
|
|
117
117
|
});
|
|
118
118
|
});
|
|
119
|
+
describe('signLookupMessage', () => {
|
|
120
|
+
it('hashes the LookupAuthMessage digest word bytes before signing', async () => {
|
|
121
|
+
const signer = new ParaSigner(mockPara, 'wallet-1', '0xcommitment', validCompressedKey);
|
|
122
|
+
await signer.signLookupMessage('0x' + 'cc'.repeat(32), 1700000000);
|
|
123
|
+
const expectedDigestBytes = keccak_256(wordToBytes({
|
|
124
|
+
toFelts: () => [
|
|
125
|
+
{ asInt: () => 10n },
|
|
126
|
+
{ asInt: () => 20n },
|
|
127
|
+
{ asInt: () => 30n },
|
|
128
|
+
{ asInt: () => 40n },
|
|
129
|
+
],
|
|
130
|
+
}));
|
|
131
|
+
const expectedBase64 = uint8ArrayToBase64(expectedDigestBytes);
|
|
132
|
+
expect(mockPara.signMessage).toHaveBeenCalledWith(expect.objectContaining({
|
|
133
|
+
walletId: 'wallet-1',
|
|
134
|
+
messageBase64: expectedBase64,
|
|
135
|
+
}));
|
|
136
|
+
});
|
|
137
|
+
});
|
|
119
138
|
describe('signing denial', () => {
|
|
120
139
|
it('should throw when para returns no signature', async () => {
|
|
121
140
|
mockPara.signMessage.mockResolvedValue({ signature: undefined });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"para.test.js","sourceRoot":"","sources":["../../src/signers/para.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"para.test.js","sourceRoot":"","sources":["../../src/signers/para.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/miden-multisig-client",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.6",
|
|
4
4
|
"description": "TypeScript SDK for Miden multisig accounts with GUARDIAN integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@noble/curves": "^1.9.7",
|
|
31
|
-
"@miden-sdk/miden-sdk": "0.14.
|
|
31
|
+
"@miden-sdk/miden-sdk": "0.14.5",
|
|
32
32
|
"@noble/hashes": "^2.0.1",
|
|
33
|
-
"@openzeppelin/guardian-client": "^0.14.
|
|
33
|
+
"@openzeppelin/guardian-client": "^0.14.6"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"typescript": "^5.7.2",
|
package/src/client.test.ts
CHANGED
|
@@ -250,4 +250,101 @@ describe('MultisigClient', () => {
|
|
|
250
250
|
expect(bindAccountKey).toHaveBeenCalledWith(webClient, '0x' + 'd'.repeat(30));
|
|
251
251
|
});
|
|
252
252
|
});
|
|
253
|
+
|
|
254
|
+
// --- recoverByKey -------------------
|
|
255
|
+
|
|
256
|
+
describe('recoverByKey', () => {
|
|
257
|
+
function makeLookupCapableSigner() {
|
|
258
|
+
return {
|
|
259
|
+
commitment: '0x' + 'a'.repeat(64),
|
|
260
|
+
publicKey: '0x' + 'p'.repeat(897),
|
|
261
|
+
scheme: 'falcon' as const,
|
|
262
|
+
signAccountIdWithTimestamp: vi.fn().mockResolvedValue('0x' + 'a'.repeat(128)),
|
|
263
|
+
signRequest: vi.fn().mockReturnValue('0x' + 'a'.repeat(128)),
|
|
264
|
+
signCommitment: vi.fn().mockReturnValue('0x' + 'b'.repeat(128)),
|
|
265
|
+
signLookupMessage: vi.fn().mockResolvedValue('0x' + 'c'.repeat(762)),
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
function mockServerLookupResponse(accountIds: string[]) {
|
|
270
|
+
mockFetch.mockResolvedValueOnce({
|
|
271
|
+
ok: true,
|
|
272
|
+
json: async () => ({
|
|
273
|
+
accounts: accountIds.map((id) => ({ account_id: id })),
|
|
274
|
+
}),
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function mockServerStateResponse(accountId: string) {
|
|
279
|
+
mockFetch.mockResolvedValueOnce({
|
|
280
|
+
ok: true,
|
|
281
|
+
json: async () => ({
|
|
282
|
+
account_id: accountId,
|
|
283
|
+
commitment: '0x' + 'f'.repeat(64),
|
|
284
|
+
state_json: { data: 'base64data' },
|
|
285
|
+
created_at: '2024-01-01T00:00:00Z',
|
|
286
|
+
updated_at: '2024-01-01T00:00:00Z',
|
|
287
|
+
}),
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
it('returns one (accountId, state) pair when lookup matches a single account', async () => {
|
|
292
|
+
const client = new MultisigClient(webClient);
|
|
293
|
+
const signer = makeLookupCapableSigner();
|
|
294
|
+
const accountId = '0x7bfb0f38b0fafa103f86a805594170';
|
|
295
|
+
|
|
296
|
+
mockServerLookupResponse([accountId]);
|
|
297
|
+
mockServerStateResponse(accountId);
|
|
298
|
+
|
|
299
|
+
const recovered = await client.recoverByKey(signer);
|
|
300
|
+
|
|
301
|
+
expect(recovered).toHaveLength(1);
|
|
302
|
+
expect(recovered[0].accountId).toBe(accountId);
|
|
303
|
+
expect(recovered[0].state.commitment).toBe('0x' + 'f'.repeat(64));
|
|
304
|
+
expect(signer.signLookupMessage).toHaveBeenCalledTimes(1);
|
|
305
|
+
expect(signer.signLookupMessage).toHaveBeenCalledWith(
|
|
306
|
+
signer.commitment,
|
|
307
|
+
expect.any(Number)
|
|
308
|
+
);
|
|
309
|
+
// Lookup + getState = exactly two HTTP requests.
|
|
310
|
+
expect(mockFetch).toHaveBeenCalledTimes(2);
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
it('returns multiple (accountId, state) pairs when one commitment authorizes several accounts', async () => {
|
|
314
|
+
const client = new MultisigClient(webClient);
|
|
315
|
+
const signer = makeLookupCapableSigner();
|
|
316
|
+
const accountA = '0xaaa1';
|
|
317
|
+
const accountB = '0xbbb2';
|
|
318
|
+
|
|
319
|
+
mockServerLookupResponse([accountA, accountB]);
|
|
320
|
+
mockServerStateResponse(accountA);
|
|
321
|
+
mockServerStateResponse(accountB);
|
|
322
|
+
|
|
323
|
+
const recovered = await client.recoverByKey(signer);
|
|
324
|
+
|
|
325
|
+
expect(recovered.map((r) => r.accountId)).toEqual([accountA, accountB]);
|
|
326
|
+
// 1 lookup + 2 state fetches.
|
|
327
|
+
expect(mockFetch).toHaveBeenCalledTimes(3);
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
it('returns empty array when no account authorizes the commitment', async () => {
|
|
331
|
+
const client = new MultisigClient(webClient);
|
|
332
|
+
const signer = makeLookupCapableSigner();
|
|
333
|
+
|
|
334
|
+
mockServerLookupResponse([]);
|
|
335
|
+
|
|
336
|
+
const recovered = await client.recoverByKey(signer);
|
|
337
|
+
|
|
338
|
+
expect(recovered).toEqual([]);
|
|
339
|
+
// Only the lookup HTTP call — no per-account state fetches.
|
|
340
|
+
expect(mockFetch).toHaveBeenCalledTimes(1);
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
it('throws a clear error when the signer does not implement signLookupMessage', async () => {
|
|
344
|
+
const client = new MultisigClient(webClient);
|
|
345
|
+
// mockSigner from the outer beforeEach lacks signLookupMessage.
|
|
346
|
+
await expect(client.recoverByKey(mockSigner)).rejects.toThrow(/signLookupMessage/);
|
|
347
|
+
expect(mockFetch).not.toHaveBeenCalled();
|
|
348
|
+
});
|
|
349
|
+
});
|
|
253
350
|
});
|
package/src/client.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { type MidenClient, Account, AccountId } from '@miden-sdk/miden-sdk';
|
|
9
9
|
import { GuardianHttpClient } from '@openzeppelin/guardian-client';
|
|
10
|
+
import type { StateObject } from '@openzeppelin/guardian-client';
|
|
10
11
|
import { Multisig } from './multisig.js';
|
|
11
12
|
import { createMultisigAccount } from './account/index.js';
|
|
12
13
|
import { AccountInspector } from './inspector.js';
|
|
@@ -38,6 +39,16 @@ export interface MultisigClientConfig {
|
|
|
38
39
|
midenRpcEndpoint?: string;
|
|
39
40
|
}
|
|
40
41
|
|
|
42
|
+
/**
|
|
43
|
+
* One match returned by `MultisigClient.recoverByKey`. Pairs the discovered
|
|
44
|
+
* `accountId` with the current `state` snapshot so callers do not need to do a
|
|
45
|
+
* second round-trip per account.
|
|
46
|
+
*/
|
|
47
|
+
export interface RecoveredAccount {
|
|
48
|
+
accountId: string;
|
|
49
|
+
state: StateObject;
|
|
50
|
+
}
|
|
51
|
+
|
|
41
52
|
/**
|
|
42
53
|
* Client for creating and loading multisig accounts.
|
|
43
54
|
*
|
|
@@ -92,6 +103,31 @@ export class MultisigClient {
|
|
|
92
103
|
return this._guardianClient;
|
|
93
104
|
}
|
|
94
105
|
|
|
106
|
+
/**
|
|
107
|
+
* Recover the set of accounts a given signer authorizes by querying
|
|
108
|
+
* Guardian's `/state/lookup` endpoint and fetching state for each match.
|
|
109
|
+
* Returns `(accountId, state)` pairs; an empty array means no account on
|
|
110
|
+
* this operator authorizes the commitment (distinct from "wrong key",
|
|
111
|
+
* which would fail authentication first).
|
|
112
|
+
*
|
|
113
|
+
* @throws if `signer` does not implement `signLookupMessage`. The bundled
|
|
114
|
+
* `FalconSigner` and `EcdsaSigner` both do.
|
|
115
|
+
*/
|
|
116
|
+
async recoverByKey(signer: Signer): Promise<RecoveredAccount[]> {
|
|
117
|
+
this._guardianClient.setSigner(signer);
|
|
118
|
+
|
|
119
|
+
const lookup = await this._guardianClient.lookupAccountByKeyCommitment(signer.commitment);
|
|
120
|
+
|
|
121
|
+
// Per-account replay protection is scoped to each account's
|
|
122
|
+
// last_auth_timestamp, so concurrent getState calls do not race.
|
|
123
|
+
return Promise.all(
|
|
124
|
+
lookup.accounts.map(async ({ accountId }) => ({
|
|
125
|
+
accountId,
|
|
126
|
+
state: await this._guardianClient.getState(accountId),
|
|
127
|
+
})),
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
|
|
95
131
|
/**
|
|
96
132
|
* Create a new multisig account.
|
|
97
133
|
*
|
package/src/index.ts
CHANGED
|
@@ -39,7 +39,12 @@
|
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
41
|
|
|
42
|
-
export {
|
|
42
|
+
export {
|
|
43
|
+
MultisigClient,
|
|
44
|
+
type MultisigClientConfig,
|
|
45
|
+
type RecoveredAccount,
|
|
46
|
+
} from './client.js';
|
|
47
|
+
export { lookupAuthDigest } from './lookupAuth.js';
|
|
43
48
|
export { Multisig, type AccountState } from './multisig.js';
|
|
44
49
|
export { AccountInspector, type DetectedMultisigConfig, type VaultBalance } from './inspector.js';
|
|
45
50
|
export {
|