Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
0805e73
Golf CrossChainReceiverFactory proxy initcode (compute at deploy time)
duncancmt Nov 8, 2025
73ee172
First draft of improved, more-composable CrossChainReceiverFactory
duncancmt Nov 26, 2025
38f2f56
Do some cleanup; add some TODOs
duncancmt Nov 26, 2025
e084d6f
Resolve TODO
duncancmt Nov 26, 2025
b28fb7e
Resolve TODO
duncancmt Nov 26, 2025
b2237a5
Strict ABI encoding of return values
duncancmt Nov 26, 2025
8af3eaa
Resolve TODO
duncancmt Nov 26, 2025
83fa34a
Bug! `XOR` instead of `AND` when checking for nonce replay
duncancmt Nov 26, 2025
b65886d
Bug! Flipped `SHL`
duncancmt Nov 26, 2025
bc38687
Constrain the `nonce` field to make certain kinds of confusion less l…
duncancmt Nov 26, 2025
e680562
Make all `onlyOwner` functions `onlyOwnerOrSelf`
duncancmt Nov 26, 2025
b02888f
Compilation errors
duncancmt Nov 26, 2025
ce4f108
Bounds checking for signature length
duncancmt Nov 26, 2025
1a5dde8
As the comment says, prohibit sending **data** to EOAs
duncancmt Nov 26, 2025
965738e
Golf
duncancmt Nov 26, 2025
1c59e96
Resolve warning
duncancmt Nov 26, 2025
f574842
Golf; add TODO
duncancmt Nov 26, 2025
ac20e91
Remove resolved TODO
duncancmt Nov 26, 2025
a6a5b3e
Resolve TODO
duncancmt Nov 27, 2025
049bbad
Don't re-forward ERC2771 metadata
duncancmt Nov 27, 2025
541e2de
Bug! Inverted `success` as a typo from previous changes
duncancmt Nov 27, 2025
fdedb80
Bug! Reversed two code blocks makes the deadline useless
duncancmt Nov 27, 2025
080f387
Defensively make `_requireOwner()` explicitly `onlyProxy`
duncancmt Nov 27, 2025
0340eeb
Typo
duncancmt Nov 27, 2025
cb16377
Bug! Bad order of resetting `owner_` for non-Merkle metatx flows
duncancmt Nov 27, 2025
1ef3e6a
`forge fmt`
duncancmt Nov 27, 2025
059fe4f
Bug! Use one deadline for `block.timestamp` checking and another for …
duncancmt Nov 27, 2025
165c06e
Improve comments
duncancmt Nov 27, 2025
dadb43c
Use packed (ERC2098) ECDSA signature representation for `_verifySimpl…
duncancmt Nov 27, 2025
5257657
Bug! Avoid clobbering reserved memory
duncancmt Nov 27, 2025
eaeee5e
Pedantic correctness in `cleanup`
duncancmt Nov 27, 2025
ba87f23
Golf
duncancmt Nov 28, 2025
d8e94c9
Merge branch 'dcmt/claude-md' into dcmt/crosschainreceiver2
duncancmt Nov 28, 2025
2e3d9fd
Typo
duncancmt Nov 28, 2025
14198ed
Resolve TODO
duncancmt Nov 29, 2025
1e97174
Golf
duncancmt Nov 29, 2025
c835236
Compilation error
duncancmt Nov 29, 2025
1cbf80b
Bug! Don't revert with overflow when `ppm = 0`
duncancmt Dec 1, 2025
a32cbf4
Unwrap `WNATIVE` to cover the `value` cost of a `metaTx` when required
duncancmt Dec 1, 2025
5cb40ee
Retrieve any unspent native value from `MultiCall` after a `metaTx`
duncancmt Dec 1, 2025
1a643e6
Typos
duncancmt Dec 1, 2025
8077249
Don't clobber the data we actually want to return when refunding nati…
duncancmt Dec 1, 2025
8ff952f
WIP: use a sentinel value for `calls[i].target` when the target is th…
duncancmt Dec 2, 2025
b2828bc
Bugs! Missing final memory bounds check revert. Loaded the wrong word…
duncancmt Dec 2, 2025
10d3357
Comments
duncancmt Dec 2, 2025
a6736ec
Don't revert if there isn't enough value to unwrap; just unwrap every…
duncancmt Dec 2, 2025
9713df3
`forge fmt`
duncancmt Dec 2, 2025
d9378c7
Comments; function name
duncancmt Dec 2, 2025
3cf9b93
Bug! Break *another* hash cycle in Merkle proof `metaTx` flows
duncancmt Dec 2, 2025
e6c9fc7
`forge fmt`
duncancmt Dec 2, 2025
6faae4b
Golf
duncancmt Dec 2, 2025
6b10d1d
Compilation error
duncancmt Dec 2, 2025
8734ae2
Resolve TODO
duncancmt Dec 2, 2025
17bc805
Golf
duncancmt Dec 2, 2025
09e86a3
Trim some code size because we know `WNATIVE` is well-behaved
duncancmt Dec 5, 2025
0f25c35
Implement `getFromMulticall`, assuming that at some point we will sen…
duncancmt Dec 7, 2025
eec9c1f
Handle chains without a (wrapped) native asset
duncancmt Dec 13, 2025
8519046
`forge fmt`
duncancmt Dec 13, 2025
464aecf
DRY
duncancmt Dec 13, 2025
3a2350f
Bug! Missing padding
duncancmt Dec 13, 2025
0d5bc01
Bug! Wrong bounds on revert region
duncancmt Dec 13, 2025
0ee5a58
Compilation error
duncancmt Dec 16, 2025
cd9d20e
Golf
duncancmt Dec 16, 2025
04cb56d
Bug! No revert on short returndata from `balanceOf` inside `getFromMu…
duncancmt Dec 16, 2025
f6d0300
WIP: add a deploy-time check that the hardcoded EIP-150 rule (in ERC2…
duncancmt Dec 22, 2025
64503b6
Do a deploy-time test for EIP150 (approximately) and conditionally re…
duncancmt Dec 22, 2025
4079432
Golf
duncancmt Dec 22, 2025
8542388
Bug! Wrong echo result when calling through the _ERC2771 forwarding_ …
duncancmt Dec 22, 2025
f277832
Move `deployCodeTo` shim into `_eip150RatioTest` where it was causing…
duncancmt Dec 22, 2025
c7b0bdb
Bug! Move `deployCodeTo` kludge yet again
duncancmt Dec 22, 2025
db31708
Merge branch 'master' into dcmt/crosschainreceiver2
duncancmt Dec 29, 2025
d04aa32
Treat `_CHAIN_SPECIFIC_MULTICALL` the same as `_WNATIVE` when constru…
duncancmt Dec 29, 2025
8dac249
Merge branch 'dcmt/crosschainreceiver2' into dcmt/crosschainreceiver3
duncancmt Dec 29, 2025
b6800bb
Substitute `_ADDRESS_THIS_SENTINEL` as `recipient` for `address(this)…
duncancmt Dec 30, 2025
035073e
`forge fmt`
duncancmt Dec 30, 2025
026838c
Merge branch 'dcmt/crosschainreceiver3' into dcmt/crosschainreceiver2
duncancmt Dec 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Loading