Skip to content

feat: replace Transfer event with Proxy event in TransferProxy#1394

Open
mrice32 wants to merge 2 commits into
masterfrom
mrice32-patch-2
Open

feat: replace Transfer event with Proxy event in TransferProxy#1394
mrice32 wants to merge 2 commits into
masterfrom
mrice32-patch-2

Conversation

@mrice32
Copy link
Copy Markdown
Contributor

@mrice32 mrice32 commented Apr 1, 2026

This will help link depositIds to CCTP and other non Across txfers.

This will help link depositIds to CCTP and other non Across txfers.
@mrice32 mrice32 changed the title Replace Transfer event with Proxy event in TransferProxy feat: replace Transfer event with Proxy event in TransferProxy Apr 1, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 91d3c27196

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread contracts/TransferProxy.sol Outdated
Comment on lines 33 to 34
bytes32 depositor
bytes32 recipient,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P0 Badge Add separator comma in deposit parameter list

The deposit signature is now syntactically invalid because bytes32 depositor is immediately followed by bytes32 recipient without a comma. This prevents Solidity from parsing the contract, so this commit cannot be compiled or deployed in any environment.

Useful? React with 👍 / 👎.

Comment thread contracts/TransferProxy.sol Outdated
uint32, // exclusivityParameter
bytes calldata message
) external {
emit Proxy(depositor, depositNonce, inputToken, inputAmount);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P0 Badge Declare depositNonce before emitting Proxy

unsafeDeposit emits Proxy(depositor, depositNonce, ...), but depositNonce is not declared as a named parameter in the function signature (it is still an unnamed uint256 argument). This introduces an undeclared identifier error and blocks compilation once parsing reaches this line.

Useful? React with 👍 / 👎.

- Add missing comma after depositor param in deposit()
- Fix comma placement for depositor param in unsafeDeposit()
- Name depositNonce param so it can be referenced in emit
- Add .toAddress() conversions for bytes32 -> address event params
- Update test to use new Proxy event signature

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@mrice32
Copy link
Copy Markdown
Contributor Author

mrice32 commented Apr 1, 2026

@codex review.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c24af1b348

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

uint32, // exclusivityParameter
bytes calldata message
) external {
emit Proxy(depositor.toAddress(), depositNonce, inputToken.toAddress(), inputAmount);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include caller in Proxy nonce identity

The new Proxy log for unsafeDeposit emits only (depositor, depositNonce, inputToken, inputAmount), but Across unsafe deposit IDs are derived from keccak256(msgSender, depositor, depositNonce) (see SpokePool.getUnsafeDepositId). In any context where TransferProxy can be called by more than one contract/EOA (including direct calls), different callers can produce identical Proxy tuples, so indexers cannot uniquely map the event to one deposit ID and can be spoofed by replaying another depositor/nonce pair.

Useful? React with 👍 / 👎.

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