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
No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions