zksync-era icon indicating copy to clipboard operation
zksync-era copied to clipboard

Zksync era bug

Open iandareen opened this issue 8 months ago • 0 comments

The function addPKCommittee in my smart contract encounters an error when attempting to add a point on the BabyJub curve on ZKSync Era Sepolia and inmemory local environments. The function works as expected on Layer 1, Layer 2 Arbitrum Sepolia testnet environments.

🔄 Reproduction Steps Deploy contract DKG to ZKSync Era inmemory testnet environment. Call the addPKCommittee function with a valid BabyJubPoint[] argument. Observe the transaction failing with a revert error. 🤔 Expected Behavior The addPKCommittee function should successfully add the point to the PK_COMMITTEE variable on the BabyJub curve and the transaction should complete without reverting.

😯 Current Behavior The transaction reverts with an error message indicating "require(false) occurred". There seems to be an error with the precompile contract 0x05 or mstore or mload in the expmod function of the CurveBabyJubJub library.

🖥️ Environment Operating System: ubuntu 22.04.3 Solidity Version: 0.8.17 Smart Contract Name: DKG

📋 Additional Context The provided BabyJub library source code seems to be functional on Layer 1 and Arbitrum Sepolia. Link to source contract: https://github.com/duongnd-183902/DKG-zkSync.git

📎 Log Output Error: execution reverted (no data present; likely require(false) occurred (action="estimateGas", data="0x...", reason="require(false)", transaction={...}, invocation=null, revert=null, code=CALL_EXCEPTION, version=6.11.1)

iandareen avatar Jun 06 '24 15:06 iandareen