Skip to content

feat!: remove sha256 opcode#4571

Merged
TomAFrench merged 193 commits into
masterfrom
gd/noir_issue_4330
Sep 23, 2024
Merged

feat!: remove sha256 opcode#4571
TomAFrench merged 193 commits into
masterfrom
gd/noir_issue_4330

Conversation

@guipublic

Copy link
Copy Markdown
Contributor

This PR resolves Noir issue 4330: noir-lang/noir#4330
by removing the sha256 opcode and replacing the sha256 function in the stdlib by the implementation using the sha256 compression opcode (also in the stdlib).

@github-actions

github-actions Bot commented Mar 15, 2024

Copy link
Copy Markdown
Contributor

Changes to circuit sizes

Generated at commit: 539d8bedf4467db0fd49f0ddc2fbbcc0a1818c2c, compared to commit: 8dfdebc7055ca89861a3727ea2d419fde98d6cf7

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_base +1,669 ❌ +478.22% +2,487 ❌ +4.88%
rollup_base +74,503 ❌ +21.43% +90,296 ❌ +2.48%
rollup_merge +1,117 ❌ +350.16% +3,145 ❌ +0.11%
parity_root +1,669 ❌ +446.26% +4,707 ❌ +0.09%
rollup_block_root +1,116 ❌ +138.98% +3,144 ❌ +0.08%
rollup_root +563 ❌ +3.10% +1,580 ❌ +0.06%
rollup_block_merge +563 ❌ +3.09% +1,580 ❌ +0.06%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_base 2,018 (+1,669) +478.22% 53,444 (+2,487) +4.88%
rollup_base 422,191 (+74,503) +21.43% 3,733,118 (+90,296) +2.48%
rollup_merge 1,436 (+1,117) +350.16% 2,751,295 (+3,145) +0.11%
parity_root 2,043 (+1,669) +446.26% 5,486,494 (+4,707) +0.09%
rollup_block_root 1,919 (+1,116) +138.98% 4,120,993 (+3,144) +0.08%
rollup_root 18,751 (+563) +3.10% 2,787,491 (+1,580) +0.06%
rollup_block_merge 18,767 (+563) +3.09% 2,787,523 (+1,580) +0.06%

@AztecBot

AztecBot commented Mar 18, 2024

Copy link
Copy Markdown
Collaborator

Benchmark results

Metrics with a significant change:

  • proof_construction_time_sha256_30_ms (1): 22,930 (+93%)
  • proof_construction_time_sha256_30_ms (4): 6,155 (+95%)
  • proof_construction_time_sha256_30_ms (16): 2,778 (+97%)
  • proof_construction_time_sha256_30_ms (32): 2,783 (+94%)
  • proof_construction_time_sha256_30_ms (64): 2,820 (+91%)
  • batch_insert_into_append_only_tree_16_depth_ms (1): 7.11 (+229%)
  • batch_insert_into_append_only_tree_16_depth_ms (16): 11.6 (+199%)
  • batch_insert_into_append_only_tree_16_depth_hash_ms (1): 0.408 (+265%)
  • batch_insert_into_append_only_tree_16_depth_hash_ms (16): 0.353 (+224%)
  • protocol_circuit_simulation_time_in_ms (private-kernel-init): 203 (+170%)
  • protocol_circuit_simulation_time_in_ms (private-kernel-inner): 355 (+157%)
  • protocol_circuit_simulation_time_in_ms (base-parity): 380 (+6204%)
  • protocol_circuit_simulation_time_in_ms (base-rollup): 7,729 (+1776%)
  • protocol_circuit_simulation_time_in_ms (root-parity): 899 (+2432%)
  • protocol_circuit_simulation_time_in_ms (public-kernel-app-logic): 1,244 (+1179%)
  • protocol_circuit_simulation_time_in_ms (public-kernel-tail): 2,897 (+409%)
  • protocol_circuit_simulation_time_in_ms (merge-rollup): 3,231 (+15579%)
  • protocol_circuit_simulation_time_in_ms (public-kernel-teardown): 128 (+51%)
  • protocol_circuit_simulation_time_in_ms (public-kernel-setup): 131 (+51%)
  • protocol_circuit_input_size_in_bytes (private-kernel-init): 41,317 (+95%)
  • protocol_circuit_input_size_in_bytes (base-rollup): 147,902 (-22%)
  • protocol_circuit_input_size_in_bytes (root-parity): 44,779 (-39%)
  • protocol_circuit_input_size_in_bytes (public-kernel-app-logic): 59,371 (-48%)
  • protocol_circuit_input_size_in_bytes (public-kernel-tail): 193,684 (-60%)
  • protocol_circuit_input_size_in_bytes (merge-rollup): 6,180 (-84%)
  • protocol_circuit_input_size_in_bytes (public-kernel-teardown): 82,186 (-28%)
  • protocol_circuit_input_size_in_bytes (public-kernel-setup): 95,648 (-16%)
  • protocol_circuit_output_size_in_bytes (private-kernel-init): 31,387 (-30%)
  • protocol_circuit_output_size_in_bytes (private-kernel-inner): 31,803 (-29%)
  • protocol_circuit_output_size_in_bytes (base-parity): 124 (+29%)
  • protocol_circuit_output_size_in_bytes (base-rollup): 845 (+27%)
  • protocol_circuit_output_size_in_bytes (root-parity): 124 (+29%)
  • protocol_circuit_output_size_in_bytes (public-kernel-app-logic): 33,938 (-57%)
  • protocol_circuit_output_size_in_bytes (public-kernel-tail): 12,619 (-23%)
  • protocol_circuit_output_size_in_bytes (merge-rollup): 870 (+31%)
  • protocol_circuit_output_size_in_bytes (public-kernel-teardown): 52,947 (-34%)
  • protocol_circuit_output_size_in_bytes (public-kernel-setup): 64,161 (-19%)
  • tx_size_in_bytes (0): 39,161 (-46%)
  • batch_insert_into_append_only_tree_32_depth_ms (64): 41.0 (+271%)
  • batch_insert_into_append_only_tree_32_depth_ms (128): 52.1 (+193%)
  • batch_insert_into_append_only_tree_32_depth_ms (512): 93.0 (+58%)
  • batch_insert_into_append_only_tree_32_depth_ms (1024): 461 (+297%)
  • batch_insert_into_append_only_tree_32_depth_hash_ms (64): 0.418 (+296%)
  • batch_insert_into_append_only_tree_32_depth_hash_ms (128): 0.319 (+209%)
  • batch_insert_into_append_only_tree_32_depth_hash_ms (512): 0.164 (+62%)
  • batch_insert_into_append_only_tree_32_depth_hash_ms (1024): 0.430 (+313%)
  • batch_insert_into_indexed_tree_20_depth_ms (64): 48.6 (+247%)
  • batch_insert_into_indexed_tree_20_depth_ms (128): 75.4 (+192%)
  • batch_insert_into_indexed_tree_20_depth_ms (512): 131 (+60%)
  • batch_insert_into_indexed_tree_20_depth_ms (1024): 680 (+317%)
  • batch_insert_into_indexed_tree_20_depth_hash_ms (64): 0.425 (+297%)
  • batch_insert_into_indexed_tree_20_depth_hash_ms (128): 0.332 (+220%)
  • batch_insert_into_indexed_tree_20_depth_hash_ms (512): 0.171 (+69%)
  • batch_insert_into_indexed_tree_20_depth_hash_ms (1024): 0.468 (+355%)
  • l2_block_building_time_in_ms (16): 42,496 (+18%)
  • l1_rollup_calldata_gas (8): 74,892 (-23%)
  • l1_rollup_calldata_gas (16): 15,139 (-92%)
  • l1_rollup_calldata_size_in_bytes (8): 6,372 (-23%)
  • l1_rollup_calldata_size_in_bytes (16): 1,415 (-91%)
  • l1_rollup_execution_gas (8): 1,316,034 (-16%)
  • l1_rollup_execution_gas (16): 717,968 (-79%)
  • l2_block_processing_time_in_ms (8): 618 (+19%)
  • l2_block_processing_time_in_ms (16): 2,723 (+237%)
  • app_circuit_witness_generation_time_in_ms (ContractInstanceDeployer:deploy): 35.0 (+93%)
  • app_circuit_witness_generation_time_in_ms (SchnorrAccount:constructor): 100 (+98%)
  • app_circuit_witness_generation_time_in_ms (SchnorrAccount:entrypoint): 404 (+17%)
  • app_circuit_witness_generation_time_in_ms (FeeJuice:claim): 52.2 (+55%)
  • app_circuit_witness_generation_time_in_ms (Token:privately_mint_private_note): 112 (+86%)
  • app_circuit_witness_generation_time_in_ms (Benchmarking:create_note): 100 (+100%)
  • avm_simulation_time_ms (FeeJuice:set_portal): 6.84 (+63%)
  • avm_simulation_time_ms (Token:_increase_public_balance): 15.6 (+244%)
  • node_history_sync_time_in_ms (3): 2,757 (-30%)
Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

Proof generation

Each column represents the number of threads used in proof generation.

Metric 1 threads 4 threads 16 threads 32 threads 64 threads
proof_construction_time_sha256_ms 5,768 1,550 (+1%) 705 (+1%) 760 (-1%) 768 (-1%)
proof_construction_time_sha256_30_ms ⚠️ 22,930 (+93%) ⚠️ 6,155 (+95%) ⚠️ 2,778 (+97%) ⚠️ 2,783 (+94%) ⚠️ 2,820 (+91%)
proof_construction_time_sha256_100_ms 45,782 (+3%) 12,333 (+3%) 5,712 (+5%) 5,669 (+5%) 5,587 (+4%)
proof_construction_time_poseidon_hash_ms 79.0 (+1%) 34.0 (-3%) 34.0 59.0 (+2%) 88.0 (+1%)
proof_construction_time_poseidon_hash_30_ms 1,532 417 199 (-1%) 219 (-5%) 268
proof_construction_time_poseidon_hash_100_ms 5,674 (+1%) 1,509 679 (+2%) 731 (+1%) 752 (+1%)

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 4 txs 8 txs 16 txs
l1_rollup_calldata_size_in_bytes 4,612 ⚠️ 6,372 (-23%) ⚠️ 1,415 (-91%)
l1_rollup_calldata_gas 52,888 ⚠️ 74,892 (-23%) ⚠️ 15,139 (-92%)
l1_rollup_execution_gas 822,478 ⚠️ 1,316,034 (-16%) ⚠️ 717,968 (-79%)
l2_block_processing_time_in_ms 251 (+4%) ⚠️ 618 (+19%) ⚠️ 2,723 (+237%)
l2_block_building_time_in_ms 9,268 (+2%) 18,840 (+5%) ⚠️ 42,496 (+18%)
l2_block_rollup_simulation_time_in_ms 9,267 (+2%) 17,609 (-2%) 32,885 (-8%)
l2_block_public_tx_process_time_in_ms 4,574 (+1%) 9,059 (+1%) 18,325 (+2%)

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric 3 blocks 5 blocks
node_history_sync_time_in_ms ⚠️ 2,757 (-30%) 3,807 (+2%)
node_database_size_in_bytes 12,423,408 16,400,624
pxe_database_size_in_bytes 16,254 26,813

Circuits stats

Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Circuit simulation_time_in_ms witness_generation_time_in_ms input_size_in_bytes output_size_in_bytes proving_time_in_ms
private-kernel-init ⚠️ 203 (+170%) 385 (+2%) ⚠️ 41,317 (+95%) ⚠️ 31,387 (-30%) N/A
private-kernel-inner ⚠️ 355 (+157%) 682 74,678 (+3%) ⚠️ 31,803 (-29%) N/A
private-kernel-ordering 222 N/A 52,926 29,012 N/A
base-parity ⚠️ 380 (+6204%) N/A 143 (-11%) ⚠️ 124 (+29%) N/A
base-rollup ⚠️ 7,729 (+1776%) N/A ⚠️ 147,902 (-22%) ⚠️ 845 (+27%) N/A
root-parity ⚠️ 899 (+2432%) N/A ⚠️ 44,779 (-39%) ⚠️ 124 (+29%) N/A
root-rollup 66.6 N/A 9,949 775 N/A
public-kernel-app-logic ⚠️ 1,244 (+1179%) N/A ⚠️ 59,371 (-48%) ⚠️ 33,938 (-57%) N/A
public-kernel-tail ⚠️ 2,897 (+409%) N/A ⚠️ 193,684 (-60%) ⚠️ 12,619 (-23%) N/A
merge-rollup ⚠️ 3,231 (+15579%) N/A ⚠️ 6,180 (-84%) ⚠️ 870 (+31%) N/A
public-kernel-teardown ⚠️ 128 (+51%) N/A ⚠️ 82,186 (-28%) ⚠️ 52,947 (-34%) N/A
public-kernel-setup ⚠️ 131 (+51%) N/A ⚠️ 95,648 (-16%) ⚠️ 64,161 (-19%) N/A
private-kernel-reset-tiny 320 704 (+1%) 64,538 44,886 N/A
private-kernel-tail 151 130 (-4%) 50,577 59,239 N/A
block-root-rollup 53.5 (+27%) N/A 58,217 2,448 N/A
private-kernel-reset-small 294 (-1%) N/A 66,345 45,629 N/A
private-kernel-tail-to-public 787 (-1%) 598 444,313 1,825 N/A
undefined N/A N/A N/A N/A 104,044 (-4%)

Stats on running time collected for app circuits

Function input_size_in_bytes output_size_in_bytes witness_generation_time_in_ms
ContractClassRegisterer:register 1,344 11,731 349 (+1%)
ContractInstanceDeployer:deploy 1,408 11,731 ⚠️ 35.0 (+93%)
MultiCallEntrypoint:entrypoint 1,920 11,731 439 (+11%)
FeeJuice:deploy 1,376 11,731 413 (+4%)
SchnorrAccount:constructor 1,312 11,731 ⚠️ 100 (+98%)
SchnorrAccount:entrypoint 2,336 11,731 ⚠️ 404 (+17%)
FeeJuice:claim 1,344 11,731 ⚠️ 52.2 (+55%)
Token:privately_mint_private_note 1,280 11,731 ⚠️ 112 (+86%)
FPC:fee_entrypoint_public 1,344 11,731 48.9 (+13%)
Token:transfer 1,312 11,731 150 (+12%)
Benchmarking:create_note 1,344 11,731 ⚠️ 100 (+100%)
SchnorrAccount:verify_private_authwit 1,280 11,731 24.9 (-1%)
Token:unshield 1,376 11,731 534 (+13%)
FPC:fee_entrypoint_private 1,376 11,731 709 (+1%)

AVM Simulation

Time to simulate various public functions in the AVM.

Function time_ms bytecode_size_in_bytes
FeeJuice:_increase_public_balance 6.69 (+3%) 1,040
FeeJuice:set_portal ⚠️ 6.84 (+63%) 1,042
Token:constructor 183 (+5%) 7,121
FPC:constructor 11.0 (-1%) 4,579
FeeJuice:check_balance 3.54 (+11%) 923
Token:mint_public 7.43 1,903
Token:assert_minter_and_mint 4.71 (-3%) 1,236
AuthRegistry:set_authorized 2.95 (-2%) 465
FPC:prepare_fee 74.5 (+26%) 1,290
Token:transfer_public 10.7 (-1%) 5,304
FPC:pay_refund 33.3 (+7%) 1,708
Benchmarking:increment_balance 9.52 (+4%) 1,405
Token:_increase_public_balance ⚠️ 15.6 (+244%) 1,087
FPC:pay_refund_with_shielded_rebate 45.3 (+5%) 1,708

Public DB Access

Time to access various public DBs.

Function time_ms
get-nullifier-index 0.594

Tree insertion stats

The duration to insert a fixed batch of leaves into each tree type.

Metric 1 leaves 16 leaves 64 leaves 128 leaves 256 leaves 512 leaves 1024 leaves 2048 leaves 4096 leaves 32 leaves
batch_insert_into_append_only_tree_16_depth_ms ⚠️ 7.11 (+229%) ⚠️ 11.6 (+199%) N/A N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_count 16.7 31.7 N/A N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_ms ⚠️ 0.408 (+265%) ⚠️ 0.353 (+224%) N/A N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_32_depth_ms N/A N/A ⚠️ 41.0 (+271%) ⚠️ 52.1 (+193%) 31.5 (-1%) ⚠️ 93.0 (+58%) ⚠️ 461 (+297%) 929 1,845 N/A
batch_insert_into_append_only_tree_32_depth_hash_count N/A N/A 95.9 159 287 543 1,055 2,079 4,127 N/A
batch_insert_into_append_only_tree_32_depth_hash_ms N/A N/A ⚠️ 0.418 (+296%) ⚠️ 0.319 (+209%) 0.102 (-1%) ⚠️ 0.164 (+62%) ⚠️ 0.430 (+313%) 0.441 0.441 N/A
batch_insert_into_indexed_tree_20_depth_ms N/A N/A ⚠️ 48.6 (+247%) ⚠️ 75.4 (+192%) 47.1 (+7%) ⚠️ 131 (+60%) ⚠️ 680 (+317%) 1,391 2,776 N/A
batch_insert_into_indexed_tree_20_depth_hash_count N/A N/A 105 (-3%) 207 355 691 1,363 2,707 5,395 N/A
batch_insert_into_indexed_tree_20_depth_hash_ms N/A N/A ⚠️ 0.425 (+297%) ⚠️ 0.332 (+220%) 0.115 (+8%) ⚠️ 0.171 (+69%) ⚠️ 0.468 (+355%) 0.480 0.481 N/A
batch_insert_into_indexed_tree_40_depth_ms N/A N/A 16.5 N/A N/A N/A N/A N/A N/A 64.2
batch_insert_into_indexed_tree_40_depth_hash_count N/A N/A 132 (+1%) N/A N/A N/A N/A N/A N/A 109
batch_insert_into_indexed_tree_40_depth_hash_ms N/A N/A 0.106 (-1%) N/A N/A N/A N/A N/A N/A 0.563

Miscellaneous

Transaction sizes based on how many contract classes are registered in the tx.

Metric 0 registered classes 1 registered classes
tx_size_in_bytes ⚠️ 39,161 (-46%) 624,638 (-7%)

Transaction size based on fee payment method

| Metric | |
| - | |

@fcarreiro

Copy link
Copy Markdown
Contributor

Woohoo, all green! For our info

Token::total_supply: bytecode is 604 bytes
Token::constructor: bytecode is 7121 bytes
Token::mint_public: bytecode is 1903 bytes
Token::public_get_name: bytecode is 507 bytes
Token::is_minter: bytecode is 628 bytes
Token::_reduce_total_supply: bytecode is 891 bytes
Token::get_admin: bytecode is 507 bytes
Token::transfer_public: bytecode is 5304 bytes
Token::burn_public: bytecode is 5118 bytes
Token::shield: bytecode is 6030 bytes
Token::public_get_symbol: bytecode is 507 bytes
Token::set_minter: bytecode is 776 bytes
Token::assert_minter_and_mint: bytecode is 1236 bytes
Token::set_admin: bytecode is 653 bytes
Token::mint_private: bytecode is 2617 bytes
Token::_increase_public_balance: bytecode is 1087 bytes
Token::complete_refund: bytecode is 2330 bytes
Token::public_get_decimals: bytecode is 522 bytes
Token::balance_of_public: bytecode is 710 bytes

@fcarreiro

Copy link
Copy Markdown
Contributor

Posting all the others for the record. Also I just added the "bench-all" label so that it refreshes the benchmarks.

AuthWitTest::consume_public: bytecode is 510 bytes
AuthRegistry::is_reject_all: bytecode is 581 bytes
AuthRegistry::set_authorized: bytecode is 465 bytes
AuthRegistry::set_reject_all: bytecode is 364 bytes
AuthRegistry::consume: bytecode is 2637 bytes
AuthRegistry::_set_authorized: bytecode is 493 bytes
AuthRegistry::is_consumable: bytecode is 682 bytes
AvmInitializerTest::constructor: bytecode is 4578 bytes
AvmInitializerTest::read_storage_immutable: bytecode is 492 bytes
Auth::get_scheduled_authorized: bytecode is 595 bytes
Auth::get_authorized: bytecode is 697 bytes
Auth::set_authorized: bytecode is 4338 bytes
Auth::set_authorized_delay: bytecode is 4170 bytes
Auth::get_authorized_delay: bytecode is 952 bytes
Auth::constructor: bytecode is 4601 bytes
AvmTest::nested_static_call_to_set_storage: bytecode is 706 bytes
AvmTest::get_version: bytecode is 93 bytes
AvmTest::assert_timestamp: bytecode is 112 bytes
AvmTest::nullifier_collision: bytecode is 95 bytes
AvmTest::pedersen_hash: bytecode is 257 bytes
AvmTest::debug_logging: bytecode is 1492 bytes
AvmTest::set_opcode_u64: bytecode is 100 bytes
AvmTest::get_address: bytecode is 93 bytes
AvmTest::check_selector: bytecode is 108 bytes
AvmTest::assert_same: bytecode is 120 bytes
AvmTest::create_different_nullifier_in_nested_call: bytecode is 724 bytes
AvmTest::variable_base_msm: bytecode is 475 bytes
AvmTest::get_function_selector: bytecode is 93 bytes
AvmTest::emit_unencrypted_log: bytecode is 2636 bytes
AvmTest::get_sender: bytecode is 93 bytes
AvmTest::get_l2_gas_left: bytecode is 93 bytes
AvmTest::get_timestamp: bytecode is 93 bytes
AvmTest::create_same_nullifier_in_nested_call: bytecode is 713 bytes
AvmTest::bulk_testing: bytecode is 20896 bytes
AvmTest::keccak_hash: bytecode is 3721 bytes
AvmTest::assertion_failure: bytecode is 103 bytes
AvmTest::add_u128: bytecode is 208 bytes
AvmTest::sha256_hash: bytecode is 4062 bytes
AvmTest::get_fee_per_da_gas: bytecode is 93 bytes
AvmTest::set_opcode_really_big_field: bytecode is 124 bytes
AvmTest::to_radix_le: bytecode is 254 bytes
AvmTest::get_da_gas_left: bytecode is 93 bytes
AvmTest::get_block_number: bytecode is 93 bytes
AvmTest::return_oracle: bytecode is 347 bytes
AvmTest::test_get_contract_instance: bytecode is 903 bytes
AvmTest::note_hash_exists: bytecode is 124 bytes
AvmTest::test_get_contract_instance_raw: bytecode is 399 bytes
AvmTest::get_fee_per_l2_gas: bytecode is 93 bytes
AvmTest::read_storage_list: bytecode is 626 bytes
AvmTest::keccak_f1600: bytecode is 484 bytes
AvmTest::new_note_hash: bytecode is 89 bytes
AvmTest::l1_to_l2_msg_exists: bytecode is 124 bytes
AvmTest::add_storage_map: bytecode is 917 bytes
AvmTest::set_opcode_u32: bytecode is 96 bytes
AvmTest::set_read_storage_single: bytecode is 594 bytes
AvmTest::new_nullifier: bytecode is 89 bytes
AvmTest::set_storage_list: bytecode is 262 bytes
AvmTest::emit_nullifier_and_check: bytecode is 130 bytes
AvmTest::u128_from_integer_overflow: bytecode is 746 bytes
AvmTest::nullifier_exists: bytecode is 124 bytes
AvmTest::nested_call_to_add: bytecode is 993 bytes
AvmTest::pedersen_commit: bytecode is 383 bytes
AvmTest::assert_nullifier_exists: bytecode is 124 bytes
AvmTest::read_storage_single: bytecode is 445 bytes
AvmTest::set_storage_single: bytecode is 241 bytes
AvmTest::get_args_hash: bytecode is 2197 bytes
AvmTest::set_storage_map: bytecode is 447 bytes
AvmTest::modulo2: bytecode is 110 bytes
AvmTest::elliptic_curve_add_and_double: bytecode is 182 bytes
AvmTest::u128_addition_overflow: bytecode is 1376 bytes
AvmTest::add_args_return: bytecode is 105 bytes
AvmTest::get_storage_address: bytecode is 93 bytes
AvmTest::set_opcode_u8: bytecode is 92 bytes
AvmTest::assert_calldata_copy: bytecode is 465 bytes
AvmTest::pedersen_hash_with_index: bytecode is 257 bytes
AvmTest::get_transaction_fee: bytecode is 93 bytes
AvmTest::set_opcode_small_field: bytecode is 108 bytes
AvmTest::read_storage_map: bytecode is 566 bytes
AvmTest::get_chain_id: bytecode is 93 bytes
AvmTest::nested_static_call_to_add: bytecode is 993 bytes
AvmTest::poseidon2_hash: bytecode is 1515 bytes
AvmTest::nested_call_to_add_with_gas: bytecode is 996 bytes
AvmTest::set_opcode_big_field: bytecode is 124 bytes
AvmTest::send_l2_to_l1_msg: bytecode is 99 bytes
EasyPrivateVoting::add_to_tally_public: bytecode is 1110 bytes
EasyPrivateVoting::constructor: bytecode is 4891 bytes
EasyPrivateVoting::end_vote: bytecode is 652 bytes
Claim::constructor: bytecode is 5110 bytes
Delegator::public_delegate_set_value: bytecode is 524 bytes
ImportTest::pub_call_public_fn: bytecode is 706 bytes
PriceFeed::get_price: bytecode is 603 bytes
PriceFeed::set_price: bytecode is 452 bytes
FeeJuice::_increase_public_balance: bytecode is 1040 bytes
FeeJuice::balance_of_public: bytecode is 663 bytes
FeeJuice::check_balance: bytecode is 923 bytes
FeeJuice::set_portal: bytecode is 1042 bytes
FPC::pay_refund_with_shielded_rebate: bytecode is 1708 bytes
FPC::pay_refund: bytecode is 1708 bytes
FPC::constructor: bytecode is 4579 bytes
FPC::prepare_fee: bytecode is 1290 bytes
Router::_check_timestamp: bytecode is 822 bytes
Router::_check_block_number: bytecode is 805 bytes
Child::set_value_twice_with_nested_last: bytecode is 950 bytes
Child::pub_inc_value_internal: bytecode is 714 bytes
Child::set_value_twice_with_nested_first: bytecode is 950 bytes
Child::pub_inc_value: bytecode is 686 bytes
Child::pub_get_value: bytecode is 146 bytes
Child::set_value_with_two_nested_calls: bytecode is 776 bytes
Child::pub_set_value: bytecode is 337 bytes
DelegatedOn::public_set_value: bytecode is 251 bytes
PrivateFPC::constructor: bytecode is 4595 bytes
Parent::public_static_call: bytecode is 614 bytes
Parent::public_nested_static_call: bytecode is 4065 bytes
Parent::pub_entry_point_twice: bytecode is 745 bytes
Parent::pub_entry_point: bytecode is 457 bytes
Lending::get_position: bytecode is 4157 bytes
Lending::get_assets: bytecode is 871 bytes
Lending::deposit_public: bytecode is 1981 bytes
Lending::_borrow: bytecode is 11002 bytes
Lending::withdraw_public: bytecode is 1091 bytes
Lending::borrow_public: bytecode is 1091 bytes
Lending::repay_public: bytecode is 1810 bytes
Lending::update_accumulator: bytecode is 11588 bytes
Lending::_repay: bytecode is 6683 bytes
Lending::_deposit: bytecode is 1253 bytes
Lending::init: bytecode is 1525 bytes
Lending::_withdraw: bytecode is 10905 bytes
Lending::get_asset: bytecode is 833 bytes
Crowdfunding::_publish_donation_receipts: bytecode is 850 bytes
Crowdfunding::init: bytecode is 5653 bytes
Benchmarking::broadcast: bytecode is 627 bytes
Benchmarking::increment_balance: bytecode is 1405 bytes
StaticParent::public_call: bytecode is 457 bytes
StaticParent::public_nested_static_call: bytecode is 1322 bytes
StaticParent::public_get_value_from_child: bytecode is 822 bytes
StaticParent::public_static_call: bytecode is 614 bytes
AppSubscription::constructor: bytecode is 6703 bytes
Uniswap::_approve_bridge_and_exit_input_asset_to_L1: bytecode is 8912 bytes
Uniswap::constructor: bytecode is 4579 bytes
Uniswap::_assert_token_is_same: bytecode is 540 bytes
Uniswap::swap_public: bytecode is 16543 bytes
NFT::set_admin: bytecode is 653 bytes
NFT::is_minter: bytecode is 628 bytes
NFT::constructor: bytecode is 6578 bytes
NFT::mint: bytecode is 1478 bytes
NFT::_store_point_in_transient_storage: bytecode is 366 bytes
NFT::get_admin: bytecode is 507 bytes
NFT::_finish_transfer_to_public: bytecode is 427 bytes
NFT::transfer_in_public: bytecode is 4330 bytes
NFT::public_get_name: bytecode is 507 bytes
NFT::owner_of: bytecode is 947 bytes
NFT::public_get_symbol: bytecode is 507 bytes
NFT::set_minter: bytecode is 776 bytes
NFT::finalize_transfer_to_private: bytecode is 2210 bytes
TokenBridge::exit_to_l1_public: bytecode is 8766 bytes
TokenBridge::_call_mint_on_token: bytecode is 1290 bytes
TokenBridge::_assert_token_is_same: bytecode is 532 bytes
TokenBridge::claim_public: bytecode is 16138 bytes
TokenBridge::get_portal_address_public: bytecode is 550 bytes
TokenBridge::constructor: bytecode is 4733 bytes
TokenBridge::get_token: bytecode is 507 bytes
Spam::public_spam: bytecode is 1050 bytes
StaticChild::pub_set_value: bytecode is 337 bytes
StaticChild::pub_get_value: bytecode is 161 bytes
StaticChild::pub_illegal_inc_value: bytecode is 701 bytes
StaticChild::pub_inc_value: bytecode is 686 bytes
InclusionProofs::push_nullifier_public: bytecode is 136 bytes
InclusionProofs::test_nullifier_inclusion_from_public: bytecode is 166 bytes
InclusionProofs::constructor: bytecode is 4195 bytes
TestLog::emit_unencrypted_events: bytecode is 1343 bytes
DocsExample::spend_public_authwit: bytecode is 98 bytes
DocsExample::initialize_public_immutable: bytecode is 792 bytes
DocsExample::get_shared_immutable_constrained_public_indirect: bytecode is 511 bytes
DocsExample::update_leader: bytecode is 302 bytes
DocsExample::get_shared_immutable_constrained_public: bytecode is 516 bytes
DocsExample::initialize_shared_immutable: bytecode is 792 bytes
DocsExample::get_shared_immutable_constrained_public_multiple: bytecode is 721 bytes
Test::is_time_equal: bytecode is 122 bytes
Test::create_l2_to_l1_message_arbitrary_recipient_public: bytecode is 99 bytes
Test::emit_nullifier_public: bytecode is 89 bytes
Test::emit_unencrypted: bytecode is 1330 bytes
Test::dummy_public_call: bytecode is 105 bytes
Test::consume_mint_public_message: bytecode is 14845 bytes
Test::consume_message_from_arbitrary_sender_public: bytecode is 9116 bytes
Test::create_l2_to_l1_message_public: bytecode is 183 bytes
Test::assert_public_global_vars: bytecode is 252 bytes
StatefulTest::public_constructor: bytecode is 4649 bytes
StatefulTest::increment_public_value_no_init_check: bytecode is 696 bytes
StatefulTest::increment_public_value: bytecode is 743 bytes
StatefulTest::get_public_value: bytecode is 566 bytes
TokenBlacklist::transfer_public: bytecode is 6718 bytes
TokenBlacklist::update_roles: bytecode is 5455 bytes
TokenBlacklist::constructor: bytecode is 8346 bytes
TokenBlacklist::_reduce_total_supply: bytecode is 891 bytes
TokenBlacklist::balance_of_public: bytecode is 710 bytes
TokenBlacklist::mint_private: bytecode is 2928 bytes
TokenBlacklist::total_supply: bytecode is 604 bytes
TokenBlacklist::mint_public: bytecode is 2845 bytes
TokenBlacklist::get_roles: bytecode is 960 bytes
TokenBlacklist::burn_public: bytecode is 5906 bytes
TokenBlacklist::_increase_public_balance: bytecode is 1087 bytes
TokenBlacklist::shield: bytecode is 6818 bytes
CardGame::on_cards_claimed: bytecode is 3814 bytes
CardGame::on_card_played: bytecode is 4675 bytes
CardGame::start_game: bytecode is 6223 bytes
CardGame::on_game_joined: bytecode is 3550 bytes
Token::burn_public: bytecode is 5118 bytes
Token::mint_public: bytecode is 1903 bytes
Token::assert_minter_and_mint: bytecode is 1236 bytes
Token::shield: bytecode is 6030 bytes
Token::mint_private: bytecode is 2617 bytes
Token::get_admin: bytecode is 507 bytes
Token::complete_refund: bytecode is 2330 bytes
Token::public_get_decimals: bytecode is 522 bytes
Token::constructor: bytecode is 7121 bytes
Token::public_get_name: bytecode is 507 bytes
Token::_reduce_total_supply: bytecode is 891 bytes
Token::public_get_symbol: bytecode is 507 bytes
Token::total_supply: bytecode is 604 bytes
Token::set_admin: bytecode is 653 bytes
Token::set_minter: bytecode is 776 bytes
Token::transfer_public: bytecode is 5304 bytes
Token::balance_of_public: bytecode is 710 bytes
Token::_increase_public_balance: bytecode is 1087 bytes
Token::is_minter: bytecode is 628 bytes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants