Skip to content

Add support for builder codes#3

Merged
yosriady merged 4 commits intomainfrom
chore/builder-codes
Mar 2, 2026
Merged

Add support for builder codes#3
yosriady merged 4 commits intomainfrom
chore/builder-codes

Conversation

@yosriady
Copy link
Contributor

@yosriady yosriady commented Mar 2, 2026


Open with Devin

Note

Medium Risk
Moderate risk due to upgrades of core web3 deps (viem/wagmi) and new transaction payload behavior (dataSuffix/data) that could affect signing and downstream indexing.

Overview
Adds optional ERC-8021 builder code attribution to contract writes in the debug UI by appending an ox/erc8021-generated dataSuffix to useWriteContract calls, and updates the form layout to always show this input.

Introduces a new SendTransaction test component on the home page that sends a dummy transaction with the ERC-8021 suffix (passed as data) to validate parsing.

Updates dependencies to support this work: adds ox, bumps viem and wagmi, and refreshes yarn.lock; removes the root postinstall husky hook.

Written by Cursor Bugbot for commit 6947159. This will update automatically on new commits. Configure here.

@socket-security
Copy link

socket-security bot commented Mar 2, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​testing-library/​user-event@​13.5.010010010086100
Added@​testing-library/​jest-dom@​5.17.010010010089100
Added@​testing-library/​react@​13.4.010010010090100

View full report

devin-ai-integration[bot]

This comment was marked as resolved.

cursor[bot]

This comment was marked as resolved.

sentry[bot]

This comment was marked as resolved.

cursor[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

- Only call Attribution.toDataSuffix when builderCode is truthy
- Omit data field when no suffix (plain transfer)
- Document use of data vs dataSuffix for useSendTransaction

Made-with: Cursor
devin-ai-integration[bot]

This comment was marked as resolved.

…ways visible)

Builder code block is always rendered; zeroInputs compact flex-row broke layout.
Set zeroInputs = false so flex-col is used consistently.

Made-with: Cursor
@yosriady yosriady merged commit 1664ea7 into main Mar 2, 2026
15 checks passed
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

});
const zeroInputs = inputs.length === 0 && abiFunction.stateMutability !== "payable";
// Builder code block is always rendered, so use column layout for consistent UX
const zeroInputs = false;
Copy link

Choose a reason for hiding this comment

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

Hardcoded zeroInputs creates unreachable dead code block

Low Severity

Setting zeroInputs to the constant false makes the conditional block at the bottom (zeroInputs && txResult ? ... : null) completely unreachable dead code. That block also differs from the live path by using raw txResult instead of the managed displayedTxResult state. Rather than leaving a constant false variable wired into three conditionals, the dead block and the variable itself could be removed, and the always-true/always-false branches simplified.

Additional Locations (1)

Fix in Cursor Fix in Web

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.

1 participant