@openzeppelin/miden-multisig-client 0.15.0 → 0.16.0
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 +25 -1
- package/dist/account/builder.d.ts +2 -1
- package/dist/account/builder.d.ts.map +1 -1
- package/dist/account/builder.js +1 -0
- package/dist/account/builder.js.map +1 -1
- package/dist/account/builder.test.js +2 -2
- package/dist/account/builder.test.js.map +1 -1
- package/dist/client.d.ts +9 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -5
- package/dist/client.js.map +1 -1
- package/dist/client.test.js +46 -15
- package/dist/client.test.js.map +1 -1
- package/dist/connectivity.d.ts +38 -0
- package/dist/connectivity.d.ts.map +1 -0
- package/dist/connectivity.js +97 -0
- package/dist/connectivity.js.map +1 -0
- package/dist/connectivity.test.d.ts +2 -0
- package/dist/connectivity.test.d.ts.map +1 -0
- package/dist/connectivity.test.js +61 -0
- package/dist/connectivity.test.js.map +1 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/multisig.d.ts +68 -7
- package/dist/multisig.d.ts.map +1 -1
- package/dist/multisig.js +90 -18
- package/dist/multisig.js.map +1 -1
- package/dist/multisig.test.js +214 -79
- package/dist/multisig.test.js.map +1 -1
- package/dist/proposal/metadata.d.ts.map +1 -1
- package/dist/proposal/metadata.js +12 -0
- package/dist/proposal/metadata.js.map +1 -1
- package/dist/proposal/metadata.test.js +49 -0
- package/dist/proposal/metadata.test.js.map +1 -1
- package/dist/raw-client.d.ts +2 -2
- package/dist/raw-client.d.ts.map +1 -1
- package/dist/raw-client.js +14 -4
- package/dist/raw-client.js.map +1 -1
- package/dist/raw-client.test.js +25 -3
- package/dist/raw-client.test.js.map +1 -1
- package/dist/signers/miden-wallet.d.ts +44 -1
- package/dist/signers/miden-wallet.d.ts.map +1 -1
- package/dist/signers/miden-wallet.ecdsa-recovery.test.d.ts +2 -0
- package/dist/signers/miden-wallet.ecdsa-recovery.test.d.ts.map +1 -0
- package/dist/signers/miden-wallet.ecdsa-recovery.test.js +148 -0
- package/dist/signers/miden-wallet.ecdsa-recovery.test.js.map +1 -0
- package/dist/signers/miden-wallet.js +97 -6
- package/dist/signers/miden-wallet.js.map +1 -1
- package/dist/signers/miden-wallet.test.js +8 -13
- package/dist/signers/miden-wallet.test.js.map +1 -1
- package/dist/transaction/consumeNotes.d.ts +6 -2
- package/dist/transaction/consumeNotes.d.ts.map +1 -1
- package/dist/transaction/consumeNotes.js +0 -4
- package/dist/transaction/consumeNotes.js.map +1 -1
- package/dist/transaction/options.d.ts +3 -0
- package/dist/transaction/options.d.ts.map +1 -1
- package/dist/transaction/p2id.d.ts +20 -2
- package/dist/transaction/p2id.d.ts.map +1 -1
- package/dist/transaction/p2id.js +46 -3
- package/dist/transaction/p2id.js.map +1 -1
- package/dist/transaction/p2id.test.js +66 -6
- package/dist/transaction/p2id.test.js.map +1 -1
- package/dist/transaction/summary.d.ts +2 -1
- package/dist/transaction/summary.d.ts.map +1 -1
- package/dist/transaction/summary.js.map +1 -1
- package/dist/transaction/updateGuardian.d.ts +6 -2
- package/dist/transaction/updateGuardian.d.ts.map +1 -1
- package/dist/transaction/updateGuardian.js.map +1 -1
- package/dist/transaction/updateProcedureThreshold.d.ts +7 -2
- package/dist/transaction/updateProcedureThreshold.d.ts.map +1 -1
- package/dist/transaction/updateProcedureThreshold.js.map +1 -1
- package/dist/transaction/updateSigners.d.ts +7 -2
- package/dist/transaction/updateSigners.d.ts.map +1 -1
- package/dist/transaction/updateSigners.js.map +1 -1
- package/dist/transaction.d.ts +1 -1
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +1 -1
- package/dist/transaction.js.map +1 -1
- package/dist/types/proposal.d.ts +5 -0
- package/dist/types/proposal.d.ts.map +1 -1
- package/dist/types/proposal.js +3 -0
- package/dist/types/proposal.js.map +1 -1
- package/dist/utils/ecdsa.d.ts +17 -0
- package/dist/utils/ecdsa.d.ts.map +1 -1
- package/dist/utils/ecdsa.js +44 -1
- package/dist/utils/ecdsa.js.map +1 -1
- package/dist/utils/ecdsa.test.js +46 -0
- package/dist/utils/ecdsa.test.js.map +1 -1
- package/package.json +12 -3
- package/src/account/builder.test.ts +19 -11
- package/src/account/builder.ts +2 -1
- package/src/client.test.ts +67 -15
- package/src/client.ts +18 -10
- package/src/connectivity.test.ts +67 -0
- package/src/connectivity.ts +111 -0
- package/src/index.ts +20 -1
- package/src/multisig.test.ts +267 -80
- package/src/multisig.ts +109 -20
- package/src/proposal/metadata.test.ts +60 -0
- package/src/proposal/metadata.ts +14 -0
- package/src/raw-client.test.ts +41 -3
- package/src/raw-client.ts +15 -5
- package/src/signers/miden-wallet.ecdsa-recovery.test.ts +201 -0
- package/src/signers/miden-wallet.test.ts +11 -19
- package/src/signers/miden-wallet.ts +134 -7
- package/src/transaction/consumeNotes.ts +11 -1
- package/src/transaction/options.ts +4 -0
- package/src/transaction/p2id.test.ts +98 -8
- package/src/transaction/p2id.ts +64 -4
- package/src/transaction/summary.ts +12 -0
- package/src/transaction/updateGuardian.ts +11 -1
- package/src/transaction/updateProcedureThreshold.ts +13 -1
- package/src/transaction/updateSigners.ts +13 -1
- package/src/transaction.ts +3 -0
- package/src/types/proposal.ts +9 -0
- package/src/utils/ecdsa.test.ts +60 -0
- package/src/utils/ecdsa.ts +51 -1
- package/dist/account/masm/authLibraries.d.ts +0 -6
- package/dist/account/masm/authLibraries.d.ts.map +0 -1
- package/dist/account/masm/authLibraries.js +0 -17
- package/dist/account/masm/authLibraries.js.map +0 -1
- package/dist/multisig/proposal/execution.d.ts +0 -20
- package/dist/multisig/proposal/execution.d.ts.map +0 -1
- package/dist/multisig/proposal/execution.js +0 -166
- package/dist/multisig/proposal/execution.js.map +0 -1
- package/dist/multisig/proposal/parser.d.ts +0 -17
- package/dist/multisig/proposal/parser.d.ts.map +0 -1
- package/dist/multisig/proposal/parser.js +0 -147
- package/dist/multisig/proposal/parser.js.map +0 -1
|
@@ -1,19 +1,87 @@
|
|
|
1
1
|
import { AuthDigest } from '../utils/digest.js';
|
|
2
|
-
import {
|
|
2
|
+
import { EcdsaFormat } from '../utils/ecdsa.js';
|
|
3
|
+
import { bytesToHex, normalizeHexWord } from '../utils/encoding.js';
|
|
3
4
|
import { lookupAuthDigest } from '../lookupAuth.js';
|
|
5
|
+
import { tryComputeEcdsaCommitmentHex } from '../utils/signature.js';
|
|
4
6
|
import { wordToBytes } from '../utils/word.js';
|
|
5
7
|
export class MidenWalletSigner {
|
|
6
8
|
commitment;
|
|
7
|
-
publicKey;
|
|
8
9
|
scheme;
|
|
9
10
|
wallet;
|
|
10
11
|
localAuthSigner;
|
|
12
|
+
explicitPublicKey;
|
|
13
|
+
resolvedPublicKey;
|
|
14
|
+
lastSignedMessage = null;
|
|
15
|
+
lastSignature = null;
|
|
11
16
|
constructor(wallet, commitment, scheme, localAuthSigner, publicKey) {
|
|
12
17
|
this.wallet = wallet;
|
|
13
18
|
this.commitment = commitment;
|
|
14
19
|
this.scheme = scheme;
|
|
15
20
|
this.localAuthSigner = localAuthSigner ?? null;
|
|
16
|
-
|
|
21
|
+
if (scheme === 'ecdsa') {
|
|
22
|
+
this.explicitPublicKey = publicKey == null ? null : validateEcdsaPublicKeyHex(publicKey);
|
|
23
|
+
this.resolvedPublicKey = null;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.explicitPublicKey = null;
|
|
27
|
+
this.resolvedPublicKey = publicKey ?? localAuthSigner?.publicKey ?? commitment;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The signer's public key.
|
|
32
|
+
*
|
|
33
|
+
* Returns immediately for Falcon. For ECDSA the key is resolved from one of
|
|
34
|
+
* three sources — an explicit key, a delegate `localAuthSigner`, or recovery
|
|
35
|
+
* from a signature the signer has already produced — and every source is
|
|
36
|
+
* verified against {@link commitment} via the same `Poseidon2(publicKey) ==
|
|
37
|
+
* commitment` invariant the transaction kernel enforces. Reading `publicKey`
|
|
38
|
+
* before any source is available, or when the resolved key does not match the
|
|
39
|
+
* commitment, throws: a loud sign-time failure instead of an opaque kernel
|
|
40
|
+
* assertion ("invalid public key commitment") at execute time.
|
|
41
|
+
*/
|
|
42
|
+
get publicKey() {
|
|
43
|
+
if (this.resolvedPublicKey !== null) {
|
|
44
|
+
return this.resolvedPublicKey;
|
|
45
|
+
}
|
|
46
|
+
if (this.explicitPublicKey !== null) {
|
|
47
|
+
return this.verifyAndCache(this.explicitPublicKey, false);
|
|
48
|
+
}
|
|
49
|
+
if (this.localAuthSigner !== null) {
|
|
50
|
+
return this.verifyAndCache(validateEcdsaPublicKeyHex(this.localAuthSigner.publicKey), false);
|
|
51
|
+
}
|
|
52
|
+
if (this.lastSignature === null || this.lastSignedMessage === null) {
|
|
53
|
+
throw new Error('MidenWalletSigner: ECDSA public key is not available yet — produce a signature first, ' +
|
|
54
|
+
'or pass `publicKey` to the constructor.');
|
|
55
|
+
}
|
|
56
|
+
const recovered = EcdsaFormat.recoverCompressedPublicKeyHex(this.lastSignedMessage, this.lastSignature);
|
|
57
|
+
return this.verifyAndCache(recovered, true);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Verify an already point-validated ECDSA public-key candidate against
|
|
61
|
+
* {@link commitment} and cache it on success.
|
|
62
|
+
*
|
|
63
|
+
* A mismatching commitment is always rejected. `requireCommitment` distinguishes
|
|
64
|
+
* the recovery path — where a signature already exists, so the SDK must be
|
|
65
|
+
* initialized and an uncomputable commitment is an error — from the
|
|
66
|
+
* explicit/delegate paths, where a caller may read `publicKey` before the SDK is
|
|
67
|
+
* initialized. In that cold-SDK case the commitment cannot be computed yet, so
|
|
68
|
+
* the candidate is returned WITHOUT being cached and verification is re-attempted
|
|
69
|
+
* on the next read (once the SDK is up, as it always is in the guardian flow).
|
|
70
|
+
*/
|
|
71
|
+
verifyAndCache(candidate, requireCommitment) {
|
|
72
|
+
const candidateCommitment = tryComputeEcdsaCommitmentHex(candidate);
|
|
73
|
+
if (candidateCommitment === null) {
|
|
74
|
+
if (requireCommitment) {
|
|
75
|
+
throw new Error('MidenWalletSigner: could not compute a commitment for the recovered ECDSA public key ' +
|
|
76
|
+
'(is the Miden SDK initialized?).');
|
|
77
|
+
}
|
|
78
|
+
return candidate;
|
|
79
|
+
}
|
|
80
|
+
if (candidateCommitment !== normalizeHexWord(this.commitment)) {
|
|
81
|
+
throw new Error('MidenWalletSigner: the ECDSA public key does not match the signer commitment.');
|
|
82
|
+
}
|
|
83
|
+
this.resolvedPublicKey = candidate;
|
|
84
|
+
return candidate;
|
|
17
85
|
}
|
|
18
86
|
async signAccountIdWithTimestamp(accountId, timestamp) {
|
|
19
87
|
if (this.localAuthSigner) {
|
|
@@ -26,9 +94,6 @@ export class MidenWalletSigner {
|
|
|
26
94
|
if (this.localAuthSigner?.signRequest) {
|
|
27
95
|
return this.localAuthSigner.signRequest(accountId, timestamp, requestPayload);
|
|
28
96
|
}
|
|
29
|
-
if (this.scheme === 'falcon') {
|
|
30
|
-
return this.signWord(AuthDigest.fromRequest(accountId, timestamp, requestPayload));
|
|
31
|
-
}
|
|
32
97
|
return this.signWord(AuthDigest.fromRequest(accountId, timestamp, requestPayload));
|
|
33
98
|
}
|
|
34
99
|
async signCommitment(commitmentHex) {
|
|
@@ -50,7 +115,33 @@ export class MidenWalletSigner {
|
|
|
50
115
|
const bytes = wordToBytes(word);
|
|
51
116
|
const signatureBytes = await this.wallet.signBytes(bytes, 'word');
|
|
52
117
|
const rawSignature = signatureBytes.slice(1);
|
|
118
|
+
if (this.scheme === 'ecdsa' &&
|
|
119
|
+
this.explicitPublicKey === null &&
|
|
120
|
+
this.localAuthSigner === null) {
|
|
121
|
+
this.lastSignedMessage = bytes;
|
|
122
|
+
this.lastSignature = rawSignature;
|
|
123
|
+
}
|
|
53
124
|
return bytesToHex(rawSignature);
|
|
54
125
|
}
|
|
55
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Validate an ECDSA public key and return its compressed (33-byte) form.
|
|
129
|
+
*
|
|
130
|
+
* The key must be a 33-/65-byte hex key AND a real secp256k1 curve point; a
|
|
131
|
+
* malformed or off-curve key throws immediately (SDK-independent) rather than
|
|
132
|
+
* degrading to the commitment or surfacing as an opaque kernel assertion at
|
|
133
|
+
* execute time. Mirrors the format handling ParaSigner does for explicit keys.
|
|
134
|
+
*/
|
|
135
|
+
function validateEcdsaPublicKeyHex(publicKey) {
|
|
136
|
+
if (!EcdsaFormat.validatePublicKeyHex(publicKey)) {
|
|
137
|
+
throw new Error('MidenWalletSigner: invalid ECDSA public key (expected a 33- or 65-byte hex key); ' +
|
|
138
|
+
'refusing to fall back to the commitment.');
|
|
139
|
+
}
|
|
140
|
+
const compressed = EcdsaFormat.compressPublicKey(publicKey);
|
|
141
|
+
if (!EcdsaFormat.isValidPublicKeyPoint(compressed)) {
|
|
142
|
+
throw new Error('MidenWalletSigner: invalid ECDSA public key (not a valid secp256k1 point); ' +
|
|
143
|
+
'refusing to fall back to the commitment.');
|
|
144
|
+
}
|
|
145
|
+
return compressed;
|
|
146
|
+
}
|
|
56
147
|
//# sourceMappingURL=miden-wallet.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"miden-wallet.js","sourceRoot":"","sources":["../../src/signers/miden-wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,21 +47,16 @@ describe('MidenWalletSigner', () => {
|
|
|
47
47
|
expect(signer.scheme).toBe('falcon');
|
|
48
48
|
expect(signer.publicKey).toBe('0xcommitment');
|
|
49
49
|
});
|
|
50
|
-
it('
|
|
51
|
-
|
|
52
|
-
expect(signer.publicKey).toBe('0xwalletpubkey');
|
|
50
|
+
it('throws on an invalid explicit ECDSA publicKey instead of falling back to the commitment', () => {
|
|
51
|
+
expect(() => new MidenWalletSigner(mockWallet, '0xcommitment', 'ecdsa', undefined, '0xwalletpubkey')).toThrow(/invalid ECDSA public key/);
|
|
53
52
|
});
|
|
54
|
-
it('
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
publicKey: '0xlocalpubkey',
|
|
58
|
-
scheme: 'ecdsa',
|
|
59
|
-
signAccountIdWithTimestamp: vi.fn(),
|
|
60
|
-
signCommitment: vi.fn(),
|
|
61
|
-
};
|
|
62
|
-
const signer = new MidenWalletSigner(mockWallet, '0xcommitment', 'ecdsa', localSigner);
|
|
63
|
-
expect(signer.publicKey).toBe('0xlocalpubkey');
|
|
53
|
+
it('does not fall back to the commitment for an ECDSA signer with no key (throws until a signature exists)', () => {
|
|
54
|
+
const signer = new MidenWalletSigner(mockWallet, '0xcommitment', 'ecdsa');
|
|
55
|
+
expect(() => signer.publicKey).toThrow(/not available yet/);
|
|
64
56
|
});
|
|
57
|
+
// ECDSA publicKey resolution against a real commitment (explicit key and
|
|
58
|
+
// localAuthSigner, match and mismatch) needs real Poseidon2 and is covered in
|
|
59
|
+
// miden-wallet.ecdsa-recovery.test.ts, which runs the WASM SDK.
|
|
65
60
|
});
|
|
66
61
|
describe('signAccountIdWithTimestamp', () => {
|
|
67
62
|
it('should delegate to localAuthSigner when present', async () => {
|
|
@@ -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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MidenClient, Note, TransactionRequest, WasmWebClient, Word } from '@miden-sdk/miden-sdk';
|
|
2
|
-
import type { SignatureOptions } from './options.js';
|
|
2
|
+
import type { MidenClientSignatureOptions, SignatureOptions } from './options.js';
|
|
3
3
|
/**
|
|
4
4
|
* Build a consume-notes request from loaded `Note` objects (no local-store
|
|
5
5
|
* read). v2 verification path for issue #229.
|
|
@@ -12,7 +12,11 @@ export declare function buildConsumeNotesTransactionRequestFromNotes(notes: Note
|
|
|
12
12
|
* Legacy/creation adapter: fetches notes from the local store and delegates
|
|
13
13
|
* to the from-notes variant. v2 verification MUST NOT call this.
|
|
14
14
|
*/
|
|
15
|
-
export declare function buildConsumeNotesTransactionRequest(client: MidenClient
|
|
15
|
+
export declare function buildConsumeNotesTransactionRequest(client: MidenClient, noteIds: string[], options: MidenClientSignatureOptions): Promise<{
|
|
16
|
+
request: TransactionRequest;
|
|
17
|
+
salt: Word;
|
|
18
|
+
}>;
|
|
19
|
+
export declare function buildConsumeNotesTransactionRequest(client: WasmWebClient, noteIds: string[], options?: SignatureOptions): Promise<{
|
|
16
20
|
request: TransactionRequest;
|
|
17
21
|
salt: Word;
|
|
18
22
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumeNotes.d.ts","sourceRoot":"","sources":["../../src/transaction/consumeNotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,kBAAkB,EAClB,aAAa,EACb,IAAI,EACL,MAAM,sBAAsB,CAAC;AAW9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"consumeNotes.d.ts","sourceRoot":"","sources":["../../src/transaction/consumeNotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,kBAAkB,EAClB,aAAa,EACb,IAAI,EACL,MAAM,sBAAsB,CAAC;AAW9B,OAAO,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAElF;;;GAGG;AACH,wBAAgB,4CAA4C,CAC1D,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,GAAE,gBAAqB,GAC7B;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CA2B7C;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AACxD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC"}
|
|
@@ -29,10 +29,6 @@ export function buildConsumeNotesTransactionRequestFromNotes(notes, options = {}
|
|
|
29
29
|
salt: authSaltForReturn,
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Legacy/creation adapter: fetches notes from the local store and delegates
|
|
34
|
-
* to the from-notes variant. v2 verification MUST NOT call this.
|
|
35
|
-
*/
|
|
36
32
|
export async function buildConsumeNotesTransactionRequest(client, noteIds, options = {}) {
|
|
37
33
|
if (noteIds.length === 0) {
|
|
38
34
|
throw new Error('At least one note ID is required');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumeNotes.js","sourceRoot":"","sources":["../../src/transaction/consumeNotes.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EACzB,IAAI,IAAI,QAAQ,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD;;;GAGG;AACH,MAAM,UAAU,4CAA4C,CAC1D,KAAa,EACb,UAA4B,EAAE;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;IAC/E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3E,IAAI,SAAS,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAChD,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvD,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1E,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE;QAC1B,IAAI,EAAE,iBAAiB;KACxB,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"consumeNotes.js","sourceRoot":"","sources":["../../src/transaction/consumeNotes.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EACzB,IAAI,IAAI,QAAQ,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD;;;GAGG;AACH,MAAM,UAAU,4CAA4C,CAC1D,KAAa,EACb,UAA4B,EAAE;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;IAC/E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3E,IAAI,SAAS,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAChD,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvD,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1E,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE;QAC1B,IAAI,EAAE,iBAAiB;KACxB,CAAC;AACJ,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,MAAmC,EACnC,OAAiB,EACjB,UAA4B,EAAE;IAE9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,kCAAkC,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,4CAA4C,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/transaction/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/transaction/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACnE,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
import type { TransactionRequest, Word } from '@miden-sdk/miden-sdk';
|
|
1
|
+
import type { Account, TransactionRequest, Word } from '@miden-sdk/miden-sdk';
|
|
2
|
+
import { NoteType } from '@miden-sdk/miden-sdk';
|
|
2
3
|
import type { SignatureOptions } from './options.js';
|
|
4
|
+
import type { P2idNoteVisibility } from '../types/proposal.js';
|
|
5
|
+
export interface P2idTransactionOptions extends SignatureOptions {
|
|
6
|
+
/** Visibility of the created note. Defaults to `NoteType.Public`. */
|
|
7
|
+
noteType?: NoteType;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Parses the metadata wire value for a P2ID note visibility (issue #322).
|
|
11
|
+
* Absent => public, the only behavior before the field existed. An unknown
|
|
12
|
+
* value is rejected rather than silently rebuilt as a public note that could
|
|
13
|
+
* never match the signed tx_summary commitment.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseP2idNoteType(value: string | undefined): NoteType;
|
|
16
|
+
/**
|
|
17
|
+
* Maps a note type to its metadata wire value, omitting the default so
|
|
18
|
+
* public-note payloads keep the pre-#322 wire shape.
|
|
19
|
+
*/
|
|
20
|
+
export declare function p2idNoteTypeToMetadata(noteType: NoteType | undefined): P2idNoteVisibility | undefined;
|
|
3
21
|
export declare function deriveP2idSerialNumber(salt: Word): Word;
|
|
4
|
-
export declare function buildP2idTransactionRequest(senderId: string, recipientId: string, faucetId: string, amount: bigint, options?:
|
|
22
|
+
export declare function buildP2idTransactionRequest(senderId: string, recipientId: string, faucetId: string, amount: bigint, account: Account, options?: P2idTransactionOptions): {
|
|
5
23
|
request: TransactionRequest;
|
|
6
24
|
salt: Word;
|
|
7
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2id.d.ts","sourceRoot":"","sources":["../../src/transaction/p2id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"p2id.d.ts","sourceRoot":"","sources":["../../src/transaction/p2id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAYL,QAAQ,EAIT,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,qEAAqE;IACrE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAUrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAErG;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAMvD;AAwDD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,sBAA2B,GACnC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAqC7C"}
|
package/dist/transaction/p2id.js
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import { AccountId, FeltArray, FungibleAsset, MidenArrays, Note, NoteAssets, NoteMetadata, NoteRecipient, NoteScript, NoteStorage, NoteTag, NoteType, Poseidon2, TransactionRequestBuilder, Word as WordType, } from '@miden-sdk/miden-sdk';
|
|
2
2
|
import { randomWord } from '../utils/random.js';
|
|
3
3
|
import { normalizeHexWord } from '../utils/encoding.js';
|
|
4
|
+
/**
|
|
5
|
+
* Parses the metadata wire value for a P2ID note visibility (issue #322).
|
|
6
|
+
* Absent => public, the only behavior before the field existed. An unknown
|
|
7
|
+
* value is rejected rather than silently rebuilt as a public note that could
|
|
8
|
+
* never match the signed tx_summary commitment.
|
|
9
|
+
*/
|
|
10
|
+
export function parseP2idNoteType(value) {
|
|
11
|
+
switch (value) {
|
|
12
|
+
case undefined:
|
|
13
|
+
case 'public':
|
|
14
|
+
return NoteType.Public;
|
|
15
|
+
case 'private':
|
|
16
|
+
return NoteType.Private;
|
|
17
|
+
default:
|
|
18
|
+
throw new Error(`unsupported metadata.noteType '${value}': expected 'public' or 'private'`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Maps a note type to its metadata wire value, omitting the default so
|
|
23
|
+
* public-note payloads keep the pre-#322 wire shape.
|
|
24
|
+
*/
|
|
25
|
+
export function p2idNoteTypeToMetadata(noteType) {
|
|
26
|
+
return noteType === NoteType.Private ? 'private' : undefined;
|
|
27
|
+
}
|
|
4
28
|
export function deriveP2idSerialNumber(salt) {
|
|
5
29
|
const zeroWord = WordType.fromHex(`0x${'00'.repeat(32)}`);
|
|
6
30
|
return Poseidon2.hashElements(new FeltArray([
|
|
@@ -8,6 +32,25 @@ export function deriveP2idSerialNumber(salt) {
|
|
|
8
32
|
...zeroWord.toFelts(),
|
|
9
33
|
]));
|
|
10
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Builds the fungible asset to transfer, sourcing the callback flag from the held asset.
|
|
37
|
+
*
|
|
38
|
+
* In Miden 0.15 the callback flag is part of the vault key, so rebuilding the asset from
|
|
39
|
+
* `faucet`/`amount` with the default flag would not match the held asset and the transfer
|
|
40
|
+
* would abort. When the faucet is absent the default flag is used, surfacing the
|
|
41
|
+
* missing-asset error during execution.
|
|
42
|
+
*/
|
|
43
|
+
function resolveFungibleAssetFromVault(account, faucet, amount) {
|
|
44
|
+
const faucetHex = faucet.toString();
|
|
45
|
+
const assetFromVault = account
|
|
46
|
+
.vault()
|
|
47
|
+
.fungibleAssets()
|
|
48
|
+
.find(asset => asset.faucetId().toString() === faucetHex);
|
|
49
|
+
if (!assetFromVault) {
|
|
50
|
+
return new FungibleAsset(faucet, amount);
|
|
51
|
+
}
|
|
52
|
+
return FungibleAsset.fromVaultKey(assetFromVault.vaultKey(), amount);
|
|
53
|
+
}
|
|
11
54
|
function buildP2idNote(sender, recipient, noteAssets, noteType, saltHex) {
|
|
12
55
|
const salt = WordType.fromHex(normalizeHexWord(saltHex));
|
|
13
56
|
const serialNum = deriveP2idSerialNumber(salt);
|
|
@@ -21,14 +64,14 @@ function buildP2idNote(sender, recipient, noteAssets, noteType, saltHex) {
|
|
|
21
64
|
const noteMetadata = new NoteMetadata(sender, noteType, noteTag);
|
|
22
65
|
return new Note(noteAssets, noteMetadata, noteRecipient);
|
|
23
66
|
}
|
|
24
|
-
export function buildP2idTransactionRequest(senderId, recipientId, faucetId, amount, options = {}) {
|
|
67
|
+
export function buildP2idTransactionRequest(senderId, recipientId, faucetId, amount, account, options = {}) {
|
|
25
68
|
const sender = AccountId.fromHex(senderId);
|
|
26
69
|
const recipient = AccountId.fromHex(recipientId);
|
|
27
70
|
const faucet = AccountId.fromHex(faucetId);
|
|
28
71
|
const authSaltHex = options.salt ? options.salt.toHex() : randomWord().toHex();
|
|
29
|
-
const asset =
|
|
72
|
+
const asset = resolveFungibleAssetFromVault(account, faucet, amount);
|
|
30
73
|
const noteAssets = new NoteAssets([asset]);
|
|
31
|
-
const note = buildP2idNote(sender, recipient, noteAssets, NoteType.Public, authSaltHex);
|
|
74
|
+
const note = buildP2idNote(sender, recipient, noteAssets, options.noteType ?? NoteType.Public, authSaltHex);
|
|
32
75
|
const outputNotes = new MidenArrays.NoteArray([note]);
|
|
33
76
|
const authSaltForBuilder = WordType.fromHex(normalizeHexWord(authSaltHex));
|
|
34
77
|
let txBuilder = new TransactionRequestBuilder();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2id.js","sourceRoot":"","sources":["../../src/transaction/p2id.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,QAAQ,EACR,SAAS,EACT,yBAAyB,EACzB,IAAI,IAAI,QAAQ,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"p2id.js","sourceRoot":"","sources":["../../src/transaction/p2id.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
const { mockHashElements, mockNormalizeHexWord, mockRandomWord, mockWordFromHex, saltFelts, } = vi.hoisted(() => {
|
|
2
|
+
const { mockFromVaultKey, mockFungibleAssetConstructor, mockHashElements, mockNormalizeHexWord, mockRandomWord, mockWordFromHex, noteMetadataCalls, saltFelts, } = vi.hoisted(() => {
|
|
3
3
|
const saltFelts = [
|
|
4
4
|
{ id: 'felt-0' },
|
|
5
5
|
{ id: 'felt-1' },
|
|
@@ -7,6 +7,13 @@ const { mockHashElements, mockNormalizeHexWord, mockRandomWord, mockWordFromHex,
|
|
|
7
7
|
{ id: 'felt-3' },
|
|
8
8
|
];
|
|
9
9
|
return {
|
|
10
|
+
mockFromVaultKey: vi.fn((vaultKey, amount) => ({
|
|
11
|
+
kind: 'asset-from-vault-key',
|
|
12
|
+
vaultKey,
|
|
13
|
+
amount,
|
|
14
|
+
})),
|
|
15
|
+
mockFungibleAssetConstructor: vi.fn(),
|
|
16
|
+
noteMetadataCalls: [],
|
|
10
17
|
mockHashElements: vi.fn().mockReturnValue({ toString: () => 'serial' }),
|
|
11
18
|
mockNormalizeHexWord: vi.fn((hex) => hex),
|
|
12
19
|
mockRandomWord: vi.fn().mockReturnValue({
|
|
@@ -49,7 +56,9 @@ vi.mock('@miden-sdk/miden-sdk', () => {
|
|
|
49
56
|
constructor(_inputs) { }
|
|
50
57
|
}
|
|
51
58
|
class NoteMetadata {
|
|
52
|
-
constructor(
|
|
59
|
+
constructor(sender, noteType, noteTag) {
|
|
60
|
+
noteMetadataCalls.push([sender, noteType, noteTag]);
|
|
61
|
+
}
|
|
53
62
|
}
|
|
54
63
|
class NoteRecipient {
|
|
55
64
|
constructor(_serialNum, _noteScript, _noteInputs) { }
|
|
@@ -58,7 +67,10 @@ vi.mock('@miden-sdk/miden-sdk', () => {
|
|
|
58
67
|
constructor(_assets, _metadata, _recipient) { }
|
|
59
68
|
}
|
|
60
69
|
class FungibleAsset {
|
|
61
|
-
constructor(
|
|
70
|
+
constructor(faucet, amount) {
|
|
71
|
+
mockFungibleAssetConstructor(faucet, amount);
|
|
72
|
+
}
|
|
73
|
+
static fromVaultKey = mockFromVaultKey;
|
|
62
74
|
}
|
|
63
75
|
class NoteArray {
|
|
64
76
|
constructor(_notes) { }
|
|
@@ -83,6 +95,7 @@ vi.mock('@miden-sdk/miden-sdk', () => {
|
|
|
83
95
|
hex,
|
|
84
96
|
prefix: () => 1,
|
|
85
97
|
suffix: () => 2,
|
|
98
|
+
toString: () => hex,
|
|
86
99
|
})),
|
|
87
100
|
},
|
|
88
101
|
Felt,
|
|
@@ -103,7 +116,8 @@ vi.mock('@miden-sdk/miden-sdk', () => {
|
|
|
103
116
|
withAccountTarget: vi.fn(() => ({ kind: 'tag' })),
|
|
104
117
|
},
|
|
105
118
|
NoteType: {
|
|
106
|
-
|
|
119
|
+
Private: 0,
|
|
120
|
+
Public: 1,
|
|
107
121
|
},
|
|
108
122
|
OutputNote: {
|
|
109
123
|
full: vi.fn((note) => ({ note })),
|
|
@@ -123,17 +137,32 @@ vi.mock('../utils/encoding.js', () => ({
|
|
|
123
137
|
vi.mock('../utils/random.js', () => ({
|
|
124
138
|
randomWord: mockRandomWord,
|
|
125
139
|
}));
|
|
126
|
-
import { buildP2idTransactionRequest } from './p2id.js';
|
|
140
|
+
import { buildP2idTransactionRequest, parseP2idNoteType, p2idNoteTypeToMetadata } from './p2id.js';
|
|
141
|
+
const FAUCET_ID = '0x7bfb0f38b0fafa103f86a805594171';
|
|
142
|
+
const mockAccount = {
|
|
143
|
+
vault: () => ({
|
|
144
|
+
fungibleAssets: () => [
|
|
145
|
+
{
|
|
146
|
+
faucetId: () => ({ toString: () => FAUCET_ID }),
|
|
147
|
+
vaultKey: () => ({ kind: 'vault-key' }),
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
}),
|
|
151
|
+
};
|
|
152
|
+
import { NoteType } from '@miden-sdk/miden-sdk';
|
|
127
153
|
describe('buildP2idTransactionRequest', () => {
|
|
128
154
|
beforeEach(() => {
|
|
155
|
+
mockFromVaultKey.mockClear();
|
|
156
|
+
mockFungibleAssetConstructor.mockClear();
|
|
129
157
|
mockHashElements.mockClear();
|
|
130
158
|
mockNormalizeHexWord.mockClear();
|
|
131
159
|
mockRandomWord.mockClear();
|
|
132
160
|
mockWordFromHex.mockClear();
|
|
161
|
+
noteMetadataCalls.length = 0;
|
|
133
162
|
});
|
|
134
163
|
it('derives serial number from salt felts plus four zero felts', () => {
|
|
135
164
|
const salt = { toHex: () => '0x' + '11'.repeat(32) };
|
|
136
|
-
buildP2idTransactionRequest('0x7bfb0f38b0fafa103f86a805594170', '0x8a65fc5a39e4cd106d648e3eb4ab5f',
|
|
165
|
+
buildP2idTransactionRequest('0x7bfb0f38b0fafa103f86a805594170', '0x8a65fc5a39e4cd106d648e3eb4ab5f', FAUCET_ID, 10n, mockAccount, { salt });
|
|
137
166
|
expect(mockRandomWord).not.toHaveBeenCalled();
|
|
138
167
|
expect(mockHashElements).toHaveBeenCalledTimes(1);
|
|
139
168
|
const [feltArrayArg] = mockHashElements.mock.calls[0];
|
|
@@ -144,5 +173,36 @@ describe('buildP2idTransactionRequest', () => {
|
|
|
144
173
|
expect(felt.value).toBe(0n);
|
|
145
174
|
}
|
|
146
175
|
});
|
|
176
|
+
it('creates a public note by default (issue #322)', () => {
|
|
177
|
+
buildP2idTransactionRequest('0x7bfb0f38b0fafa103f86a805594170', '0x8a65fc5a39e4cd106d648e3eb4ab5f', '0x7bfb0f38b0fafa103f86a805594171', 10n, mockAccount);
|
|
178
|
+
expect(noteMetadataCalls).toHaveLength(1);
|
|
179
|
+
expect(noteMetadataCalls[0][1]).toBe(NoteType.Public);
|
|
180
|
+
});
|
|
181
|
+
it('threads the requested noteType into the note metadata (issue #322)', () => {
|
|
182
|
+
buildP2idTransactionRequest('0x7bfb0f38b0fafa103f86a805594170', '0x8a65fc5a39e4cd106d648e3eb4ab5f', '0x7bfb0f38b0fafa103f86a805594171', 10n, mockAccount, { noteType: NoteType.Private });
|
|
183
|
+
expect(noteMetadataCalls).toHaveLength(1);
|
|
184
|
+
expect(noteMetadataCalls[0][1]).toBe(NoteType.Private);
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
describe('parseP2idNoteType', () => {
|
|
188
|
+
it('maps absent to Public (pre-#322 proposals)', () => {
|
|
189
|
+
expect(parseP2idNoteType(undefined)).toBe(NoteType.Public);
|
|
190
|
+
});
|
|
191
|
+
it('maps wire values to note types', () => {
|
|
192
|
+
expect(parseP2idNoteType('public')).toBe(NoteType.Public);
|
|
193
|
+
expect(parseP2idNoteType('private')).toBe(NoteType.Private);
|
|
194
|
+
});
|
|
195
|
+
it('rejects unknown values instead of silently rebuilding a public note', () => {
|
|
196
|
+
expect(() => parseP2idNoteType('encrypted')).toThrow(/unsupported metadata.noteType/);
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
describe('p2idNoteTypeToMetadata', () => {
|
|
200
|
+
it('omits the default so public payloads keep the legacy wire shape', () => {
|
|
201
|
+
expect(p2idNoteTypeToMetadata(undefined)).toBeUndefined();
|
|
202
|
+
expect(p2idNoteTypeToMetadata(NoteType.Public)).toBeUndefined();
|
|
203
|
+
});
|
|
204
|
+
it('serializes private', () => {
|
|
205
|
+
expect(p2idNoteTypeToMetadata(NoteType.Private)).toBe('private');
|
|
206
|
+
});
|
|
147
207
|
});
|
|
148
208
|
//# sourceMappingURL=p2id.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2id.test.js","sourceRoot":"","sources":["../../src/transaction/p2id.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAG9D,MAAM,EACJ,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,SAAS,GACV,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,EAAE,QAAQ,EAAE;QAChB,EAAE,EAAE,EAAE,QAAQ,EAAE;QAChB,EAAE,EAAE,EAAE,QAAQ,EAAE;QAChB,EAAE,EAAE,EAAE,QAAQ,EAAE;KACjB,CAAC;IAEF,OAAO;QACL,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvE,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC;QACjD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YACtC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SACpC,CAAC;QACF,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE;YACrC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACrC,OAAO;gBACL,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG;gBAChB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;oBAClD,CAAC,CAAC;wBACE,EAAE,KAAK,EAAE,EAAE,EAAE;wBACb,EAAE,KAAK,EAAE,EAAE,EAAE;wBACb,EAAE,KAAK,EAAE,EAAE,EAAE;wBACb,EAAE,KAAK,EAAE,EAAE,EAAE;qBACd;oBACH,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC,CAAC;QACF,SAAS;KACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACnC,MAAM,IAAI;QACC,KAAK,CAAS;QAEvB,YAAY,KAAa;YACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;KACF;IAED,MAAM,SAAS;QACJ,MAAM,CAAY;QAE3B,YAAY,MAAiB;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;KACF;IAED,MAAM,UAAU;QACd,YAAY,OAAkB,IAAG,CAAC;KACnC;IAED,MAAM,WAAW;QACf,YAAY,OAAkB,IAAG,CAAC;KACnC;IAED,MAAM,YAAY;QAChB,YACE,OAAgB,
|
|
1
|
+
{"version":3,"file":"p2id.test.js","sourceRoot":"","sources":["../../src/transaction/p2id.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { MidenClient, TransactionRequest, TransactionSummary, WasmWebClient } from '@miden-sdk/miden-sdk';
|
|
2
|
-
export declare function executeForSummary(client: MidenClient
|
|
2
|
+
export declare function executeForSummary(client: MidenClient, accountId: string, txRequest: TransactionRequest, midenRpcEndpoint: string): Promise<TransactionSummary>;
|
|
3
|
+
export declare function executeForSummary(client: WasmWebClient, accountId: string, txRequest: TransactionRequest, midenRpcEndpoint?: string): Promise<TransactionSummary>;
|
|
3
4
|
//# sourceMappingURL=summary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/transaction/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAI9B,
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/transaction/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,kBAAkB,EAC7B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/B,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,kBAAkB,EAC7B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/transaction/summary.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/transaction/summary.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAcrD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAmC,EACnC,SAAiB,EACjB,SAA6B,EAC7B,gBAAyB;IAEzB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type MidenClient, TransactionRequest, type WasmWebClient, Word } from '@miden-sdk/miden-sdk';
|
|
2
|
-
import type { SignatureOptions } from './options.js';
|
|
3
|
-
export declare function buildUpdateGuardianTransactionRequest(client: MidenClient
|
|
2
|
+
import type { MidenClientSignatureOptions, SignatureOptions } from './options.js';
|
|
3
|
+
export declare function buildUpdateGuardianTransactionRequest(client: MidenClient, newGuardianPubkey: string, options: MidenClientSignatureOptions): Promise<{
|
|
4
|
+
request: TransactionRequest;
|
|
5
|
+
salt: Word;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function buildUpdateGuardianTransactionRequest(client: WasmWebClient, newGuardianPubkey: string, options?: SignatureOptions): Promise<{
|
|
4
8
|
request: TransactionRequest;
|
|
5
9
|
salt: Word;
|
|
6
10
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateGuardian.d.ts","sourceRoot":"","sources":["../../src/transaction/updateGuardian.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,kBAAkB,EAGlB,KAAK,aAAa,EAClB,IAAI,EAEL,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"updateGuardian.d.ts","sourceRoot":"","sources":["../../src/transaction/updateGuardian.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,kBAAkB,EAGlB,KAAK,aAAa,EAClB,IAAI,EAEL,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA6BlF,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,WAAW,EACnB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AACxD,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC"}
|