Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking changes list for Buildnet update (DEVN.28.5 Release) #4808

Open
Leo-Besancon opened this issue Jan 10, 2025 · 0 comments
Open

Breaking changes list for Buildnet update (DEVN.28.5 Release) #4808

Leo-Besancon opened this issue Jan 10, 2025 · 0 comments

Comments

@Leo-Besancon
Copy link
Collaborator

The release of DEVN.28.5 will bring several breaking changes that may impact builders (also the impact should be minimal in most cases), listed below:

  • Smart contracts now have a limit of 25 nested calls (no limit were applied previously)
  • Smart contracts can only emit 25 messages (per operation) and the message size limit is set to 512 bytes
  • The following smart contract methods now have a gas cost:
    • assembly_script_console_log: 171,
    • assembly_script_console_info: 171,
    • assembly_script_console_debug: 171,
    • assembly_script_console_warn: 171,
    • assembly_script_console_error: 171,
    • assembly_script_trace: 171
  • Event created now always have a correct operation id
  • Smart contracts wasm are now checked before execution in order to prevent Wasm bomb with limits:
    • Maximum number of function defined in a smart contract: 512
    • Maximum number of arguments to a function: 64
    • Maximum number of value a function can return: 8
    • Maximum signature length for a function of a smart contract module: 64 + 8
    • Maximum length for the name of a function defined in a smart contract: 256
    • Maximum length for the name of a smart contract: 256
    • Maximum number of custom section data: 1
    • Maximum length for the custom section data: 1000000
    • Maximum number of functions a module can import: 256
    • Maximum number of memory a module can import: 1
    • Maximum number of elements a module can import: 256 + 1
    • Maximum number of table initializer in a smart contract: 512
    • Maximum number of passive element in a smart contract: 512
    • Maximum number of passive data in a smart contract: 512
    • Maximum number of global initializer in a smart contract: 512
    • Maximum number of table in a smart contract: 16
    • Maximum number of memories in a smart contract: 1
    • Maximum number of exports for a smart contract module (function and globals): 512 + 512
  • Only accept EVM Signature with v == 27 or == 28 and s is high order
  • Async message expiration should be properly handled (and consistent with operation expiration)
  • Block producer are now properly incentivized to include block endorsements
  • Wasmv1.get_address_category_wasmv1 now properly handle Massa address
  • Cannot create async message with invalid validity slot anymore
  • Misc
    • Can now transfer coins to Smart contract addresses
    • Several fixes regarding to async message handling
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

No branches or pull requests

1 participant