Skip to content

Release/0.4.x#8

Open
MarvelFisher wants to merge 136 commits intochengwenxi:mainfrom
morph-l2:release/0.4.x
Open

Release/0.4.x#8
MarvelFisher wants to merge 136 commits intochengwenxi:mainfrom
morph-l2:release/0.4.x

Conversation

@MarvelFisher
Copy link
Copy Markdown
Collaborator

@MarvelFisher MarvelFisher commented Feb 12, 2025

Summary by CodeRabbit

  • New Features

    • L2 Token Registry: register/manage tokens, query prices/amounts, allow-list, and deploy/test support; new Hoodi network entries and scripts.
    • Rollup: permissionless batch submission with proof, configurable rollup delay, and access to committed state roots.
    • L1 queue: per-message enqueue timestamps and new read-only timestamp APIs.
  • Bug Fixes & Improvements

    • Simplified batch flow by removing skipped-message bitmap; ABI/bytecode and tests updated.
  • Chores

    • Bumped Go to 1.24, refreshed deps, CI/workflow and Docker updates, Makefile/devnet tweaks, README dev docs.

SegueII and others added 30 commits October 18, 2024 21:18
Co-authored-by: GingerLiu123 <gingerliu123@gmail.com>
Co-authored-by: Segue <huoda.china@163.com>
Co-authored-by: GingerLiu123 <gingerliu123@gmail.com>
Update mainnet deploy configs
Fix start height of derivation
update go-ethereum dependency
Lido gateway and some optimizations
- Fixed blob fee calculation logic in Blob transaction type
- Added judgment for weiAmt being nil to avoid potential null pointer exceptions
Fix audit issues and clean up keys
Co-authored-by: Agnar Song <agnar.song@morphl2.io>
Co-authored-by: Agnar Song <agnar.song@morphl2.io>
Co-authored-by: kukoomomo <kukoomomo@gmail.com>
Co-authored-by: Agnar Song <agnar.song@morphl2.io>
Co-authored-by: songyaoshun <songyaoshun@gmail.com>
Co-authored-by: vincent <vincent.ch.cn@gmail.com>
Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com>
Co-authored-by: WorldDogs <33647825+WorldDogs@users.noreply.github.com>
Co-authored-by: vincent <vincent.ch.cn@gmail.com>
Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com>
Co-authored-by: curryxbo <curryx1992@gmail.com>
Co-authored-by: WorldDogs <33647825+WorldDogs@users.noreply.github.com>
Co-authored-by: corey <curryx1992@gmail.com>
Co-authored-by: WorldDogs <noreply.io>
anylots and others added 4 commits December 22, 2025 16:42
make feeToken slot cold in revm (#840)
Co-authored-by: corey <corey.zhang@bitget.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
MakefileEks.mk (2)

107-118: LGTM! The secret-manager-wrapper issue is resolved.

The hoodi token-price-oracle build target now correctly downloads and extracts the secret-manager-wrapper from S3 (lines 112-113), matching the pattern used by other targets. The start target properly invokes the wrapper.


120-128: Missing secret-manager-wrapper download for mainnet token-price-oracle.

The build target build-bk-prod-morph-prod-mainnet-to-morph-token-price-oracle does not download or extract the secret-manager-wrapper.tar.gz from S3, but the corresponding start target at line 127 expects /data/secret-manager-wrapper to exist. Compare with the mainnet gas-price-oracle target at lines 10-15, mainnet staking-oracle at lines 75-80, or the qanet/hoodi token-price-oracle targets at lines 101-102 and 112-113.

🔎 Proposed fix
 build-bk-prod-morph-prod-mainnet-to-morph-token-price-oracle:
 	if [ ! -d dist ]; then mkdir -p dist; fi
 	env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o token-price-oracle/token-price-oracle ./token-price-oracle/cmd
 	cp token-price-oracle/token-price-oracle dist/
+	aws s3 cp s3://morph-0582-morph-technical-department-mainnet-data/morph-setup/secret-manager-wrapper.tar.gz ./
+	tar -xvzf secret-manager-wrapper.tar.gz
🧹 Nitpick comments (1)
MakefileEks.mk (1)

96-106: LGTM with minor formatting note.

The qanet token-price-oracle build and start targets are correctly structured. The build target downloads and extracts the secret-manager-wrapper, and the start target invokes it as expected.

Minor formatting inconsistency: Line 105 has an extra leading space before /data/secret-manager-wrapper (compare with other start targets like line 32, 46, 59, etc.).

🔎 Optional formatting fix
 start-bk-test-morph-test-qanet-to-morph-token-price-oracle:
-	 /data/secret-manager-wrapper  ./token-price-oracle
+	/data/secret-manager-wrapper ./token-price-oracle
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9392ad9 and 6413a72.

⛔ Files ignored due to path filters (1)
  • prover/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • MakefileEks.mk
  • contracts/src/deploy-config/holesky.ts
  • contracts/src/deploy-config/hoodi.ts
  • contracts/src/deploy-config/l1.ts
  • contracts/src/deploy-config/qanetl1.ts
  • contracts/src/deploy-config/sepolia.ts
  • contracts/src/deploy-config/testnetl1.ts
  • prover/bin/client/elf/riscv32im-succinct-zkvm-elf
🔇 Additional comments (1)
MakefileEks.mk (1)

143-156: LGTM!

The hoodi gas-price-oracle build and start targets are correctly structured, following the established pattern of downloading and extracting the secret-manager-wrapper in the build target and invoking it in the start target.

curryxbo and others added 3 commits December 29, 2025 18:36
Co-authored-by: corey <corey.zhang@bitget.com>
Co-authored-by: corey <corey.zhang@bitget.com>
Nonce checking and external sign
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Fix all issues with AI Agents 🤖
In @MakefileEks.mk:
- Around line 104-105: The Makefile target
start-bk-test-morph-test-qanet-to-morph-token-price-oracle has an extra leading
space before the recipe command (/data/secret-manager-wrapper) which breaks
consistency with other start targets; remove the stray space so the command
begins immediately after the required tab (aligning with other targets like the
ones around lines 94, 117, 129) ensuring the recipe line starts with a single
tab then "/data/secret-manager-wrapper  ./token-price-oracle".
🧹 Nitpick comments (1)
MakefileEks.mk (1)

120-130: LGTM! Secret-manager-wrapper issue resolved.

The mainnet token-price-oracle targets now correctly download and extract the secret-manager-wrapper (lines 124-125), addressing the previously flagged issue.

For consistency with other sections (lines 96, 107, 145), consider adding a comment header before line 120, e.g., # token-price-oracle and # mainnet.

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6413a72 and ec6f0b2.

📒 Files selected for processing (1)
  • MakefileEks.mk
🔇 Additional comments (2)
MakefileEks.mk (2)

107-118: LGTM! Secret-manager-wrapper issue resolved.

The hoodi testnet token-price-oracle targets now correctly download and extract the secret-manager-wrapper (lines 112-113), addressing the previously flagged issue. The implementation follows the established pattern consistently.


145-157: LGTM! Properly structured hoodi gas-price-oracle targets.

The hoodi gas-price-oracle targets are correctly implemented with proper secret-manager-wrapper handling and follow the established pattern for gas-price-oracle deployments.

Comment thread MakefileEks.mk
Comment on lines +104 to +105
start-bk-test-morph-test-qanet-to-morph-token-price-oracle:
/data/secret-manager-wrapper ./token-price-oracle
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix inconsistent spacing in start command.

The start target has an extra leading space before /data/secret-manager-wrapper, which is inconsistent with other start targets in the file (e.g., lines 94, 117, 129).

🔎 Proposed fix
 start-bk-test-morph-test-qanet-to-morph-token-price-oracle:
-	 /data/secret-manager-wrapper  ./token-price-oracle
+	/data/secret-manager-wrapper  ./token-price-oracle
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
start-bk-test-morph-test-qanet-to-morph-token-price-oracle:
/data/secret-manager-wrapper ./token-price-oracle
start-bk-test-morph-test-qanet-to-morph-token-price-oracle:
/data/secret-manager-wrapper ./token-price-oracle
🤖 Prompt for AI Agents
In @MakefileEks.mk around lines 104-105, The Makefile target
start-bk-test-morph-test-qanet-to-morph-token-price-oracle has an extra leading
space before the recipe command (/data/secret-manager-wrapper) which breaks
consistency with other start targets; remove the stray space so the command
begins immediately after the required tab (aligning with other targets like the
ones around lines 94, 117, 129) ensuring the recipe line starts with a single
tab then "/data/secret-manager-wrapper  ./token-price-oracle".

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex`:
- Line 1: The deployed hex artifact and the Go binding constant are out of sync:
update the Go constant L1MessageQueueWithGasPriceOracleDeployedBin to exactly
match the hex in bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex (or
re-run your binding generation tool such as abigen to regenerate the bindings),
replacing the current 11862-character value with the correct 11134-character
bytecode string and verify the lengths match so deployments use the correct
bytecode.
♻️ Duplicate comments (2)
Makefile (1)

74-74: Clarify why oracle linting remains disabled.

The oracle lint step is still commented out. If intentional, add an inline comment explaining the reason (e.g., known issues, WIP) or reference a tracking issue. If unintended, uncomment the line.

contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol (1)

261-268: Returning block.timestamp can hide backlog or legacy timestamps.
When the queue is empty (or the first pending message predates this upgrade), returning “now” misrepresents the enqueue time and can mask delays. Prefer a sentinel (e.g., 0) or a revert, and document the behavior so monitors can interpret it correctly.

🐛 Suggested fix (use a sentinel for “none/unknown”)
 function getFirstUnfinalizedMessageEnqueueTime() external view returns (uint256 timestamp) {
-        if (pendingQueueIndex < messageQueue.length && messageEnqueueTime[pendingQueueIndex] != 0) {
-            // has pending messages and return enqueue time
-                return messageEnqueueTime[pendingQueueIndex];
-        }
-        // no pending messages, return current timestamp
-        return block.timestamp;
+        if (pendingQueueIndex < messageQueue.length) {
+            // 0 means "unknown/legacy" for pre-upgrade entries
+            return messageEnqueueTime[pendingQueueIndex];
+        }
+        // no pending messages
+        return 0;
 }
🧹 Nitpick comments (3)
Makefile (1)

43-49: Consider adding error handling for submodule operations.

The conditional logic is appropriate, but git fetch --tags and git checkout can fail silently due to network issues or missing tags. Consider adding set -e or explicit error checks to surface failures early.

♻️ Optional: Add error handling
 submodules:
 	git submodule update --init
 	`@if` [ -d "go-ethereum" ]; then \
 		echo "Updating go-ethereum submodule to tag $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG)..."; \
 		cd go-ethereum && \
-		git fetch --tags && \
-		git checkout $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG) && \
+		git fetch --tags || { echo "Failed to fetch tags"; exit 1; } && \
+		git checkout $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG) || { echo "Failed to checkout $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG)"; exit 1; } && \
 		cd ..; \
 	fi
contracts/contracts/l1/rollup/IL1MessageQueue.sol (1)

60-63: Clarify empty-queue semantics for the enqueue-time getter.
The interface doesn’t specify what to return when the queue is empty or timestamps are unavailable (legacy messages). Consider documenting a sentinel (e.g., 0) so callers can distinguish “none” from a real enqueue time.

contracts/contracts/l1/rollup/Rollup.sol (1)

103-106: Ensure rollupDelayPeriod is initialized during upgrades.

rollupDelayPeriod defaults to 0 until initialize3 runs, but it is already consumed by batch delay gating. Please confirm upgrade/migration flows always call initialize3 with a non‑zero value and that this is recorded in deployment config/runbooks.

Also applies to: 190-196, 475-482

@@ -1 +1 @@
0x608060405234801561000f575f80fd5b5060043610610184575f3560e01c8063a85006ca116100dd578063d99bc80e11610088578063e3176bd511610063578063e3176bd51461037a578063f2fde38b14610383578063fd0ad31e14610396575f80fd5b8063d99bc80e1461033a578063da35a26f1461034d578063e172d3a114610360575f80fd5b8063bdc6f0a0116100b8578063bdc6f0a0146102ed578063c276067714610300578063d5ad4a9714610327575f80fd5b8063a85006ca146102b1578063ae453cd5146102ba578063bb7862ca146102cd575f80fd5b80635f9cd92e1161013d5780638da5cb5b116101185780638da5cb5b14610259578063927ede2d146102775780639b1597821461029e575f80fd5b80635f9cd92e146101f2578063715018a6146102055780638770d7071461020d575f80fd5b80633e4cbbe61161016d5780633e4cbbe6146101c35780635ad9945a146101d65780635e45da23146101e9575f80fd5b806329aa604b146101885780633c7f5283146101ae575b5f80fd5b61019b610196366004611173565b61039e565b6040519081526020015b60405180910390f35b6101c16101bc36600461118a565b6103bd565b005b61019b6101d13660046111cd565b61052e565b61019b6101e436600461123a565b6105e2565b61019b60685481565b6101c16102003660046112b6565b6107d2565b6101c1610867565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a5565b60335473ffffffffffffffffffffffffffffffffffffffff16610234565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c16102ac3660046112cf565b61087a565b61019b60675481565b61019b6102c8366004611173565b61095c565b606b546102349073ffffffffffffffffffffffffffffffffffffffff1681565b6101c16102fb366004611325565b6109d2565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c1610335366004611173565b610b03565b6101c1610348366004611173565b610b49565b6101c161035b366004611398565b610b8f565b61019b61036e3660046113c2565b60100261520801919050565b61019b60655481565b6101c16103913660046112b6565b610d48565b60665461019b565b606681815481106103ad575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104475760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104995760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d657373616765730000000000000000000000604482015260640161043e565b81606754146104ea5760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d61746368000000000000000000000000604482015260640161043e565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa15801561059c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c09190611401565b156105cc57505f6105dc565b6065546105d99083611427565b90505b92915050565b5f607e8161068c565b5f816105f957506001919050565b5b811561060f5760089190911c906001016105fa565b919050565b80608083106001811461064c5761062a846105eb565b60808101835360018301925084816020036008021b835280830192505061066d565b848415166001811461066057848353610665565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061069f60018c83610614565b90506106ad60018983610614565b90506106b98982610675565b90506106c760018b83610614565b9050600186146001811461072f576038871060018114610714576106ea886105eb565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610729565b87608001835360018301925087898437918701915b50610740565b61073d5f89355f1a84610614565b91505b5061074b8c82610675565b90508181035f80603883106001811461077e57610767846105eb565b60f78101600882021b851793506001019150610789565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b6107da610de5565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61086f610de5565b6108785f610e4c565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109255760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161043e565b610930838383610ec2565b337311110000000000000000000000000000000011110161095581865f878787610fbe565b5050505050565b6066545f9082106109af5760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e6765000000000000604482015260640161043e565b606682815481106109c2576109c2611463565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a7d5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f6174657761790000000000000000000000000000000000000000000000000000606482015260840161043e565b73ffffffffffffffffffffffffffffffffffffffff86163b15610ae25760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f41000000000000000000000000000000000000000000000000604482015260640161043e565b610aed838383610ec2565b610afb868686868686610fbe565b505050505050565b610b0b610de5565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c59101610522565b610b51610de5565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610522565b5f54610100900460ff1615808015610bad57505f54600160ff909116105b80610bc65750303b158015610bc657505f5460ff166001145b610c385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161043e565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610c94575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610c9c61106f565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610d43575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610d50610de5565b73ffffffffffffffffffffffffffffffffffffffff8116610dd95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161043e565b610de281610e4c565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606854831115610f3a5760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d6974000000000000000000000000000000000000000000000000000000606482015260840161043e565b601081026152080180841015610fb85760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e7369632067617300000000000000000000000000606482015260840161043e565b50505050565b6066545f610fd18883888a8989896105e2565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e9061105d908a9087908b908b908b90611490565b60405180910390a35050505050505050565b5f54610100900460ff166110eb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161043e565b6108785f54610100900460ff1661116a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161043e565b61087833610e4c565b5f60208284031215611183575f80fd5b5035919050565b5f806040838503121561119b575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461060f575f80fd5b5f80604083850312156111de575f80fd5b6111e7836111aa565b946020939093013593505050565b5f8083601f840112611205575f80fd5b50813567ffffffffffffffff81111561121c575f80fd5b602083019150836020828501011115611233575f80fd5b9250929050565b5f805f805f805f60c0888a031215611250575f80fd5b611259886111aa565b96506020880135955060408801359450611275606089016111aa565b93506080880135925060a088013567ffffffffffffffff811115611297575f80fd5b6112a38a828b016111f5565b989b979a50959850939692959293505050565b5f602082840312156112c6575f80fd5b6105d9826111aa565b5f805f80606085870312156112e2575f80fd5b6112eb856111aa565b935060208501359250604085013567ffffffffffffffff81111561130d575f80fd5b611319878288016111f5565b95989497509550505050565b5f805f805f8060a0878903121561133a575f80fd5b611343876111aa565b9550611351602088016111aa565b94506040870135935060608701359250608087013567ffffffffffffffff81111561137a575f80fd5b61138689828a016111f5565b979a9699509497509295939492505050565b5f80604083850312156113a9575f80fd5b823591506113b9602084016111aa565b90509250929050565b5f80602083850312156113d3575f80fd5b823567ffffffffffffffff8111156113e9575f80fd5b6113f5858286016111f5565b90969095509350505050565b5f60208284031215611411575f80fd5b81518015158114611420575f80fd5b9392505050565b80820281158282048414176105dc577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a
0x608060405234801561000f575f80fd5b50600436106101a5575f3560e01c8063ae453cd5116100e8578063d99bc80e11610093578063e3176bd51161006e578063e3176bd5146103c2578063f2fde38b146103cb578063f7ca0c51146103de578063fd0ad31e146103fd575f80fd5b8063d99bc80e14610382578063da35a26f14610395578063e172d3a1146103a8575f80fd5b8063bdc6f0a0116100c3578063bdc6f0a014610335578063c276067714610348578063d5ad4a971461036f575f80fd5b8063ae453cd5146102fa578063b59b1a781461030d578063bb7862ca14610315575f80fd5b8063715018a6116101535780638dc73d871161012e5780638dc73d8714610298578063927ede2d146102b75780639b159782146102de578063a85006ca146102f1575f80fd5b8063715018a6146102265780638770d7071461022e5780638da5cb5b1461027a575f80fd5b80635ad9945a116101835780635ad9945a146101f75780635e45da231461020a5780635f9cd92e14610213575f80fd5b806329aa604b146101a95780633c7f5283146101cf5780633e4cbbe6146101e4575b5f80fd5b6101bc6101b7366004611229565b610405565b6040519081526020015b60405180910390f35b6101e26101dd366004611240565b610424565b005b6101bc6101f2366004611283565b610595565b6101bc6102053660046112f0565b610649565b6101bc60685481565b6101e261022136600461136c565b610839565b6101e26108ce565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c6565b60335473ffffffffffffffffffffffffffffffffffffffff16610255565b6101bc6102a6366004611229565b606c6020525f908152604090205481565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b6101e26102ec366004611385565b6108e1565b6101bc60675481565b6101bc610308366004611229565b6109c3565b6101bc610a39565b606b546102559073ffffffffffffffffffffffffffffffffffffffff1681565b6101e26103433660046113db565b610a7c565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b6101e261037d366004611229565b610bad565b6101e2610390366004611229565b610bf3565b6101e26103a336600461144e565b610c39565b6101bc6103b6366004611478565b60100261520801919050565b6101bc60655481565b6101e26103d936600461136c565b610df2565b6101bc6103ec366004611229565b5f908152606c602052604090205490565b6066546101bc565b60668181548110610414575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104ae5760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156105005760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d65737361676573000000000000000000000060448201526064016104a5565b81606754146105515760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d6174636800000000000000000000000060448201526064016104a5565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa158015610603573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062791906114b7565b1561063357505f610643565b60655461064090836114dd565b90505b92915050565b5f607e816106f3565b5f8161066057506001919050565b5b81156106765760089190911c90600101610661565b919050565b8060808310600181146106b35761069184610652565b60808101835360018301925084816020036008021b83528083019250506106d4565b84841516600181146106c7578483536106cc565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061070660018c8361067b565b90506107146001898361067b565b905061072089826106dc565b905061072e60018b8361067b565b9050600186146001811461079657603887106001811461077b5761075188610652565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610790565b87608001835360018301925087898437918701915b506107a7565b6107a45f89355f1a8461067b565b91505b506107b28c826106dc565b90508181035f8060388310600181146107e5576107ce84610652565b60f78101600882021b8517935060010191506107f0565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b610841610e8f565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108d6610e8f565b6108df5f610ef6565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461098c5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016104a5565b610997838383610f6c565b33731111000000000000000000000000000000001111016109bc81865f878787611068565b5050505050565b6066545f908210610a165760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e676500000000000060448201526064016104a5565b60668281548110610a2957610a29611519565b905f5260205f2001549050919050565b6066546067545f91118015610a5d57506067545f908152606c602052604090205415155b15610a7757506067545f908152606c602052604090205490565b504290565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610b275760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f617465776179000000000000000000000000000000000000000000000000000060648201526084016104a5565b73ffffffffffffffffffffffffffffffffffffffff86163b15610b8c5760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f4100000000000000000000000000000000000000000000000060448201526064016104a5565b610b97838383610f6c565b610ba5868686868686611068565b505050505050565b610bb5610e8f565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c59101610589565b610bfb610e8f565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610589565b5f54610100900460ff1615808015610c5757505f54600160ff909116105b80610c705750303b158015610c7057505f5460ff166001145b610ce25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a5565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d3e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d46611125565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610ded575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610dfa610e8f565b73ffffffffffffffffffffffffffffffffffffffff8116610e835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a5565b610e8c81610ef6565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606854831115610fe45760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d697400000000000000000000000000000000000000000000000000000060648201526084016104a5565b6010810261520801808410156110625760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e736963206761730000000000000000000000000060648201526084016104a5565b50505050565b6066545f61107b8883888a898989610649565b60668054600181019091557f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354018190555f838152606c6020526040908190204290555190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611113908a9087908b908b908b90611546565b60405180910390a35050505050505050565b5f54610100900460ff166111a15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a5565b6108df5f54610100900460ff166112205760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a5565b6108df33610ef6565b5f60208284031215611239575f80fd5b5035919050565b5f8060408385031215611251575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff81168114610676575f80fd5b5f8060408385031215611294575f80fd5b61129d83611260565b946020939093013593505050565b5f8083601f8401126112bb575f80fd5b50813567ffffffffffffffff8111156112d2575f80fd5b6020830191508360208285010111156112e9575f80fd5b9250929050565b5f805f805f805f60c0888a031215611306575f80fd5b61130f88611260565b9650602088013595506040880135945061132b60608901611260565b93506080880135925060a088013567ffffffffffffffff81111561134d575f80fd5b6113598a828b016112ab565b989b979a50959850939692959293505050565b5f6020828403121561137c575f80fd5b61064082611260565b5f805f8060608587031215611398575f80fd5b6113a185611260565b935060208501359250604085013567ffffffffffffffff8111156113c3575f80fd5b6113cf878288016112ab565b95989497509550505050565b5f805f805f8060a087890312156113f0575f80fd5b6113f987611260565b955061140760208801611260565b94506040870135935060608701359250608087013567ffffffffffffffff811115611430575f80fd5b61143c89828a016112ab565b979a9699509497509295939492505050565b5f806040838503121561145f575f80fd5b8235915061146f60208401611260565b90509250929050565b5f8060208385031215611489575f80fd5b823567ffffffffffffffff81111561149f575f80fd5b6114ab858286016112ab565b90969095509350505050565b5f602082840312156114c7575f80fd5b815180151581146114d6575f80fd5b9392505050565b8082028115828204841417610643577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, let's find the relevant Go binding files
find . -name "*l1messagequeuewithgaspriceoracle*" -type f 2>/dev/null | head -20

Repository: chengwenxi/morph

Length of output: 237


🏁 Script executed:

# Also check the bindings directory structure
ls -la bindings/ 2>/dev/null | head -20

Repository: chengwenxi/morph

Length of output: 1001


🏁 Script executed:

# Look for Go files with the constant
rg "L1MessageQueueWithGasPriceOracleDeployedBin" --type go -l 2>/dev/null

Repository: chengwenxi/morph

Length of output: 118


🏁 Script executed:

# Now let's verify the hex artifact matches the Go constant
python - <<'PY'
import re
import pathlib
import sys

hex_file = pathlib.Path("bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex")
go_file = pathlib.Path("bindings/bindings/l1messagequeuewithgaspriceoracle_more.go")

# Read hex artifact
hex_data = hex_file.read_text().strip()
print(f"Hex artifact length: {len(hex_data)}")
print(f"Hex artifact (first 100 chars): {hex_data[:100]}")

# Read Go source
go_src = go_file.read_text()

# Find the constant
m = re.search(r'L1MessageQueueWithGasPriceOracleDeployedBin = "([^"]+)"', go_src)
if not m:
    print("ERROR: Constant L1MessageQueueWithGasPriceOracleDeployedBin not found in Go file")
    sys.exit(1)

go_constant = m.group(1)
print(f"Go constant length: {len(go_constant)}")
print(f"Go constant (first 100 chars): {go_constant[:100]}")

# Compare
if hex_data == go_constant:
    print("\n✓ MATCH: Hex artifact matches Go constant")
    sys.exit(0)
else:
    print("\n✗ MISMATCH: Hex artifact does NOT match Go constant")
    # Show where they differ
    for i, (c1, c2) in enumerate(zip(hex_data, go_constant)):
        if c1 != c2:
            print(f"First difference at position {i}: hex='{c1}' vs go='{c2}'")
            break
    if len(hex_data) != len(go_constant):
        print(f"Length mismatch: hex={len(hex_data)}, go={len(go_constant)}")
    sys.exit(1)
PY

Repository: chengwenxi/morph

Length of output: 146


🏁 Script executed:

# Let's try a simpler approach - read file sizes first
wc -c bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex bindings/bindings/l1messagequeuewithgaspriceoracle_more.go

Repository: chengwenxi/morph

Length of output: 201


🏁 Script executed:

# Get just the first and last parts of each to spot check
echo "=== HEX FILE ===" 
head -c 200 bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex
echo ""
echo "=== GO FILE (searching for constant) ==="
grep -n "L1MessageQueueWithGasPriceOracleDeployedBin" bindings/bindings/l1messagequeuewithgaspriceoracle_more.go | head -1

Repository: chengwenxi/morph

Length of output: 12236


🏁 Script executed:

# Let's extract and compare the actual hex content vs the Go constant more carefully
# First, read the hex file
HEX_CONTENT=$(cat bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex)
echo "Hex file length: ${`#HEX_CONTENT`}"

# Extract just the constant value from the Go file (without the "0x" prefix for comparison)
GO_CONSTANT=$(sed -n 's/.*L1MessageQueueWithGasPriceOracleDeployedBin = "\(.*\)"/\1/p' bindings/bindings/l1messagequeuewithgaspriceoracle_more.go)
echo "Go constant length: ${`#GO_CONSTANT`}"

# Compare
if [ "$HEX_CONTENT" = "$GO_CONSTANT" ]; then
    echo "✓ MATCH"
else
    echo "✗ MISMATCH"
    echo ""
    echo "First 150 chars of hex file:"
    echo "${HEX_CONTENT:0:150}"
    echo ""
    echo "First 150 chars of Go constant:"
    echo "${GO_CONSTANT:0:150}"
    echo ""
    echo "Last 100 chars of hex file:"
    echo "${HEX_CONTENT: -100}"
    echo ""
    echo "Last 100 chars of Go constant:"
    echo "${GO_CONSTANT: -100}"
fi

Repository: chengwenxi/morph

Length of output: 747


🏁 Script executed:

# Let's find where they diverge
HEX_CONTENT=$(cat bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex)
GO_CONSTANT=$(sed -n 's/.*L1MessageQueueWithGasPriceOracleDeployedBin = "\(.*\)"/\1/p' bindings/bindings/l1messagequeuewithgaspriceoracle_more.go)

# Find the divergence point
python3 << 'EOF'
hex_file = open('bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex').read().strip()
go_file_text = open('bindings/bindings/l1messagequeuewithgaspriceoracle_more.go').read()

import re
m = re.search(r'L1MessageQueueWithGasPriceOracleDeployedBin = "([^"]+)"', go_file_text)
go_constant = m.group(1) if m else ""

print(f"Hex file length: {len(hex_file)}")
print(f"Go constant length: {len(go_constant)}")
print(f"Difference: {len(go_constant) - len(hex_file)} chars")

# Find where they diverge
for i in range(min(len(hex_file), len(go_constant))):
    if hex_file[i] != go_constant[i]:
        print(f"\nFirst difference at position {i}:")
        print(f"Hex file:  ...{hex_file[max(0,i-50):i+50]}...")
        print(f"Go constant: ...{go_constant[max(0,i-50):i+50]}...")
        break
else:
    # If one is shorter
    if len(hex_file) < len(go_constant):
        print(f"\nHex file ends at position {len(hex_file)}")
        print(f"Go constant continues: ...{go_constant[len(hex_file):len(hex_file)+100]}...")
EOF

Repository: chengwenxi/morph

Length of output: 146


🏁 Script executed:

# Let's use a simpler approach - check file sizes and compare with grep
echo "=== File Comparison ==="
echo "Hex file:"
head -c 100 bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex
echo ""
echo ""
echo "Go constant (first line only):"
sed -n '16p' bindings/bindings/l1messagequeuewithgaspriceoracle_more.go | head -c 200

Repository: chengwenxi/morph

Length of output: 427


🏁 Script executed:

# Check how many lines the Go constant spans
sed -n '16,/^"/p' bindings/bindings/l1messagequeuewithgaspriceoracle_more.go | tail -5

Repository: chengwenxi/morph

Length of output: 259


🏁 Script executed:

# Let's confirm the mismatch by checking the last part of the Go constant
tail -20 bindings/bindings/l1messagequeuewithgaspriceoracle_more.go

Repository: chengwenxi/morph

Length of output: 16430


Hex artifact does not match the Go binding constant — bytecodes are out of sync.
The hex file is 11134 characters but L1MessageQueueWithGasPriceOracleDeployedBin in bindings/bindings/l1messagequeuewithgaspriceoracle_more.go is 11862 characters. This mismatch will cause deployment failures or incorrect contract behavior.

🤖 Prompt for AI Agents
In `@bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex` at line 1, The
deployed hex artifact and the Go binding constant are out of sync: update the Go
constant L1MessageQueueWithGasPriceOracleDeployedBin to exactly match the hex in
bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex (or re-run your
binding generation tool such as abigen to regenerate the bindings), replacing
the current 11862-character value with the correct 11134-character bytecode
string and verify the lengths match so deployments use the correct bytecode.

allen.wu and others added 6 commits January 22, 2026 15:02
fix: remove L1 eth rpc flag check
fix: remove l1 rpc flag check
Co-authored-by: corey <corey.zhang@bitget.com>
Co-authored-by: kukoomomo <kukoomomo@gmail.com>
Co-authored-by: FletcherMan <fanciture@163.com>
Co-authored-by: fletcher.fan <fletcher.fan@bitget.com>
Co-authored-by: corey <corey.zhang@bitget.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Makefile (1)

14-16: ⚠️ Potential issue | 🟠 Major

sed -i '' is macOS-specific — will break on Linux/CI.

BSD sed (macOS) uses sed -i '' for in-place editing, but GNU sed (Linux) uses sed -i without the empty string argument. This will fail in CI environments running Linux.

Portable alternative
-		sed -i '' -e "s|$(ETHEREUM_MODULE_NAME) v[0-9][^[:space:]]*|$(ETHEREUM_MODULE_NAME) $(ETHEREUM_TARGET_VERSION)|" $(MODULE)/go.mod; \
+		sed -i"" -e "s|$(ETHEREUM_MODULE_NAME) v[0-9][^[:space:]]*|$(ETHEREUM_MODULE_NAME) $(ETHEREUM_TARGET_VERSION)|" $(MODULE)/go.mod; \

Or use a temp file approach for full portability:

-		sed -i '' -e "s|$(ETHEREUM_MODULE_NAME) v[0-9][^[:space:]]*|$(ETHEREUM_MODULE_NAME) $(ETHEREUM_TARGET_VERSION)|" $(MODULE)/go.mod; \
+		sed -e "s|$(ETHEREUM_MODULE_NAME) v[0-9][^[:space:]]*|$(ETHEREUM_MODULE_NAME) $(ETHEREUM_TARGET_VERSION)|" $(MODULE)/go.mod > $(MODULE)/go.mod.tmp && mv $(MODULE)/go.mod.tmp $(MODULE)/go.mod; \

Note: This applies to lines 18-20 as well.

🤖 Fix all issues with AI agents
In `@Makefile`:
- Around line 44-50: The Makefile currently attempts to git checkout
$(ETHEREUM_SUBMODULE_COMMIT_OR_TAG) in the go-ethereum submodule which fails
because the tag morph-v2.1.2 doesn't exist; update this by either setting
ETHEREUM_SUBMODULE_COMMIT_OR_TAG to a valid commit hash or a branch name that
exists in the go-ethereum submodule, or change the Makefile logic around the git
checkout (the block that cd's into go-ethereum and runs git fetch --tags && git
checkout $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG)) to verify the ref exists and fall
back to fetching the desired branch/commit (e.g., check git show-ref or git
rev-parse before checkout and use origin/<branch> or a known commit if the tag
is missing).

Comment thread Makefile
Comment on lines +44 to +50
@if [ -d "go-ethereum" ]; then \
echo "Updating go-ethereum submodule to tag $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG)..."; \
cd go-ethereum && \
git fetch --tags && \
git checkout $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG) && \
cd ..; \
fi
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
echo "=== Checking go-ethereum submodule remote and tags ==="
if [ -d "go-ethereum" ]; then
  cd go-ethereum
  echo "Remote URL:"
  git remote -v
  echo -e "\nAvailable tags matching morph-v2:"
  git tag | grep "morph-v2" || echo "No matching tags found locally"
  echo -e "\nTotal tags:"
  git tag | wc -l
else
  echo "go-ethereum submodule not initialized"
fi

Repository: chengwenxi/morph

Length of output: 328


The morph-v2.1.2 tag does not exist in the go-ethereum submodule and will cause git checkout on line 48 to fail.

The tag verification confirms that no tags matching morph-v2 are available. Without this tag, running make submodules will fail. Either ensure the tag exists in the go-ethereum submodule, point to a commit hash that exists, or use a branch reference instead of a tag.

🤖 Prompt for AI Agents
In `@Makefile` around lines 44 - 50, The Makefile currently attempts to git
checkout $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG) in the go-ethereum submodule which
fails because the tag morph-v2.1.2 doesn't exist; update this by either setting
ETHEREUM_SUBMODULE_COMMIT_OR_TAG to a valid commit hash or a branch name that
exists in the go-ethereum submodule, or change the Makefile logic around the git
checkout (the block that cd's into go-ethereum and runs git fetch --tags && git
checkout $(ETHEREUM_SUBMODULE_COMMIT_OR_TAG)) to verify the ref exists and fall
back to fetching the desired branch/commit (e.g., check git show-ref or git
rev-parse before checkout and use origin/<branch> or a known commit if the tag
is missing).

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.