Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
4421057
feat: OP Adapter update
fusmanii Oct 8, 2025
b19d379
Undo the branch logic
fusmanii Oct 8, 2025
c2742fc
revert formatting
fusmanii Oct 8, 2025
660fb05
Added tests
fusmanii Oct 8, 2025
9bc4816
Fixed test
fusmanii Oct 8, 2025
2420b76
Merge branch 'master' of github.com:across-protocol/contracts into fa…
fusmanii Nov 25, 2025
66eb6d5
Fixed test
fusmanii Nov 25, 2025
f8c6c40
Merge branch 'master' of github.com:across-protocol/contracts into fa…
fusmanii Dec 4, 2025
a13c918
chore: Support CCTP in OP Adapter
pxrl Dec 23, 2025
f60d98b
Update deployment
pxrl Dec 23, 2025
81301cd
Apply suggestion from @pxrl
pxrl Dec 23, 2025
5917380
Support multiple OP adapter deployments
pxrl Dec 23, 2025
b3a9f9f
Support no CCTP domain
pxrl Dec 23, 2025
5cc2dd5
Drop redundant Optimism Adapter address
pxrl Dec 23, 2025
29a38a0
Handle no cctp token messenger
pxrl Dec 23, 2025
e2bdf0a
feat: Support OFT in OP_Adapter & OP_SpokePool
pxrl Dec 22, 2025
2982dc2
Update OP SpokePool deployment script
pxrl Dec 23, 2025
b08e8ed
Revert "WIP"
pxrl Dec 23, 2025
f405dff
Merge remote-tracking branch 'origin/master' into pxrl/opAdapter
pxrl Jan 20, 2026
d8e995a
Merge remote-tracking branch 'origin/master' into faisal/udpate-op-ad…
pxrl Jan 20, 2026
b7932e7
Merge remote-tracking branch 'origin/faisal/udpate-op-adapter' into p…
pxrl Jan 20, 2026
c627379
Revert unintended change
pxrl Jan 20, 2026
7fbe500
Merge remote-tracking branch 'origin/bz/deployNewInk' into pxrl/opAda…
pxrl Jan 20, 2026
1e5a297
post-merge
pxrl Jan 20, 2026
e583e8f
Merge remote-tracking branch 'origin/bz/deployNewInk' into pxrl/opAda…
pxrl Jan 20, 2026
b84ed3f
comment
pxrl Jan 20, 2026
fbd69a9
cleanup
pxrl Jan 20, 2026
d544cef
fix
pxrl Jan 20, 2026
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
54 changes: 54 additions & 0 deletions broadcast/056DeployOPAdapter.s.sol/1/run-latest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"transactions": [
{
"hash": "0x21e319a839aa693f4a219dd27b9babdc2721b973be32b959393273487319becc",
"transactionType": "CREATE",
"contractName": "OP_Adapter",
"contractAddress": "0x83057c549c6489899651012f84a36fa58fe2079e",
"function": null,
"arguments": [
"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"0x69d3Cf86B2Bf1a9e99875B7e2D9B6a84426c171f",
"0x88FF1e5b602916615391F55854588EFcBB7663f0",
"0x0000000000000000000000000000000000000000",
"0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
"21"
],
"transaction": {
"from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d",
"gas": "0xfbdda",
"value": "0x0",
"input": "0x610180806040523461026f5760e081610fa780380380916100208285610273565b83398101031261026f578051906001600160a01b038216820361026f576020810151916001600160a01b0383169081840361026f576040830151906001600160a01b038216820361026f576060840151906001600160a01b038216820361026f5760808501516001600160a01b0381169690939087850361026f5760a08701516001600160a01b0381169790919088830361026f5760c001519263ffffffff8416840361026f5760805260c05260e05260a0525f80604051602081019063011a412160e61b8252600481526100f6602482610273565b5190885afa3d15610268573d6001600160401b0381116102545760405190610128601f8201601f191660200183610273565b81523d5f602083013e5b81610248575b81610212575b50610100526101205261014052610160526101f4575b604051610d109081610297823960805181818160fa015261024b015260a0518181816102c90152818161060001526106ae015260c0518181816104a60152610a92015260e05181818161020701526104db015261010051818181610287015261057501526101205181818161035a0152610a510152610140518181816103c1015281816108b201526109cb0152610160518181816107f30152610a0e0152f35b15901514610203575f80610154565b635110d79160e01b5f5260045ffd5b9050602081519101519060208110610237575b506001600160a01b031615155f61013e565b5f199060200360031b1b165f610225565b80516020149150610138565b634e487b7160e01b5f52604160045260245ffd5b6060610132565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102545760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac85514610a75575080631efd482a14610a32578063299e9687146109ef57806335a2db6a146109ac57806352c8c75c1461030b5780635e743ef7146102ed5780636e400983146102ac578063775c0d031461026f578063927ede2d1461022b5780639748cf7c146101e75763e6eb8ade14610097575f80fd5b60403660031901126101e4576100ab610ab6565b6024359067ffffffffffffffff82116101e257366023830112156101e25781600401359067ffffffffffffffff82116101cf57602483019260248336920101116101cf57836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101de57816001600160a01b0391604051928391633dbb202b60e01b835216948560048301526060602483015281838161015c606482018b8d610b02565b62030d40604483015203925af180156101d3576101ba575b50506101b47f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610b02565b0390a180f35b816101c491610acc565b6101cf57835f610174565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101e457806003193601126101e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e45760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101e457806003193601126101e457602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101e457806003193601126101e457602060405162030d408152f35b50608036600319011261078157610320610ab6565b602435906001600160a01b0382168092036107815760443591606435906001600160a01b03821680920361078157846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049e57803b156101de57818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101d357610489575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101de57818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101d35761046a575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b816104789195949395610acc565b610485579091845f610427565b8480fd5b8161049391610acc565b61048557845f6103b6565b5050929091927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116908186145f146108a6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169081156107e157848261051592610b22565b6040516332dd704760e21b8152602081600481855afa90811561078d578891610798575b509060206001600160a01b03926024604051809581936352b7631960e11b8352886004840152165afa91821561078d578892610755575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105ce575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610451565b8481111561074f57845b841561069857833b15610694578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101d35761067f575b50505b810390811161066b5780610599565b634e487b7160e01b8a52601160045260248afd5b8161068991610acc565b610694578a5f610659565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af1801561074457610701575b5061065c565b6020813d821161073c575b8161071960209383610acc565b81010312610738575167ffffffffffffffff811603610694575f6106fb565b8b80fd5b3d915061070c565b6040513d8e823e3d90fd5b806105d8565b9091506020813d602011610785575b8161077160209383610acc565b810103126107815751905f610570565b5f80fd5b3d9150610764565b6040513d8a823e3d90fd5b90506020813d6020116107d9575b816107b360209383610acc565b810103126107d55751906001600160a01b03821682036107d557906020610539565b8780fd5b3d91506107a6565b505050846001600160a01b03949392947f00000000000000000000000000000000000000000000000000000000000000001661081e868287610b22565b803b156101de5781809160646040518094819363262cc5ab60e11b83528960048401528b602484015262030d4060448401525af180156101d35761088b575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9360809392610451565b816108999195949395610acc565b610485579091845f61085d565b50506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166108dd838287610b22565b803b15610781575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156109a157610962575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610451565b608093919550916109955f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9694610acc565b5f959193509193610935565b6040513d5f823e3d90fd5b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f3660031901126107815760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610781575f366003190112610781576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361078157565b90601f8019910116810190811067ffffffffffffffff821117610aee57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156109a1575f93610c7b575b508201809211610c67575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ba0606485610acc565b60405193610baf604086610acc565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610c5a573d9067ffffffffffffffff8211610aee57604051610c21949092610c13601f8201601f191660200185610acc565b83523d5f602085013e610caf565b8051908115918215610c37575b50501561078157565b819250906020918101031261078157602001518015158103610781575f80610c2e565b91610c2192606091610caf565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610ca7575b81610c9760209383610acc565b810103126107815751915f610b67565b3d9150610c8a565b91925015610ccb57815115610cc2575090565b3b156107815790565b50805190811561078157602001fdfea26469706673582212202da86657dbd069af56df4256fc04a91432db64a4f5f3b4928b86c4218111f15f64736f6c634300081e0033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000069d3cf86b2bf1a9e99875b7e2d9b6a84426c171f00000000000000000000000088ff1e5b602916615391f55854588efcbb7663f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028b5a0e9c621a5badaa536219b3a228c8168cf5d0000000000000000000000000000000000000000000000000000000000000015",
"nonce": "0x2db0",
"chainId": "0x1"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0xb5e2a3",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"transactionHash": "0x21e319a839aa693f4a219dd27b9babdc2721b973be32b959393273487319becc",
"transactionIndex": "0x56",
"blockHash": "0xf5090693f44f239b1deacc12c34be5a2718546dae3d72b5c38b7a170ef2c4aa6",
"blockNumber": "0x16f5c9b",
"gasUsed": "0xc1be3",
"effectiveGasPrice": "0x269294f",
"from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d",
"to": null,
"contractAddress": "0x83057c549c6489899651012f84a36fa58fe2079e"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1766494222642,
"chain": 1,
"commit": "a13c918f"
}
5 changes: 5 additions & 0 deletions broadcast/deployed-addresses.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,11 @@
"address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C",
"block_number": 22789839
},
"OP_Adapter": {
"address": "0x83057c549c6489899651012f84a36fa58fe2079e",
"block_number": 24075419,
"transaction_hash": "0x21e319a839aa693f4a219dd27b9babdc2721b973be32b959393273487319becc"
},
"PermissionSplitterProxy": {
"address": "0x0Bf07B2e415F02711fFBB32491f8ec9e5489B2e7",
"block_number": 19084679,
Expand Down
13 changes: 7 additions & 6 deletions broadcast/deployed-addresses.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ This file contains the latest deployed smart contract addresses from the broadca
| LpTokenFactory | [0x7dB69eb9F52eD773E9b03f5068A1ea0275b2fD9d](https://etherscan.io/address/0x7dB69eb9F52eD773E9b03f5068A1ea0275b2fD9d) |
| Mode_Adapter | [0xf1B59868697f3925b72889ede818B9E7ba0316d0](https://etherscan.io/address/0xf1B59868697f3925b72889ede818B9E7ba0316d0) |
| MulticallHandler | [0x0F7Ae28dE1C8532170AD4ee566B5801485c13a0E](https://etherscan.io/address/0x0F7Ae28dE1C8532170AD4ee566B5801485c13a0E) |
| OP_Adapter | [0x83057C549C6489899651012F84A36fA58FE2079e](https://etherscan.io/address/0x83057C549C6489899651012F84A36fA58FE2079e) |
| Optimism_Adapter | [0xE1e74B3D6A8E2A479B62958D4E4E6eEaea5B612b](https://etherscan.io/address/0xE1e74B3D6A8E2A479B62958D4E4E6eEaea5B612b) |
| Optimism_Adapter | [0x3562e309C6C79626E5F0Cf746FB5Bf4f6b8EebE5](https://etherscan.io/address/0x3562e309C6C79626E5F0Cf746FB5Bf4f6b8EebE5) |
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Driveby comment - we shouldn't have two Optimism_Adapter instances - that's pre-existing but can be tidied up here.

Copy link
Contributor

Choose a reason for hiding this comment

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

Nice catch, this is known problem, it only happens in the md file and the script needs to be updated to only take the latest one

| PermissionSplitterProxy | [0x0Bf07B2e415F02711fFBB32491f8ec9e5489B2e7](https://etherscan.io/address/0x0Bf07B2e415F02711fFBB32491f8ec9e5489B2e7) |
Expand Down Expand Up @@ -105,12 +106,12 @@ This file contains the latest deployed smart contract addresses from the broadca

## Monad (143)

| Contract Name | Address |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| Helios | [0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64](https://monadscan.com//address/0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64) |
| MulticallHandler | [0xeC41F75c686e376Ab2a4F18bde263ab5822c4511](https://monadscan.com//address/0xeC41F75c686e376Ab2a4F18bde263ab5822c4511) |
| SpokePool | [0xd2ecb3afe598b746F8123CaE365a598DA831A449](https://monadscan.com//address/0xd2ecb3afe598b746F8123CaE365a598DA831A449) |
| SpokePoolPeriphery | [0xe9b0666DFfC176Df6686726CB9aaC78fD83D20d7](https://monadscan.com//address/0xe9b0666DFfC176Df6686726CB9aaC78fD83D20d7) |
| Contract Name | Address |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| Helios | [0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64](https://monadvision.com/address/0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64) |
| MulticallHandler | [0xeC41F75c686e376Ab2a4F18bde263ab5822c4511](https://monadvision.com/address/0xeC41F75c686e376Ab2a4F18bde263ab5822c4511) |
| SpokePool | [0xd2ecb3afe598b746F8123CaE365a598DA831A449](https://monadvision.com/address/0xd2ecb3afe598b746F8123CaE365a598DA831A449) |
| SpokePoolPeriphery | [0xe9b0666DFfC176Df6686726CB9aaC78fD83D20d7](https://monadvision.com/address/0xe9b0666DFfC176Df6686726CB9aaC78fD83D20d7) |

## Lens (232)

Expand Down
28 changes: 20 additions & 8 deletions contracts/chain-adapters/OP_Adapter.sol
Original file line number Diff line number Diff line change
Expand Up @@ -35,31 +35,43 @@ contract OP_Adapter is CrossDomainEnabled, AdapterInterface, CircleCCTPAdapter {
IL1StandardBridge public immutable L1_STANDARD_BRIDGE;
IOpUSDCBridgeAdapter public immutable L1_OP_USDC_BRIDGE;

error InvalidBridgeConfig();

/**
* @notice Constructs new Adapter.
* @param _l1Weth WETH address on L1.
* @param _l1Usdc USDC address on L1.
* @param _crossDomainMessenger XDomainMessenger Destination chain system contract.
* @param _l1StandardBridge Standard bridge contract.
* @param _l1Usdc USDC address on L1.
* @param _l1USDCBridge OP USDC bridge contract.
* @param _cctpTokenMessenger CCTP token messenger contract.
* @param _recipientCircleDomainId Circle domain ID of the destination chain.
*/
constructor(
WETH9Interface _l1Weth,
IERC20 _l1Usdc,
address _crossDomainMessenger,
IL1StandardBridge _l1StandardBridge,
IOpUSDCBridgeAdapter _l1USDCBridge
IOpUSDCBridgeAdapter _l1USDCBridge,
ITokenMessenger _cctpTokenMessenger,
uint32 _recipientCircleDomainId
)
CrossDomainEnabled(_crossDomainMessenger)
CircleCCTPAdapter(
_l1Usdc,
// Hardcode cctp messenger to 0x0 to disable CCTP bridging.
ITokenMessenger(address(0)),
CircleDomainIds.UNINITIALIZED
)
CircleCCTPAdapter(_l1Usdc, _cctpTokenMessenger, _recipientCircleDomainId)
{
L1_WETH = _l1Weth;
L1_STANDARD_BRIDGE = _l1StandardBridge;
L1_OP_USDC_BRIDGE = _l1USDCBridge;

address zero = address(0);
if (address(_l1Usdc) != zero) {
bool opUSDCBridgeDisabled = address(_l1USDCBridge) == zero;
bool cctpUSDCBridgeDisabled = address(_cctpTokenMessenger) == zero;
// Bridged and Native USDC are mutually exclusive.
if (opUSDCBridgeDisabled == cctpUSDCBridgeDisabled) {
revert InvalidBridgeConfig();
}
}
}

/**
Expand Down
13 changes: 7 additions & 6 deletions generated/constants.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@
"name": "Monad",
"family": "NONE",
"nativeToken": "MON",
"publicRPC": "https://rpc-mainnet.monadinfra.com/",
"blockExplorer": "https://monadscan.com/",
"publicRPC": "https://rpc-mainnet.monadinfra.com",
"blockExplorer": "https://monadvision.com",
"cctpDomain": 15,
"oftEid": 30390,
"hypDomainId": 143
Expand Down Expand Up @@ -244,8 +244,8 @@
"name": "Monad Testnet",
"family": "NONE",
"nativeToken": "MON",
"publicRPC": "https://testnet-rpc.monad.xyz/",
"blockExplorer": "https://testnet.monvision.io/",
"publicRPC": "https://testnet-rpc.monad.xyz",
"blockExplorer": "https://testnet.monvision.io",
"cctpDomain": 15,
"oftEid": 40204,
"hypDomainId": 10143
Expand Down Expand Up @@ -296,8 +296,8 @@
"nativeToken": "ETH",
"publicRPC": "https://rpc-gel.inkonchain.com",
"blockExplorer": "https://explorer.inkonchain.com",
"cctpDomain": -1,
"oftEid": -1,
"cctpDomain": 21,
"oftEid": 30339,
"hypDomainId": 57073
},
"59144": {
Expand Down Expand Up @@ -896,6 +896,7 @@
"8453": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"10143": "0xf817257fed379853cDe0fa4F97AB987181B1E5Ea",
"42161": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"57073": "0x2D270e6886d130D724215A266106e6832161EAEd",
"59144": "0x176211869cA2b568f2A7D4EE941E073a821EE1ff",
"80002": "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582",
"84532": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
"generate-constants-json": "ts-node ./script/utils/GenerateConstantsJson.ts"
},
"dependencies": {
"@across-protocol/constants": "^3.1.88",
"@across-protocol/constants": "^3.1.94",
"@coral-xyz/anchor": "^0.31.1",
"@defi-wonderland/smock": "^2.3.4",
"@eth-optimism/contracts": "^0.5.40",
Expand Down
Loading
Loading