@aztec/stdlib 5.0.0-rc.2 → 5.0.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/dest/block/attestation_info.d.ts +1 -1
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -4
- package/dest/block/l2_block_source.d.ts +34 -3
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +15 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +16 -2
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/interfaces.js +25 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +21 -35
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +5 -30
- package/dest/block/proposal/attestations_and_signers.d.ts +19 -1
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +47 -7
- package/dest/block/validate_block_result.d.ts +16 -1
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -3
- package/dest/config/network-consensus-config.d.ts +1 -1
- package/dest/config/network-consensus-config.d.ts.map +1 -1
- package/dest/config/network-consensus-config.js +2 -10
- package/dest/contract/contract_address.d.ts +5 -4
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +16 -2
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +45 -0
- package/dest/contract/interfaces/contract_instance.d.ts +71 -10
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +7 -2
- package/dest/contract/partial_address.d.ts +9 -3
- package/dest/contract/partial_address.d.ts.map +1 -1
- package/dest/contract/partial_address.js +8 -2
- package/dest/database-version/version_manager.d.ts +18 -4
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +76 -6
- package/dest/ha-signing/config.d.ts +19 -5
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +9 -3
- package/dest/ha-signing/local_config.d.ts +10 -2
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +8 -2
- package/dest/hash/hash.d.ts +1 -2
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +0 -7
- package/dest/interfaces/archiver.d.ts +8 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +2 -1
- package/dest/interfaces/aztec-node-admin.d.ts +5 -2
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +4 -1
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -0
- package/dest/interfaces/private_kernel_prover.d.ts +9 -11
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +87 -74
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +13 -4
- package/dest/interfaces/server_circuit_prover.d.ts +3 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +7 -3
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/world_state.d.ts +14 -1
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +8 -2
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +12 -74
- package/dest/kernel/index.d.ts +2 -2
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +13 -3
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +14 -7
- package/dest/kernel/private_context_inputs.d.ts +4 -3
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.js +7 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +7 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +7 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +2 -3
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +3 -5
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +2 -3
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +3 -5
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -9
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.js +2 -6
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +7 -8
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts +29 -0
- package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.js +36 -0
- package/dest/keys/derivation.d.ts +41 -6
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +49 -26
- package/dest/logs/app_tagging_secret.d.ts +16 -8
- package/dest/logs/app_tagging_secret.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret.js +24 -27
- package/dest/logs/index.d.ts +1 -3
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +0 -2
- package/dest/logs/shared_secret_derivation.d.ts +19 -6
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +26 -11
- package/dest/messaging/l1_to_l2_message.d.ts +23 -2
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.js +36 -11
- package/dest/p2p/attestation_utils.d.ts +1 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +8 -1
- package/dest/p2p/checkpoint_attestation.d.ts +9 -1
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +10 -0
- package/dest/p2p/signature_utils.d.ts +10 -1
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +9 -1
- package/dest/rollup/avm_proof_data.d.ts +3 -3
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +1 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +4 -3
- package/dest/tx/private_tx_constant_data.d.ts +18 -2
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/private_tx_constant_data.js +13 -4
- package/dest/tx/simulated_tx.d.ts +10 -6
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/world-state/genesis_data.d.ts +9 -1
- package/dest/world-state/genesis_data.d.ts.map +1 -1
- package/dest/world-state/genesis_data.js +1 -0
- package/package.json +8 -8
- package/src/block/attestation_info.ts +7 -2
- package/src/block/l2_block_source.ts +54 -2
- package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +35 -1
- package/src/block/l2_block_stream/l2_block_stream.ts +35 -62
- package/src/block/proposal/attestations_and_signers.ts +53 -7
- package/src/block/validate_block_result.ts +48 -2
- package/src/config/network-consensus-config.ts +2 -13
- package/src/contract/contract_address.ts +4 -3
- package/src/contract/contract_instance.ts +62 -1
- package/src/contract/interfaces/contract_instance.ts +26 -8
- package/src/contract/partial_address.ts +8 -2
- package/src/database-version/version_manager.ts +96 -6
- package/src/ha-signing/config.ts +23 -5
- package/src/ha-signing/local_config.ts +20 -1
- package/src/hash/hash.ts +0 -8
- package/src/interfaces/archiver.ts +8 -0
- package/src/interfaces/configs.ts +3 -0
- package/src/interfaces/private_kernel_prover.ts +10 -12
- package/src/interfaces/proving-job.ts +15 -3
- package/src/interfaces/server_circuit_prover.ts +2 -2
- package/src/interfaces/world_state.ts +14 -0
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +22 -112
- package/src/kernel/index.ts +1 -1
- package/src/kernel/private_circuit_public_inputs.ts +12 -1
- package/src/kernel/private_context_inputs.ts +10 -3
- package/src/kernel/private_kernel_circuit_public_inputs.ts +9 -0
- package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +0 -3
- package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +0 -3
- package/src/kernel/private_kernel_init_circuit_private_inputs.ts +0 -6
- package/src/kernel/private_kernel_reset_dimensions.ts +15 -5
- package/src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts +69 -0
- package/src/keys/derivation.ts +69 -24
- package/src/logs/app_tagging_secret.ts +34 -27
- package/src/logs/index.ts +0 -2
- package/src/logs/shared_secret_derivation.ts +31 -15
- package/src/messaging/l1_to_l2_message.ts +51 -13
- package/src/p2p/attestation_utils.ts +8 -1
- package/src/p2p/checkpoint_attestation.ts +12 -0
- package/src/p2p/signature_utils.ts +9 -0
- package/src/rollup/avm_proof_data.ts +2 -2
- package/src/stats/stats.ts +2 -2
- package/src/tests/factories.ts +3 -6
- package/src/tx/private_tx_constant_data.ts +25 -2
- package/src/world-state/genesis_data.ts +10 -0
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +0 -47
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +0 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +0 -38
- package/dest/logs/message_context.d.ts +0 -17
- package/dest/logs/message_context.d.ts.map +0 -1
- package/dest/logs/message_context.js +0 -9
- package/dest/logs/pending_tagged_log.d.ts +0 -11
- package/dest/logs/pending_tagged_log.d.ts.map +0 -1
- package/dest/logs/pending_tagged_log.js +0 -4
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +0 -58
- package/src/logs/message_context.ts +0 -18
- package/src/logs/pending_tagged_log.ts +0 -12
|
@@ -14,9 +14,8 @@ import { PrivateCallData } from './private_call_data.js';
|
|
|
14
14
|
privateCall1;
|
|
15
15
|
privateCall2;
|
|
16
16
|
isPrivateOnly;
|
|
17
|
-
firstNullifierHint;
|
|
18
17
|
revertibleCounterHint;
|
|
19
|
-
constructor(txRequest, vkTreeRoot, protocolContracts, privateCall0, privateCall1, privateCall2, isPrivateOnly,
|
|
18
|
+
constructor(txRequest, vkTreeRoot, protocolContracts, privateCall0, privateCall1, privateCall2, isPrivateOnly, revertibleCounterHint){
|
|
20
19
|
this.txRequest = txRequest;
|
|
21
20
|
this.vkTreeRoot = vkTreeRoot;
|
|
22
21
|
this.protocolContracts = protocolContracts;
|
|
@@ -24,14 +23,13 @@ import { PrivateCallData } from './private_call_data.js';
|
|
|
24
23
|
this.privateCall1 = privateCall1;
|
|
25
24
|
this.privateCall2 = privateCall2;
|
|
26
25
|
this.isPrivateOnly = isPrivateOnly;
|
|
27
|
-
this.firstNullifierHint = firstNullifierHint;
|
|
28
26
|
this.revertibleCounterHint = revertibleCounterHint;
|
|
29
27
|
}
|
|
30
28
|
toBuffer() {
|
|
31
|
-
return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall0, this.privateCall1, this.privateCall2, this.
|
|
29
|
+
return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall0, this.privateCall1, this.privateCall2, this.revertibleCounterHint);
|
|
32
30
|
}
|
|
33
31
|
static fromBuffer(buffer) {
|
|
34
32
|
const reader = BufferReader.asReader(buffer);
|
|
35
|
-
return new PrivateKernelInit3CircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readBoolean(),
|
|
33
|
+
return new PrivateKernelInit3CircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readBoolean(), reader.readNumber());
|
|
36
34
|
}
|
|
37
35
|
}
|
|
@@ -27,10 +27,6 @@ export declare class PrivateKernelInitCircuitPrivateInputs {
|
|
|
27
27
|
* Wether this tx will make public calls or not.
|
|
28
28
|
*/
|
|
29
29
|
isPrivateOnly: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* A hint to what will be the first nullifier of the transaction, used for nonce generation.
|
|
32
|
-
*/
|
|
33
|
-
firstNullifierHint: Fr;
|
|
34
30
|
/**
|
|
35
31
|
* A claim to the final min revertible side effect counter of a tx.
|
|
36
32
|
*/
|
|
@@ -56,10 +52,6 @@ export declare class PrivateKernelInitCircuitPrivateInputs {
|
|
|
56
52
|
* Wether this tx will make public calls or not.
|
|
57
53
|
*/
|
|
58
54
|
isPrivateOnly: boolean,
|
|
59
|
-
/**
|
|
60
|
-
* A hint to what will be the first nullifier of the transaction, used for nonce generation.
|
|
61
|
-
*/
|
|
62
|
-
firstNullifierHint: Fr,
|
|
63
55
|
/**
|
|
64
56
|
* A claim to the final min revertible side effect counter of a tx.
|
|
65
57
|
*/
|
|
@@ -76,4 +68,4 @@ export declare class PrivateKernelInitCircuitPrivateInputs {
|
|
|
76
68
|
*/
|
|
77
69
|
static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelInitCircuitPrivateInputs;
|
|
78
70
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfaW5pdF9jaXJjdWl0X3ByaXZhdGVfaW5wdXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2VybmVsL3ByaXZhdGVfa2VybmVsX2luaXRfY2lyY3VpdF9wcml2YXRlX2lucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpEOztHQUVHO0FBQ0gscUJBQWEscUNBQXFDO0lBRTlDOztPQUVHO0lBQ0ksU0FBUyxFQUFFLFNBQVM7SUFDM0I7O09BRUc7SUFDSSxVQUFVLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNJLGlCQUFpQixFQUFFLGlCQUFpQjtJQUMzQzs7T0FFRztJQUNJLFdBQVcsRUFBRSxlQUFlO0lBQ25DOztPQUVHO0lBQ0ksYUFBYSxFQUFFLE9BQU87SUFDN0I7O09BRUc7SUFDSSxxQkFBcUIsRUFBRSxNQUFNO0lBeEJ0QztJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLFNBQVM7SUFDM0I7O09BRUc7SUFDSSxVQUFVLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNJLGlCQUFpQixFQUFFLGlCQUFpQjtJQUMzQzs7T0FFRztJQUNJLFdBQVcsRUFBRSxlQUFlO0lBQ25DOztPQUVHO0lBQ0ksYUFBYSxFQUFFLE9BQU87SUFDN0I7O09BRUc7SUFDSSxxQkFBcUIsRUFBRSxNQUFNLEVBQ2xDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSw0QkFRUDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHFDQUFxQyxDQVV0RjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_kernel_init_circuit_private_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_init_circuit_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,qBAAa,qCAAqC;IAE9C;;OAEG;IACI,SAAS,EAAE,SAAS;IAC3B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IAC3C;;OAEG;IACI,WAAW,EAAE,eAAe;IACnC;;OAEG;IACI,aAAa,EAAE,OAAO;IAC7B;;OAEG;IACI,
|
|
1
|
+
{"version":3,"file":"private_kernel_init_circuit_private_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_init_circuit_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,qBAAa,qCAAqC;IAE9C;;OAEG;IACI,SAAS,EAAE,SAAS;IAC3B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IAC3C;;OAEG;IACI,WAAW,EAAE,eAAe;IACnC;;OAEG;IACI,aAAa,EAAE,OAAO;IAC7B;;OAEG;IACI,qBAAqB,EAAE,MAAM;IAxBtC;IACE;;OAEG;IACI,SAAS,EAAE,SAAS;IAC3B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IAC3C;;OAEG;IACI,WAAW,EAAE,eAAe;IACnC;;OAEG;IACI,aAAa,EAAE,OAAO;IAC7B;;OAEG;IACI,qBAAqB,EAAE,MAAM,EAClC;IAEJ;;;OAGG;IACH,QAAQ,4BAQP;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qCAAqC,CAUtF;CACF"}
|
|
@@ -11,7 +11,6 @@ import { PrivateCallData } from './private_call_data.js';
|
|
|
11
11
|
protocolContracts;
|
|
12
12
|
privateCall;
|
|
13
13
|
isPrivateOnly;
|
|
14
|
-
firstNullifierHint;
|
|
15
14
|
revertibleCounterHint;
|
|
16
15
|
constructor(/**
|
|
17
16
|
* The transaction request which led to the creation of these inputs.
|
|
@@ -24,8 +23,6 @@ import { PrivateCallData } from './private_call_data.js';
|
|
|
24
23
|
*/ privateCall, /**
|
|
25
24
|
* Wether this tx will make public calls or not.
|
|
26
25
|
*/ isPrivateOnly, /**
|
|
27
|
-
* A hint to what will be the first nullifier of the transaction, used for nonce generation.
|
|
28
|
-
*/ firstNullifierHint, /**
|
|
29
26
|
* A claim to the final min revertible side effect counter of a tx.
|
|
30
27
|
*/ revertibleCounterHint){
|
|
31
28
|
this.txRequest = txRequest;
|
|
@@ -33,14 +30,13 @@ import { PrivateCallData } from './private_call_data.js';
|
|
|
33
30
|
this.protocolContracts = protocolContracts;
|
|
34
31
|
this.privateCall = privateCall;
|
|
35
32
|
this.isPrivateOnly = isPrivateOnly;
|
|
36
|
-
this.firstNullifierHint = firstNullifierHint;
|
|
37
33
|
this.revertibleCounterHint = revertibleCounterHint;
|
|
38
34
|
}
|
|
39
35
|
/**
|
|
40
36
|
* Serialize this as a buffer.
|
|
41
37
|
* @returns The buffer.
|
|
42
38
|
*/ toBuffer() {
|
|
43
|
-
return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall, this.
|
|
39
|
+
return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall, this.revertibleCounterHint);
|
|
44
40
|
}
|
|
45
41
|
/**
|
|
46
42
|
* Deserializes from a buffer or reader.
|
|
@@ -48,6 +44,6 @@ import { PrivateCallData } from './private_call_data.js';
|
|
|
48
44
|
* @returns The deserialized instance.
|
|
49
45
|
*/ static fromBuffer(buffer) {
|
|
50
46
|
const reader = BufferReader.asReader(buffer);
|
|
51
|
-
return new PrivateKernelInitCircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readBoolean(),
|
|
47
|
+
return new PrivateKernelInitCircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readBoolean(), reader.readNumber());
|
|
52
48
|
}
|
|
53
49
|
}
|
|
@@ -18,15 +18,14 @@ export declare class PrivateKernelResetDimensions {
|
|
|
18
18
|
}
|
|
19
19
|
export type DimensionName = keyof FieldsOf<PrivateKernelResetDimensions>;
|
|
20
20
|
export declare const privateKernelResetDimensionNames: DimensionName[];
|
|
21
|
-
export interface
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
export interface ResetCatalogEntry {
|
|
22
|
+
name: string;
|
|
23
|
+
dimensions: number[];
|
|
24
24
|
cost: number;
|
|
25
25
|
}
|
|
26
26
|
export interface PrivateKernelResetDimensionsConfig {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
specialCases: number[][];
|
|
27
|
+
inner: ResetCatalogEntry[];
|
|
28
|
+
finalTail: ResetCatalogEntry[];
|
|
29
|
+
finalTailToPublic: ResetCatalogEntry[];
|
|
31
30
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcmVzZXRfZGltZW5zaW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcm5lbC9wcml2YXRlX2tlcm5lbF9yZXNldF9kaW1lbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELHFCQUFhLDRCQUE0QjtJQUU5QixzQkFBc0IsRUFBRSxNQUFNO0lBQzlCLHNCQUFzQixFQUFFLE1BQU07SUFDOUIsc0JBQXNCLEVBQUUsTUFBTTtJQUM5QixzQkFBc0IsRUFBRSxNQUFNO0lBQzlCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLHdCQUF3QixFQUFFLE1BQU07SUFDaEMsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixpQkFBaUIsRUFBRSxNQUFNO0lBQ3pCLG1CQUFtQixFQUFFLE1BQU07SUFUcEMsWUFDUyxzQkFBc0IsRUFBRSxNQUFNLEVBQzlCLHNCQUFzQixFQUFFLE1BQU0sRUFDOUIsc0JBQXNCLEVBQUUsTUFBTSxFQUM5QixzQkFBc0IsRUFBRSxNQUFNLEVBQzlCLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLHdCQUF3QixFQUFFLE1BQU0sRUFDaEMsaUJBQWlCLEVBQUUsTUFBTSxFQUN6QixpQkFBaUIsRUFBRSxNQUFNLEVBQ3pCLG1CQUFtQixFQUFFLE1BQU0sRUFDaEM7SUFFSixRQUFRLDRCQVlQO0lBRUQsTUFBTSxDQUFDLEtBQUssaUNBRVg7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUMsZ0NBSWxFO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdDQVNqQztJQUVELFFBQVEsYUFFUDtDQUNGO0FBRUQsTUFBTSxNQUFNLGFBQWEsR0FBRyxNQUFNLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRXpFLGVBQU8sTUFBTSxnQ0FBZ0MsRUFBRSxhQUFhLEVBVTNELENBQUM7QUFFRixNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFLckIsSUFBSSxFQUFFLE1BQU0sQ0FBQztDQUNkO0FBR0QsTUFBTSxXQUFXLGtDQUFrQztJQUVqRCxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUczQixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUcvQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0NBQ3hDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_kernel_reset_dimensions.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_reset_dimensions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,4BAA4B;IAE9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,cAAc,EAAE,MAAM;IACtB,wBAAwB,EAAE,MAAM;IAChC,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,MAAM;IATpC,YACS,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,cAAc,EAAE,MAAM,EACtB,wBAAwB,EAAE,MAAM,EAChC,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,EACzB,mBAAmB,EAAE,MAAM,EAChC;IAEJ,QAAQ,4BAYP;IAED,MAAM,CAAC,KAAK,iCAEX;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,gCAIlE;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gCASjC;IAED,QAAQ,aAEP;CACF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAEzE,eAAO,MAAM,gCAAgC,EAAE,aAAa,EAU3D,CAAC;AAEF,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"private_kernel_reset_dimensions.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_reset_dimensions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,4BAA4B;IAE9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,cAAc,EAAE,MAAM;IACtB,wBAAwB,EAAE,MAAM;IAChC,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,MAAM;IATpC,YACS,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,cAAc,EAAE,MAAM,EACtB,wBAAwB,EAAE,MAAM,EAChC,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,EACzB,mBAAmB,EAAE,MAAM,EAChC;IAEJ,QAAQ,4BAYP;IAED,MAAM,CAAC,KAAK,iCAEX;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,gCAIlE;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gCASjC;IAED,QAAQ,aAEP;CACF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAEzE,eAAO,MAAM,gCAAgC,EAAE,aAAa,EAU3D,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IAKrB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,kCAAkC;IAEjD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAG3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAG/B,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;CACxC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
|
+
import type { UInt64 } from '../types/shared.js';
|
|
3
|
+
import type { PrivateKernelResetHints } from './hints/private_kernel_reset_hints.js';
|
|
4
|
+
import type { PaddedSideEffectAmounts, PaddedSideEffects } from './padded_side_effects.js';
|
|
5
|
+
import type { PrivateKernelData } from './private_kernel_data.js';
|
|
6
|
+
import { PrivateKernelResetCircuitPrivateInputsVariants } from './private_kernel_reset_circuit_private_inputs.js';
|
|
7
|
+
import type { PrivateKernelResetDimensions } from './private_kernel_reset_dimensions.js';
|
|
8
|
+
/**
|
|
9
|
+
* Input to a terminal reset+tail circuit. `isForPublic()` selects the rollup-bound (`reset_tail`)
|
|
10
|
+
* or public-bound (`reset_tail_to_public`) family.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PrivateKernelResetTailCircuitPrivateInputs {
|
|
13
|
+
previousKernel: PrivateKernelData;
|
|
14
|
+
paddedSideEffects: PaddedSideEffects;
|
|
15
|
+
hints: PrivateKernelResetHints<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX, typeof MAX_NULLIFIERS_PER_TX>;
|
|
16
|
+
dimensions: PrivateKernelResetDimensions;
|
|
17
|
+
paddedSideEffectAmounts: PaddedSideEffectAmounts;
|
|
18
|
+
expirationTimestampUpperBound: UInt64;
|
|
19
|
+
constructor(previousKernel: PrivateKernelData, paddedSideEffects: PaddedSideEffects, hints: PrivateKernelResetHints<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX, typeof MAX_NULLIFIERS_PER_TX>, dimensions: PrivateKernelResetDimensions, paddedSideEffectAmounts: PaddedSideEffectAmounts, expirationTimestampUpperBound: UInt64);
|
|
20
|
+
isForPublic(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Returns a dimension-trimmed view of the reset portion of these inputs (without the tail
|
|
23
|
+
* fields). The prover uses this to feed witness generation of the variant matching the chosen
|
|
24
|
+
* dimensions.
|
|
25
|
+
*/
|
|
26
|
+
trimResetToSizes(): PrivateKernelResetCircuitPrivateInputsVariants<number, number, number, number, number, number>;
|
|
27
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcmVzZXRfdGFpbF9jaXJjdWl0X3ByaXZhdGVfaW5wdXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2VybmVsL3ByaXZhdGVfa2VybmVsX3Jlc2V0X3RhaWxfY2lyY3VpdF9wcml2YXRlX2lucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFDVixrQ0FBa0MsRUFDbEMsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFDbkMsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0YsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsSCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpGOzs7R0FHRztBQUNILHFCQUFhLDBDQUEwQztJQUU1QyxjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGlCQUFpQixFQUFFLGlCQUFpQjtJQUNwQyxLQUFLLEVBQUUsdUJBQXVCLENBQ25DLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8scUJBQXFCLENBQzdCO0lBQ00sVUFBVSxFQUFFLDRCQUE0QjtJQUN4Qyx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsNkJBQTZCLEVBQUUsTUFBTTtJQWI5QyxZQUNTLGNBQWMsRUFBRSxpQkFBaUIsRUFDakMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQ3BDLEtBQUssRUFBRSx1QkFBdUIsQ0FDbkMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxxQkFBcUIsQ0FDN0IsRUFDTSxVQUFVLEVBQUUsNEJBQTRCLEVBQ3hDLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCw2QkFBNkIsRUFBRSxNQUFNLEVBQzFDO0lBRUosV0FBVyxZQUVWO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixtR0FVZjtJQUVELFFBQVEsNEJBU1A7Q0FDRiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private_kernel_reset_tail_circuit_private_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,kCAAkC,EAClC,qBAAqB,EACrB,kCAAkC,EACnC,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,8CAA8C,EAAE,MAAM,kDAAkD,CAAC;AAClH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;;GAGG;AACH,qBAAa,0CAA0C;IAE5C,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,iBAAiB;IACpC,KAAK,EAAE,uBAAuB,CACnC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,qBAAqB,CAC7B;IACM,UAAU,EAAE,4BAA4B;IACxC,uBAAuB,EAAE,uBAAuB;IAChD,6BAA6B,EAAE,MAAM;IAb9C,YACS,cAAc,EAAE,iBAAiB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,uBAAuB,CACnC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,qBAAqB,CAC7B,EACM,UAAU,EAAE,4BAA4B,EACxC,uBAAuB,EAAE,uBAAuB,EAChD,6BAA6B,EAAE,MAAM,EAC1C;IAEJ,WAAW,YAEV;IAED;;;;OAIG;IACH,gBAAgB,mGAUf;IAED,QAAQ,4BASP;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
2
|
+
import { kernelStateIsForPublic } from './private_kernel_circuit_public_inputs.js';
|
|
3
|
+
import { PrivateKernelResetCircuitPrivateInputsVariants } from './private_kernel_reset_circuit_private_inputs.js';
|
|
4
|
+
/**
|
|
5
|
+
* Input to a terminal reset+tail circuit. `isForPublic()` selects the rollup-bound (`reset_tail`)
|
|
6
|
+
* or public-bound (`reset_tail_to_public`) family.
|
|
7
|
+
*/ export class PrivateKernelResetTailCircuitPrivateInputs {
|
|
8
|
+
previousKernel;
|
|
9
|
+
paddedSideEffects;
|
|
10
|
+
hints;
|
|
11
|
+
dimensions;
|
|
12
|
+
paddedSideEffectAmounts;
|
|
13
|
+
expirationTimestampUpperBound;
|
|
14
|
+
constructor(previousKernel, paddedSideEffects, hints, dimensions, paddedSideEffectAmounts, expirationTimestampUpperBound){
|
|
15
|
+
this.previousKernel = previousKernel;
|
|
16
|
+
this.paddedSideEffects = paddedSideEffects;
|
|
17
|
+
this.hints = hints;
|
|
18
|
+
this.dimensions = dimensions;
|
|
19
|
+
this.paddedSideEffectAmounts = paddedSideEffectAmounts;
|
|
20
|
+
this.expirationTimestampUpperBound = expirationTimestampUpperBound;
|
|
21
|
+
}
|
|
22
|
+
isForPublic() {
|
|
23
|
+
return kernelStateIsForPublic(this.previousKernel.publicInputs);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns a dimension-trimmed view of the reset portion of these inputs (without the tail
|
|
27
|
+
* fields). The prover uses this to feed witness generation of the variant matching the chosen
|
|
28
|
+
* dimensions.
|
|
29
|
+
*/ trimResetToSizes() {
|
|
30
|
+
const hints = this.hints.trimToSizes(this.dimensions.NOTE_HASH_PENDING_READ, this.dimensions.NOTE_HASH_SETTLED_READ, this.dimensions.NULLIFIER_PENDING_READ, this.dimensions.NULLIFIER_SETTLED_READ, this.dimensions.KEY_VALIDATION, this.dimensions.TRANSIENT_DATA_SQUASHING);
|
|
31
|
+
return new PrivateKernelResetCircuitPrivateInputsVariants(this.previousKernel, this.paddedSideEffects, hints);
|
|
32
|
+
}
|
|
33
|
+
toBuffer() {
|
|
34
|
+
return serializeToBuffer(this.previousKernel, this.paddedSideEffects, this.hints, this.dimensions, this.paddedSideEffectAmounts, bigintToUInt64BE(this.expirationTimestampUpperBound));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -4,30 +4,65 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
4
4
|
import type { KeyPrefix } from './key_types.js';
|
|
5
5
|
import { PublicKey } from './public_key.js';
|
|
6
6
|
import { PublicKeys } from './public_keys.js';
|
|
7
|
-
export declare function computeAppNullifierHidingKey(
|
|
7
|
+
export declare function computeAppNullifierHidingKey(masterNullifierHidingSecretKey: GrumpkinScalar, app: AztecAddress): Promise<Fr>;
|
|
8
8
|
export declare function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr>;
|
|
9
9
|
export declare function computeOvskApp(ovsk: GrumpkinScalar, app: AztecAddress): Promise<Fq>;
|
|
10
|
-
export declare function
|
|
10
|
+
export declare function deriveMasterNullifierHidingSecretKey(secretKey: Fr): GrumpkinScalar;
|
|
11
11
|
export declare function deriveMasterIncomingViewingSecretKey(secretKey: Fr): GrumpkinScalar;
|
|
12
12
|
export declare function deriveMasterOutgoingViewingSecretKey(secretKey: Fr): GrumpkinScalar;
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function deriveMasterMessageSigningSecretKey(secretKey: Fr): GrumpkinScalar;
|
|
14
|
+
export declare function deriveMasterFallbackSecretKey(secretKey: Fr): GrumpkinScalar;
|
|
14
15
|
export declare function computePreaddress(publicKeysHash: Fr, partialAddress: Fr): Promise<Fr>;
|
|
15
16
|
export declare function computeAddress(publicKeys: PublicKeys, partialAddress: Fr): Promise<AztecAddress>;
|
|
16
17
|
export declare function computeAddressSecret(preaddress: Fr, ivsk: Fq): Promise<Fq>;
|
|
17
18
|
export declare function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<PublicKey>;
|
|
19
|
+
/**
|
|
20
|
+
* The six master secret keys that fully define an account's privacy keys.
|
|
21
|
+
*/
|
|
22
|
+
export type MasterSecretKeys = {
|
|
23
|
+
masterNullifierHidingSecretKey: GrumpkinScalar;
|
|
24
|
+
masterIncomingViewingSecretKey: GrumpkinScalar;
|
|
25
|
+
masterOutgoingViewingSecretKey: GrumpkinScalar;
|
|
26
|
+
masterTaggingSecretKey: GrumpkinScalar;
|
|
27
|
+
masterMessageSigningSecretKey: GrumpkinScalar;
|
|
28
|
+
masterFallbackSecretKey: GrumpkinScalar;
|
|
29
|
+
};
|
|
18
30
|
/**
|
|
19
31
|
* Computes secret and public keys and public keys hash from a secret key.
|
|
20
32
|
* @param secretKey - The secret key to derive keys from.
|
|
21
33
|
* @returns The derived keys.
|
|
22
34
|
*/
|
|
23
35
|
export declare function deriveKeys(secretKey: Fr): Promise<{
|
|
24
|
-
|
|
36
|
+
masterNullifierHidingSecretKey: Fq;
|
|
37
|
+
masterIncomingViewingSecretKey: Fq;
|
|
38
|
+
masterOutgoingViewingSecretKey: Fq;
|
|
39
|
+
masterTaggingSecretKey: Fq;
|
|
40
|
+
masterMessageSigningSecretKey: Fq;
|
|
41
|
+
masterFallbackSecretKey: Fq;
|
|
42
|
+
masterNullifierHidingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
43
|
+
masterOutgoingViewingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
44
|
+
masterTaggingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
45
|
+
masterMessageSigningPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
46
|
+
masterFallbackPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
47
|
+
publicKeys: PublicKeys;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Derives the master public keys and the {@link PublicKeys} struct from a set of master secret keys.
|
|
51
|
+
* @param secretKeys - The master secret keys to derive public keys from.
|
|
52
|
+
* @returns The provided secret keys alongside the derived public keys.
|
|
53
|
+
*/
|
|
54
|
+
export declare function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKeys): Promise<{
|
|
55
|
+
masterNullifierHidingSecretKey: Fq;
|
|
25
56
|
masterIncomingViewingSecretKey: Fq;
|
|
26
57
|
masterOutgoingViewingSecretKey: Fq;
|
|
27
58
|
masterTaggingSecretKey: Fq;
|
|
28
|
-
|
|
59
|
+
masterMessageSigningSecretKey: Fq;
|
|
60
|
+
masterFallbackSecretKey: Fq;
|
|
61
|
+
masterNullifierHidingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
29
62
|
masterOutgoingViewingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
30
63
|
masterTaggingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
64
|
+
masterMessageSigningPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
65
|
+
masterFallbackPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
31
66
|
publicKeys: PublicKeys;
|
|
32
67
|
}>;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleXMvZGVyaXZhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsd0JBQWdCLDRCQUE0QixDQUMxQyw4QkFBOEIsRUFBRSxjQUFjLEVBQzlDLEdBQUcsRUFBRSxZQUFZLEdBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFYjtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBRzdHO0FBRUQsd0JBQXNCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUt6RjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFbEY7QUFFRCx3QkFBZ0Isb0NBQW9DLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRWxGO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUVsRjtBQUVELHdCQUFnQixtQ0FBbUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFakY7QUFFRCx3QkFBZ0IsNkJBQTZCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRTNFO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsZUFFdkU7QUFFRCx3QkFBc0IsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBWXRHO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFvQmxFO0FBRUQsd0JBQWdCLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQU85RTtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLDhCQUE4QixFQUFFLGNBQWMsQ0FBQztJQUMvQyw4QkFBOEIsRUFBRSxjQUFjLENBQUM7SUFDL0MsOEJBQThCLEVBQUUsY0FBYyxDQUFDO0lBQy9DLHNCQUFzQixFQUFFLGNBQWMsQ0FBQztJQUN2Qyw2QkFBNkIsRUFBRSxjQUFjLENBQUM7SUFDOUMsdUJBQXVCLEVBQUUsY0FBYyxDQUFDO0NBQ3pDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRTs7Ozs7Ozs7Ozs7OztHQVd2QztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsOEJBQThCLENBQUMsVUFBVSxFQUFFLGdCQUFnQjs7Ozs7Ozs7Ozs7OztHQTRDaEYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,4BAA4B,
|
|
1
|
+
{"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,4BAA4B,CAC1C,8BAA8B,EAAE,cAAc,EAC9C,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,EAAE,CAAC,CAEb;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAG7G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAKzF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAEjF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAE3E;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,eAEvE;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAYtG;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,eAoBlE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAO9E;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8BAA8B,EAAE,cAAc,CAAC;IAC/C,8BAA8B,EAAE,cAAc,CAAC;IAC/C,8BAA8B,EAAE,cAAc,CAAC;IAC/C,sBAAsB,EAAE,cAAc,CAAC;IACvC,6BAA6B,EAAE,cAAc,CAAC;IAC9C,uBAAuB,EAAE,cAAc,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,EAAE;;;;;;;;;;;;;GAWvC;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,gBAAgB;;;;;;;;;;;;;GA4ChF"}
|
package/dest/keys/derivation.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
|
|
3
3
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
4
4
|
import { sha512ToGrumpkinScalar } from '@aztec/foundation/crypto/sha512';
|
|
5
5
|
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
6
6
|
import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
7
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
8
|
-
import { hashPublicKey } from './public_key.js';
|
|
8
|
+
import { PublicKey, hashPublicKey } from './public_key.js';
|
|
9
9
|
import { PublicKeys } from './public_keys.js';
|
|
10
10
|
import { getKeyGenerator } from './utils.js';
|
|
11
|
-
export function computeAppNullifierHidingKey(
|
|
12
|
-
return computeAppSecretKey(
|
|
11
|
+
export function computeAppNullifierHidingKey(masterNullifierHidingSecretKey, app) {
|
|
12
|
+
return computeAppSecretKey(masterNullifierHidingSecretKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
|
|
13
13
|
}
|
|
14
14
|
export function computeAppSecretKey(skM, app, keyPrefix) {
|
|
15
15
|
const generator = getKeyGenerator(keyPrefix);
|
|
@@ -25,7 +25,7 @@ export async function computeOvskApp(ovsk, app) {
|
|
|
25
25
|
// P = s * G will not be uniform because 2 * (q - r) / q is small.
|
|
26
26
|
return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
|
|
27
27
|
}
|
|
28
|
-
export function
|
|
28
|
+
export function deriveMasterNullifierHidingSecretKey(secretKey) {
|
|
29
29
|
return sha512ToGrumpkinScalar([
|
|
30
30
|
secretKey,
|
|
31
31
|
DomainSeparator.NHK_M
|
|
@@ -43,11 +43,16 @@ export function deriveMasterOutgoingViewingSecretKey(secretKey) {
|
|
|
43
43
|
DomainSeparator.OVSK_M
|
|
44
44
|
]);
|
|
45
45
|
}
|
|
46
|
-
export function
|
|
47
|
-
// TODO(#5837): come up with a standard signing key derivation scheme instead of using ivsk_m as signing keys here
|
|
46
|
+
export function deriveMasterMessageSigningSecretKey(secretKey) {
|
|
48
47
|
return sha512ToGrumpkinScalar([
|
|
49
48
|
secretKey,
|
|
50
|
-
DomainSeparator.
|
|
49
|
+
DomainSeparator.MSSK_M
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
export function deriveMasterFallbackSecretKey(secretKey) {
|
|
53
|
+
return sha512ToGrumpkinScalar([
|
|
54
|
+
secretKey,
|
|
55
|
+
DomainSeparator.FBSK_M
|
|
51
56
|
]);
|
|
52
57
|
}
|
|
53
58
|
export function computePreaddress(publicKeysHash, partialAddress) {
|
|
@@ -85,43 +90,61 @@ export async function computeAddressSecret(preaddress, ivsk) {
|
|
|
85
90
|
return addressSecretCandidate;
|
|
86
91
|
}
|
|
87
92
|
export function derivePublicKeyFromSecretKey(secretKey) {
|
|
93
|
+
// 0 * G is the point at infinity. The WASM encodes infinity with an out-of-field x coordinate that Point cannot
|
|
94
|
+
// deserialize, so return the point directly instead of calling into it.
|
|
95
|
+
if (secretKey.isZero()) {
|
|
96
|
+
return Promise.resolve(PublicKey.INFINITY);
|
|
97
|
+
}
|
|
88
98
|
return Grumpkin.mul(Grumpkin.generator, secretKey);
|
|
89
99
|
}
|
|
90
100
|
/**
|
|
91
101
|
* Computes secret and public keys and public keys hash from a secret key.
|
|
92
102
|
* @param secretKey - The secret key to derive keys from.
|
|
93
103
|
* @returns The derived keys.
|
|
94
|
-
*/ export
|
|
104
|
+
*/ export function deriveKeys(secretKey) {
|
|
95
105
|
// First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
|
|
96
106
|
// in a circuit
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
107
|
+
return deriveKeysFromMasterSecretKeys({
|
|
108
|
+
masterNullifierHidingSecretKey: deriveMasterNullifierHidingSecretKey(secretKey),
|
|
109
|
+
masterIncomingViewingSecretKey: deriveMasterIncomingViewingSecretKey(secretKey),
|
|
110
|
+
masterOutgoingViewingSecretKey: deriveMasterOutgoingViewingSecretKey(secretKey),
|
|
111
|
+
masterTaggingSecretKey: sha512ToGrumpkinScalar([
|
|
112
|
+
secretKey,
|
|
113
|
+
DomainSeparator.TSK_M
|
|
114
|
+
]),
|
|
115
|
+
masterMessageSigningSecretKey: deriveMasterMessageSigningSecretKey(secretKey),
|
|
116
|
+
masterFallbackSecretKey: deriveMasterFallbackSecretKey(secretKey)
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Derives the master public keys and the {@link PublicKeys} struct from a set of master secret keys.
|
|
121
|
+
* @param secretKeys - The master secret keys to derive public keys from.
|
|
122
|
+
* @returns The provided secret keys alongside the derived public keys.
|
|
123
|
+
*/ export async function deriveKeysFromMasterSecretKeys(secretKeys) {
|
|
124
|
+
const { masterNullifierHidingSecretKey, masterIncomingViewingSecretKey, masterOutgoingViewingSecretKey, masterTaggingSecretKey, masterMessageSigningSecretKey, masterFallbackSecretKey } = secretKeys;
|
|
125
|
+
const masterNullifierHidingPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingSecretKey);
|
|
106
126
|
const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
|
|
107
127
|
const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
|
|
108
128
|
const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
|
|
129
|
+
const masterMessageSigningPublicKey = await derivePublicKeyFromSecretKey(masterMessageSigningSecretKey);
|
|
130
|
+
const masterFallbackPublicKey = await derivePublicKeyFromSecretKey(masterFallbackSecretKey);
|
|
109
131
|
// The non-owner-visible PublicKeys carries hashes for npk/ovpk/tpk/mspk/fbpk and the raw
|
|
110
|
-
// point only for ivpk_m. The npk/ovpk/tpk raw points are also returned alongside so the key
|
|
111
|
-
// store can persist them under `${account}-{n|ov|t}pk_m` (only their hashes live in publicKeys).
|
|
132
|
+
// point only for ivpk_m. The npk/ovpk/tpk/mspk/fbpk raw points are also returned alongside so the key
|
|
133
|
+
// store can persist them under `${account}-{n|ov|t|ms|fb}pk_m` (only their hashes live in publicKeys).
|
|
112
134
|
// The ivpk_m point isn't returned separately because it already lives in publicKeys.ivpkM.
|
|
113
|
-
|
|
114
|
-
// TODO: There isn't a derivation path for the message signing(msk) and fallback(fbk) keys yet. So we just use the the
|
|
115
|
-
// default values for now.
|
|
116
|
-
const publicKeys = new PublicKeys(await hashPublicKey(masterNullifierPublicKey), masterIncomingViewingPublicKey, await hashPublicKey(masterOutgoingViewingPublicKey), await hashPublicKey(masterTaggingPublicKey), new Fr(DEFAULT_MSPK_M_HASH), new Fr(DEFAULT_FBPK_M_HASH));
|
|
135
|
+
const publicKeys = new PublicKeys(await hashPublicKey(masterNullifierHidingPublicKey), masterIncomingViewingPublicKey, await hashPublicKey(masterOutgoingViewingPublicKey), await hashPublicKey(masterTaggingPublicKey), await hashPublicKey(masterMessageSigningPublicKey), await hashPublicKey(masterFallbackPublicKey));
|
|
117
136
|
return {
|
|
118
|
-
|
|
137
|
+
masterNullifierHidingSecretKey,
|
|
119
138
|
masterIncomingViewingSecretKey,
|
|
120
139
|
masterOutgoingViewingSecretKey,
|
|
121
140
|
masterTaggingSecretKey,
|
|
122
|
-
|
|
141
|
+
masterMessageSigningSecretKey,
|
|
142
|
+
masterFallbackSecretKey,
|
|
143
|
+
masterNullifierHidingPublicKey,
|
|
123
144
|
masterOutgoingViewingPublicKey,
|
|
124
145
|
masterTaggingPublicKey,
|
|
146
|
+
masterMessageSigningPublicKey,
|
|
147
|
+
masterFallbackPublicKey,
|
|
125
148
|
publicKeys
|
|
126
149
|
};
|
|
127
150
|
}
|
|
@@ -19,22 +19,30 @@ export declare class AppTaggingSecret {
|
|
|
19
19
|
/**
|
|
20
20
|
* Derives an app-siloed, recipient-directional tagging secret from a shared tagging secret point.
|
|
21
21
|
*
|
|
22
|
+
* App-silos the point via {@link appSiloEcdhSharedSecretPoint}, then directs the result to `recipient`:
|
|
23
|
+
* `h([s_app, recipient])`. The directional step stops a symmetric shared secret (ECDH against an address, or an
|
|
24
|
+
* arbitrary registered point) from colliding bidirectionally, so two parties never share a tag sequence.
|
|
25
|
+
*
|
|
22
26
|
* The point is obtained either via {@link computeSharedTaggingSecret} (an ECDH key exchange against a sender) or
|
|
23
|
-
* registered directly as a pre-shared secret.
|
|
24
|
-
* pair.
|
|
27
|
+
* registered directly as a pre-shared secret.
|
|
25
28
|
*
|
|
26
29
|
* @param taggingSecretPoint - The shared tagging secret point (ECDH output, or a directly registered pre-shared secret)
|
|
27
30
|
* @param app - Contract address to silo the secret to
|
|
28
31
|
* @param recipient - Recipient of the log. Defines the "direction of the secret".
|
|
29
32
|
* @returns The secret that can be used along with an index to compute a tag to be included in a log.
|
|
30
33
|
*/
|
|
31
|
-
static
|
|
34
|
+
static computeDirectional(taggingSecretPoint: Point, app: AztecAddress, recipient: AztecAddress): Promise<AppTaggingSecret>;
|
|
35
|
+
/**
|
|
36
|
+
* Derives the bare app-siloed tagging secret from a shared secret point via {@link appSiloEcdhSharedSecretPoint},
|
|
37
|
+
* under the given delivery-mode kind.
|
|
38
|
+
*/
|
|
39
|
+
static computeAppSiloed(taggingSecretPoint: Point, app: AztecAddress, kind: AppTaggingSecretKind): Promise<AppTaggingSecret>;
|
|
32
40
|
/**
|
|
33
|
-
* Derives the
|
|
34
|
-
*
|
|
35
|
-
* `externalAddress` is not a valid address.
|
|
41
|
+
* Derives the tagging secret for `(externalAddress, recipient, app)` by performing an ECDH key exchange against
|
|
42
|
+
* `externalAddress` to obtain the shared point, then siloing and directing it via {@link computeDirectional}.
|
|
43
|
+
* Returns undefined if `externalAddress` is not a valid address.
|
|
36
44
|
*/
|
|
37
|
-
static
|
|
45
|
+
static computeViaEcdh(localAddress: CompleteAddress, localIvsk: Fq, externalAddress: AztecAddress, app: AztecAddress, recipient: AztecAddress): Promise<AppTaggingSecret | undefined>;
|
|
38
46
|
toString(): string;
|
|
39
47
|
static fromString(str: string): AppTaggingSecret;
|
|
40
48
|
}
|
|
@@ -58,4 +66,4 @@ export declare const AppTaggingSecretSchema: z.ZodPipe<z.ZodObject<{
|
|
|
58
66
|
* Returns undefined if `externalAddress` is an invalid address.
|
|
59
67
|
*/
|
|
60
68
|
export declare function computeSharedTaggingSecret(localAddress: CompleteAddress, localIvsk: Fq, externalAddress: AztecAddress): Promise<Point | undefined>;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3RhZ2dpbmdfc2VjcmV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9hcHBfdGFnZ2luZ19zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUXBFOzs7Ozs7R0FNRztBQUNILHFCQUFhLGdCQUFnQjthQUVULE1BQU0sRUFBRSxFQUFFO2FBQ1YsR0FBRyxFQUFFLFlBQVk7YUFDakIsSUFBSSxFQUFFLG9CQUFvQjtJQUg1QyxZQUNrQixNQUFNLEVBQUUsRUFBRSxFQUNWLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLElBQUksR0FBRSxvQkFBeUQsRUFDN0U7SUFFSjs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILE9BQWEsa0JBQWtCLENBQzdCLGtCQUFrQixFQUFFLEtBQUssRUFDekIsR0FBRyxFQUFFLFlBQVksRUFDakIsU0FBUyxFQUFFLFlBQVksR0FDdEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBSzNCO0lBRUQ7OztPQUdHO0lBQ0gsT0FBYSxnQkFBZ0IsQ0FDM0Isa0JBQWtCLEVBQUUsS0FBSyxFQUN6QixHQUFHLEVBQUUsWUFBWSxFQUNqQixJQUFJLEVBQUUsb0JBQW9CLEdBQ3pCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUUzQjtJQUVEOzs7O09BSUc7SUFDSCxPQUFhLGNBQWMsQ0FDekIsWUFBWSxFQUFFLGVBQWUsRUFDN0IsU0FBUyxFQUFFLEVBQUUsRUFDYixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsWUFBWSxFQUNqQixTQUFTLEVBQUUsWUFBWSxHQUN0QixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBT3ZDO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLENBVy9DO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUV4RTtBQUVELGVBQU8sTUFBTSxzQkFBc0I7Ozs7Ozs7O0dBTTZDLENBQUM7QUFhakY7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsMEJBQTBCLENBQzlDLFlBQVksRUFBRSxlQUFlLEVBQzdCLFNBQVMsRUFBRSxFQUFFLEVBQ2IsZUFBZSxFQUFFLFlBQVksR0FDNUIsT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FlNUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_tagging_secret.d.ts","sourceRoot":"","sources":["../../src/logs/app_tagging_secret.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"app_tagging_secret.d.ts","sourceRoot":"","sources":["../../src/logs/app_tagging_secret.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAQpE;;;;;;GAMG;AACH,qBAAa,gBAAgB;aAET,MAAM,EAAE,EAAE;aACV,GAAG,EAAE,YAAY;aACjB,IAAI,EAAE,oBAAoB;IAH5C,YACkB,MAAM,EAAE,EAAE,EACV,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE,oBAAyD,EAC7E;IAEJ;;;;;;;;;;;;;;OAcG;IACH,OAAa,kBAAkB,CAC7B,kBAAkB,EAAE,KAAK,EACzB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAK3B;IAED;;;OAGG;IACH,OAAa,gBAAgB,CAC3B,kBAAkB,EAAE,KAAK,EACzB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAE3B;IAED;;;;OAIG;IACH,OAAa,cAAc,CACzB,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAOvC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAW/C;CACF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAExE;AAED,eAAO,MAAM,sBAAsB;;;;;;;;GAM6C,CAAC;AAajF;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAe5B"}
|
|
@@ -5,6 +5,7 @@ import { z } from 'zod';
|
|
|
5
5
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
6
6
|
import { computeAddressSecret, computePreaddress } from '../keys/derivation.js';
|
|
7
7
|
import { AppTaggingSecretKind } from './app_tagging_secret_kind.js';
|
|
8
|
+
import { appSiloEcdhSharedSecretPoint } from './shared_secret_derivation.js';
|
|
8
9
|
const AppTaggingSecretKindSchema = z.union([
|
|
9
10
|
z.literal(AppTaggingSecretKind.UNCONSTRAINED),
|
|
10
11
|
z.literal(AppTaggingSecretKind.CONSTRAINED)
|
|
@@ -27,56 +28,52 @@ const AppTaggingSecretKindSchema = z.union([
|
|
|
27
28
|
/**
|
|
28
29
|
* Derives an app-siloed, recipient-directional tagging secret from a shared tagging secret point.
|
|
29
30
|
*
|
|
31
|
+
* App-silos the point via {@link appSiloEcdhSharedSecretPoint}, then directs the result to `recipient`:
|
|
32
|
+
* `h([s_app, recipient])`. The directional step stops a symmetric shared secret (ECDH against an address, or an
|
|
33
|
+
* arbitrary registered point) from colliding bidirectionally, so two parties never share a tag sequence.
|
|
34
|
+
*
|
|
30
35
|
* The point is obtained either via {@link computeSharedTaggingSecret} (an ECDH key exchange against a sender) or
|
|
31
|
-
* registered directly as a pre-shared secret.
|
|
32
|
-
* pair.
|
|
36
|
+
* registered directly as a pre-shared secret.
|
|
33
37
|
*
|
|
34
38
|
* @param taggingSecretPoint - The shared tagging secret point (ECDH output, or a directly registered pre-shared secret)
|
|
35
39
|
* @param app - Contract address to silo the secret to
|
|
36
40
|
* @param recipient - Recipient of the log. Defines the "direction of the secret".
|
|
37
41
|
* @returns The secret that can be used along with an index to compute a tag to be included in a log.
|
|
38
|
-
*/ static async
|
|
39
|
-
const
|
|
40
|
-
taggingSecretPoint.x,
|
|
41
|
-
taggingSecretPoint.y,
|
|
42
|
-
app
|
|
43
|
-
]);
|
|
42
|
+
*/ static async computeDirectional(taggingSecretPoint, app, recipient) {
|
|
43
|
+
const appSiloedSecret = await appSiloEcdhSharedSecretPoint(taggingSecretPoint, app);
|
|
44
44
|
const directionalAppTaggingSecret = await poseidon2Hash([
|
|
45
|
-
|
|
45
|
+
appSiloedSecret,
|
|
46
46
|
recipient
|
|
47
47
|
]);
|
|
48
48
|
return new AppTaggingSecret(directionalAppTaggingSecret, app);
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
|
-
* Derives the
|
|
52
|
-
*
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
* Derives the bare app-siloed tagging secret from a shared secret point via {@link appSiloEcdhSharedSecretPoint},
|
|
52
|
+
* under the given delivery-mode kind.
|
|
53
|
+
*/ static async computeAppSiloed(taggingSecretPoint, app, kind) {
|
|
54
|
+
return new AppTaggingSecret(await appSiloEcdhSharedSecretPoint(taggingSecretPoint, app), app, kind);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Derives the tagging secret for `(externalAddress, recipient, app)` by performing an ECDH key exchange against
|
|
58
|
+
* `externalAddress` to obtain the shared point, then siloing and directing it via {@link computeDirectional}.
|
|
59
|
+
* Returns undefined if `externalAddress` is not a valid address.
|
|
60
|
+
*/ static async computeViaEcdh(localAddress, localIvsk, externalAddress, app, recipient) {
|
|
55
61
|
const taggingSecretPoint = await computeSharedTaggingSecret(localAddress, localIvsk, externalAddress);
|
|
56
62
|
if (!taggingSecretPoint) {
|
|
57
63
|
return undefined;
|
|
58
64
|
}
|
|
59
|
-
return AppTaggingSecret.
|
|
65
|
+
return AppTaggingSecret.computeDirectional(taggingSecretPoint, app, recipient);
|
|
60
66
|
}
|
|
61
67
|
toString() {
|
|
62
|
-
// TODO(F-680): Migrate stored tagging keys and remove the legacy unconstrained format.
|
|
63
|
-
if (this.kind === AppTaggingSecretKind.UNCONSTRAINED) {
|
|
64
|
-
return `${this.secret.toString()}:${this.app.toString()}`;
|
|
65
|
-
}
|
|
66
68
|
return `${this.kind}:${this.secret.toString()}:${this.app.toString()}`;
|
|
67
69
|
}
|
|
68
70
|
static fromString(str) {
|
|
69
71
|
const parts = str.split(':');
|
|
70
|
-
if (parts.length
|
|
71
|
-
|
|
72
|
-
const [secretStr, appStr] = parts;
|
|
73
|
-
return new AppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromStringUnsafe(appStr));
|
|
74
|
-
}
|
|
75
|
-
if (parts.length === 3) {
|
|
76
|
-
const [kindStr, secretStr, appStr] = parts;
|
|
77
|
-
return new AppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromStringUnsafe(appStr), appTaggingSecretKindFromString(kindStr));
|
|
72
|
+
if (parts.length !== 3) {
|
|
73
|
+
throw new Error(`Invalid AppTaggingSecret string: ${str}`);
|
|
78
74
|
}
|
|
79
|
-
|
|
75
|
+
const [kindStr, secretStr, appStr] = parts;
|
|
76
|
+
return new AppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromStringUnsafe(appStr), appTaggingSecretKindFromString(kindStr));
|
|
80
77
|
}
|
|
81
78
|
}
|
|
82
79
|
/**
|
package/dest/logs/index.d.ts
CHANGED
|
@@ -5,15 +5,13 @@ export * from './tagging_index_range.js';
|
|
|
5
5
|
export * from './contract_class_log.js';
|
|
6
6
|
export * from './public_log.js';
|
|
7
7
|
export * from './private_log.js';
|
|
8
|
-
export * from './pending_tagged_log.js';
|
|
9
8
|
export * from './log_result.js';
|
|
10
9
|
export * from './log_cursor.js';
|
|
11
10
|
export * from './logs_query.js';
|
|
12
11
|
export * from './query_all_logs_by_tags.js';
|
|
13
12
|
export * from './shared_secret_derivation.js';
|
|
14
|
-
export * from './message_context.js';
|
|
15
13
|
export * from './debug_log.js';
|
|
16
14
|
export * from './debug_log_store.js';
|
|
17
15
|
export * from './tag.js';
|
|
18
16
|
export * from './siloed_tag.js';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxpQkFBaUIsQ0FBQyJ9
|