Skip to content

Optimize fails on many mainnet contracts #2290

@leighmcculloch

Description

@leighmcculloch

What version are you using?

23.1.4

What did you do?

  1. Download wasm 02e9f32323236b7288dc2b3d4652db678dcd876301fb3852d9cfb7cfaf54e0d2

    https://github.com/leighmcculloch/stellar-contract-wasms/blob/main/contracts/02e9f32323236b7288dc2b3d4652db678dcd876301fb3852d9cfb7cfaf54e0d2.wasm

  2. Run optimize:

    stellar contract optimize \
        --wasm 02e9f32323236b7288dc2b3d4652db678dcd876301fb3852d9cfb7cfaf54e0d2.wasm
        --wasm-out 02e9f32323236b7288dc2b3d4652db678dcd876301fb3852d9cfb7cfaf54e0d2.optimized.wasm
    

What did you expect to see?

Success and an optimized wasm file.

What did you see instead?

[wasm-validator error in function 36] unexpected false: Bulk memory operations require bulk memory [--enable-bulk-memory], on
(memory.fill
 (i32.add
  (local.get $2)
  (i32.const 64)
 )
 (i32.const 0)
 (i32.const 40)
)
[wasm-validator error in function 36] unexpected false: Bulk memory operations require bulk memory [--enable-bulk-memory], on
(memory.copy
 (local.get $2)
 (i32.add
  (local.get $2)
  (i32.const 64)
 )
 (i32.const 40)
)
[wasm-validator error in function 36] unexpected false: Bulk memory operations require bulk memory [--enable-bulk-memory], on
(memory.fill
 (i32.add
  (local.get $2)
  (i32.const 64)
 )
 (i32.const 0)
 (i32.const 44)
)
[wasm-validator error in function 36] unexpected false: Bulk memory operations require bulk memory [--enable-bulk-memory], on
(memory.copy
 (local.get $2)
 (i32.add
  (local.get $2)
  (i32.const 64)
 )
 (i32.const 44)
)
[wasm-validator error in function 36] unexpected false: Bulk memory operations require bulk memory [--enable-bulk-memory], on
(memory.copy
 (local.get $2)
 (i32.add
  (local.get $2)
  (i32.const 64)
 )
 (i32.const 64)
)
❌ error: optimization error: Failed to validate wasm: error validating input

This error occurs on quite a number of mainnet contracts.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions