@aztec/stdlib 4.0.0-spartan.20260217 → 4.0.1
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/abi/decoder.d.ts +1 -1
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +1 -4
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +9 -5
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/revert_code.d.ts +16 -1
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +15 -5
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
- package/dest/config/sequencer-config.d.ts +5 -3
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +13 -0
- package/dest/contract/contract_address.js +4 -4
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +3 -3
- package/dest/contract/private_function.js +2 -2
- package/dest/file-store/local.d.ts +3 -3
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/local.js +13 -4
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/file-store/s3.js +11 -3
- package/dest/hash/hash.js +11 -11
- package/dest/hash/map_slot.js +2 -2
- package/dest/interfaces/aztec-node-admin.d.ts +27 -5
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +9 -3
- package/dest/interfaces/configs.d.ts +7 -2
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +5 -2
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +1 -0
- package/dest/kernel/hints/index.d.ts +2 -2
- package/dest/kernel/hints/index.js +2 -2
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
- package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
- package/dest/kernel/private_circuit_public_inputs.d.ts +6 -6
- package/dest/kernel/private_circuit_public_inputs.js +11 -11
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +2 -2
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +2 -2
- package/dest/kernel/private_validation_requests.d.ts +3 -3
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/keys/derivation.js +8 -8
- package/dest/keys/key_types.d.ts +3 -3
- package/dest/keys/key_types.d.ts.map +1 -1
- package/dest/keys/public_keys.js +2 -2
- package/dest/keys/utils.js +5 -5
- package/dest/logs/debug_log_store.d.ts +30 -0
- package/dest/logs/debug_log_store.d.ts.map +1 -0
- package/dest/logs/debug_log_store.js +30 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
- package/dest/logs/index.d.ts +3 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +2 -1
- package/dest/logs/pre_tag.d.ts +16 -11
- package/dest/logs/pre_tag.d.ts.map +1 -1
- package/dest/logs/pre_tag.js +2 -2
- package/dest/logs/private_log.d.ts +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/siloed_tag.d.ts +5 -3
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +6 -1
- package/dest/logs/tag.js +1 -1
- package/dest/p2p/attestation_utils.d.ts +11 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +45 -0
- package/dest/tests/factories.d.ts +3 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +18 -10
- package/dest/tests/mocks.d.ts +2 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +5 -5
- package/dest/tx/block_header.js +2 -2
- package/dest/tx/profiling.d.ts +4 -4
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +3 -3
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/public_simulation_output.d.ts +4 -2
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.js +7 -3
- package/dest/tx/tx_receipt.d.ts +16 -2
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +11 -3
- package/dest/tx/tx_request.js +2 -2
- package/package.json +9 -9
- package/src/abi/decoder.ts +1 -4
- package/src/abi/encoder.ts +8 -5
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/revert_code.ts +15 -0
- package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
- package/src/config/sequencer-config.ts +20 -2
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +3 -3
- package/src/contract/private_function.ts +2 -2
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/hash/hash.ts +11 -11
- package/src/hash/map_slot.ts +2 -2
- package/src/interfaces/aztec-node-admin.ts +23 -0
- package/src/interfaces/configs.ts +4 -0
- package/src/interfaces/merkle_tree_operations.ts +1 -1
- package/src/interfaces/validator.ts +2 -1
- package/src/kernel/hints/index.ts +2 -2
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/private_circuit_public_inputs.ts +10 -10
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/keys/derivation.ts +8 -8
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_keys.ts +2 -2
- package/src/keys/utils.ts +5 -5
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
- package/src/logs/index.ts +2 -1
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/siloed_tag.ts +8 -2
- package/src/logs/tag.ts +1 -1
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/tests/factories.ts +20 -11
- package/src/tests/mocks.ts +7 -3
- package/src/tx/block_header.ts +2 -2
- package/src/tx/profiling.ts +5 -5
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/tx_receipt.ts +10 -0
- package/src/tx/tx_request.ts +2 -2
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
- package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
package/dest/abi/decoder.d.ts
CHANGED
|
@@ -55,4 +55,4 @@ export declare function decodeFunctionSignature(name: string, parameters: ABIPar
|
|
|
55
55
|
* @returns - The user-friendly function signature.
|
|
56
56
|
*/
|
|
57
57
|
export declare function decodeFunctionSignatureWithParameterNames(name: string, parameters: ABIParameter[]): string;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9kZWNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFlLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUduRTs7R0FFRztBQUNILE1BQU0sTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLE9BQU8sR0FBRyxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsRUFBRSxHQUFHO0lBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FBQTtDQUFFLENBQUM7QUErRmpIOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxjQUV6RDtBQUVEOztHQUVHO0FBQ0gscUJBQWEsd0JBQXdCO0lBR2pDLE9BQU8sQ0FBQyxJQUFJO0lBQ1osT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLFlBQVk7SUFKdEIsT0FBTyxDQUFDLFNBQVMsQ0FBUztJQUMxQixZQUNVLElBQUksRUFBRSxNQUFNLEVBQ1osVUFBVSxFQUFFLFlBQVksRUFBRSxFQUMxQixZQUFZLFVBQVEsRUFHN0I7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLGdCQUFnQjtJQW1CeEI7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxlQUFlO0lBS3ZCOzs7T0FHRztJQUNJLE1BQU0sSUFBSSxNQUFNLENBRXRCO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFFL0U7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQix5Q0FBeUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFFakcifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/abi/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAe,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AA+FjH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAEzD;AAED;;GAEG;AACH,qBAAa,wBAAwB;IAGjC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,SAAS,CAAS;IAC1B,YACU,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,YAAY,EAAE,EAC1B,YAAY,UAAQ,EAG7B;IAED;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/abi/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAe,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AA+FjH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAEzD;AAED;;GAEG;AACH,qBAAa,wBAAwB;IAGjC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,SAAS,CAAS;IAC1B,YACU,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,YAAY,EAAE,EAC1B,YAAY,UAAQ,EAG7B;IAED;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;IACI,MAAM,IAAI,MAAM,CAEtB;CACF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAE/E;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAEjG"}
|
package/dest/abi/decoder.js
CHANGED
|
@@ -119,10 +119,7 @@ import { isAztecAddressStruct, parseSignedInt } from './utils.js';
|
|
|
119
119
|
case 'field':
|
|
120
120
|
return 'Field';
|
|
121
121
|
case 'integer':
|
|
122
|
-
|
|
123
|
-
throw new Error('Unsupported type: signed integer');
|
|
124
|
-
}
|
|
125
|
-
return `u${param.width}`;
|
|
122
|
+
return param.sign === 'signed' ? `i${param.width}` : `u${param.width}`;
|
|
126
123
|
case 'boolean':
|
|
127
124
|
return 'bool';
|
|
128
125
|
case 'array':
|
package/dest/abi/encoder.d.ts
CHANGED
|
@@ -13,4 +13,4 @@ export declare function encodeArguments(abi: FunctionAbi, args: any[]): Fr[];
|
|
|
13
13
|
* @returns The size of the arguments.
|
|
14
14
|
*/
|
|
15
15
|
export declare function countArgumentsSize(abi: FunctionAbi): number;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBVyxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFxT3JEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsUUFFNUQ7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxXQUFXLFVBRWxEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/abi/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/abi/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,UAAU,CAAC;AAqOrD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,QAE5D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,UAElD"}
|
package/dest/abi/encoder.js
CHANGED
|
@@ -129,13 +129,17 @@ import { isAddressStruct, isBoundedVecStruct, isFunctionSelectorStruct, isWrappe
|
|
|
129
129
|
break;
|
|
130
130
|
}
|
|
131
131
|
case 'integer':
|
|
132
|
-
|
|
132
|
+
{
|
|
133
133
|
const value = BigInt(arg);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
134
|
+
if (abiType.sign === 'signed' && value < 0n) {
|
|
135
|
+
// Convert negative values to two's complement representation
|
|
136
|
+
const twosComplement = value + (1n << BigInt(abiType.width));
|
|
137
|
+
this.flattened.push(new Fr(twosComplement));
|
|
138
|
+
} else {
|
|
139
|
+
this.flattened.push(new Fr(value));
|
|
140
|
+
}
|
|
141
|
+
break;
|
|
137
142
|
}
|
|
138
|
-
break;
|
|
139
143
|
default:
|
|
140
144
|
throw new Error(`Unsupported type: ${abiType.kind}`);
|
|
141
145
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -47,7 +47,7 @@ import { Vector } from '../types/shared.js';
|
|
|
47
47
|
* @param args - The arguments to hash
|
|
48
48
|
* @returns The inner hash for the witness
|
|
49
49
|
*/ export const computeInnerAuthWitHash = (args)=>{
|
|
50
|
-
return poseidon2HashWithSeparator(args,
|
|
50
|
+
return poseidon2HashWithSeparator(args, DomainSeparator.AUTHWIT_INNER);
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
53
|
* Compute the outer hash for an authentication witness.
|
|
@@ -66,5 +66,5 @@ import { Vector } from '../types/shared.js';
|
|
|
66
66
|
chainId,
|
|
67
67
|
version,
|
|
68
68
|
innerHash
|
|
69
|
-
],
|
|
69
|
+
], DomainSeparator.AUTHWIT_OUTER);
|
|
70
70
|
};
|
|
@@ -2,10 +2,25 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
2
2
|
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
3
3
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { inspect } from 'util';
|
|
5
|
+
/**
|
|
6
|
+
* Tracks which revertible phases of a transaction's public execution reverted.
|
|
7
|
+
*
|
|
8
|
+
* A transaction executes in three sequential phases:
|
|
9
|
+
* 1. SETUP – non-revertible; if this fails the entire transaction is rejected.
|
|
10
|
+
* 2. APP_LOGIC – revertible; its state changes are rolled back on failure.
|
|
11
|
+
* 3. TEARDOWN – revertible; always runs (even after app-logic revert) so the fee-payment contract can clean up.
|
|
12
|
+
*
|
|
13
|
+
* Only APP_LOGIC and TEARDOWN can produce a revert code. SETUP failures throw instead and discard the transaction
|
|
14
|
+
* entirely.
|
|
15
|
+
*/
|
|
5
16
|
export declare enum RevertCodeEnum {
|
|
17
|
+
/** All phases completed successfully; no state was rolled back. */
|
|
6
18
|
OK = 0,
|
|
19
|
+
/** APP_LOGIC reverted; its state changes were discarded. If present, TEARDOWN still ran and succeeded. */
|
|
7
20
|
APP_LOGIC_REVERTED = 1,
|
|
21
|
+
/** TEARDOWN reverted; its state changes were discarded. APP_LOGIC succeeded. */
|
|
8
22
|
TEARDOWN_REVERTED = 2,
|
|
23
|
+
/** Both APP_LOGIC and TEARDOWN reverted; only SETUP effects are kept. */
|
|
9
24
|
BOTH_REVERTED = 3
|
|
10
25
|
}
|
|
11
26
|
/**
|
|
@@ -52,4 +67,4 @@ export declare class RevertCode {
|
|
|
52
67
|
static random(): RevertCode;
|
|
53
68
|
[inspect.custom](): string;
|
|
54
69
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJ0X2NvZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vcmV2ZXJ0X2NvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQjs7Ozs7Ozs7OztHQVVHO0FBQ0gsb0JBQVksY0FBYztJQUN4QixtRUFBbUU7SUFDbkUsRUFBRSxJQUFJO0lBQ04sMEdBQTBHO0lBQzFHLGtCQUFrQixJQUFJO0lBQ3RCLGdGQUFnRjtJQUNoRixpQkFBaUIsSUFBSTtJQUNyQix5RUFBeUU7SUFDekUsYUFBYSxJQUFJO0NBQ2xCO0FBV0Q7O0dBRUc7QUFDSCxxQkFBYSxVQUFVO0lBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQVM7SUFDckIsT0FBTyxlQUVOO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFxQztJQUNuRSxNQUFNLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBcUQ7SUFDbkcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQW9EO0lBQ2pHLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBZ0Q7SUFFbEYsT0FBTyxJQUFJLGNBQWMsQ0FFL0I7SUFFTSxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBRXhDO0lBRU0sSUFBSSxJQUFJLE9BQU8sQ0FFckI7SUFFTSxjQUFjLFdBYXBCO0lBRU0sTUFBTSxXQUVaO0lBRUQsTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBRXRDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFVBQVUsQ0FTM0M7SUFFRDs7Ozs7T0FLRztJQUVILE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFNO0lBQzdDLGNBQWMsSUFBSSxNQUFNLENBRzlCO0lBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUs7SUFDMUMsUUFBUSxJQUFJLE1BQU0sQ0FJeEI7SUFFTSxPQUFPLElBQUksRUFBRSxDQUVuQjtJQUVNLG1CQUFtQixJQUFJLE1BQU0sQ0FFbkM7SUFFRCxPQUFjLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLakQ7SUFFRCxPQUFjLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FFN0M7SUFFRCxPQUFjLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLFVBQVUsQ0FHL0Q7SUFFRCxPQUFjLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxVQUFVLENBSWxFO0lBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFLO0lBQ3hDLE1BQU0sQ0FBQyxNQUFNLElBQUksVUFBVSxDQUUxQjtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revert_code.d.ts","sourceRoot":"","sources":["../../src/avm/revert_code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,oBAAY,cAAc;IACxB,EAAE,IAAI;IACN,kBAAkB,IAAI;IACtB,iBAAiB,IAAI;IACrB,aAAa,IAAI;CAClB;AAWD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,eAEN;IACD,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAqC;IACnE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,UAAU,CAAqD;IACnG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAoD;IACjG,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAgD;IAElF,OAAO,IAAI,cAAc,CAE/B;IAEM,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAExC;IAEM,IAAI,IAAI,OAAO,CAErB;IAEM,cAAc,WAapB;IAEM,MAAM,WAEZ;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAEtC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAS3C;IAED;;;;;OAKG;IAEH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAM;IAC7C,cAAc,IAAI,MAAM,CAG9B;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAC1C,QAAQ,IAAI,MAAM,CAIxB;IAEM,OAAO,IAAI,EAAE,CAEnB;IAEM,mBAAmB,IAAI,MAAM,CAEnC;IAED,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAKjD;IAED,OAAc,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,CAE7C;IAED,OAAc,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU,CAG/D;IAED,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAIlE;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,MAAM,CAAC,MAAM,IAAI,UAAU,CAE1B;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;CACF"}
|
|
1
|
+
{"version":3,"file":"revert_code.d.ts","sourceRoot":"","sources":["../../src/avm/revert_code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B;;;;;;;;;;GAUG;AACH,oBAAY,cAAc;IACxB,mEAAmE;IACnE,EAAE,IAAI;IACN,0GAA0G;IAC1G,kBAAkB,IAAI;IACtB,gFAAgF;IAChF,iBAAiB,IAAI;IACrB,yEAAyE;IACzE,aAAa,IAAI;CAClB;AAWD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,eAEN;IACD,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAqC;IACnE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,UAAU,CAAqD;IACnG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAoD;IACjG,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAgD;IAElF,OAAO,IAAI,cAAc,CAE/B;IAEM,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAExC;IAEM,IAAI,IAAI,OAAO,CAErB;IAEM,cAAc,WAapB;IAEM,MAAM,WAEZ;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAEtC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAS3C;IAED;;;;;OAKG;IAEH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAM;IAC7C,cAAc,IAAI,MAAM,CAG9B;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAC1C,QAAQ,IAAI,MAAM,CAIxB;IAEM,OAAO,IAAI,EAAE,CAEnB;IAEM,mBAAmB,IAAI,MAAM,CAEnC;IAED,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAKjD;IAED,OAAc,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,CAE7C;IAED,OAAc,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU,CAG/D;IAED,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAIlE;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,MAAM,CAAC,MAAM,IAAI,UAAU,CAE1B;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;CACF"}
|
package/dest/avm/revert_code.js
CHANGED
|
@@ -3,11 +3,21 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { inspect } from 'util';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Tracks which revertible phases of a transaction's public execution reverted.
|
|
8
|
+
*
|
|
9
|
+
* A transaction executes in three sequential phases:
|
|
10
|
+
* 1. SETUP – non-revertible; if this fails the entire transaction is rejected.
|
|
11
|
+
* 2. APP_LOGIC – revertible; its state changes are rolled back on failure.
|
|
12
|
+
* 3. TEARDOWN – revertible; always runs (even after app-logic revert) so the fee-payment contract can clean up.
|
|
13
|
+
*
|
|
14
|
+
* Only APP_LOGIC and TEARDOWN can produce a revert code. SETUP failures throw instead and discard the transaction
|
|
15
|
+
* entirely.
|
|
16
|
+
*/ export var RevertCodeEnum = /*#__PURE__*/ function(RevertCodeEnum) {
|
|
17
|
+
/** All phases completed successfully; no state was rolled back. */ RevertCodeEnum[RevertCodeEnum["OK"] = 0] = "OK";
|
|
18
|
+
/** APP_LOGIC reverted; its state changes were discarded. If present, TEARDOWN still ran and succeeded. */ RevertCodeEnum[RevertCodeEnum["APP_LOGIC_REVERTED"] = 1] = "APP_LOGIC_REVERTED";
|
|
19
|
+
/** TEARDOWN reverted; its state changes were discarded. APP_LOGIC succeeded. */ RevertCodeEnum[RevertCodeEnum["TEARDOWN_REVERTED"] = 2] = "TEARDOWN_REVERTED";
|
|
20
|
+
/** Both APP_LOGIC and TEARDOWN reverted; only SETUP effects are kept. */ RevertCodeEnum[RevertCodeEnum["BOTH_REVERTED"] = 3] = "BOTH_REVERTED";
|
|
11
21
|
return RevertCodeEnum;
|
|
12
22
|
}({});
|
|
13
23
|
function isRevertCodeEnum(value) {
|
|
@@ -37,4 +37,4 @@ export declare class L2BlockStream {
|
|
|
37
37
|
private getBlockHashFromSource;
|
|
38
38
|
private emitEvent;
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfc3RyZWFtLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc3RyZWFtL2wyX2Jsb2NrX3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQWtCLEtBQUssYUFBYSxFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBQzFGLE9BQU8sS0FBSyxFQUFzQix5QkFBeUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJILHNHQUFzRztBQUN0RyxlQUFPLE1BQU0seUJBQXlCLEtBQUssQ0FBQztBQUU1Qyx1SEFBdUg7QUFDdkgscUJBQWEsYUFBYTtJQU10QixPQUFPLENBQUMsYUFBYTtJQUlyQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRztJQUNwQixPQUFPLENBQUMsSUFBSTtJQVpkLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFpQjtJQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFTO0lBQzFCLE9BQU8sQ0FBQyxVQUFVLENBQVM7SUFFM0IsWUFDVSxhQUFhLEVBQUUsSUFBSSxDQUN6QixhQUFhLEVBQ2IsV0FBVyxHQUFHLGdCQUFnQixHQUFHLFdBQVcsR0FBRyxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FDMUYsRUFDTyxTQUFTLEVBQUUsOEJBQThCLEVBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFDekIsR0FBRyx5Q0FBcUMsRUFDakQsSUFBSSxHQUFFO1FBQ1osY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3hCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDdkIsa0hBQWtIO1FBQ2xILGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUN4QiwySUFBMkk7UUFDM0ksaUJBQWlCLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDNUIsaUhBQWlIO1FBQ2pILHVCQUF1QixDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQzdCLEVBT1A7SUFFTSxLQUFLLFNBR1g7SUFFWSxJQUFJLGtCQUVoQjtJQUVNLFNBQVMsWUFFZjtJQUVEOzs7O09BSUc7SUFDVSxJQUFJLGtCQUloQjtJQUVELFVBQWdCLElBQUksa0JBK0xuQjtZQU9hLHFCQUFxQjtJQXdCbkMsT0FBTyxDQUFDLHNCQUFzQjtZQU9oQixTQUFTO0NBU3hCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_block_stream.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_block_stream.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,aAAa,EAAiB,MAAM,uBAAuB,CAAC;AAC1F,OAAO,KAAK,EAAsB,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAErH,sGAAsG;AACtG,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,uHAAuH;AACvH,qBAAa,aAAa;IAMtB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,IAAI;IAZd,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAE3B,YACU,aAAa,EAAE,IAAI,CACzB,aAAa,EACb,WAAW,GAAG,gBAAgB,GAAG,WAAW,GAAG,gBAAgB,GAAG,uBAAuB,CAC1F,EACO,SAAS,EAAE,8BAA8B,EACzC,OAAO,EAAE,yBAAyB,EACzB,GAAG,yCAAqC,EACjD,IAAI,GAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kHAAkH;QAClH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,2IAA2I;QAC3I,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,iHAAiH;QACjH,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAC7B,EAOP;IAEM,KAAK,SAGX;IAEY,IAAI,kBAEhB;IAEM,SAAS,YAEf;IAED;;;;OAIG;IACU,IAAI,kBAIhB;IAED,UAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"l2_block_stream.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_block_stream.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,aAAa,EAAiB,MAAM,uBAAuB,CAAC;AAC1F,OAAO,KAAK,EAAsB,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAErH,sGAAsG;AACtG,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,uHAAuH;AACvH,qBAAa,aAAa;IAMtB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,IAAI;IAZd,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAE3B,YACU,aAAa,EAAE,IAAI,CACzB,aAAa,EACb,WAAW,GAAG,gBAAgB,GAAG,WAAW,GAAG,gBAAgB,GAAG,uBAAuB,CAC1F,EACO,SAAS,EAAE,8BAA8B,EACzC,OAAO,EAAE,yBAAyB,EACzB,GAAG,yCAAqC,EACjD,IAAI,GAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kHAAkH;QAClH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,2IAA2I;QAC3I,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,iHAAiH;QACjH,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAC7B,EAOP;IAEM,KAAK,SAGX;IAEY,IAAI,kBAEhB;IAEM,SAAS,YAEf;IAED;;;;OAIG;IACU,IAAI,kBAIhB;IAED,UAAgB,IAAI,kBA+LnB;YAOa,qBAAqB;IAwBnC,OAAO,CAAC,sBAAsB;YAOhB,SAAS;CASxB"}
|
|
@@ -88,6 +88,16 @@ import { makeL2BlockId } from '../l2_block_source.js';
|
|
|
88
88
|
}
|
|
89
89
|
let nextBlockNumber = latestBlockNumber + 1;
|
|
90
90
|
let nextCheckpointToEmit = CheckpointNumber(localTips.checkpointed.checkpoint.number + 1);
|
|
91
|
+
// When startingBlock is set, also skip ahead for checkpoints.
|
|
92
|
+
if (this.opts.startingBlock !== undefined && this.opts.startingBlock >= 1 && nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
|
|
93
|
+
const startingBlockCheckpoints = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(this.opts.startingBlock), 1);
|
|
94
|
+
if (startingBlockCheckpoints.length > 0) {
|
|
95
|
+
nextCheckpointToEmit = CheckpointNumber(Math.max(nextCheckpointToEmit, startingBlockCheckpoints[0].checkpointNumber));
|
|
96
|
+
} else {
|
|
97
|
+
// startingBlock is past all checkpointed blocks; skip Loop 1 entirely.
|
|
98
|
+
nextCheckpointToEmit = CheckpointNumber(sourceTips.checkpointed.checkpoint.number + 1);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
91
101
|
if (this.opts.skipFinalized) {
|
|
92
102
|
// When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
|
|
93
103
|
// possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
2
2
|
import type { SequencerConfig } from '../interfaces/configs.js';
|
|
3
|
+
/** Default maximum number of transactions per block. */
|
|
4
|
+
export declare const DEFAULT_MAX_TXS_PER_BLOCK = 32;
|
|
3
5
|
/**
|
|
4
6
|
* Partial sequencer config mappings for fields that need to be shared across packages.
|
|
5
7
|
* The full sequencer config mappings remain in sequencer-client, but shared fields
|
|
6
8
|
* (like blockDurationMs needed by both p2p and sequencer-client) are defined here
|
|
7
9
|
* to avoid duplication.
|
|
8
10
|
*/
|
|
9
|
-
export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs'>>;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'>>;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9zZXF1ZW5jZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFzQixNQUFNLDBCQUEwQixDQUFDO0FBRXZGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLHdEQUF3RDtBQUN4RCxlQUFPLE1BQU0seUJBQXlCLEtBQUssQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSw2QkFBNkIsRUFBRSxrQkFBa0IsQ0FDNUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsR0FBRywrQkFBK0IsR0FBRyxnQkFBZ0IsQ0FBQyxDQXNCOUYsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAEvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAC5D,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,+BAA+B,GAAG,gBAAgB,CAAC,CAsB9F,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { numberConfigHelper } from '@aztec/foundation/config';
|
|
2
|
+
/** Default maximum number of transactions per block. */ export const DEFAULT_MAX_TXS_PER_BLOCK = 32;
|
|
1
3
|
/**
|
|
2
4
|
* Partial sequencer config mappings for fields that need to be shared across packages.
|
|
3
5
|
* The full sequencer config mappings remain in sequencer-client, but shared fields
|
|
@@ -8,5 +10,16 @@
|
|
|
8
10
|
env: 'SEQ_BLOCK_DURATION_MS',
|
|
9
11
|
description: 'Duration per block in milliseconds when building multiple blocks per slot. ' + 'If undefined (default), builds a single block per slot using the full slot duration.',
|
|
10
12
|
parseEnv: (val)=>val ? parseInt(val, 10) : undefined
|
|
13
|
+
},
|
|
14
|
+
expectedBlockProposalsPerSlot: {
|
|
15
|
+
env: 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT',
|
|
16
|
+
description: 'Expected number of block proposals per slot for P2P peer scoring. ' + '0 (default) disables block proposal scoring. Set to a positive value to enable.',
|
|
17
|
+
parseEnv: (val)=>val ? parseInt(val, 10) : 0,
|
|
18
|
+
defaultValue: 0
|
|
19
|
+
},
|
|
20
|
+
maxTxsPerBlock: {
|
|
21
|
+
env: 'SEQ_MAX_TX_PER_BLOCK',
|
|
22
|
+
description: 'The maximum number of txs to include in a block.',
|
|
23
|
+
...numberConfigHelper(DEFAULT_MAX_TXS_PER_BLOCK)
|
|
11
24
|
}
|
|
12
25
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { FunctionSelector, encodeArguments } from '../abi/index.js';
|
|
@@ -25,7 +25,7 @@ import { computeAddress } from '../keys/index.js';
|
|
|
25
25
|
return poseidon2HashWithSeparator([
|
|
26
26
|
instance.originalContractClassId,
|
|
27
27
|
saltedInitializationHash
|
|
28
|
-
],
|
|
28
|
+
], DomainSeparator.PARTIAL_ADDRESS);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Computes the salted initialization hash for an address, defined as the hash of the salt and initialization hash.
|
|
@@ -35,7 +35,7 @@ import { computeAddress } from '../keys/index.js';
|
|
|
35
35
|
instance.salt,
|
|
36
36
|
instance.initializationHash,
|
|
37
37
|
instance.deployer
|
|
38
|
-
],
|
|
38
|
+
], DomainSeparator.PARTIAL_ADDRESS);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Computes the initialization hash for an instance given its constructor function and arguments.
|
|
@@ -60,5 +60,5 @@ import { computeAddress } from '../keys/index.js';
|
|
|
60
60
|
return poseidon2HashWithSeparator([
|
|
61
61
|
initFn,
|
|
62
62
|
argsHash
|
|
63
|
-
],
|
|
63
|
+
], DomainSeparator.INITIALIZER);
|
|
64
64
|
}
|
|
@@ -3,7 +3,7 @@ import { type ContractArtifact, type FunctionArtifact } from '../abi/index.js';
|
|
|
3
3
|
import { type ContractClassIdPreimage } from './contract_class_id.js';
|
|
4
4
|
import type { ContractClass, ContractClassWithId } from './interfaces/index.js';
|
|
5
5
|
/** Contract artifact including its artifact hash */
|
|
6
|
-
type ContractArtifactWithHash = ContractArtifact & {
|
|
6
|
+
export type ContractArtifactWithHash = ContractArtifact & {
|
|
7
7
|
artifactHash: Fr;
|
|
8
8
|
};
|
|
9
9
|
/** Creates a ContractClass from a contract compilation artifact. */
|
|
@@ -13,5 +13,4 @@ export declare function getContractClassPrivateFunctionFromArtifact(f: FunctionA
|
|
|
13
13
|
* For a given private function, computes the hash of its vk.
|
|
14
14
|
*/
|
|
15
15
|
export declare function computeVerificationKeyHash(f: FunctionArtifact): Promise<Fr>;
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsS0FBSyxnQkFBZ0IsRUFBa0MsTUFBTSxpQkFBaUIsQ0FBQztBQUcvRyxPQUFPLEVBQUUsS0FBSyx1QkFBdUIsRUFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRixvREFBb0Q7QUFDcEQsS0FBSyx3QkFBd0IsR0FBRyxnQkFBZ0IsR0FBRztJQUFFLFlBQVksRUFBRSxFQUFFLENBQUE7Q0FBRSxDQUFDO0FBS3hFLG9FQUFvRTtBQUNwRSx3QkFBc0IsNEJBQTRCLENBQ2hELFFBQVEsRUFBRSxnQkFBZ0IsR0FBRyx3QkFBd0IsR0FDcEQsT0FBTyxDQUFDLG1CQUFtQixHQUFHLHVCQUF1QixDQUFDLENBMEJ4RDtBQUVELHdCQUFzQiwyQ0FBMkMsQ0FDL0QsQ0FBQyxFQUFFLGdCQUFnQixHQUNsQixPQUFPLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FLcEQ7QUFFRDs7R0FFRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLGVBS25FIn0=
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsS0FBSyxnQkFBZ0IsRUFBa0MsTUFBTSxpQkFBaUIsQ0FBQztBQUcvRyxPQUFPLEVBQUUsS0FBSyx1QkFBdUIsRUFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRixvREFBb0Q7QUFDcEQsTUFBTSxNQUFNLHdCQUF3QixHQUFHLGdCQUFnQixHQUFHO0lBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQTtDQUFFLENBQUM7QUFLL0Usb0VBQW9FO0FBQ3BFLHdCQUFzQiw0QkFBNEIsQ0FDaEQsUUFBUSxFQUFFLGdCQUFnQixHQUFHLHdCQUF3QixHQUNwRCxPQUFPLENBQUMsbUJBQW1CLEdBQUcsdUJBQXVCLENBQUMsQ0EwQnhEO0FBRUQsd0JBQXNCLDJDQUEyQyxDQUMvRCxDQUFDLEVBQUUsZ0JBQWdCLEdBQ2xCLE9BQU8sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUtwRDtBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLENBQUMsRUFBRSxnQkFBZ0IsZUFLbkUifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAkC,MAAM,iBAAiB,CAAC;AAG/G,OAAO,EAAE,KAAK,uBAAuB,EAAsC,MAAM,wBAAwB,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,oDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAkC,MAAM,iBAAiB,CAAC;AAG/G,OAAO,EAAE,KAAK,uBAAuB,EAAsC,MAAM,wBAAwB,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,oDAAoD;AACpD,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG;IAAE,YAAY,EAAE,EAAE,CAAA;CAAE,CAAC;AAK/E,oEAAoE;AACpE,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB,GACpD,OAAO,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CA0BxD;AAED,wBAAsB,2CAA2C,CAC/D,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,eAKnE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { strict as assert } from 'assert';
|
|
@@ -27,7 +27,7 @@ import { computePrivateFunctionsRoot } from './private_function.js';
|
|
|
27
27
|
artifactHash,
|
|
28
28
|
privateFunctionsRoot,
|
|
29
29
|
publicBytecodeCommitment
|
|
30
|
-
],
|
|
30
|
+
], DomainSeparator.CONTRACT_CLASS_ID);
|
|
31
31
|
return {
|
|
32
32
|
id,
|
|
33
33
|
artifactHash,
|
|
@@ -52,6 +52,6 @@ export async function computePublicBytecodeCommitment(packedBytecode) {
|
|
|
52
52
|
assert(bytecodeLength < MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS, 'Bytecode exceeds maximum deployable size');
|
|
53
53
|
// NOTE: hash the bytecode here only up to the actual length of the bytecode.
|
|
54
54
|
// We do not hash the entire max bytecode length!
|
|
55
|
-
const sep = BigInt(
|
|
55
|
+
const sep = BigInt(DomainSeparator.PUBLIC_BYTECODE) + (bytecodeLengthAsField.toBigInt() << 32n);
|
|
56
56
|
return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), new Fr(sep).toNumber());
|
|
57
57
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator, FUNCTION_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { MerkleTreeCalculator } from '@aztec/foundation/trees';
|
|
@@ -25,7 +25,7 @@ function computePrivateFunctionLeaves(fns) {
|
|
|
25
25
|
return (await poseidon2HashWithSeparator([
|
|
26
26
|
fn.selector,
|
|
27
27
|
fn.vkHash
|
|
28
|
-
],
|
|
28
|
+
], DomainSeparator.PRIVATE_FUNCTION_LEAF)).toBuffer();
|
|
29
29
|
}
|
|
30
30
|
async function getPrivateFunctionTreeCalculator() {
|
|
31
31
|
if (!privateFunctionTreeCalculator) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { FileStore } from './interface.js';
|
|
1
|
+
import type { FileStore, FileStoreSaveOptions } from './interface.js';
|
|
2
2
|
export declare class LocalFileStore implements FileStore {
|
|
3
3
|
private readonly basePath;
|
|
4
4
|
constructor(basePath: string);
|
|
5
|
-
save(path: string, data: Buffer): Promise<string>;
|
|
5
|
+
save(path: string, data: Buffer, opts?: FileStoreSaveOptions): Promise<string>;
|
|
6
6
|
upload(destPath: string, srcPath: string, _opts: {
|
|
7
7
|
compress: boolean;
|
|
8
8
|
}): Promise<string>;
|
|
@@ -11,4 +11,4 @@ export declare class LocalFileStore implements FileStore {
|
|
|
11
11
|
exists(pathOrUrlStr: string): Promise<boolean>;
|
|
12
12
|
private getFullPath;
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JlL2xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3RFLHFCQUFhLGNBQWUsWUFBVyxTQUFTO0lBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUFyQyxZQUE2QixRQUFRLEVBQUUsTUFBTSxFQUFJO0lBRXBDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU0xRjtJQUVZLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUdwRztJQUVZLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FPdkQ7SUFFWSxRQUFRLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJM0U7SUFFTSxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBS3BEO0lBRUQsT0FBTyxDQUFDLFdBQVc7Q0FPcEIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/file-store/local.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/file-store/local.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAKtE,qBAAa,cAAe,YAAW,SAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEpC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1F;IAEY,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpG;IAEY,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvD;IAEY,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E;IAEM,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKpD;IAED,OAAO,CAAC,WAAW;CAOpB"}
|
package/dest/file-store/local.js
CHANGED
|
@@ -1,25 +1,34 @@
|
|
|
1
1
|
import { access, mkdir, readFile, writeFile } from 'fs/promises';
|
|
2
2
|
import { dirname, resolve } from 'path';
|
|
3
|
+
import { promisify } from 'util';
|
|
4
|
+
import { gunzip as gunzipCb, gzip as gzipCb } from 'zlib';
|
|
5
|
+
const gzip = promisify(gzipCb);
|
|
6
|
+
const gunzip = promisify(gunzipCb);
|
|
3
7
|
export class LocalFileStore {
|
|
4
8
|
basePath;
|
|
5
9
|
constructor(basePath){
|
|
6
10
|
this.basePath = basePath;
|
|
7
11
|
}
|
|
8
|
-
async save(path, data) {
|
|
12
|
+
async save(path, data, opts) {
|
|
9
13
|
const fullPath = this.getFullPath(path);
|
|
10
14
|
await mkdir(dirname(fullPath), {
|
|
11
15
|
recursive: true
|
|
12
16
|
});
|
|
13
|
-
await
|
|
17
|
+
const toWrite = opts?.compress ? await gzip(data) : data;
|
|
18
|
+
await writeFile(fullPath, toWrite);
|
|
14
19
|
return `file://${fullPath}`;
|
|
15
20
|
}
|
|
16
21
|
async upload(destPath, srcPath, _opts) {
|
|
17
22
|
const data = await readFile(srcPath);
|
|
18
23
|
return this.save(destPath, data);
|
|
19
24
|
}
|
|
20
|
-
read(pathOrUrlStr) {
|
|
25
|
+
async read(pathOrUrlStr) {
|
|
21
26
|
const fullPath = this.getFullPath(pathOrUrlStr);
|
|
22
|
-
|
|
27
|
+
const data = await readFile(fullPath);
|
|
28
|
+
if (data.length >= 2 && data[0] === 0x1f && data[1] === 0x8b) {
|
|
29
|
+
return await gunzip(data);
|
|
30
|
+
}
|
|
31
|
+
return data;
|
|
23
32
|
}
|
|
24
33
|
async download(pathOrUrlStr, destPath) {
|
|
25
34
|
const data = await this.read(pathOrUrlStr);
|
package/dest/file-store/s3.d.ts
CHANGED
|
@@ -23,4 +23,4 @@ export declare class S3FileStore implements FileStore {
|
|
|
23
23
|
private getBucketAndKey;
|
|
24
24
|
private getFullPath;
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JlL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQWtCbEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTdEUscUJBQWEsV0FBWSxZQUFXLFNBQVM7SUFPekMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVO0lBQzNCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUV6QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFUdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQVc7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVM7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBUztJQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFTO0lBRXhDLFlBQ21CLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLFFBQVEsRUFBRSxNQUFNLEVBQ2pDLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQ2xDLEdBQUcsR0FBRSxNQUE2QyxFQWVwRTtJQUVZLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFFLG9CQUF5QixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FtQjlGO0lBRVksTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUUsb0JBQXlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQXdEdkc7SUFFWSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBYXZEO0lBRVksUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSzNFO0lBRVksTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQWExRDtJQUVELE9BQU8sQ0FBQyxtQkFBbUI7SUFRM0IsT0FBTyxDQUFDLGlCQUFpQjtJQXNCekIsT0FBTyxDQUFDLGdCQUFnQjtJQTBCeEIsT0FBTyxDQUFDLGVBQWU7SUEyQnZCLE9BQU8sQ0FBQyxXQUFXO0NBS3BCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/file-store/s3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/file-store/s3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAkBlE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAStE,qBAAa,WAAY,YAAW,SAAS;IAOzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IATtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IAExC,YACmB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EACjC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAClC,GAAG,GAAE,MAA6C,EAepE;IAEY,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB9F;IAEY,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwDvG;IAEY,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAavD;IAEY,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3E;IAEY,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1D;IAED,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,WAAW;CAKpB"}
|
package/dest/file-store/s3.js
CHANGED
|
@@ -5,7 +5,10 @@ import { mkdir, mkdtemp, stat, unlink } from 'fs/promises';
|
|
|
5
5
|
import { tmpdir } from 'os';
|
|
6
6
|
import { basename, dirname, join } from 'path';
|
|
7
7
|
import { pipeline } from 'stream/promises';
|
|
8
|
-
import {
|
|
8
|
+
import { promisify } from 'util';
|
|
9
|
+
import { createGzip, gunzip as gunzipCb, gzip as gzipCb } from 'zlib';
|
|
10
|
+
const gzip = promisify(gzipCb);
|
|
11
|
+
const gunzip = promisify(gunzipCb);
|
|
9
12
|
function normalizeBasePath(path) {
|
|
10
13
|
return path?.replace(/^\/+|\/+$/g, '') ?? '';
|
|
11
14
|
}
|
|
@@ -37,7 +40,7 @@ export class S3FileStore {
|
|
|
37
40
|
async save(path, data, opts = {}) {
|
|
38
41
|
const key = this.getFullPath(path);
|
|
39
42
|
const shouldCompress = !!opts.compress;
|
|
40
|
-
const body = shouldCompress ?
|
|
43
|
+
const body = shouldCompress ? await gzip(data) : data;
|
|
41
44
|
const contentLength = body.length;
|
|
42
45
|
const contentType = this.detectContentType(key, shouldCompress);
|
|
43
46
|
const put = new PutObjectCommand({
|
|
@@ -45,6 +48,7 @@ export class S3FileStore {
|
|
|
45
48
|
Key: key,
|
|
46
49
|
Body: body,
|
|
47
50
|
ContentType: contentType,
|
|
51
|
+
ContentEncoding: shouldCompress ? 'gzip' : undefined,
|
|
48
52
|
CacheControl: opts.metadata?.['Cache-control'],
|
|
49
53
|
Metadata: this.extractUserMetadata(opts.metadata),
|
|
50
54
|
ContentLength: contentLength
|
|
@@ -119,7 +123,11 @@ export class S3FileStore {
|
|
|
119
123
|
for await (const chunk of stream){
|
|
120
124
|
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
121
125
|
}
|
|
122
|
-
|
|
126
|
+
const buffer = Buffer.concat(chunks);
|
|
127
|
+
if (out.ContentEncoding === 'gzip') {
|
|
128
|
+
return await gunzip(buffer);
|
|
129
|
+
}
|
|
130
|
+
return buffer;
|
|
123
131
|
}
|
|
124
132
|
async download(pathOrUrlStr, destPath) {
|
|
125
133
|
const { bucket, key } = this.getBucketAndKey(pathOrUrlStr);
|
package/dest/hash/hash.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator, NULL_MSG_SENDER_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
2
2
|
import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -20,7 +20,7 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
20
20
|
return poseidon2HashWithSeparator([
|
|
21
21
|
nullifierZero,
|
|
22
22
|
noteHashIndex
|
|
23
|
-
],
|
|
23
|
+
], DomainSeparator.NOTE_HASH_NONCE);
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Computes a siloed note hash, given the contract address and the note hash itself.
|
|
@@ -32,7 +32,7 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
32
32
|
return poseidon2HashWithSeparator([
|
|
33
33
|
contract,
|
|
34
34
|
noteHash
|
|
35
|
-
],
|
|
35
|
+
], DomainSeparator.SILOED_NOTE_HASH);
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Computes a unique note hash.
|
|
@@ -43,7 +43,7 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
43
43
|
return poseidon2HashWithSeparator([
|
|
44
44
|
noteNonce,
|
|
45
45
|
siloedNoteHash
|
|
46
|
-
],
|
|
46
|
+
], DomainSeparator.UNIQUE_NOTE_HASH);
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Computes a siloed nullifier, given the contract address and the inner nullifier.
|
|
@@ -55,7 +55,7 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
55
55
|
return poseidon2HashWithSeparator([
|
|
56
56
|
contract,
|
|
57
57
|
innerNullifier
|
|
58
|
-
],
|
|
58
|
+
], DomainSeparator.SILOED_NULLIFIER);
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Computes the protocol nullifier, which is the hash of the initial tx request siloed with the null msg sender address.
|
|
@@ -70,7 +70,7 @@ export function computeSiloedPrivateLogFirstField(contract, field) {
|
|
|
70
70
|
return poseidon2HashWithSeparator([
|
|
71
71
|
contract,
|
|
72
72
|
field
|
|
73
|
-
],
|
|
73
|
+
], DomainSeparator.PRIVATE_LOG_FIRST_FIELD);
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* Computes a public data tree value ready for insertion.
|
|
@@ -90,7 +90,7 @@ export function computeSiloedPrivateLogFirstField(contract, field) {
|
|
|
90
90
|
return poseidon2HashWithSeparator([
|
|
91
91
|
contractAddress,
|
|
92
92
|
storageSlot
|
|
93
|
-
],
|
|
93
|
+
], DomainSeparator.PUBLIC_LEAF_SLOT);
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
96
|
* Computes the hash of a list of arguments.
|
|
@@ -101,14 +101,14 @@ export function computeSiloedPrivateLogFirstField(contract, field) {
|
|
|
101
101
|
if (args.length === 0) {
|
|
102
102
|
return Promise.resolve(Fr.ZERO);
|
|
103
103
|
}
|
|
104
|
-
return poseidon2HashWithSeparator(args,
|
|
104
|
+
return poseidon2HashWithSeparator(args, DomainSeparator.FUNCTION_ARGS);
|
|
105
105
|
}
|
|
106
106
|
/**
|
|
107
107
|
* Computes the hash of a public function's calldata.
|
|
108
108
|
* @param calldata - Calldata to hash.
|
|
109
109
|
* @returns Hash of the calldata.
|
|
110
110
|
*/ export function computeCalldataHash(calldata) {
|
|
111
|
-
return poseidon2HashWithSeparator(calldata,
|
|
111
|
+
return poseidon2HashWithSeparator(calldata, DomainSeparator.PUBLIC_CALLDATA);
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Computes a hash of a secret.
|
|
@@ -118,13 +118,13 @@ export function computeSiloedPrivateLogFirstField(contract, field) {
|
|
|
118
118
|
*/ export function computeSecretHash(secret) {
|
|
119
119
|
return poseidon2HashWithSeparator([
|
|
120
120
|
secret
|
|
121
|
-
],
|
|
121
|
+
], DomainSeparator.SECRET_HASH);
|
|
122
122
|
}
|
|
123
123
|
export async function computeL1ToL2MessageNullifier(contract, messageHash, secret) {
|
|
124
124
|
const innerMessageNullifier = await poseidon2HashWithSeparator([
|
|
125
125
|
messageHash,
|
|
126
126
|
secret
|
|
127
|
-
],
|
|
127
|
+
], DomainSeparator.MESSAGE_NULLIFIER);
|
|
128
128
|
return siloNullifier(contract, innerMessageNullifier);
|
|
129
129
|
}
|
|
130
130
|
/**
|
package/dest/hash/map_slot.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
/**
|
|
4
4
|
* Computes the resulting storage slot for an entry in a map.
|
|
@@ -9,5 +9,5 @@ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
|
9
9
|
return poseidon2HashWithSeparator([
|
|
10
10
|
mapSlot,
|
|
11
11
|
key.toField()
|
|
12
|
-
],
|
|
12
|
+
], DomainSeparator.PUBLIC_STORAGE_MAP_SLOT);
|
|
13
13
|
}
|