Skip to content

chore: deploy MulticallHandler and SpokePoolPeriphery to Robinhood#1477

Open
melisaguevara wants to merge 2 commits into
masterfrom
mguevara/robinhood-multicall-handler
Open

chore: deploy MulticallHandler and SpokePoolPeriphery to Robinhood#1477
melisaguevara wants to merge 2 commits into
masterfrom
mguevara/robinhood-multicall-handler

Conversation

@melisaguevara

@melisaguevara melisaguevara commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds two contract deploys to Robinhood (chain 4663) via the Arachnid CREATE2 deployer.

Contract Address Tx
MulticallHandler 0xa8aD2e87E2043711d8BeC77e8BC3E2683C0ab6BD 0x6ed347…04803
SpokePoolPeriphery 0xe05E3798Ce2ae9afCb637fb53BF5a51253BBe2af 0x3d3493…e3cbe

SpokePoolPeriphery internally deploys SwapProxy at 0x6489982210e7964256a0C8b46cCd04D4Ad5D33aD (via CREATE during construction).

Also adds L2_ADDRESS_MAP[ROBINHOOD] to src/consts.ts with the canonical Permit2 (0x000000000022D473030F116dDEE9F6B43aC78BA3, verified on-chain to be Permit2 with the chain-id immutable correctly set to 4663) and the SP1Helios address, then regenerates generated/constants.json. This makes getPermit2(4663) and getL2Address(4663, "helios") resolve for future scripts.

Notes

The deployed addresses do not match the canonical addresses used on most chains (MulticallHandler 0x0F7Ae28d…, SpokePoolPeriphery 0x10D8b8Da…). The contract bytecode has been recompiled since the original deploys, so the Arachnid CREATE2 deployer produces different addresses. Same pattern as the chain-specific entries on Monad, Lens, zkSync, Hyperliquid, and Tempo.

Test plan

  • Verify entries appear under ## Robinhood (4663) in broadcast/deployed-addresses.md
  • Confirm getDeployedAddress("MulticallHandler", 4663) and getDeployedAddress("SpokePoolPeriphery", 4663) resolve via DeployedAddresses.sol
  • Confirm getPermit2(4663) returns canonical Permit2 from the regenerated constants.json
  • Smoke-test the deployed contracts respond to expected calls on Robinhood

🤖 Generated with Claude Code

Deploys MulticallHandler at 0xa8aD2e87E2043711d8BeC77e8BC3E2683C0ab6BD
on Robinhood (chain 4663) via the Arachnid CREATE2 deployer. Address
does not match the canonical 0x0F7Ae28d... because the contract bytecode
has been recompiled since the original deploys, consistent with the
chain-specific addresses on Monad, Lens, zkSync, Hyperliquid, and Tempo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deploys SpokePoolPeriphery at 0xe05E3798Ce2ae9afCb637fb53BF5a51253BBe2af
on Robinhood (chain 4663) via the Arachnid CREATE2 deployer. Internally
deploys SwapProxy at 0x6489982210e7964256a0C8b46cCd04D4Ad5D33aD.

Also adds the L2_ADDRESS_MAP[ROBINHOOD] entry in src/consts.ts so
getPermit2(4663) resolves correctly for future scripts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@melisaguevara melisaguevara changed the title chore: deploy MulticallHandler to Robinhood chore: deploy MulticallHandler and SpokePoolPeriphery to Robinhood Jun 25, 2026
| SpokePool | [0xD29C85F15DF544bA632C9E25829fd29d767d7978](https://explorer.testnet.chain.robinhood.com/address/0xD29C85F15DF544bA632C9E25829fd29d767d7978) |
| Contract Name | Address |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| MulticallHandler | [0xa8aD2e87E2043711d8BeC77e8BC3E2683C0ab6BD](https://explorer.testnet.chain.robinhood.com/address/0xa8aD2e87E2043711d8BeC77e8BC3E2683C0ab6BD) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this a testnet or mainnet deployment as the explorer here says testnet?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

these contracts are not showing up in the testnet explorer and I couldn't find it in https://robinhoodchain.blockscout.com/ either

| Safe | [0xd396CcB6770EAB84045c9Bce2939c478639E2A7F](https://explorer.testnet.chain.robinhood.com/address/0xd396CcB6770EAB84045c9Bce2939c478639E2A7F) |
| SP1Helios | [0x9b4A302A548c7e313c2b74C461db7b84d3074A84](https://explorer.testnet.chain.robinhood.com/address/0x9b4A302A548c7e313c2b74C461db7b84d3074A84) |
| SpokePool | [0xD29C85F15DF544bA632C9E25829fd29d767d7978](https://explorer.testnet.chain.robinhood.com/address/0xD29C85F15DF544bA632C9E25829fd29d767d7978) |
| SpokePoolPeriphery | [0xe05E3798Ce2ae9afCb637fb53BF5a51253BBe2af](https://explorer.testnet.chain.robinhood.com/address/0xe05E3798Ce2ae9afCb637fb53BF5a51253BBe2af) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

since we changed the folder structure in the repo, SpokePoolPeriphery CREATE2 addresses are different now 😞

@grasphoper I think we should set bytecode_hash = "none" for all contracts so that addresses don't drift with metadata changes, wdyt?

@@ -0,0 +1,55 @@
{

@fusmanii fusmanii Jun 29, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I was able to deploy the SpokePoolPeriphery to Robinhood to the same address (https://robinhoodchain.blockscout.com/address/0x10D8b8DaA26d307489803e10477De69C0492B610) (by deploying it from the old branch)

here is the run-latest.json for the deployment txn

run-latest.json

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.

2 participants