@aztec/stdlib 0.0.1-commit.cf93bcc56 → 0.0.1-commit.d0fcfb7f
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 +2 -2
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +7 -5
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +37 -6
- package/dest/abi/event_metadata_definition.d.ts +3 -1
- package/dest/abi/event_metadata_definition.d.ts.map +1 -1
- package/dest/abi/event_metadata_definition.js +1 -1
- package/dest/abi/utils.d.ts +14 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +15 -0
- package/dest/avm/avm.d.ts +300 -300
- package/dest/avm/avm_proving_request.d.ts +166 -166
- 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.d.ts +9 -1
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +12 -2
- package/dest/block/l2_block_source.d.ts +12 -5
- package/dest/block/l2_block_source.d.ts.map +1 -1
- 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/checkpoint/checkpoint.d.ts +2 -1
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +9 -4
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/validate.d.ts +36 -0
- package/dest/checkpoint/validate.d.ts.map +1 -0
- package/dest/checkpoint/validate.js +120 -0
- package/dest/config/sequencer-config.d.ts +2 -2
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +11 -0
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/epoch-helpers/index.d.ts +5 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +4 -2
- package/dest/interfaces/allowed_element.d.ts +26 -20
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +8 -8
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +3 -2
- package/dest/interfaces/aztec-node-admin.d.ts +64 -27
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.d.ts +11 -6
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +5 -2
- package/dest/interfaces/block-builder.d.ts +17 -9
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +13 -6
- package/dest/interfaces/configs.d.ts +62 -32
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +6 -2
- package/dest/interfaces/merkle_tree_operations.d.ts +9 -19
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +3 -8
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/prover-client.d.ts +6 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +7 -1
- package/dest/interfaces/validator.d.ts +67 -25
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +6 -2
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +2 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -0
- 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/log_filter.d.ts +4 -1
- package/dest/logs/log_filter.d.ts.map +1 -1
- package/dest/logs/log_filter.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/public_log.d.ts +4 -3
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +2 -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/messaging/l2_to_l1_membership.d.ts +32 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +69 -26
- 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/p2p/checkpoint_proposal.d.ts +1 -6
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +0 -12
- package/dest/p2p/client_type.d.ts +2 -5
- package/dest/p2p/client_type.d.ts.map +1 -1
- package/dest/p2p/client_type.js +0 -7
- package/dest/p2p/index.d.ts +1 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +0 -1
- package/dest/p2p/peer_error.d.ts +3 -1
- package/dest/p2p/peer_error.d.ts.map +1 -1
- package/dest/p2p/peer_error.js +5 -0
- package/dest/p2p/topic_type.d.ts +3 -4
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +7 -24
- package/dest/slashing/tally.d.ts +7 -2
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +30 -2
- package/dest/tests/factories.d.ts +3 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +8 -0
- package/dest/tests/mocks.d.ts +5 -3
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +18 -13
- package/dest/tx/block_header.d.ts +3 -1
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +4 -0
- 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/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/simulated_tx.d.ts +5 -2
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +4 -1
- package/dest/tx/tx.d.ts +6 -5
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +18 -6
- package/dest/tx/tx_receipt.d.ts +22 -3
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +15 -4
- package/dest/tx/validator/error_texts.d.ts +5 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +4 -0
- package/dest/update-checker/index.d.ts +3 -2
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +2 -1
- package/dest/update-checker/package_version.d.ts +3 -0
- package/dest/update-checker/package_version.d.ts.map +1 -0
- package/dest/update-checker/package_version.js +24 -0
- package/dest/update-checker/version_checker.d.ts +25 -0
- package/dest/update-checker/version_checker.d.ts.map +1 -0
- package/dest/update-checker/version_checker.js +50 -0
- package/dest/validators/errors.d.ts +6 -1
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +7 -0
- package/dest/versioning/versioning.d.ts +4 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +4 -1
- package/package.json +10 -10
- package/src/abi/decoder.ts +15 -6
- package/src/abi/encoder.ts +49 -6
- package/src/abi/event_metadata_definition.ts +2 -0
- package/src/abi/utils.ts +25 -0
- package/src/avm/revert_code.ts +15 -0
- package/src/block/l2_block.ts +13 -1
- package/src/block/l2_block_source.ts +12 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
- package/src/checkpoint/checkpoint.ts +12 -3
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/validate.ts +230 -0
- package/src/config/sequencer-config.ts +16 -1
- package/src/contract/contract_class.ts +3 -3
- package/src/epoch-helpers/index.ts +3 -0
- package/src/interfaces/allowed_element.ts +29 -9
- package/src/interfaces/archiver.ts +3 -2
- package/src/interfaces/aztec-node.ts +23 -5
- package/src/interfaces/block-builder.ts +34 -12
- package/src/interfaces/configs.ts +26 -8
- package/src/interfaces/merkle_tree_operations.ts +8 -18
- package/src/interfaces/p2p.ts +2 -13
- package/src/interfaces/prover-client.ts +8 -0
- package/src/interfaces/validator.ts +18 -2
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
- package/src/kernel/hints/build_transient_data_hints.ts +17 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +9 -0
- 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/log_filter.ts +5 -0
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/public_log.ts +4 -2
- package/src/logs/siloed_tag.ts +8 -2
- package/src/logs/tag.ts +1 -1
- package/src/messaging/l2_to_l1_membership.ts +98 -33
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/checkpoint_proposal.ts +0 -17
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/index.ts +0 -1
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/topic_type.ts +8 -15
- package/src/slashing/tally.ts +34 -1
- package/src/tests/factories.ts +9 -0
- package/src/tests/mocks.ts +25 -10
- package/src/tx/block_header.ts +6 -0
- package/src/tx/profiling.ts +5 -5
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +8 -1
- package/src/tx/tx.ts +20 -11
- package/src/tx/tx_receipt.ts +16 -1
- package/src/tx/validator/error_texts.ts +4 -0
- package/src/update-checker/index.ts +2 -1
- package/src/update-checker/package_version.ts +30 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/errors.ts +9 -0
- package/src/versioning/versioning.ts +4 -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/update-checker/update-checker.d.ts +0 -49
- package/dest/update-checker/update-checker.d.ts.map +0 -1
- package/dest/update-checker/update-checker.js +0 -130
- package/src/update-checker/update-checker.ts +0 -166
package/dest/abi/decoder.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { ABIParameter, AbiType } from './abi.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export type AbiDecoded = bigint | boolean | string | AztecAddress | AbiDecoded[] | {
|
|
8
8
|
[key: string]: AbiDecoded;
|
|
9
|
-
};
|
|
9
|
+
} | undefined;
|
|
10
10
|
/**
|
|
11
11
|
* Decodes values in a flattened Field array using a provided ABI.
|
|
12
12
|
* @param abi - The ABI to use as reference.
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9kZWNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFlLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUduRTs7R0FFRztBQUNILE1BQU0sTUFBTSxVQUFVLEdBQ2xCLE1BQU0sR0FDTixPQUFPLEdBQ1AsTUFBTSxHQUNOLFlBQVksR0FDWixVQUFVLEVBQUUsR0FDWjtJQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxVQUFVLENBQUE7Q0FBRSxHQUM3QixTQUFTLENBQUM7QUFvR2Q7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLGNBRXpEO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSx3QkFBd0I7SUFHakMsT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsWUFBWTtJQUp0QixPQUFPLENBQUMsU0FBUyxDQUFTO0lBQzFCLFlBQ1UsSUFBSSxFQUFFLE1BQU0sRUFDWixVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQzFCLFlBQVksVUFBUSxFQUc3QjtJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsZ0JBQWdCO0lBbUJ4Qjs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLGVBQWU7SUFLdkI7OztPQUdHO0lBQ0ksTUFBTSxJQUFJLE1BQU0sQ0FFdEI7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUUvRTtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLHlDQUF5QyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUVqRyJ9
|
|
@@ -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,
|
|
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,GAClB,MAAM,GACN,OAAO,GACP,MAAM,GACN,YAAY,GACZ,UAAU,EAAE,GACZ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,GAC7B,SAAS,CAAC;AAoGd;;;;;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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
2
|
-
import { isAztecAddressStruct, parseSignedInt } from './utils.js';
|
|
2
|
+
import { isAztecAddressStruct, isOptionStruct, parseSignedInt } from './utils.js';
|
|
3
3
|
/**
|
|
4
4
|
* Decodes values using a provided ABI.
|
|
5
5
|
*/ class AbiDecoder {
|
|
@@ -42,6 +42,11 @@ import { isAztecAddressStruct, parseSignedInt } from './utils.js';
|
|
|
42
42
|
if (isAztecAddressStruct(abiType)) {
|
|
43
43
|
return new AztecAddress(this.getNextField().toBuffer());
|
|
44
44
|
}
|
|
45
|
+
if (isOptionStruct(abiType)) {
|
|
46
|
+
const isSome = this.decodeNext(abiType.fields[0].type);
|
|
47
|
+
const value = this.decodeNext(abiType.fields[1].type);
|
|
48
|
+
return isSome ? value : undefined;
|
|
49
|
+
}
|
|
45
50
|
for (const field of abiType.fields){
|
|
46
51
|
struct[field.name] = this.decodeNext(field.type);
|
|
47
52
|
}
|
|
@@ -119,10 +124,7 @@ import { isAztecAddressStruct, parseSignedInt } from './utils.js';
|
|
|
119
124
|
case 'field':
|
|
120
125
|
return 'Field';
|
|
121
126
|
case 'integer':
|
|
122
|
-
|
|
123
|
-
throw new Error('Unsupported type: signed integer');
|
|
124
|
-
}
|
|
125
|
-
return `u${param.width}`;
|
|
127
|
+
return param.sign === 'signed' ? `i${param.width}` : `u${param.width}`;
|
|
126
128
|
case 'boolean':
|
|
127
129
|
return 'bool';
|
|
128
130
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBVyxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUE2UXJEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsUUFFNUQ7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxXQUFXLFVBRWxEIn0=
|
|
@@ -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;AA6QrD;;;;;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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import { isAddressStruct, isBoundedVecStruct, isFunctionSelectorStruct, isWrappedFieldStruct } from './utils.js';
|
|
2
|
+
import { isAddressStruct, isBoundedVecStruct, isFunctionSelectorStruct, isOptionStruct, isWrappedFieldStruct } from './utils.js';
|
|
3
3
|
/**
|
|
4
4
|
* Encodes arguments for a function call.
|
|
5
5
|
* Missing support for integer and string.
|
|
@@ -39,6 +39,27 @@ import { isAddressStruct, isBoundedVecStruct, isFunctionSelectorStruct, isWrappe
|
|
|
39
39
|
* @param arg - The value to encode.
|
|
40
40
|
* @param name - Name.
|
|
41
41
|
*/ encodeArgument(abiType, arg, name) {
|
|
42
|
+
if (isOptionStruct(abiType)) {
|
|
43
|
+
const optionType = abiType;
|
|
44
|
+
const [isSomeField, valueField] = optionType.fields;
|
|
45
|
+
if (arg === undefined || arg === null) {
|
|
46
|
+
this.encodeArgument(isSomeField.type, false, `${name}._is_some`);
|
|
47
|
+
this.#encodeDefaultValue(valueField.type);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (typeof arg === 'object' && '_is_some' in arg) {
|
|
51
|
+
this.encodeArgument(isSomeField.type, arg._is_some, `${name}._is_some`);
|
|
52
|
+
if (arg._is_some) {
|
|
53
|
+
this.encodeArgument(valueField.type, arg._value, `${name}._value`);
|
|
54
|
+
} else {
|
|
55
|
+
this.#encodeDefaultValue(valueField.type);
|
|
56
|
+
}
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.encodeArgument(isSomeField.type, true, `${name}._is_some`);
|
|
60
|
+
this.encodeArgument(valueField.type, arg, `${name}._value`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
42
63
|
if (arg === undefined || arg == null) {
|
|
43
64
|
throw new Error(`Undefined argument ${name ?? 'unnamed'} of type ${abiType.kind}`);
|
|
44
65
|
}
|
|
@@ -129,13 +150,17 @@ import { isAddressStruct, isBoundedVecStruct, isFunctionSelectorStruct, isWrappe
|
|
|
129
150
|
break;
|
|
130
151
|
}
|
|
131
152
|
case 'integer':
|
|
132
|
-
|
|
153
|
+
{
|
|
133
154
|
const value = BigInt(arg);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
155
|
+
if (abiType.sign === 'signed' && value < 0n) {
|
|
156
|
+
// Convert negative values to two's complement representation
|
|
157
|
+
const twosComplement = value + (1n << BigInt(abiType.width));
|
|
158
|
+
this.flattened.push(new Fr(twosComplement));
|
|
159
|
+
} else {
|
|
160
|
+
this.flattened.push(new Fr(value));
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
137
163
|
}
|
|
138
|
-
break;
|
|
139
164
|
default:
|
|
140
165
|
throw new Error(`Unsupported type: ${abiType.kind}`);
|
|
141
166
|
}
|
|
@@ -212,6 +237,12 @@ import { isAddressStruct, isBoundedVecStruct, isFunctionSelectorStruct, isWrappe
|
|
|
212
237
|
this.encodeArgument(lenField.type, arg.length, 'len');
|
|
213
238
|
}
|
|
214
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Appends the flattened zero value for an ABI type.
|
|
242
|
+
* Option::None still serializes the wrapped value, so we need to zero-fill its footprint.
|
|
243
|
+
*/ #encodeDefaultValue(abiType) {
|
|
244
|
+
this.flattened.push(...new Array(ArgumentEncoder.typeSize(abiType)).fill(Fr.ZERO));
|
|
245
|
+
}
|
|
215
246
|
}
|
|
216
247
|
/**
|
|
217
248
|
* Encodes all the arguments for a function call.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { AbiType } from './abi.js';
|
|
2
2
|
import type { EventSelector } from './event_selector.js';
|
|
3
|
+
/** Metadata for a contract event, used to decode emitted event logs back into structured data. */
|
|
3
4
|
export type EventMetadataDefinition = {
|
|
4
5
|
eventSelector: EventSelector;
|
|
5
6
|
abiType: AbiType;
|
|
7
|
+
/** Names of the event's struct members (not serialized Noir Field elements). */
|
|
6
8
|
fieldNames: string[];
|
|
7
9
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfbWV0YWRhdGFfZGVmaW5pdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9ldmVudF9tZXRhZGF0YV9kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxrR0FBa0c7QUFDbEcsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNqQixnRkFBZ0Y7SUFDaEYsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ3RCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event_metadata_definition.d.ts","sourceRoot":"","sources":["../../src/abi/event_metadata_definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"event_metadata_definition.d.ts","sourceRoot":"","sources":["../../src/abi/event_metadata_definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,kGAAkG;AAClG,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { };
|
|
1
|
+
/** Metadata for a contract event, used to decode emitted event logs back into structured data. */ export { };
|
package/dest/abi/utils.d.ts
CHANGED
|
@@ -40,10 +40,23 @@ export declare function isPublicKeysStruct(abiType: AbiType): boolean;
|
|
|
40
40
|
* @returns A boolean indicating whether the ABI type is a BoundedVec struct.
|
|
41
41
|
*/
|
|
42
42
|
export declare function isBoundedVecStruct(abiType: AbiType): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Returns whether the ABI type is Noir's std::option::Option lowered to a struct.
|
|
45
|
+
* @param abiType - Type to check.
|
|
46
|
+
* @returns A boolean indicating whether the ABI type is an Option struct.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isOptionStruct(abiType: AbiType): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Returns whether `null` or `undefined` can be mapped to a valid ABI value for this type.
|
|
51
|
+
*
|
|
52
|
+
* @param abiType - Type to check.
|
|
53
|
+
* @returns A boolean indicating whether nullish values are valid shorthand for this ABI type.
|
|
54
|
+
*/
|
|
55
|
+
export declare function canBeMappedFromNullOrUndefined(abiType: AbiType): boolean;
|
|
43
56
|
/**
|
|
44
57
|
* Returns a bigint by parsing a serialized 2's complement signed int.
|
|
45
58
|
* @param b - The signed int as a buffer
|
|
46
59
|
* @returns - a deserialized bigint
|
|
47
60
|
*/
|
|
48
61
|
export declare function parseSignedInt(b: Buffer, width?: number): bigint;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLFdBRS9DO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxXQUVsRDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sV0FFcEQ7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxPQUFPLFdBRXhEO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxPQUFPLFdBT3BEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxXQVVsRDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsT0FBTyxFQUFFLE9BQU8sV0FRbEQ7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxXQVE5QztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLDhCQUE4QixDQUFDLE9BQU8sRUFBRSxPQUFPLFdBRTlEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixjQUFjLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLFVBcUJ2RCJ9
|
package/dest/abi/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/abi/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,WAE/C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAElD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAEpD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,WAExD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAOpD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAUlD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAQlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,UAqBvD"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/abi/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,WAE/C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAElD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAEpD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,WAExD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAOpD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAUlD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAQlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,WAQ9C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,WAE9D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,UAqBvD"}
|
package/dest/abi/utils.js
CHANGED
|
@@ -46,6 +46,21 @@
|
|
|
46
46
|
*/ export function isBoundedVecStruct(abiType) {
|
|
47
47
|
return abiType.kind === 'struct' && abiType.path === 'std::collections::bounded_vec::BoundedVec' && abiType.fields.length === 2 && abiType.fields[0].name === 'storage' && abiType.fields[1].name === 'len';
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns whether the ABI type is Noir's std::option::Option lowered to a struct.
|
|
51
|
+
* @param abiType - Type to check.
|
|
52
|
+
* @returns A boolean indicating whether the ABI type is an Option struct.
|
|
53
|
+
*/ export function isOptionStruct(abiType) {
|
|
54
|
+
return abiType.kind === 'struct' && abiType.path === 'std::option::Option' && abiType.fields.length === 2 && abiType.fields[0].name === '_is_some' && abiType.fields[1].name === '_value';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns whether `null` or `undefined` can be mapped to a valid ABI value for this type.
|
|
58
|
+
*
|
|
59
|
+
* @param abiType - Type to check.
|
|
60
|
+
* @returns A boolean indicating whether nullish values are valid shorthand for this ABI type.
|
|
61
|
+
*/ export function canBeMappedFromNullOrUndefined(abiType) {
|
|
62
|
+
return isOptionStruct(abiType);
|
|
63
|
+
}
|
|
49
64
|
/**
|
|
50
65
|
* Returns a bigint by parsing a serialized 2's complement signed int.
|
|
51
66
|
* @param b - The signed int as a buffer
|