Skip to content

Plutus V3 support#549

Merged
nielstron merged 33 commits intodevfrom
feat/plutus-v3
Oct 14, 2025
Merged

Plutus V3 support#549
nielstron merged 33 commits intodevfrom
feat/plutus-v3

Conversation

@nielstron
Copy link
Contributor

This is a larger PR that will introduce support for Plutus V3.

It comes with some changes in the design of smart contracts:

  • Validators are expected to have a single parameter (ScriptContext) and a single output (BuiltinUnit())
  • Validators can not be compiled with "force three parameters".
  • All validators by default accept all script purposes (distinguished only inside the script)
  • There are two new flags "wrap_input" and "wrap_output" mostly for very low-level UPLC development purposes.
  • The ledger api replaces v2 with v3. v2 is removed entirely to avoid unintentional mismatches.
  • ScriptContext.tx_info is now ScriptContext.transaction, TxInfo.valid_range is now TxInfo.validity_range
  • See the examples for more details

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53474 bytes
    Evaluating test case: valid_sum
      CPU: 44,234,177 | MEM: 233,560
  O1: 3712 bytes
    Evaluating test case: valid_sum
      CPU: 23,482,177 | MEM: 103,860
  O2: 3532 bytes
    Evaluating test case: valid_sum
      CPU: 22,080,038 | MEM: 98,472
  O3: 1644 bytes
    Evaluating test case: valid_sum
      CPU: 21,888,038 | MEM: 97,272
Measuring liquidity_pool...
  O0: 150448 bytes
  O1: 47636 bytes
  O2: 47530 bytes
  O3: 19664 bytes
Measuring marketplace...
  O0: 119826 bytes
  O1: 26078 bytes
  O2: 25810 bytes
  O3: 5366 bytes
Measuring gift...
  O0: 55948 bytes
    Evaluating test case: valid_withdrawal
      CPU: 51,780,916 | MEM: 258,621
  O1: 5534 bytes
    Evaluating test case: valid_withdrawal
      CPU: 32,452,916 | MEM: 137,821
  O2: 5352 bytes
    Evaluating test case: valid_withdrawal
      CPU: 31,011,534 | MEM: 132,201
  O3: 1980 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,531,534 | MEM: 129,201
Measuring wrapped_token...
  O0: 63350 bytes
  O1: 9394 bytes
  O2: 8938 bytes
  O3: 4060 bytes
Measuring micropayments...
  O0: 86538 bytes
  O1: 19932 bytes
  O2: 19676 bytes
  O3: 7650 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,474 bytes (+17,294 bytes, +47.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 44,234,177 (+26,719,019, +152.5%) | MEM 70,926 → 233,560 (+162,634, +229.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,712 bytes (-1,082 bytes, -22.6%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 23,482,177 (+14,316,019, +156.2%) | MEM 34,626 → 103,860 (+69,234, +199.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,532 bytes (-1,232 bytes, -25.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 22,080,038 (+13,163,579, +147.6%) | MEM 33,962 → 98,472 (+64,510, +189.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,644 bytes (+1,208 bytes, +277.1%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 21,888,038 (+15,455,579, +240.3%) | MEM 23,162 → 97,272 (+74,110, +320.0%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,448 bytes (+46,516 bytes, +44.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 47,636 bytes (+8,598 bytes, +22.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,530 bytes (+8,422 bytes, +21.5%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 19,664 bytes (+2,658 bytes, +15.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,826 bytes (+78,988 bytes, +193.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,078 bytes (+17,202 bytes, +193.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,810 bytes (+16,982 bytes, +192.4%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 5,366 bytes (+2,752 bytes, +105.3%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 55,948 bytes (+36,414 bytes, +186.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 51,780,916 (+31,399,978, +154.1%) | MEM 80,431 → 258,621 (+178,190, +221.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,534 bytes (+3,882 bytes, +235.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 32,452,916 (+20,719,978, +176.6%) | MEM 42,831 → 137,821 (+94,990, +221.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,352 bytes (+3,704 bytes, +224.8%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 31,011,534 (+19,528,295, +170.1%) | MEM 42,167 → 132,201 (+90,034, +213.5%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,980 bytes (+1,362 bytes, +220.4%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 30,531,534 (+19,738,295, +182.9%) | MEM 39,167 → 129,201 (+90,034, +229.9%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,350 bytes (+34,772 bytes, +121.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,394 bytes (-128 bytes, -1.3%) ↘️ (size reduced)
  O2: 9,232 → 8,938 bytes (-294 bytes, -3.2%) ↘️ (size reduced)
  O3: 4,244 → 4,060 bytes (-184 bytes, -4.3%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,538 bytes (+54,574 bytes, +170.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 19,932 bytes (+8,740 bytes, +78.1%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,676 bytes (+8,554 bytes, +76.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,650 bytes (+2,242 bytes, +41.5%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +351,944 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@nielstron
Copy link
Contributor Author

nielstron commented Oct 8, 2025

Contract size increases are due to

  1. we have to now fetch the datum out of the script context (previously it was provided for free, assert_sum is an example where only this is the major change in the contract)
  2. we now run integrity checks on inputs (this causes additional increase for liquidity_pool, without integrity checks it only increases in size by 900 bytes, matching the assert_sum increase for retrieving datum and redeemer from the context)

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1548 bytes
    Evaluating test case: valid_sum
      CPU: 19,538,516 | MEM: 85,642
Measuring liquidity_pool...
  O0: 150514 bytes
  O1: 47712 bytes
  O2: 47606 bytes
  O3: 19610 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 5310 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1884 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,182,012 | MEM: 117,571
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 4056 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7648 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,548 bytes (+1,112 bytes, +255.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 19,538,516 (+13,106,057, +203.7%) | MEM 23,162 → 85,642 (+62,480, +269.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,514 bytes (+46,582 bytes, +44.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 47,712 bytes (+8,674 bytes, +22.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 19,610 bytes (+2,604 bytes, +15.3%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 5,310 bytes (+2,696 bytes, +103.1%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,884 bytes (+1,266 bytes, +204.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 28,182,012 (+17,388,773, +161.1%) | MEM 39,167 → 117,571 (+78,404, +200.2%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 4,056 bytes (-188 bytes, -4.4%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,648 bytes (+2,240 bytes, +41.4%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +352,778 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1548 bytes
    Evaluating test case: valid_sum
      CPU: 19,538,516 | MEM: 85,642
Measuring liquidity_pool...
  O0: 150514 bytes
  O1: 47712 bytes
  O2: 47606 bytes
  O3: 19610 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 5310 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1884 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,182,012 | MEM: 117,571
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 4056 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7648 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,548 bytes (+1,112 bytes, +255.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 19,538,516 (+13,106,057, +203.7%) | MEM 23,162 → 85,642 (+62,480, +269.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,514 bytes (+46,582 bytes, +44.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 47,712 bytes (+8,674 bytes, +22.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 19,610 bytes (+2,604 bytes, +15.3%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 5,310 bytes (+2,696 bytes, +103.1%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,884 bytes (+1,266 bytes, +204.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 28,182,012 (+17,388,773, +161.1%) | MEM 39,167 → 117,571 (+78,404, +200.2%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 4,056 bytes (-188 bytes, -4.4%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,648 bytes (+2,240 bytes, +41.4%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +352,778 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

2 similar comments
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1548 bytes
    Evaluating test case: valid_sum
      CPU: 19,538,516 | MEM: 85,642
Measuring liquidity_pool...
  O0: 150514 bytes
  O1: 47712 bytes
  O2: 47606 bytes
  O3: 19610 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 5310 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1884 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,182,012 | MEM: 117,571
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 4056 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7648 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,548 bytes (+1,112 bytes, +255.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 19,538,516 (+13,106,057, +203.7%) | MEM 23,162 → 85,642 (+62,480, +269.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,514 bytes (+46,582 bytes, +44.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 47,712 bytes (+8,674 bytes, +22.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 19,610 bytes (+2,604 bytes, +15.3%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 5,310 bytes (+2,696 bytes, +103.1%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,884 bytes (+1,266 bytes, +204.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 28,182,012 (+17,388,773, +161.1%) | MEM 39,167 → 117,571 (+78,404, +200.2%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 4,056 bytes (-188 bytes, -4.4%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,648 bytes (+2,240 bytes, +41.4%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +352,778 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1548 bytes
    Evaluating test case: valid_sum
      CPU: 19,538,516 | MEM: 85,642
Measuring liquidity_pool...
  O0: 150514 bytes
  O1: 47712 bytes
  O2: 47606 bytes
  O3: 19610 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 5310 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1884 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,182,012 | MEM: 117,571
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 4056 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7648 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,548 bytes (+1,112 bytes, +255.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 19,538,516 (+13,106,057, +203.7%) | MEM 23,162 → 85,642 (+62,480, +269.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,514 bytes (+46,582 bytes, +44.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 47,712 bytes (+8,674 bytes, +22.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 19,610 bytes (+2,604 bytes, +15.3%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 5,310 bytes (+2,696 bytes, +103.1%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,884 bytes (+1,266 bytes, +204.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 28,182,012 (+17,388,773, +161.1%) | MEM 39,167 → 117,571 (+78,404, +200.2%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 4,056 bytes (-188 bytes, -4.4%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,648 bytes (+2,240 bytes, +41.4%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +352,778 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@coveralls
Copy link

coveralls commented Oct 8, 2025

Coverage Status

coverage: 92.132% (-0.7%) from 92.835%
when pulling 95a521f on feat/plutus-v3
into 8464d42 on dev.

@nielstron
Copy link
Contributor Author

TODO before merge:

  • add Plutus builtins and tests for the new v3 primitives. this may require additional types for the ZK primitives
  • Adapt internal logic to leverage new builtins. for example n*b"..." can now internally use RepeatByteString

@github-actions
Copy link

github-actions bot commented Oct 9, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1548 bytes
    Evaluating test case: valid_sum
      CPU: 19,538,516 | MEM: 85,642
Measuring liquidity_pool...
  O0: 150514 bytes
  O1: 47712 bytes
  O2: 47606 bytes
  O3: 19610 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 5310 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1884 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,182,012 | MEM: 117,571
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 4056 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7648 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,548 bytes (+1,112 bytes, +255.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 19,538,516 (+13,106,057, +203.7%) | MEM 23,162 → 85,642 (+62,480, +269.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,514 bytes (+46,582 bytes, +44.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 47,712 bytes (+8,674 bytes, +22.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 19,610 bytes (+2,604 bytes, +15.3%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 5,310 bytes (+2,696 bytes, +103.1%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,884 bytes (+1,266 bytes, +204.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 28,182,012 (+17,388,773, +161.1%) | MEM 39,167 → 117,571 (+78,404, +200.2%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 4,056 bytes (-188 bytes, -4.4%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,648 bytes (+2,240 bytes, +41.4%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +352,778 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

github-actions bot commented Oct 9, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 150656 bytes
  O1: 48100 bytes
  O2: 47606 bytes
  O3: 18984 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,328 bytes (+892 bytes, +204.6%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 17,922,516 (+11,490,057, +178.6%) | MEM 23,162 → 75,542 (+52,380, +226.1%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,656 bytes (+46,724 bytes, +45.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 48,100 bytes (+9,062 bytes, +23.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 18,984 bytes (+1,978 bytes, +11.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 4,834 bytes (+2,220 bytes, +84.9%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,656 bytes (+1,038 bytes, +168.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 26,214,012 (+15,420,773, +142.9%) | MEM 39,167 → 105,271 (+66,104, +168.8%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 3,858 bytes (-386 bytes, -9.1%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,194 bytes (+1,786 bytes, +33.0%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +351,106 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

1 similar comment
@github-actions
Copy link

github-actions bot commented Oct 9, 2025

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 150656 bytes
  O1: 48100 bytes
  O2: 47606 bytes
  O3: 18984 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,328 bytes (+892 bytes, +204.6%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 17,922,516 (+11,490,057, +178.6%) | MEM 23,162 → 75,542 (+52,380, +226.1%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,656 bytes (+46,724 bytes, +45.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 48,100 bytes (+9,062 bytes, +23.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 18,984 bytes (+1,978 bytes, +11.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 4,834 bytes (+2,220 bytes, +84.9%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,656 bytes (+1,038 bytes, +168.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 26,214,012 (+15,420,773, +142.9%) | MEM 39,167 → 105,271 (+66,104, +168.8%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 3,858 bytes (-386 bytes, -9.1%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,194 bytes (+1,786 bytes, +33.0%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +351,106 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 150656 bytes
  O1: 48100 bytes
  O2: 47606 bytes
  O3: 18984 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,328 bytes (+892 bytes, +204.6%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 17,922,516 (+11,490,057, +178.6%) | MEM 23,162 → 75,542 (+52,380, +226.1%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,656 bytes (+46,724 bytes, +45.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 48,100 bytes (+9,062 bytes, +23.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 18,984 bytes (+1,978 bytes, +11.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 4,834 bytes (+2,220 bytes, +84.9%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,656 bytes (+1,038 bytes, +168.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 26,214,012 (+15,420,773, +142.9%) | MEM 39,167 → 105,271 (+66,104, +168.8%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 3,858 bytes (-386 bytes, -9.1%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,194 bytes (+1,786 bytes, +33.0%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +351,106 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@socket-security
Copy link

socket-security bot commented Oct 10, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedexecnet@​2.1.191100100100100
Updatedpluthon@​1.3.4 ⏵ 1.3.5100100100100100
Addedpyblst@​0.3.14100100100100100
Updatedidna@​3.10 ⏵ 3.11100100100100100
Updatedcachetools@​6.2.0 ⏵ 6.2.1100100100100100
Updatedcharset-normalizer@​3.4.3 ⏵ 3.4.4100 +2100100100100

View full report

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 53542 bytes
    Evaluating test case: valid_sum
      CPU: 42,076,655 | MEM: 223,130
  O1: 3694 bytes
    Evaluating test case: valid_sum
      CPU: 21,132,655 | MEM: 92,230
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 150656 bytes
  O1: 48100 bytes
  O2: 47606 bytes
  O3: 18984 bytes
Measuring marketplace...
  O0: 119892 bytes
  O1: 26154 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 56014 bytes
    Evaluating test case: valid_withdrawal
      CPU: 49,623,394 | MEM: 248,191
  O1: 5512 bytes
    Evaluating test case: valid_withdrawal
      CPU: 30,103,394 | MEM: 126,191
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 63426 bytes
  O1: 9518 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 86614 bytes
  O1: 20054 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 53,542 bytes (+17,362 bytes, +48.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 17,515,158 → 42,076,655 (+24,561,497, +140.2%) | MEM 70,926 → 223,130 (+152,204, +214.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,694 bytes (-1,100 bytes, -22.9%) ↘️ (size reduced)
    Test 'valid_sum': CPU 9,166,158 → 21,132,655 (+11,966,497, +130.6%) | MEM 34,626 → 92,230 (+57,604, +166.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 8,916,459 → 19,730,516 (+10,814,057, +121.3%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 436 → 1,328 bytes (+892 bytes, +204.6%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 6,432,459 → 17,922,516 (+11,490,057, +178.6%) | MEM 23,162 → 75,542 (+52,380, +226.1%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 103,932 → 150,656 bytes (+46,724 bytes, +45.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,038 → 48,100 bytes (+9,062 bytes, +23.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,606 bytes (+8,498 bytes, +21.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 17,006 → 18,984 bytes (+1,978 bytes, +11.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 119,892 bytes (+79,054 bytes, +193.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 26,154 bytes (+17,278 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,614 → 4,834 bytes (+2,220 bytes, +84.9%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 56,014 bytes (+36,480 bytes, +186.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 20,380,938 → 49,623,394 (+29,242,456, +143.5%) | MEM 80,431 → 248,191 (+167,760, +208.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,512 bytes (+3,860 bytes, +233.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 11,732,938 → 30,103,394 (+18,370,456, +156.6%) | MEM 42,831 → 126,191 (+83,360, +194.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 11,483,239 → 28,662,012 (+17,178,773, +149.6%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 618 → 1,656 bytes (+1,038 bytes, +168.0%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 10,793,239 → 26,214,012 (+15,420,773, +142.9%) | MEM 39,167 → 105,271 (+66,104, +168.8%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 63,426 bytes (+34,848 bytes, +121.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,518 bytes (-4 bytes, -0.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,244 → 3,858 bytes (-386 bytes, -9.1%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 86,614 bytes (+54,650 bytes, +171.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 20,054 bytes (+8,862 bytes, +79.2%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,408 → 7,194 bytes (+1,786 bytes, +33.0%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +351,106 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
Failed to compile examples/smart_contracts/assert_sum.py with O0: /home/runner/work/opshin/opshin/.venv/lib/python3.13/site-packages/uplc/lexer.py:79: SyntaxWarning: invalid escape sequence 's'
  self.lexer.ignore("s+")
Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/.venv/bin/opshin", line 4, in <module>
    from opshin.__main__ import main
  File "/home/runner/work/opshin/opshin/opshin/__main__.py", line 25, in <module>
    from . import (
    ...<7 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/compiler.py", line 13, in <module>
    from .prelude import Nothing
  File "/home/runner/work/opshin/opshin/opshin/prelude.py", line 1, in <module>
    from opshin.ledger.api_v3 import *
  File "/home/runner/work/opshin/opshin/opshin/ledger/api_v3.py", line 10, in <module>
    from opshin.std.fractions import *
  File "/home/runner/work/opshin/opshin/opshin/std/fractions.py", line 27, in <module>
    from opshin.std.math import *
  File "/home/runner/work/opshin/opshin/opshin/std/math.py", line 3, in <module>
    from opshin.std.builtins import *
  File "/home/runner/work/opshin/opshin/opshin/std/builtins.py", line 9, in <module>
    from opshin.std.bls12_381 import (
    ...<3 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/std/bls12_381.py", line 1, in <module>
    from pyblst import BlstP1Element, BlstP2Element, BlstFP12Element
ModuleNotFoundError: No module named 'pyblst'

Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 547, in <module>
    main()
    ~~~~^^
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 539, in main
    has_changes = compare_with_baseline(
        args.baseline_file, args.work_dir, args.config_file
    )
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 316, in compare_with_baseline
    current = measure_contract_sizes(
        config["contracts"], config["optimization_levels"], work_dir
    )
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 227, in measure_contract_sizes
    size = compile_contract(path, opt_level, extra_flags, work_dir)
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 116, in compile_contract
    raise Exception(f"Compilation failed: {stderr}")
Exception: Compilation failed: /home/runner/work/opshin/opshin/.venv/lib/python3.13/site-packages/uplc/lexer.py:79: SyntaxWarning: invalid escape sequence 's'
  self.lexer.ignore("s+")
Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/.venv/bin/opshin", line 4, in <module>
    from opshin.__main__ import main
  File "/home/runner/work/opshin/opshin/opshin/__main__.py", line 25, in <module>
    from . import (
    ...<7 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/compiler.py", line 13, in <module>
    from .prelude import Nothing
  File "/home/runner/work/opshin/opshin/opshin/prelude.py", line 1, in <module>
    from opshin.ledger.api_v3 import *
  File "/home/runner/work/opshin/opshin/opshin/ledger/api_v3.py", line 10, in <module>
    from opshin.std.fractions import *
  File "/home/runner/work/opshin/opshin/opshin/std/fractions.py", line 27, in <module>
    from opshin.std.math import *
  File "/home/runner/work/opshin/opshin/opshin/std/math.py", line 3, in <module>
    from opshin.std.builtins import *
  File "/home/runner/work/opshin/opshin/opshin/std/builtins.py", line 9, in <module>
    from opshin.std.bls12_381 import (
    ...<3 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/std/bls12_381.py", line 1, in <module>
    from pyblst import BlstP1Element, BlstP2Element, BlstFP12Element
ModuleNotFoundError: No module named 'pyblst'

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
Failed to compile examples/smart_contracts/assert_sum.py with O0: /home/runner/work/opshin/opshin/.venv/lib/python3.13/site-packages/uplc/lexer.py:79: SyntaxWarning: invalid escape sequence 's'
  self.lexer.ignore("s+")
Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/.venv/bin/opshin", line 4, in <module>
    from opshin.__main__ import main
  File "/home/runner/work/opshin/opshin/opshin/__main__.py", line 25, in <module>
    from . import (
    ...<7 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/compiler.py", line 13, in <module>
    from .prelude import Nothing
  File "/home/runner/work/opshin/opshin/opshin/prelude.py", line 1, in <module>
    from opshin.ledger.api_v3 import *
  File "/home/runner/work/opshin/opshin/opshin/ledger/api_v3.py", line 10, in <module>
    from opshin.std.fractions import *
  File "/home/runner/work/opshin/opshin/opshin/std/fractions.py", line 27, in <module>
    from opshin.std.math import *
  File "/home/runner/work/opshin/opshin/opshin/std/math.py", line 3, in <module>
    from opshin.std.builtins import *
  File "/home/runner/work/opshin/opshin/opshin/std/builtins.py", line 9, in <module>
    from opshin.std.bls12_381 import (
    ...<3 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/std/bls12_381.py", line 1, in <module>
    from pyblst import BlstP1Element, BlstP2Element, BlstFP12Element
ModuleNotFoundError: No module named 'pyblst'

Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 547, in <module>
    main()
    ~~~~^^
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 539, in main
    has_changes = compare_with_baseline(
        args.baseline_file, args.work_dir, args.config_file
    )
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 316, in compare_with_baseline
    current = measure_contract_sizes(
        config["contracts"], config["optimization_levels"], work_dir
    )
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 227, in measure_contract_sizes
    size = compile_contract(path, opt_level, extra_flags, work_dir)
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 116, in compile_contract
    raise Exception(f"Compilation failed: {stderr}")
Exception: Compilation failed: /home/runner/work/opshin/opshin/.venv/lib/python3.13/site-packages/uplc/lexer.py:79: SyntaxWarning: invalid escape sequence 's'
  self.lexer.ignore("s+")
Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/.venv/bin/opshin", line 4, in <module>
    from opshin.__main__ import main
  File "/home/runner/work/opshin/opshin/opshin/__main__.py", line 25, in <module>
    from . import (
    ...<7 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/compiler.py", line 13, in <module>
    from .prelude import Nothing
  File "/home/runner/work/opshin/opshin/opshin/prelude.py", line 1, in <module>
    from opshin.ledger.api_v3 import *
  File "/home/runner/work/opshin/opshin/opshin/ledger/api_v3.py", line 10, in <module>
    from opshin.std.fractions import *
  File "/home/runner/work/opshin/opshin/opshin/std/fractions.py", line 27, in <module>
    from opshin.std.math import *
  File "/home/runner/work/opshin/opshin/opshin/std/math.py", line 3, in <module>
    from opshin.std.builtins import *
  File "/home/runner/work/opshin/opshin/opshin/std/builtins.py", line 9, in <module>
    from opshin.std.bls12_381 import (
    ...<3 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/std/bls12_381.py", line 1, in <module>
    from pyblst import BlstP1Element, BlstP2Element, BlstFP12Element
ModuleNotFoundError: No module named 'pyblst'

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
Failed to compile examples/smart_contracts/assert_sum.py with O0: /home/runner/work/opshin/opshin/.venv/lib/python3.13/site-packages/uplc/lexer.py:79: SyntaxWarning: invalid escape sequence 's'
  self.lexer.ignore("s+")
Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/.venv/bin/opshin", line 4, in <module>
    from opshin.__main__ import main
  File "/home/runner/work/opshin/opshin/opshin/__main__.py", line 25, in <module>
    from . import (
    ...<7 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/compiler.py", line 13, in <module>
    from .prelude import Nothing
  File "/home/runner/work/opshin/opshin/opshin/prelude.py", line 1, in <module>
    from opshin.ledger.api_v3 import *
  File "/home/runner/work/opshin/opshin/opshin/ledger/api_v3.py", line 10, in <module>
    from opshin.std.fractions import *
  File "/home/runner/work/opshin/opshin/opshin/std/fractions.py", line 27, in <module>
    from opshin.std.math import *
  File "/home/runner/work/opshin/opshin/opshin/std/math.py", line 3, in <module>
    from opshin.std.builtins import *
  File "/home/runner/work/opshin/opshin/opshin/std/builtins.py", line 9, in <module>
    from opshin.std.bls12_381 import (
    ...<3 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/std/bls12_381.py", line 1, in <module>
    from pyblst import BlstP1Element, BlstP2Element, BlstFP12Element
ModuleNotFoundError: No module named 'pyblst'

Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 547, in <module>
    main()
    ~~~~^^
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 539, in main
    has_changes = compare_with_baseline(
        args.baseline_file, args.work_dir, args.config_file
    )
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 316, in compare_with_baseline
    current = measure_contract_sizes(
        config["contracts"], config["optimization_levels"], work_dir
    )
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 227, in measure_contract_sizes
    size = compile_contract(path, opt_level, extra_flags, work_dir)
  File "/home/runner/work/opshin/opshin/scripts/binary_size_tracker.py", line 116, in compile_contract
    raise Exception(f"Compilation failed: {stderr}")
Exception: Compilation failed: /home/runner/work/opshin/opshin/.venv/lib/python3.13/site-packages/uplc/lexer.py:79: SyntaxWarning: invalid escape sequence 's'
  self.lexer.ignore("s+")
Traceback (most recent call last):
  File "/home/runner/work/opshin/opshin/.venv/bin/opshin", line 4, in <module>
    from opshin.__main__ import main
  File "/home/runner/work/opshin/opshin/opshin/__main__.py", line 25, in <module>
    from . import (
    ...<7 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/compiler.py", line 13, in <module>
    from .prelude import Nothing
  File "/home/runner/work/opshin/opshin/opshin/prelude.py", line 1, in <module>
    from opshin.ledger.api_v3 import *
  File "/home/runner/work/opshin/opshin/opshin/ledger/api_v3.py", line 10, in <module>
    from opshin.std.fractions import *
  File "/home/runner/work/opshin/opshin/opshin/std/fractions.py", line 27, in <module>
    from opshin.std.math import *
  File "/home/runner/work/opshin/opshin/opshin/std/math.py", line 3, in <module>
    from opshin.std.builtins import *
  File "/home/runner/work/opshin/opshin/opshin/std/builtins.py", line 9, in <module>
    from opshin.std.bls12_381 import (
    ...<3 lines>...
    )
  File "/home/runner/work/opshin/opshin/opshin/std/bls12_381.py", line 1, in <module>
    from pyblst import BlstP1Element, BlstP2Element, BlstFP12Element
ModuleNotFoundError: No module named 'pyblst'

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 55098 bytes
    Evaluating test case: valid_sum
      CPU: 44,793,759 | MEM: 243,474
  O1: 3518 bytes
    Evaluating test case: valid_sum
      CPU: 19,769,759 | MEM: 87,074
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 152256 bytes
  O1: 47634 bytes
  O2: 47316 bytes
  O3: 18672 bytes
Measuring marketplace...
  O0: 121448 bytes
  O1: 25978 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 57570 bytes
    Evaluating test case: valid_withdrawal
      CPU: 52,340,498 | MEM: 268,535
  O1: 5336 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,740,498 | MEM: 121,035
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 64982 bytes
  O1: 9334 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 88170 bytes
  O1: 19876 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 55,098 bytes (+18,918 bytes, +52.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 12,206,830 → 44,793,759 (+32,586,929, +267.0%) | MEM 70,926 → 243,474 (+172,548, +243.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,518 bytes (-1,276 bytes, -26.6%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,398,830 → 19,769,759 (+13,370,929, +209.0%) | MEM 34,626 → 87,074 (+52,448, +151.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,273,436 → 19,730,516 (+13,457,080, +214.5%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 360 → 1,328 bytes (+968 bytes, +268.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 3,825,436 → 17,922,516 (+14,097,080, +368.5%) | MEM 18,662 → 75,542 (+56,880, +304.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 112,778 → 152,256 bytes (+39,478 bytes, +35.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,604 → 47,634 bytes (+8,030 bytes, +20.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,316 bytes (+8,208 bytes, +21.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 16,440 → 18,672 bytes (+2,232 bytes, +13.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 121,448 bytes (+80,610 bytes, +197.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 25,978 bytes (+17,102 bytes, +192.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,340 → 4,834 bytes (+2,494 bytes, +106.6%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 57,570 bytes (+38,036 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 15,103,260 → 52,340,498 (+37,237,238, +246.6%) | MEM 80,431 → 268,535 (+188,104, +233.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,336 bytes (+3,684 bytes, +223.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 9,087,260 → 28,740,498 (+19,653,238, +216.3%) | MEM 42,831 → 121,035 (+78,204, +182.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 8,961,866 → 28,662,012 (+19,700,146, +219.8%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 454 → 1,656 bytes (+1,202 bytes, +264.8%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 6,913,866 → 26,214,012 (+19,300,146, +279.2%) | MEM 29,367 → 105,271 (+75,904, +258.5%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 64,982 bytes (+36,404 bytes, +127.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,334 bytes (-188 bytes, -2.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,040 → 3,858 bytes (-182 bytes, -4.5%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 88,170 bytes (+56,206 bytes, +175.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 19,876 bytes (+8,684 bytes, +77.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,020 → 7,194 bytes (+2,174 bytes, +43.3%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +350,788 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

1 similar comment
@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 55098 bytes
    Evaluating test case: valid_sum
      CPU: 44,793,759 | MEM: 243,474
  O1: 3518 bytes
    Evaluating test case: valid_sum
      CPU: 19,769,759 | MEM: 87,074
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 152256 bytes
  O1: 47634 bytes
  O2: 47316 bytes
  O3: 18672 bytes
Measuring marketplace...
  O0: 121448 bytes
  O1: 25978 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 57570 bytes
    Evaluating test case: valid_withdrawal
      CPU: 52,340,498 | MEM: 268,535
  O1: 5336 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,740,498 | MEM: 121,035
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 64982 bytes
  O1: 9334 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 88170 bytes
  O1: 19876 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 55,098 bytes (+18,918 bytes, +52.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 12,206,830 → 44,793,759 (+32,586,929, +267.0%) | MEM 70,926 → 243,474 (+172,548, +243.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,518 bytes (-1,276 bytes, -26.6%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,398,830 → 19,769,759 (+13,370,929, +209.0%) | MEM 34,626 → 87,074 (+52,448, +151.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,273,436 → 19,730,516 (+13,457,080, +214.5%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 360 → 1,328 bytes (+968 bytes, +268.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 3,825,436 → 17,922,516 (+14,097,080, +368.5%) | MEM 18,662 → 75,542 (+56,880, +304.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 112,778 → 152,256 bytes (+39,478 bytes, +35.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,604 → 47,634 bytes (+8,030 bytes, +20.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,316 bytes (+8,208 bytes, +21.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 16,440 → 18,672 bytes (+2,232 bytes, +13.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 121,448 bytes (+80,610 bytes, +197.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 25,978 bytes (+17,102 bytes, +192.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,340 → 4,834 bytes (+2,494 bytes, +106.6%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 57,570 bytes (+38,036 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 15,103,260 → 52,340,498 (+37,237,238, +246.6%) | MEM 80,431 → 268,535 (+188,104, +233.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,336 bytes (+3,684 bytes, +223.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 9,087,260 → 28,740,498 (+19,653,238, +216.3%) | MEM 42,831 → 121,035 (+78,204, +182.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 8,961,866 → 28,662,012 (+19,700,146, +219.8%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 454 → 1,656 bytes (+1,202 bytes, +264.8%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 6,913,866 → 26,214,012 (+19,300,146, +279.2%) | MEM 29,367 → 105,271 (+75,904, +258.5%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 64,982 bytes (+36,404 bytes, +127.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,334 bytes (-188 bytes, -2.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,040 → 3,858 bytes (-182 bytes, -4.5%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 88,170 bytes (+56,206 bytes, +175.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 19,876 bytes (+8,684 bytes, +77.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,020 → 7,194 bytes (+2,174 bytes, +43.3%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +350,788 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 55098 bytes
    Evaluating test case: valid_sum
      CPU: 44,793,759 | MEM: 243,474
  O1: 3518 bytes
    Evaluating test case: valid_sum
      CPU: 19,769,759 | MEM: 87,074
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 152256 bytes
  O1: 47634 bytes
  O2: 47316 bytes
  O3: 18672 bytes
Measuring marketplace...
  O0: 121448 bytes
  O1: 25978 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 57570 bytes
    Evaluating test case: valid_withdrawal
      CPU: 52,340,498 | MEM: 268,535
  O1: 5336 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,740,498 | MEM: 121,035
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 64982 bytes
  O1: 9334 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 88170 bytes
  O1: 19876 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 55,098 bytes (+18,918 bytes, +52.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 12,206,830 → 44,793,759 (+32,586,929, +267.0%) | MEM 70,926 → 243,474 (+172,548, +243.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,518 bytes (-1,276 bytes, -26.6%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,398,830 → 19,769,759 (+13,370,929, +209.0%) | MEM 34,626 → 87,074 (+52,448, +151.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,273,436 → 19,730,516 (+13,457,080, +214.5%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 360 → 1,328 bytes (+968 bytes, +268.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 3,825,436 → 17,922,516 (+14,097,080, +368.5%) | MEM 18,662 → 75,542 (+56,880, +304.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 112,778 → 152,256 bytes (+39,478 bytes, +35.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,604 → 47,634 bytes (+8,030 bytes, +20.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,316 bytes (+8,208 bytes, +21.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 16,440 → 18,672 bytes (+2,232 bytes, +13.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 121,448 bytes (+80,610 bytes, +197.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 25,978 bytes (+17,102 bytes, +192.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,340 → 4,834 bytes (+2,494 bytes, +106.6%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 57,570 bytes (+38,036 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 15,103,260 → 52,340,498 (+37,237,238, +246.6%) | MEM 80,431 → 268,535 (+188,104, +233.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,336 bytes (+3,684 bytes, +223.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 9,087,260 → 28,740,498 (+19,653,238, +216.3%) | MEM 42,831 → 121,035 (+78,204, +182.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 8,961,866 → 28,662,012 (+19,700,146, +219.8%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 454 → 1,656 bytes (+1,202 bytes, +264.8%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 6,913,866 → 26,214,012 (+19,300,146, +279.2%) | MEM 29,367 → 105,271 (+75,904, +258.5%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 64,982 bytes (+36,404 bytes, +127.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,334 bytes (-188 bytes, -2.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,040 → 3,858 bytes (-182 bytes, -4.5%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 88,170 bytes (+56,206 bytes, +175.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 19,876 bytes (+8,684 bytes, +77.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,020 → 7,194 bytes (+2,174 bytes, +43.3%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +350,788 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 55098 bytes
    Evaluating test case: valid_sum
      CPU: 44,793,759 | MEM: 243,474
  O1: 3518 bytes
    Evaluating test case: valid_sum
      CPU: 19,769,759 | MEM: 87,074
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 152256 bytes
  O1: 47634 bytes
  O2: 47316 bytes
  O3: 18672 bytes
Measuring marketplace...
  O0: 121448 bytes
  O1: 25978 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 57570 bytes
    Evaluating test case: valid_withdrawal
      CPU: 52,340,498 | MEM: 268,535
  O1: 5336 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,740,498 | MEM: 121,035
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 64982 bytes
  O1: 9334 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 88170 bytes
  O1: 19876 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 55,098 bytes (+18,918 bytes, +52.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 12,206,830 → 44,793,759 (+32,586,929, +267.0%) | MEM 70,926 → 243,474 (+172,548, +243.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,518 bytes (-1,276 bytes, -26.6%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,398,830 → 19,769,759 (+13,370,929, +209.0%) | MEM 34,626 → 87,074 (+52,448, +151.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,273,436 → 19,730,516 (+13,457,080, +214.5%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 360 → 1,328 bytes (+968 bytes, +268.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 3,825,436 → 17,922,516 (+14,097,080, +368.5%) | MEM 18,662 → 75,542 (+56,880, +304.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 112,778 → 152,256 bytes (+39,478 bytes, +35.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,604 → 47,634 bytes (+8,030 bytes, +20.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,316 bytes (+8,208 bytes, +21.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 16,440 → 18,672 bytes (+2,232 bytes, +13.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 121,448 bytes (+80,610 bytes, +197.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 25,978 bytes (+17,102 bytes, +192.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,340 → 4,834 bytes (+2,494 bytes, +106.6%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 57,570 bytes (+38,036 bytes, +194.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 15,103,260 → 52,340,498 (+37,237,238, +246.6%) | MEM 80,431 → 268,535 (+188,104, +233.9%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,336 bytes (+3,684 bytes, +223.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 9,087,260 → 28,740,498 (+19,653,238, +216.3%) | MEM 42,831 → 121,035 (+78,204, +182.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 8,961,866 → 28,662,012 (+19,700,146, +219.8%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 454 → 1,656 bytes (+1,202 bytes, +264.8%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 6,913,866 → 26,214,012 (+19,300,146, +279.2%) | MEM 29,367 → 105,271 (+75,904, +258.5%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 64,982 bytes (+36,404 bytes, +127.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,334 bytes (-188 bytes, -2.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,040 → 3,858 bytes (-182 bytes, -4.5%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 88,170 bytes (+56,206 bytes, +175.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 19,876 bytes (+8,684 bytes, +77.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,020 → 7,194 bytes (+2,174 bytes, +43.3%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +350,788 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@github-actions
Copy link

⚠️ Binary Size Changes Detected

Binary Size Comparison Report
Loading baseline measurements...
Measuring current binary sizes and execution costs...
Measuring assert_sum...
  O0: 54818 bytes
    Evaluating test case: valid_sum
      CPU: 44,361,759 | MEM: 240,774
  O1: 3518 bytes
    Evaluating test case: valid_sum
      CPU: 19,769,759 | MEM: 87,074
  O2: 3516 bytes
    Evaluating test case: valid_sum
      CPU: 19,730,516 | MEM: 86,842
  O3: 1328 bytes
    Evaluating test case: valid_sum
      CPU: 17,922,516 | MEM: 75,542
Measuring liquidity_pool...
  O0: 151976 bytes
  O1: 47634 bytes
  O2: 47316 bytes
  O3: 18672 bytes
Measuring marketplace...
  O0: 121168 bytes
  O1: 25978 bytes
  O2: 25886 bytes
  O3: 4834 bytes
Measuring gift...
  O0: 57290 bytes
    Evaluating test case: valid_withdrawal
      CPU: 51,908,498 | MEM: 265,835
  O1: 5336 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,740,498 | MEM: 121,035
  O2: 5332 bytes
    Evaluating test case: valid_withdrawal
      CPU: 28,662,012 | MEM: 120,571
  O3: 1656 bytes
    Evaluating test case: valid_withdrawal
      CPU: 26,214,012 | MEM: 105,271
Measuring wrapped_token...
  O0: 64702 bytes
  O1: 9334 bytes
  O2: 9062 bytes
  O3: 3858 bytes
Measuring micropayments...
  O0: 87890 bytes
  O1: 19876 bytes
  O2: 19802 bytes
  O3: 7194 bytes

============================================================
BINARY SIZE AND EXECUTION COST COMPARISON REPORT
============================================================

Contract: assert_sum
Description: Simple spending validator with assertion
----------------------------------------
  O0: 36,180 → 54,818 bytes (+18,638 bytes, +51.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_sum': CPU 12,206,830 → 44,361,759 (+32,154,929, +263.4%) | MEM 70,926 → 240,774 (+169,848, +239.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 4,794 → 3,518 bytes (-1,276 bytes, -26.6%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,398,830 → 19,769,759 (+13,370,929, +209.0%) | MEM 34,626 → 87,074 (+52,448, +151.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 4,764 → 3,516 bytes (-1,248 bytes, -26.2%) ↘️ (size reduced)
    Test 'valid_sum': CPU 6,273,436 → 19,730,516 (+13,457,080, +214.5%) | MEM 33,962 → 86,842 (+52,880, +155.7%) ⚠️  SIGNIFICANT CHANGE
  O3: 360 → 1,328 bytes (+968 bytes, +268.9%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_sum': CPU 3,825,436 → 17,922,516 (+14,097,080, +368.5%) | MEM 18,662 → 75,542 (+56,880, +304.8%) ⚠️  SIGNIFICANT CHANGE

Contract: liquidity_pool
Description: Simple DEX pool
----------------------------------------
  O0: 112,778 → 151,976 bytes (+39,198 bytes, +34.8%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 39,604 → 47,634 bytes (+8,030 bytes, +20.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 39,108 → 47,316 bytes (+8,208 bytes, +21.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 16,440 → 18,672 bytes (+2,232 bytes, +13.6%) ⚠️  SIGNIFICANT CHANGE

Contract: marketplace
Description: Marketplace contract with complex data structures
----------------------------------------
  O0: 40,838 → 121,168 bytes (+80,330 bytes, +196.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 8,876 → 25,978 bytes (+17,102 bytes, +192.7%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 8,828 → 25,886 bytes (+17,058 bytes, +193.2%) ⚠️  SIGNIFICANT CHANGE
  O3: 2,340 → 4,834 bytes (+2,494 bytes, +106.6%) ⚠️  SIGNIFICANT CHANGE

Contract: gift
Description: Gift contract with simple logic
----------------------------------------
  O0: 19,534 → 57,290 bytes (+37,756 bytes, +193.3%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 15,103,260 → 51,908,498 (+36,805,238, +243.7%) | MEM 80,431 → 265,835 (+185,404, +230.5%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 1,652 → 5,336 bytes (+3,684 bytes, +223.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
    Test 'valid_withdrawal': CPU 9,087,260 → 28,740,498 (+19,653,238, +216.3%) | MEM 42,831 → 121,035 (+78,204, +182.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 1,648 → 5,332 bytes (+3,684 bytes, +223.5%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 8,961,866 → 28,662,012 (+19,700,146, +219.8%) | MEM 42,167 → 120,571 (+78,404, +185.9%) ⚠️  SIGNIFICANT CHANGE
  O3: 454 → 1,656 bytes (+1,202 bytes, +264.8%) ⚠️  SIGNIFICANT CHANGE
    Test 'valid_withdrawal': CPU 6,913,866 → 26,214,012 (+19,300,146, +279.2%) | MEM 29,367 → 105,271 (+75,904, +258.5%) ⚠️  SIGNIFICANT CHANGE

Contract: wrapped_token
Description: Dual-use contract to generate a wrapped token
----------------------------------------
  O0: 28,578 → 64,702 bytes (+36,124 bytes, +126.4%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 9,522 → 9,334 bytes (-188 bytes, -2.0%) ↘️ (size reduced)
  O2: 9,232 → 9,062 bytes (-170 bytes, -1.8%) ↘️ (size reduced)
  O3: 4,040 → 3,858 bytes (-182 bytes, -4.5%) ↘️ (size reduced)

Contract: micropayments
Description: Channel for fee-less micropayments
----------------------------------------
  O0: 31,964 → 87,890 bytes (+55,926 bytes, +175.0%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O1: 11,192 → 19,876 bytes (+8,684 bytes, +77.6%) ⚠️  SIGNIFICANT CHANGE (ignored)
  O2: 11,122 → 19,802 bytes (+8,680 bytes, +78.0%) ⚠️  SIGNIFICANT CHANGE
  O3: 5,020 → 7,194 bytes (+2,174 bytes, +43.3%) ⚠️  SIGNIFICANT CHANGE

Total size change compared to previous release: +349,108 bytes

⚠️  SIGNIFICANT CHANGES DETECTED
Please review the changes and consider optimization if sizes or costs increased significantly.
============================================================

Please review the binary size changes. Significant increases may impact contract deployment costs and execution limits.


This report compares the binary sizes of compiled contracts against the baseline from the latest release.

@nielstron nielstron merged commit e4e7c82 into dev Oct 14, 2025
18 of 19 checks passed
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.

2 participants