-
Notifications
You must be signed in to change notification settings - Fork 65
Single AddressBook for all adapters #919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…torage needs Signed-off-by: Ihor Farion <ihor@umaproject.org>
contracts/libraries/AddressBook.sol
Outdated
* @dev A helper contract for chain adapters that support OFT or XERC20 messaging on L1 | ||
* @dev Handles token => messenger/router mapping storage, as adapters are called via delegatecall and don't have relevant storage space | ||
*/ | ||
// todo: MultiCaller or dedicated batchSetOFTMessenger function? Or both? Multicaller looks cleaner, but batch function is more gas-efficient |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am leaning towards batchSetOFTMessenger
fn for gas efficiency on an L1
The usecase of the function is:
Add all the OFT messenger contracts we need per adapter in a single call when creating an adapter with new ADAPTER_ID
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think batchSetOFTMessenger makes sense if you can make it cheaper than multicall!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's going to be cheaper "by design"
Multicall calls multiple delegate calls to self. Calling a regular function in a loop should be cheaper than that, right?
Signed-off-by: Ihor Farion <ihor@umaproject.org>
Signed-off-by: Ihor Farion <ihor@umaproject.org>
AddressBook public immutable ADDRESS_BOOK; | ||
|
||
// Uniquely identifies adapter type (Aritrum, Optimism etc.) for calls to ADDRESS_BOOK | ||
uint256 public immutable ADAPTER_ID; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer naming this CHAIN_ID since that's the term we use throughout the rest of the stack. I assume you're going to set this to the chain ID?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think CHAIN_ID
is fine, but a little misleading. DESTINATION_CHAIN_ID
?
Also, what about solana chain id? I'm finding differnt ids for it from different sources. We can figure something out
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 more thing: if we commit to this being chainId, would it make sense to just make this ID a constant, not a constructor param?
@@ -11,6 +11,8 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { | |||
// set to the Risk Labs relayer address. The deployer should change this if necessary. | |||
const l2RefundAddress = "0x07aE8551Be970cB1cCa11Dd7a11F47Ae82e70E67"; | |||
|
|||
// id that uniquely identifies a chain adapter type. Set to closely match chain ids | |||
const adapterId = 42161; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const adapterId = 42161; | |
const adapterId = chainId; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This chainId
would be mainnet though, right? We need arbitrumChainId
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will add const dstChainId = CHAIN_IDs.ARBITRUM;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True never mind
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First review
Signed-off-by: Ihor Farion <ihor@umaproject.org>
Signed-off-by: Ihor Farion <ihor@umaproject.org>
@@ -11,6 +12,8 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { | |||
// set to the Risk Labs relayer address. The deployer should change this if necessary. | |||
const l2RefundAddress = "0x07aE8551Be970cB1cCa11Dd7a11F47Ae82e70E67"; | |||
|
|||
// id that uniquely identifies a chain adapter type. Set to closely match chain ids | |||
const dstChainId = CHAIN_IDs.ARBITRUM; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not use chainId
? We already load that on line 8, and it helps support testnets also
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did this to support testnet deployment const dstChainId = chainId == MAINNET_CHAIN_IDs.MAINNET ? CHAIN_IDs.ARBITRUM : CHAIN_IDs.ARBITRUM_SEPOLIA;
Signed-off-by: Ihor Farion <ihor@umaproject.org>
…926) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216ea. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit Allows Across to support inputTokens without enabling deposit routes for them, by forcing filler to take repayment of the token on the origin chain. Enhances protection against gas cost griefing vector in when executing refund leaves, since removal of this enabledDepositRoutes check would allow someone to force the refund leaf executor to call a malicious ERC20.transfer() function * add tests * Make check unilateral * Update SpokePool.Deposit.ts * apply tests * storage layouts * merge conflicts * Create SwapAndBridge.sol * Fix conflicts * Fix storage layouts * Remove solana setEnableRoute special logic * Remove MAX_ERC20_TRANSFER_GAS_COST * Update SpokePool.sol --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com>
* fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * feat: Add SP1_Adapter and SP1_SpokePool Can be used to relay messages from L1 to L2 spoke pools using SP1 + Helios * Remove sp1 import * Add simple test * Re-use storage slots in HubPoolStore - SP1_Adapter sets target == address(0) for relayRootBundle() calls to L2 as a gas-optimization - Add contractAddress to ContractPublicValues - Add deploy script with warning to NOT use create2 as we want each target spoke pool address to be unique * Update SP1_SpokePool.sol * Added replay protection * Updated event * Don't include nonce in data hash, emit data hash * Store relayRootBundle calldata with no nonce for gas optimization * Rename contract public values variables to make it clearer how storage slot proofs could be substituted for eth_call * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216ea. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * In HubPoolStore, store byes rather than a struct, add simple unit tests * Update SP1_SpokePool.sol * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * Rename to universal adapter * Update UniversalEventInclusionProof_Adapter.sol * Add R0_SpokePool capable of receiving events via event inclusion proofs * Update R0Steel.sol * Steel light client commitments * Update R0_SpokePool.sol * read storage slots from Helios * Change Steel call to more likely interface validateCommitment * Link Steel to SP1Helios light client * Update HeliosSteelValidator.sol * rename to IHelios * Pass in Journal instead of bytes; use eventKey as replay protection key. * Add OFT adapter to L2 spoke pools * Add OFT adapter to Universal adapter * Replace OFT/HYP with CCTP * Update SP1_SpokePool.t.sol * Rebase to master * fix * Add hub pool store deploy script * Update Journal params * Update SP1_SpokePool.sol * remove verifier from SP1SpokePool * update logs * Update SP1_SpokePool.sol * Rename Sp1SpokePool to StorageProofSpokePool, remove R0 Spoke * use challenge period timestamp as nonce in storage proof adapter * Update UniversalStorageProof_SpokePool.sol * Use slotKey as data hash * Add test to spoke pool about dataHash * Allow admin root bundles in between livenesses * Add checks for admin root bundle * Add fallback function to spoke pool * move HubPoolStore to utilities folder * Remove challenge period timestamp check * Adds more robust isAdminRootBundle check, plus unit tests We know an admin root bundle is definitely being sent whenever the pending root bundle is empty or in liveness period, or the root bundle calldata is identical to the pending root bundle. In the edge case where an admin root bundle is identicl to the pending root bundle and that pending root bundle has passed liveness, we treat the admin bundle as a normal root bundle, which is pretty much harmless * add placeholder unit tests * Update IHelios.sol * Update HubPoolStore.sol * Finish universal adapter tests * Store bytes32 at relayAdminFunctionCalldata * Finish tests * Use uint256 nonce as key in HubPoolStore * rename deploy scripts * Change isAdminSender check * Add helios.headTimestamp check * Compute slot key in contract to improve UX * Update checkStorageLayout.sh * Delete UniversalStorageProof_SpokePool.json * Delete UniversalStorageProof_SpokePool.json * Rename shorter * Update utils.hre.ts * Update admin messaging * Add storage layout * fix --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com>
…974) * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit (#926) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216ea. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit Allows Across to support inputTokens without enabling deposit routes for them, by forcing filler to take repayment of the token on the origin chain. Enhances protection against gas cost griefing vector in when executing refund leaves, since removal of this enabledDepositRoutes check would allow someone to force the refund leaf executor to call a malicious ERC20.transfer() function * add tests * Make check unilateral * Update SpokePool.Deposit.ts * apply tests * storage layouts * merge conflicts * Create SwapAndBridge.sol * Fix conflicts * Fix storage layouts * Remove solana setEnableRoute special logic * Remove MAX_ERC20_TRANSFER_GAS_COST * Update SpokePool.sol --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * feat: Add universal adapters and spoke pools (#916) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * feat: Add SP1_Adapter and SP1_SpokePool Can be used to relay messages from L1 to L2 spoke pools using SP1 + Helios * Remove sp1 import * Add simple test * Re-use storage slots in HubPoolStore - SP1_Adapter sets target == address(0) for relayRootBundle() calls to L2 as a gas-optimization - Add contractAddress to ContractPublicValues - Add deploy script with warning to NOT use create2 as we want each target spoke pool address to be unique * Update SP1_SpokePool.sol * Added replay protection * Updated event * Don't include nonce in data hash, emit data hash * Store relayRootBundle calldata with no nonce for gas optimization * Rename contract public values variables to make it clearer how storage slot proofs could be substituted for eth_call * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216ea. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * In HubPoolStore, store byes rather than a struct, add simple unit tests * Update SP1_SpokePool.sol * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * Rename to universal adapter * Update UniversalEventInclusionProof_Adapter.sol * Add R0_SpokePool capable of receiving events via event inclusion proofs * Update R0Steel.sol * Steel light client commitments * Update R0_SpokePool.sol * read storage slots from Helios * Change Steel call to more likely interface validateCommitment * Link Steel to SP1Helios light client * Update HeliosSteelValidator.sol * rename to IHelios * Pass in Journal instead of bytes; use eventKey as replay protection key. * Add OFT adapter to L2 spoke pools * Add OFT adapter to Universal adapter * Replace OFT/HYP with CCTP * Update SP1_SpokePool.t.sol * Rebase to master * fix * Add hub pool store deploy script * Update Journal params * Update SP1_SpokePool.sol * remove verifier from SP1SpokePool * update logs * Update SP1_SpokePool.sol * Rename Sp1SpokePool to StorageProofSpokePool, remove R0 Spoke * use challenge period timestamp as nonce in storage proof adapter * Update UniversalStorageProof_SpokePool.sol * Use slotKey as data hash * Add test to spoke pool about dataHash * Allow admin root bundles in between livenesses * Add checks for admin root bundle * Add fallback function to spoke pool * move HubPoolStore to utilities folder * Remove challenge period timestamp check * Adds more robust isAdminRootBundle check, plus unit tests We know an admin root bundle is definitely being sent whenever the pending root bundle is empty or in liveness period, or the root bundle calldata is identical to the pending root bundle. In the edge case where an admin root bundle is identicl to the pending root bundle and that pending root bundle has passed liveness, we treat the admin bundle as a normal root bundle, which is pretty much harmless * add placeholder unit tests * Update IHelios.sol * Update HubPoolStore.sol * Finish universal adapter tests * Store bytes32 at relayAdminFunctionCalldata * Finish tests * Use uint256 nonce as key in HubPoolStore * rename deploy scripts * Change isAdminSender check * Add helios.headTimestamp check * Compute slot key in contract to improve UX * Update checkStorageLayout.sh * Delete UniversalStorageProof_SpokePool.json * Delete UniversalStorageProof_SpokePool.json * Rename shorter * Update utils.hre.ts * Update admin messaging * Add storage layout * fix --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Rename test file to .t * improve: Add Security contact to contracts (#951) * improve(Universal_SpokePool): Clarify comments + variable names (#952) * improve(Universal_SpokePool): Clarify comments * improve(UniversalSpokePool): Clarify variable names * Deploy HubPoolStore and UniversalAdapter to Ethereum * Add some WIP deployments - still need official Helios contract * Bump constants * Make DEPRECATED_enabledDepositRoutes private * Update yarn.lock * Update upgradeSpokePool.ts * Update package.json * Update SpokePool.Fixture.ts * Deploy new impl * Update package.json --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com>
…974) * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit (#926) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216ea. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit Allows Across to support inputTokens without enabling deposit routes for them, by forcing filler to take repayment of the token on the origin chain. Enhances protection against gas cost griefing vector in when executing refund leaves, since removal of this enabledDepositRoutes check would allow someone to force the refund leaf executor to call a malicious ERC20.transfer() function * add tests * Make check unilateral * Update SpokePool.Deposit.ts * apply tests * storage layouts * merge conflicts * Create SwapAndBridge.sol * Fix conflicts * Fix storage layouts * Remove solana setEnableRoute special logic * Remove MAX_ERC20_TRANSFER_GAS_COST * Update SpokePool.sol --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * feat: Add universal adapters and spoke pools (#916) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * feat: Add SP1_Adapter and SP1_SpokePool Can be used to relay messages from L1 to L2 spoke pools using SP1 + Helios * Remove sp1 import * Add simple test * Re-use storage slots in HubPoolStore - SP1_Adapter sets target == address(0) for relayRootBundle() calls to L2 as a gas-optimization - Add contractAddress to ContractPublicValues - Add deploy script with warning to NOT use create2 as we want each target spoke pool address to be unique * Update SP1_SpokePool.sol * Added replay protection * Updated event * Don't include nonce in data hash, emit data hash * Store relayRootBundle calldata with no nonce for gas optimization * Rename contract public values variables to make it clearer how storage slot proofs could be substituted for eth_call * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216ea. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * In HubPoolStore, store byes rather than a struct, add simple unit tests * Update SP1_SpokePool.sol * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * Rename to universal adapter * Update UniversalEventInclusionProof_Adapter.sol * Add R0_SpokePool capable of receiving events via event inclusion proofs * Update R0Steel.sol * Steel light client commitments * Update R0_SpokePool.sol * read storage slots from Helios * Change Steel call to more likely interface validateCommitment * Link Steel to SP1Helios light client * Update HeliosSteelValidator.sol * rename to IHelios * Pass in Journal instead of bytes; use eventKey as replay protection key. * Add OFT adapter to L2 spoke pools * Add OFT adapter to Universal adapter * Replace OFT/HYP with CCTP * Update SP1_SpokePool.t.sol * Rebase to master * fix * Add hub pool store deploy script * Update Journal params * Update SP1_SpokePool.sol * remove verifier from SP1SpokePool * update logs * Update SP1_SpokePool.sol * Rename Sp1SpokePool to StorageProofSpokePool, remove R0 Spoke * use challenge period timestamp as nonce in storage proof adapter * Update UniversalStorageProof_SpokePool.sol * Use slotKey as data hash * Add test to spoke pool about dataHash * Allow admin root bundles in between livenesses * Add checks for admin root bundle * Add fallback function to spoke pool * move HubPoolStore to utilities folder * Remove challenge period timestamp check * Adds more robust isAdminRootBundle check, plus unit tests We know an admin root bundle is definitely being sent whenever the pending root bundle is empty or in liveness period, or the root bundle calldata is identical to the pending root bundle. In the edge case where an admin root bundle is identicl to the pending root bundle and that pending root bundle has passed liveness, we treat the admin bundle as a normal root bundle, which is pretty much harmless * add placeholder unit tests * Update IHelios.sol * Update HubPoolStore.sol * Finish universal adapter tests * Store bytes32 at relayAdminFunctionCalldata * Finish tests * Use uint256 nonce as key in HubPoolStore * rename deploy scripts * Change isAdminSender check * Add helios.headTimestamp check * Compute slot key in contract to improve UX * Update checkStorageLayout.sh * Delete UniversalStorageProof_SpokePool.json * Delete UniversalStorageProof_SpokePool.json * Rename shorter * Update utils.hre.ts * Update admin messaging * Add storage layout * fix --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Rename test file to .t * improve: Add Security contact to contracts (#951) * improve(Universal_SpokePool): Clarify comments + variable names (#952) * improve(Universal_SpokePool): Clarify comments * improve(UniversalSpokePool): Clarify variable names * Deploy HubPoolStore and UniversalAdapter to Ethereum * Add some WIP deployments - still need official Helios contract * Bump constants * Make DEPRECATED_enabledDepositRoutes private * Update yarn.lock * Update upgradeSpokePool.ts * Update package.json * Update SpokePool.Fixture.ts * Deploy new impl * Update package.json --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> Signed-off-by: Reinis Martinsons <reinis@umaproject.org>
commit 16c8972cd67e8567aa64181cd8007772b28984c3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 10:25:54 2025 +0000 fix: remove ignore-optional Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0cb0034d8dcaa50d7b78809d8fb9b5097efbd837 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed May 7 11:06:31 2025 -0400 feat: Linea CCTP V2 deployments (#950) * feat: Linea CCTP V2 deployments (#947) * feat: Deploy Linea Adapter and SpokePool with CCTP V2 support - TODO: Deploy SpokePool * Add LineaSpokePool deployment * improve: query shared bridge address dynamically (#944) * improve: query shared bridge address dynamically Signed-off-by: bennett <bennett@umaproject.org> * refactor --------- Signed-off-by: bennett <bennett@umaproject.org> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * Revert "feat: Linea CCTP V2 deployments (#947)" (#949) This reverts commit d68d1f7dfa463f9ed84d6e324ad1dac3552baeba. * Revert "Revert "feat: Linea CCTP V2 deployments (#947)" (#949)" This reverts commit 0dcf7efb929e873e172cb467a9a88a274db3b3a5. * Revert "improve: query shared bridge address dynamically (#944)" This reverts commit 2727922aa2e3c117dd15b5a54c88f8250249655c. * Rdeploy spok epool --------- Signed-off-by: bennett <bennett@umaproject.org> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cf6d2456b8acc7423e3e485295f0fc83e63a3ac8 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed May 7 10:36:16 2025 -0400 feat(UniversalSpokePool): Redeploy using correct SP1Helios (#987) The previous SP1Helios contract attached to the Universal_SpokePool doesn't have the correct UPDATER roles assigned. New Universal_SpokePool implementation deployed @ [0xF962E0e485A5B9f8aDa9a438cEecc35c0020B6e7]( https://bscscan.com/address/0xF962E0e485A5B9f8aDa9a438cEecc35c0020B6e7#code) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit f23b141da00e2d8bd89990f14dfae29f194880b8 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed May 7 10:35:48 2025 -0400 feat(SpokePoolVerifier): Redeploy with outputToken as parameter (#990) * feat(SpokePoolVerifier): Redeploy with outputToken as parameter We want to discourage setting 0x0 as the output token for deposits and the SpokePoolVerifier does this currently This PR changes the Verifier code and redeploys * feat: Deploy SpokePoolVerifier with outputToken as parameter * Redeploy * fix tests Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 01307741c94abdd0098e650ddbca91eaa6348e9d Author: Paul <108695806+pxrl@users.noreply.github.com> Date: Fri May 2 18:24:54 2025 +0200 feat: Support USDC on Lens (#986) Lens uses Circle's Bridged (upgradable) USDC standard and requires a custom bridge for it. On mainnet, the chain adapter contract needs a modified workflow to make deposits. On the L2 it's as simple as depositing via a different contract address, albeit with the same contract interface as the standard ERC20 bridge. As part of this change, both ends are updated for eventual CCTP compatibility. This introduces some configuration nuance to the constructor arguments of both contracts: usdcAddress = 0x0 => USDC tokens are routed via the standard ERC20 bridge (current required for zkSync USDC.e). usdcAddress != 0x0 AND cctpTokenMessenger != 0x0 => USDC tokens are routed via Circle's CCTP bridges. usdcAddress != 0x0 AND zkUSDCBridge != 0x0 => USDC tokens are routed via the custom bridge for Circle Bridged (upgradable) USDC. A simple check on the various constructor arguments imposed during deployment, but it's highly recommended to manually verify the configurations post-deployment. Implementation according to the Matter Labs guidance at https://github.com/matter-labs/usdc-bridge This is immediately for Lens but is generalised to apply to any zkSync-stack deployment. This implementation was audited by OpenZeppelin. Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 43c9a9321cdab3442acb2e324ce46cce589595f9 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Thu May 1 14:25:41 2025 -0400 feat: Add EVM Universal Adapter and remove deposit whitelist checks (#974) * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit (#926) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216eac40db83889cb41fb5b81aaaaf29ccd7d7. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit Allows Across to support inputTokens without enabling deposit routes for them, by forcing filler to take repayment of the token on the origin chain. Enhances protection against gas cost griefing vector in when executing refund leaves, since removal of this enabledDepositRoutes check would allow someone to force the refund leaf executor to call a malicious ERC20.transfer() function * add tests * Make check unilateral * Update SpokePool.Deposit.ts * apply tests * storage layouts * merge conflicts * Create SwapAndBridge.sol * Fix conflicts * Fix storage layouts * Remove solana setEnableRoute special logic * Remove MAX_ERC20_TRANSFER_GAS_COST * Update SpokePool.sol --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * feat: Add universal adapters and spoke pools (#916) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * feat: Add SP1_Adapter and SP1_SpokePool Can be used to relay messages from L1 to L2 spoke pools using SP1 + Helios * Remove sp1 import * Add simple test * Re-use storage slots in HubPoolStore - SP1_Adapter sets target == address(0) for relayRootBundle() calls to L2 as a gas-optimization - Add contractAddress to ContractPublicValues - Add deploy script with warning to NOT use create2 as we want each target spoke pool address to be unique * Update SP1_SpokePool.sol * Added replay protection * Updated event * Don't include nonce in data hash, emit data hash * Store relayRootBundle calldata with no nonce for gas optimization * Rename contract public values variables to make it clearer how storage slot proofs could be substituted for eth_call * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216eac40db83889cb41fb5b81aaaaf29ccd7d7. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * In HubPoolStore, store byes rather than a struct, add simple unit tests * Update SP1_SpokePool.sol * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * Rename to universal adapter * Update UniversalEventInclusionProof_Adapter.sol * Add R0_SpokePool capable of receiving events via event inclusion proofs * Update R0Steel.sol * Steel light client commitments * Update R0_SpokePool.sol * read storage slots from Helios * Change Steel call to more likely interface validateCommitment * Link Steel to SP1Helios light client * Update HeliosSteelValidator.sol * rename to IHelios * Pass in Journal instead of bytes; use eventKey as replay protection key. * Add OFT adapter to L2 spoke pools * Add OFT adapter to Universal adapter * Replace OFT/HYP with CCTP * Update SP1_SpokePool.t.sol * Rebase to master * fix * Add hub pool store deploy script * Update Journal params * Update SP1_SpokePool.sol * remove verifier from SP1SpokePool * update logs * Update SP1_SpokePool.sol * Rename Sp1SpokePool to StorageProofSpokePool, remove R0 Spoke * use challenge period timestamp as nonce in storage proof adapter * Update UniversalStorageProof_SpokePool.sol * Use slotKey as data hash * Add test to spoke pool about dataHash * Allow admin root bundles in between livenesses * Add checks for admin root bundle * Add fallback function to spoke pool * move HubPoolStore to utilities folder * Remove challenge period timestamp check * Adds more robust isAdminRootBundle check, plus unit tests We know an admin root bundle is definitely being sent whenever the pending root bundle is empty or in liveness period, or the root bundle calldata is identical to the pending root bundle. In the edge case where an admin root bundle is identicl to the pending root bundle and that pending root bundle has passed liveness, we treat the admin bundle as a normal root bundle, which is pretty much harmless * add placeholder unit tests * Update IHelios.sol * Update HubPoolStore.sol * Finish universal adapter tests * Store bytes32 at relayAdminFunctionCalldata * Finish tests * Use uint256 nonce as key in HubPoolStore * rename deploy scripts * Change isAdminSender check * Add helios.headTimestamp check * Compute slot key in contract to improve UX * Update checkStorageLayout.sh * Delete UniversalStorageProof_SpokePool.json * Delete UniversalStorageProof_SpokePool.json * Rename shorter * Update utils.hre.ts * Update admin messaging * Add storage layout * fix --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Rename test file to .t * improve: Add Security contact to contracts (#951) * improve(Universal_SpokePool): Clarify comments + variable names (#952) * improve(Universal_SpokePool): Clarify comments * improve(UniversalSpokePool): Clarify variable names * Deploy HubPoolStore and UniversalAdapter to Ethereum * Add some WIP deployments - still need official Helios contract * Bump constants * Make DEPRECATED_enabledDepositRoutes private * Update yarn.lock * Update upgradeSpokePool.ts * Update package.json * Update SpokePool.Fixture.ts * Deploy new impl * Update package.json --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b03420b5e34a4cfbc24031b3d5cdc9f47569b68f Author: Pablo Maldonado <pablomaldonadoturci@gmail.com> Date: Thu May 1 11:40:09 2025 +0100 feat(svm): fill with across plus and codama test (#985) * feat(svm): fill with across plus and codama test Signed-off-by: Pablo Maldonado <pablomaldonadoturci@gmail.com> * fix: remove .only from tests Signed-off-by: Pablo Maldonado <pablomaldonadoturci@gmail.com> --------- Signed-off-by: Pablo Maldonado <pablomaldonadoturci@gmail.com> Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 7823f55cd3fc8324a15e7880e5888230623cb06b Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed Apr 30 07:56:58 2025 -0400 Squashed commit of the following: (#980) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit f06f67bf6be8aed14cc8464ec39f4eef9239a978 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 10:18:32 2025 +0000 Revert "fix: update yarn.lock" This reverts commit d8ebec1eb1a56c427fe10f8b4dec81fc11075d57. Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cbdf24581533bef5cd650d5939dcf95b9858e1d4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 10:11:48 2025 +0000 fix: update yarn.lock Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 83f834766e71ddfe6bbd438c2605c920984a5ab1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 09:59:18 2025 +0000 fixs: ignore optional npm dependencies Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c978152bea9daaee4b8417cc65ba1248479280c0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 09:34:35 2025 +0000 fix: remove prepublish script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 144701e1ad842667a3b1765d512efac8c05a454c Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 09:07:54 2025 +0000 fix: trigger ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 74056dcefc81af8302ea88b8fed33fa9478546cb Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 08:56:15 2025 +0000 fix: expression Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1b60f373d138141cae29f64228084aff1bfaa909 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 08:38:13 2025 +0000 fix: missing shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a920b19e4e18b9d9f04c109493b320399ef58e92 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 08:36:05 2025 +0000 fix: cache evm builds Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e1075c0dfa93f2a5736873e57b6c6a5f54a85a44 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 07:08:58 2025 +0000 fix: add cache to evm artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit fa8e3f97e90dbf8e8b7367c4d0d58c9b5762c42f Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 17:37:05 2025 +0000 fix: typechain in artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b0ddc22cb39dceeb9b5a7d2d79a4c8b1477aef45 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 16:28:45 2025 +0000 fix: download path Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 9ff64386ac46a605339afdb53d3c7c9310bcec87 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 16:15:33 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 508deb53d23a545530579a9bf1a37bb99e9fa1a2 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 15:57:40 2025 +0000 fix: download path Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 11b8a7f655f1cf135bd6ba7e33730e9c3ab70376 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 15:00:06 2025 +0000 fix: missing needs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a756ca022396b360b2088762e7a4a7460fe6933d Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 14:57:49 2025 +0000 fix: evm artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 80cb0a9b9b03987ce9537bea16026366a36424d8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 14:17:49 2025 +0000 fix: build-ts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4f7af797997578077e0f5c82809d9a84dfd0ecbe Author: Reinis Martinsons <reinis@umaproject.org> Date: Wed May 7 13:57:38 2025 +0000 fix: renames Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2ca971fdc8105fe932414785f78e6609def66384 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 17:24:32 2025 +0000 fix: reorder Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a516d8669180c01aeddae9b8176896152f8775e8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 16:10:47 2025 +0000 fix: add evm Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cc61296278288fe1bf099600c7576c514e4dd80c Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 15:40:27 2025 +0000 fix: generate svm assets separately Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 17d86d813680a3037f7224a0f0050a296e3b2b39 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:31:24 2025 +0000 fix: verified production build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3ceb81190f8bd10527dc2e3a9ed6147f33ed606a Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:24:53 2025 +0000 fix: rename Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 326c7ee3cd60a03c858752a2bab18029970683b0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:07:34 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8fd9673b89ef2d6f21a30f18c673aee332ca53c3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:03:58 2025 +0000 ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 06e10226def7035912400a17549a9beb7ba417f7 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:57:45 2025 +0000 ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4e852e79bad85880a769bef4cec2ccecbcb29a46 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:40:32 2025 +0000 ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 130cdba84f4f14e81da352d5cc01205cf410a79a Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:35:49 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit df8c37b9cb3b57ef10e3b509d0a32bc96037bb0b Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:32:01 2025 +0000 fix: shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 31d05941b88b2f67462fc55fd8f6e98fc6f28cd2 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:29:19 2025 +0000 fix: rename Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 20eaa4ca9f7c7d2ee0fc14178b0cca25799e2643 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:27:34 2025 +0000 fix: move node and install to composite job Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 57f320dc71f1dc6fdea8ad9b227ee2d21d30c08e Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:17:27 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4b774c046bce696287eee750e0bb9a1901db938d Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:13:57 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 30e6039ccfec3514bde1d8229e6c3d4eb096325b Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:07:18 2025 +0000 fix: cache idl artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3b1739ebb3a0df143654e83416475f51c698a900 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 11:21:08 2025 +0000 fix: move generate svm assets script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8a401a18e11198cd3a1e96b7b8a01d8d03b8de4a Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 11:00:36 2025 +0000 fix: reuse svm cache action Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 02a53710669101747d1e5f0f8de50cc6f4405c58 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 10:36:26 2025 +0000 fix: remove cargo cache Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c1b94746ddaa72d7fd7a3ac155fac283f099ab71 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 10:27:35 2025 +0000 fix: update comments Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c72dc1eed61cdec47a70f0a2aacef8d9e23255f8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 10:09:20 2025 +0000 fix: download svm artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6c375752258a1202088c738078372f9008d216c6 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 09:52:44 2025 +0000 fix: svm assets in artefact Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 518948b3654dc4b1d8d6817aa3cc59d2d2cc1578 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 17:24:23 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2162e786a6895078926d32d6cfc54897c4784f4f Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 17:23:04 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 714abf14ee5b8b108da2575060863ddc1d33354a Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:27:12 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 19a5ca529434c0fc18fb91d8159142785594b398 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:23:47 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit ffdafb23c52752844486cabfa1974fb69d05a7d5 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:09:24 2025 +0000 fix: use bash Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 514304bafaad8a28903e810ba651ffd0cfc005cd Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:00:58 2025 +0000 fix: separate idl build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0e5dbfd5af757d9b2eda630b503d60add34e5b67 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:46:11 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a4182d40d3d6ebf4213e20d2e891e841d51f374a Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:41:34 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 30e045726281936b44ca30448e3c4364a5d590bb Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:34:02 2025 +0000 fix: cargo cache Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 9192075c6d406f3620173ac3f0c285f93a0f373a Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:30:53 2025 +0000 fix: setup solana anchor Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 144f119e6588f504e844a00a3d19ebdac3e84f37 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:28:20 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 692244059eca216428086cb21a8ee70a7b57bb7d Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:00:47 2025 +0000 fix: lint job Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 459910dfeb6d99236d618b9b84f61d22cb5435ec Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:54:46 2025 +0000 fixs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 31cb9f93bd7309f91053df72f12dfb8bce5c2d34 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:50:09 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5c718fb685b7323e833a9255ec179d86cb05d74b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:47:54 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1949268be81ba118fc98547e67daec2daa5030e1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:45:47 2025 +0000 fix: remove solana from linting Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6c288a7854315d07ce5d27d10e57d6ce3238d8dd Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 13:25:35 2025 +0000 fix: disable cache Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit ccaadea89420495d5c91ed78dbf2ca9d476f8769 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 13:20:44 2025 +0000 fix: dbug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5163985a1a466966487d0e574d60c39da38e5b6c Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 13:18:49 2025 +0000 fix: dbug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 7d6b6d4a6d9ae48063ea002404f788cbe6ad23fb Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:57:31 2025 +0000 fix: add back evm build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1c3bd16a4cfad884f685c55137deef4acbd1df75 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:54:24 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6d2a1f153160d5fda4c57f68b597df516e23fab9 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:50:59 2025 +0000 fix: add outputs to composite action Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c94cd2d259dc316cecd6995da2ea72a72a16bc41 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:44:51 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1e0b5f8930d2c4d06718a47fce08893e7151d68b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:34:10 2025 +0000 fix: reorder Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 09d024fd3333c3167e1070042e7d77a5bfb95f10 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:23:06 2025 +0000 fix: generate svm assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4cd0bb7798145fa47a85e69c123c30cc493608a8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:13:47 2025 +0000 fix: add shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b5037f0d817cde641d0b5a9c220d510d8c5a2a79 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:11:36 2025 +0000 fix: cache svm assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8d0ace358b84319c7b48129515dbfc2b2f7617a0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:33:51 2025 +0000 fix: trigger pr Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0d52cefbf271a294c5374b0b39bc9a66889ff93b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:27:46 2025 +0000 fix: cache idls Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 061e9af8c062346edef097f0d780af1de177011b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:14:44 2025 +0000 fix: install dependencies first Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 17be47718466b0e55d8889f86d8d23dffb497f99 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:08:26 2025 +0000 fix: add shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2f609a6c76a21f2de1f80bfdfc3d1fd27b6a6010 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:06:12 2025 +0000 fix: build svm assets script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6817fca42300226ae2de67f8ebdde8afa40cf6f4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 09:52:02 2025 +0000 fix: composite actions Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit fe655f81078c7c2650b021d0642b1c875dff86a9 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:16:18 2025 +0000 fix: build svm script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2f4f6000cdaa16718132b0c7e5ebd37571ec9343 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:14:43 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 928c8fc49ca9478437178dfe43e39738dd50b8c6 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:08:26 2025 +0000 fix: cache svm clients Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4208f34b41c4c10109c622cea98a6bde15ee23ee Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:05:14 2025 +0000 fix: cache svm assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 665edfefa151bff867dfcdf0ee237eb531d6d6d7 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 06:40:41 2025 +0000 test: only codama deposit Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit aa51b282ebac1e5976bd2bab732d5235ce69b950 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 06:26:48 2025 +0000 fix: cache verified build assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 9170f2711c7af0a1d5020b6b218ae18dfee28b98 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:57:50 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 760b3b68a69b46ec2538a887062e56a16157e8df Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:26:31 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 00d790855cd2ba8c10f4c30b0ddae1722298f833 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:23:37 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c07821e2b36dd58174fc3162fb47404659f4c88f Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:21:25 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b6632c7c48ceab862d41bc4ff03d1dd34862ae64 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:18:40 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b6a53a6237047a1c549262e82ff3f5f0407eb09c Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:15:52 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5019fc43869f44d2661814d72d6ffbba1c15f6c3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:48:20 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c7f65e71da418834fc6b97442ded0ec5689c103b Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:42:10 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e73ea3cbb8b555780e3d60a7dc7fa9dccc2a2dad Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:39:03 2025 +0000 fix: comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb4e556b44ff54245e49e515fcc6704a70253e8c Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:30:35 2025 +0000 fix: comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 97650fb23790d9b198bd02a858e26c2e92586d0a Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:21:41 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 72ad5016d762239f9bdf59973979fb1428fb5fb4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:17:16 2025 +0000 fix: remove keypairs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit bcae287b52aba2693e390c4733988287154a6588 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:58:23 2025 +0000 fix: versioned cache key Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6c5f3c52af98ff3e45e3fb89a41bd538a7694ca0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:56:05 2025 +0000 fix: cache idl and types Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 76a5df3cee14cdb0bf5f7c6cb377931f263d8a7e Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:49:07 2025 +0000 fix: trigger ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 046df93edd73dee807fa29cd9643a689ce76a69d Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:39:17 2025 +0000 fix: cache verified Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0b1580b28d16a8e6f60238bc917e0017c3e6bd26 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:45:02 2025 +0000 fix: sudo Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5d9e185512a1e906d33805af2b93103b23f1049f Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:35:35 2025 +0000 fix: sudo Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb5fbd9c7e2def35d507d1fcee1b53dad3304e57 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:30:56 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 00b574ff141ad32e2da4a19061f8c2df5f0b3c4d Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:10:10 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 68a0b79d5debb67b0895a244ad3a7a2a1a90bfb3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 09:33:27 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit dcbfe36c36fd818e760daf0e86b5fa8ab6c32e32 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 09:29:10 2025 +0000 fix: check permissions Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b967735280099d943146d21415152b8d04d9dbea Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:26:24 2025 +0000 fix: remove metadata Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5c3e7b61085b9eac89a47e61cbbe1aa69c7bd974 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:25:09 2025 +0000 fix: missing dirs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit fbc2ffa0ac47edd1c7268db173187bc48175a8c1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:08:35 2025 +0000 fix: metadata Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb927544f623d0d3df9e5bb0ed5c5393980abbdf Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:04:17 2025 +0000 fix: test verified build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 39f371ae5dd9a9f61b152a677e78fe4321005ecf Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 19:00:21 2025 +0000 fix: test cache hit Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit de358df78035e5c216c71099468102f74c6923c8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 18:48:11 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4f920b441b3fbbfce74f08a1229989ffb93c2bd8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 18:37:26 2025 +0000 fix: cargo metadata Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e7d7528a92856d9375ed41a832fb182b6d7e75ec Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 18:18:30 2025 +0000 fix: add test build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 7b658c938a203cdf3dca5fa6a851a70256ba7286 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 17:54:54 2025 +0000 fix: try regular build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e106fea498ba1025c2dae5fd2a009edfebea945b Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 17:35:15 2025 +0000 fix: more debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 183a3bf0c86a23b029cba876ceb99c4f3c1a988c Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 17:12:10 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb825bdd619a946c4c29e337d94cc2998434a429 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:47:33 2025 +0000 fix: trigger ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3fd1141c784189d7e46a626818f1955ae48fa2eb Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:40:48 2025 +0000 fix: cargo target dir Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit ed150f7608390bba276c0ec3a6544188f47423ba Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:23:45 2025 +0000 fix: test regular build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 04c23675ad41c7952a19ef6ea63d73f69732ab50 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:09:17 2025 +0000 fix: move copy-idl to prepublish Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3b41124adee1ad120bf76df97553903bb7edcd2b Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 15:33:44 2025 +0000 fix: cache cargo in verified build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit bc7ab236b95a50fed84a877226787ba51c66e4d4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 14:20:34 2025 +0000 fix: separate evm workflow Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 46fed97486276c369d7fd759d60f5762fad168cb Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 13:36:12 2025 +0000 fix: use matrix node Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b4be36f5f231ac10425837e52c87fdbbf3a95a30 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 13:25:38 2025 +0000 fix: remove temp workflow Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit accb0f80d0c517cf8e37f658f24d61b3b50d13d0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 11:49:53 2025 +0000 fix: optimize lint Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 398d744fd58a8c7ad1b4df8622b43c1dcce8a1ad Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 11:37:48 2025 +0000 fix: optimize forge job Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 06054c11023f927d18bc1659ef6b4a66cffa0b8e Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 10:41:27 2025 +0000 fix: artifact version Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8996a1515c44bfbd46def6a2324672f3185d8ad5 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 10:08:24 2025 +0000 fix: ci syntax Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5bb10ace2d114cfbb3a3f1c485b2b0d1533c1b96 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:59:40 2025 +0000 fix: ci syntax Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 01887d92c4ce411a55b335eab746e810155168d1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:57:34 2025 +0000 fix: include matrix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cf79fa0388635886bd31305d039c4795b395de5c Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:53:27 2025 +0000 fix: include matrix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit f1a97a36a1c3689132c850ec3f4fe8e0fa8268e2 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:46:55 2025 +0000 fix: rename Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit afde508fd1629ab7af79cd5f218dbecc21c1d552 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:44:58 2025 +0000 fix: test dependant c…
commit 16c8972cd67e8567aa64181cd8007772b28984c3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 10:25:54 2025 +0000 fix: remove ignore-optional Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0cb0034d8dcaa50d7b78809d8fb9b5097efbd837 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed May 7 11:06:31 2025 -0400 feat: Linea CCTP V2 deployments (#950) * feat: Linea CCTP V2 deployments (#947) * feat: Deploy Linea Adapter and SpokePool with CCTP V2 support - TODO: Deploy SpokePool * Add LineaSpokePool deployment * improve: query shared bridge address dynamically (#944) * improve: query shared bridge address dynamically Signed-off-by: bennett <bennett@umaproject.org> * refactor --------- Signed-off-by: bennett <bennett@umaproject.org> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * Revert "feat: Linea CCTP V2 deployments (#947)" (#949) This reverts commit d68d1f7dfa463f9ed84d6e324ad1dac3552baeba. * Revert "Revert "feat: Linea CCTP V2 deployments (#947)" (#949)" This reverts commit 0dcf7efb929e873e172cb467a9a88a274db3b3a5. * Revert "improve: query shared bridge address dynamically (#944)" This reverts commit 2727922aa2e3c117dd15b5a54c88f8250249655c. * Rdeploy spok epool --------- Signed-off-by: bennett <bennett@umaproject.org> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cf6d2456b8acc7423e3e485295f0fc83e63a3ac8 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed May 7 10:36:16 2025 -0400 feat(UniversalSpokePool): Redeploy using correct SP1Helios (#987) The previous SP1Helios contract attached to the Universal_SpokePool doesn't have the correct UPDATER roles assigned. New Universal_SpokePool implementation deployed @ [0xF962E0e485A5B9f8aDa9a438cEecc35c0020B6e7]( https://bscscan.com/address/0xF962E0e485A5B9f8aDa9a438cEecc35c0020B6e7#code) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit f23b141da00e2d8bd89990f14dfae29f194880b8 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed May 7 10:35:48 2025 -0400 feat(SpokePoolVerifier): Redeploy with outputToken as parameter (#990) * feat(SpokePoolVerifier): Redeploy with outputToken as parameter We want to discourage setting 0x0 as the output token for deposits and the SpokePoolVerifier does this currently This PR changes the Verifier code and redeploys * feat: Deploy SpokePoolVerifier with outputToken as parameter * Redeploy * fix tests Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 01307741c94abdd0098e650ddbca91eaa6348e9d Author: Paul <108695806+pxrl@users.noreply.github.com> Date: Fri May 2 18:24:54 2025 +0200 feat: Support USDC on Lens (#986) Lens uses Circle's Bridged (upgradable) USDC standard and requires a custom bridge for it. On mainnet, the chain adapter contract needs a modified workflow to make deposits. On the L2 it's as simple as depositing via a different contract address, albeit with the same contract interface as the standard ERC20 bridge. As part of this change, both ends are updated for eventual CCTP compatibility. This introduces some configuration nuance to the constructor arguments of both contracts: usdcAddress = 0x0 => USDC tokens are routed via the standard ERC20 bridge (current required for zkSync USDC.e). usdcAddress != 0x0 AND cctpTokenMessenger != 0x0 => USDC tokens are routed via Circle's CCTP bridges. usdcAddress != 0x0 AND zkUSDCBridge != 0x0 => USDC tokens are routed via the custom bridge for Circle Bridged (upgradable) USDC. A simple check on the various constructor arguments imposed during deployment, but it's highly recommended to manually verify the configurations post-deployment. Implementation according to the Matter Labs guidance at https://github.com/matter-labs/usdc-bridge This is immediately for Lens but is generalised to apply to any zkSync-stack deployment. This implementation was audited by OpenZeppelin. Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 43c9a9321cdab3442acb2e324ce46cce589595f9 Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Thu May 1 14:25:41 2025 -0400 feat: Add EVM Universal Adapter and remove deposit whitelist checks (#974) * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit (#926) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216eac40db83889cb41fb5b81aaaaf29ccd7d7. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * feat(SpokePool): Remove enabledDepositRoutes check for unsafeDeposit Allows Across to support inputTokens without enabling deposit routes for them, by forcing filler to take repayment of the token on the origin chain. Enhances protection against gas cost griefing vector in when executing refund leaves, since removal of this enabledDepositRoutes check would allow someone to force the refund leaf executor to call a malicious ERC20.transfer() function * add tests * Make check unilateral * Update SpokePool.Deposit.ts * apply tests * storage layouts * merge conflicts * Create SwapAndBridge.sol * Fix conflicts * Fix storage layouts * Remove solana setEnableRoute special logic * Remove MAX_ERC20_TRANSFER_GAS_COST * Update SpokePool.sol --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * feat: Add universal adapters and spoke pools (#916) * fix(ZkSync_SpokePool): Add __gap (#907) * fix(ZkSync_SpokePool): Add __gap This contract gets extended by the Lens_SpokePool which doesn't add any storage but we should add it in case a future variable gets added to the Lens_SpokePool * Update ZkSync_SpokePool.json * feat: Add SP1_Adapter and SP1_SpokePool Can be used to relay messages from L1 to L2 spoke pools using SP1 + Helios * Remove sp1 import * Add simple test * Re-use storage slots in HubPoolStore - SP1_Adapter sets target == address(0) for relayRootBundle() calls to L2 as a gas-optimization - Add contractAddress to ContractPublicValues - Add deploy script with warning to NOT use create2 as we want each target spoke pool address to be unique * Update SP1_SpokePool.sol * Added replay protection * Updated event * Don't include nonce in data hash, emit data hash * Store relayRootBundle calldata with no nonce for gas optimization * Rename contract public values variables to make it clearer how storage slot proofs could be substituted for eth_call * Add `OFTTransportAdapter` to support cross-chain token transfers of `USDT0` via `OFT` messaging protocol (#902) * first draft of OFTTransportAdapter Signed-off-by: Ihor Farion <ihor@umaproject.org> * update yarn.lock file Signed-off-by: Ihor Farion <ihor@umaproject.org> * Revert "update yarn.lock file" This reverts commit 4c216eac40db83889cb41fb5b81aaaaf29ccd7d7. Signed-off-by: Ihor Farion <ihor@umaproject.org> * add yarn.lock compatible with master Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish OFTTransportAdapter, add OFT support to Arbitrum_Adapter on L1, and Arbitrum_SpokePool on L2 Signed-off-by: Ihor Farion <ihor@umaproject.org> * polish + fix missing approval Signed-off-by: Ihor Farion <ihor@umaproject.org> * add context for dstEid Signed-off-by: Ihor Farion <ihor@umaproject.org> * address most of the PR comments about contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * update deploy scripts, add tests for OFT messaging, polish contracts Signed-off-by: Ihor Farion <ihor@umaproject.org> * cleanup comments and extraneous log file Signed-off-by: Ihor Farion <ihor@umaproject.org> * revert package.json prepublish change Signed-off-by: Ihor Farion <ihor@umaproject.org> * generalize oft adapter to support multiple tokens. Introduce OFTAddressBook to support that. Update deploy / test scripts to reflect new functionality Signed-off-by: Ihor Farion <ihor@umaproject.org> * add __gap to ArbitrumSpokePool, update stale comments on OFTTransportAdapter, update layouts of ArbitrumSpokePool and AlephZeroSpokePool Signed-off-by: Ihor Farion <ihor@umaproject.org> * update some comments; adjust fee cap naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix deploy script, remove incorrect values from consts Signed-off-by: Ihor Farion <ihor@umaproject.org> * improve comment Signed-off-by: Ihor Farion <ihor@umaproject.org> * add oftFeeCap as a param to arbitrum adapter construction Signed-off-by: Ihor Farion <ihor@umaproject.org> * move OFT functionality to SpokePool for easy further integration and removing boilerplate code Signed-off-by: Ihor Farion <ihor@umaproject.org> * remove layerzero from foundry remappings Signed-off-by: Ihor Farion <ihor@umaproject.org> * address licensing comment; add permalink to LZ OFT code on github Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix a couple of comment typos Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * In HubPoolStore, store byes rather than a struct, add simple unit tests * Update SP1_SpokePool.sol * feat(SpokePoolPeriphery): Support multiple exchanges (#777) * feat(SpokePoolPeriphery): Support multiple exchanges Currently we can only initialize the periphery contract with a single exchange to swap with. This PR allows us to initialize it with multiple exchanges to swap with. Like before, these initial set of exchanges and function selectors cannot be changed post-initialization, which gives the user assurances. * rename * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Update SpokeV3PoolPeriphery.sol * Add unit tests * Add whitelistExchanges only owner method * rename * Remove onlyOwner * Remove whitelist of exchanges, add proxy to bypass approval abuse Make user approve proxy contract so no one can use `exchange` + `routerCalldata` to steal their already approved funds via the `SpokePoolPeriphery` * Add some protection to callSpokePoolPeriphery * Only call swapAndBridge through proxy * move periphery funcs into proxy * Update SpokePoolV3Periphery.sol * remove depositERC20 * Update SpokePoolV3Periphery.sol * Add back safeTransferFron's to permit funcs * Add unit tests that check if calling deposit and swapAndBridge with no value fails directly * Add interfaces to make sure we don't add new functions as easily * Add Create2Factory * feat: add permit2 entrypoints to the periphery (#782) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: sponsored swap and deposits (#790) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * factor out signature checking Signed-off-by: bennett <bennett@umaproject.org> --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Co-authored-by: nicholaspai <npai.nyc@gmail.com> * feat: Delete SwapAndBridge and add submission fees to gasless flow (#809) * feat: add permit2 entrypoints to the periphery Signed-off-by: Bennett <bennett@umaproject.org> * Update test/evm/foundry/local/SpokePoolPeriphery.t.sol * Update SpokePoolPeriphery.t.sol * move permit2 to proxy * fix permit2 Signed-off-by: bennett <bennett@umaproject.org> * wip: swap arguments refactor Signed-off-by: bennett <bennett@umaproject.org> * implement isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * 1271 Signed-off-by: bennett <bennett@umaproject.org> * simplify isValidSignature Signed-off-by: bennett <bennett@umaproject.org> * rebase /programs on master Signed-off-by: nicholaspai <npai.nyc@gmail.com> * clean up comments * rebase programs * feat: sponsored swap and deposits Signed-off-by: bennett <bennett@umaproject.org> * fix: consolidate structs so that permit2 witnesses cover inputs Signed-off-by: bennett <bennett@umaproject.org> * begin permit2 unit tests Signed-off-by: bennett <bennett@umaproject.org> * rebase * Update SpokePoolPeriphery.t.sol * move type definitions to interface Signed-off-by: bennett <bennett@umaproject.org> * fix permit2 test Signed-off-by: bennett <bennett@umaproject.org> * transfer type tests Signed-off-by: bennett <bennett@umaproject.org> * rename EIP1271Signature to Permi2Approval Signed-off-by: bennett <bennett@umaproject.org> * add mockERC20 which implements permit/receiveWithAuthorization Signed-off-by: bennett <bennett@umaproject.org> * add tests for permit, permit2, and receiveWithAuth swaps/deposits Signed-off-by: bennett <bennett@umaproject.org> * add tests for invalid witnesses Signed-off-by: bennett <bennett@umaproject.org> * feat: Delete SwapAndBridge and add submission fees to gasless flow SwapAndBridge is to be replaced with SpokePoolV3Periphery Gasless flows will require user to cover gas cost of whoever submits the transaction, but they can be set to 0 if the user wants to submit themselves. * Internal refactor * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol * Update SpokePoolV3Periphery.sol * Update PeripherySigningLib.sol --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Bennett <bennett@umaproject.org> * Update SpokePoolV3Periphery.sol * Update SpokePoolPeriphery.t.sol * Move all comments to interface and use inherit doc * fix: eip712 types and hashes (#821) * refactor comments Signed-off-by: bennett <bennett@umaproject.org> * Create IERC20Auth.sol * fix tests * Comments --------- Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Single AddressBook for all adapters (#919) * use a single address book instead of 1 per adapter for oft / xerc20 storage needs Signed-off-by: Ihor Farion <ihor@umaproject.org> * update comments and naming Signed-off-by: Ihor Farion <ihor@umaproject.org> * add a gas optimization suggested in OFT PR Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments and minor improvements Signed-off-by: Ihor Farion <ihor@umaproject.org> * fix spokePool test Signed-off-by: Ihor Farion <ihor@umaproject.org> * address PR comments Signed-off-by: Ihor Farion <ihor@umaproject.org> --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> * Rename to universal adapter * Update UniversalEventInclusionProof_Adapter.sol * Add R0_SpokePool capable of receiving events via event inclusion proofs * Update R0Steel.sol * Steel light client commitments * Update R0_SpokePool.sol * read storage slots from Helios * Change Steel call to more likely interface validateCommitment * Link Steel to SP1Helios light client * Update HeliosSteelValidator.sol * rename to IHelios * Pass in Journal instead of bytes; use eventKey as replay protection key. * Add OFT adapter to L2 spoke pools * Add OFT adapter to Universal adapter * Replace OFT/HYP with CCTP * Update SP1_SpokePool.t.sol * Rebase to master * fix * Add hub pool store deploy script * Update Journal params * Update SP1_SpokePool.sol * remove verifier from SP1SpokePool * update logs * Update SP1_SpokePool.sol * Rename Sp1SpokePool to StorageProofSpokePool, remove R0 Spoke * use challenge period timestamp as nonce in storage proof adapter * Update UniversalStorageProof_SpokePool.sol * Use slotKey as data hash * Add test to spoke pool about dataHash * Allow admin root bundles in between livenesses * Add checks for admin root bundle * Add fallback function to spoke pool * move HubPoolStore to utilities folder * Remove challenge period timestamp check * Adds more robust isAdminRootBundle check, plus unit tests We know an admin root bundle is definitely being sent whenever the pending root bundle is empty or in liveness period, or the root bundle calldata is identical to the pending root bundle. In the edge case where an admin root bundle is identicl to the pending root bundle and that pending root bundle has passed liveness, we treat the admin bundle as a normal root bundle, which is pretty much harmless * add placeholder unit tests * Update IHelios.sol * Update HubPoolStore.sol * Finish universal adapter tests * Store bytes32 at relayAdminFunctionCalldata * Finish tests * Use uint256 nonce as key in HubPoolStore * rename deploy scripts * Change isAdminSender check * Add helios.headTimestamp check * Compute slot key in contract to improve UX * Update checkStorageLayout.sh * Delete UniversalStorageProof_SpokePool.json * Delete UniversalStorageProof_SpokePool.json * Rename shorter * Update utils.hre.ts * Update admin messaging * Add storage layout * fix --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> * Rename test file to .t * improve: Add Security contact to contracts (#951) * improve(Universal_SpokePool): Clarify comments + variable names (#952) * improve(Universal_SpokePool): Clarify comments * improve(UniversalSpokePool): Clarify variable names * Deploy HubPoolStore and UniversalAdapter to Ethereum * Add some WIP deployments - still need official Helios contract * Bump constants * Make DEPRECATED_enabledDepositRoutes private * Update yarn.lock * Update upgradeSpokePool.ts * Update package.json * Update SpokePool.Fixture.ts * Deploy new impl * Update package.json --------- Signed-off-by: Ihor Farion <ihor@umaproject.org> Signed-off-by: Bennett <bennett@umaproject.org> Signed-off-by: bennett <bennett@umaproject.org> Signed-off-by: nicholaspai <npai.nyc@gmail.com> Co-authored-by: Ihor Farion <65650773+grasphoper@users.noreply.github.com> Co-authored-by: bmzig <57361391+bmzig@users.noreply.github.com> Co-authored-by: Bennett <bennett@umaproject.org> Co-authored-by: Dong-Ha Kim <dongha.kim210@gmail.com> Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b03420b5e34a4cfbc24031b3d5cdc9f47569b68f Author: Pablo Maldonado <pablomaldonadoturci@gmail.com> Date: Thu May 1 11:40:09 2025 +0100 feat(svm): fill with across plus and codama test (#985) * feat(svm): fill with across plus and codama test Signed-off-by: Pablo Maldonado <pablomaldonadoturci@gmail.com> * fix: remove .only from tests Signed-off-by: Pablo Maldonado <pablomaldonadoturci@gmail.com> --------- Signed-off-by: Pablo Maldonado <pablomaldonadoturci@gmail.com> Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 7823f55cd3fc8324a15e7880e5888230623cb06b Author: nicholaspai <9457025+nicholaspai@users.noreply.github.com> Date: Wed Apr 30 07:56:58 2025 -0400 Squashed commit of the following: (#980) Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit f06f67bf6be8aed14cc8464ec39f4eef9239a978 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 10:18:32 2025 +0000 Revert "fix: update yarn.lock" This reverts commit d8ebec1eb1a56c427fe10f8b4dec81fc11075d57. Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cbdf24581533bef5cd650d5939dcf95b9858e1d4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 10:11:48 2025 +0000 fix: update yarn.lock Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 83f834766e71ddfe6bbd438c2605c920984a5ab1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 09:59:18 2025 +0000 fixs: ignore optional npm dependencies Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c978152bea9daaee4b8417cc65ba1248479280c0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 09:34:35 2025 +0000 fix: remove prepublish script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 144701e1ad842667a3b1765d512efac8c05a454c Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 09:07:54 2025 +0000 fix: trigger ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 74056dcefc81af8302ea88b8fed33fa9478546cb Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 08:56:15 2025 +0000 fix: expression Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1b60f373d138141cae29f64228084aff1bfaa909 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 08:38:13 2025 +0000 fix: missing shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a920b19e4e18b9d9f04c109493b320399ef58e92 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 08:36:05 2025 +0000 fix: cache evm builds Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e1075c0dfa93f2a5736873e57b6c6a5f54a85a44 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 9 07:08:58 2025 +0000 fix: add cache to evm artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit fa8e3f97e90dbf8e8b7367c4d0d58c9b5762c42f Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 17:37:05 2025 +0000 fix: typechain in artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b0ddc22cb39dceeb9b5a7d2d79a4c8b1477aef45 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 16:28:45 2025 +0000 fix: download path Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 9ff64386ac46a605339afdb53d3c7c9310bcec87 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 16:15:33 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 508deb53d23a545530579a9bf1a37bb99e9fa1a2 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 15:57:40 2025 +0000 fix: download path Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 11b8a7f655f1cf135bd6ba7e33730e9c3ab70376 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 15:00:06 2025 +0000 fix: missing needs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a756ca022396b360b2088762e7a4a7460fe6933d Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 14:57:49 2025 +0000 fix: evm artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 80cb0a9b9b03987ce9537bea16026366a36424d8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 8 14:17:49 2025 +0000 fix: build-ts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4f7af797997578077e0f5c82809d9a84dfd0ecbe Author: Reinis Martinsons <reinis@umaproject.org> Date: Wed May 7 13:57:38 2025 +0000 fix: renames Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2ca971fdc8105fe932414785f78e6609def66384 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 17:24:32 2025 +0000 fix: reorder Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a516d8669180c01aeddae9b8176896152f8775e8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 16:10:47 2025 +0000 fix: add evm Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cc61296278288fe1bf099600c7576c514e4dd80c Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 15:40:27 2025 +0000 fix: generate svm assets separately Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 17d86d813680a3037f7224a0f0050a296e3b2b39 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:31:24 2025 +0000 fix: verified production build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3ceb81190f8bd10527dc2e3a9ed6147f33ed606a Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:24:53 2025 +0000 fix: rename Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 326c7ee3cd60a03c858752a2bab18029970683b0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:07:34 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8fd9673b89ef2d6f21a30f18c673aee332ca53c3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 13:03:58 2025 +0000 ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 06e10226def7035912400a17549a9beb7ba417f7 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:57:45 2025 +0000 ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4e852e79bad85880a769bef4cec2ccecbcb29a46 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:40:32 2025 +0000 ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 130cdba84f4f14e81da352d5cc01205cf410a79a Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:35:49 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit df8c37b9cb3b57ef10e3b509d0a32bc96037bb0b Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:32:01 2025 +0000 fix: shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 31d05941b88b2f67462fc55fd8f6e98fc6f28cd2 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:29:19 2025 +0000 fix: rename Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 20eaa4ca9f7c7d2ee0fc14178b0cca25799e2643 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:27:34 2025 +0000 fix: move node and install to composite job Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 57f320dc71f1dc6fdea8ad9b227ee2d21d30c08e Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:17:27 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4b774c046bce696287eee750e0bb9a1901db938d Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:13:57 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 30e6039ccfec3514bde1d8229e6c3d4eb096325b Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 12:07:18 2025 +0000 fix: cache idl artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3b1739ebb3a0df143654e83416475f51c698a900 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 11:21:08 2025 +0000 fix: move generate svm assets script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8a401a18e11198cd3a1e96b7b8a01d8d03b8de4a Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 11:00:36 2025 +0000 fix: reuse svm cache action Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 02a53710669101747d1e5f0f8de50cc6f4405c58 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 10:36:26 2025 +0000 fix: remove cargo cache Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c1b94746ddaa72d7fd7a3ac155fac283f099ab71 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 10:27:35 2025 +0000 fix: update comments Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c72dc1eed61cdec47a70f0a2aacef8d9e23255f8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 10:09:20 2025 +0000 fix: download svm artifacts Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6c375752258a1202088c738078372f9008d216c6 Author: Reinis Martinsons <reinis@umaproject.org> Date: Tue May 6 09:52:44 2025 +0000 fix: svm assets in artefact Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 518948b3654dc4b1d8d6817aa3cc59d2d2cc1578 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 17:24:23 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2162e786a6895078926d32d6cfc54897c4784f4f Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 17:23:04 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 714abf14ee5b8b108da2575060863ddc1d33354a Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:27:12 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 19a5ca529434c0fc18fb91d8159142785594b398 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:23:47 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit ffdafb23c52752844486cabfa1974fb69d05a7d5 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:09:24 2025 +0000 fix: use bash Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 514304bafaad8a28903e810ba651ffd0cfc005cd Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 16:00:58 2025 +0000 fix: separate idl build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0e5dbfd5af757d9b2eda630b503d60add34e5b67 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:46:11 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit a4182d40d3d6ebf4213e20d2e891e841d51f374a Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:41:34 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 30e045726281936b44ca30448e3c4364a5d590bb Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:34:02 2025 +0000 fix: cargo cache Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 9192075c6d406f3620173ac3f0c285f93a0f373a Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:30:53 2025 +0000 fix: setup solana anchor Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 144f119e6588f504e844a00a3d19ebdac3e84f37 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:28:20 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 692244059eca216428086cb21a8ee70a7b57bb7d Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 15:00:47 2025 +0000 fix: lint job Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 459910dfeb6d99236d618b9b84f61d22cb5435ec Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:54:46 2025 +0000 fixs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 31cb9f93bd7309f91053df72f12dfb8bce5c2d34 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:50:09 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5c718fb685b7323e833a9255ec179d86cb05d74b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:47:54 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1949268be81ba118fc98547e67daec2daa5030e1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 14:45:47 2025 +0000 fix: remove solana from linting Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6c288a7854315d07ce5d27d10e57d6ce3238d8dd Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 13:25:35 2025 +0000 fix: disable cache Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit ccaadea89420495d5c91ed78dbf2ca9d476f8769 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 13:20:44 2025 +0000 fix: dbug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5163985a1a466966487d0e574d60c39da38e5b6c Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 13:18:49 2025 +0000 fix: dbug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 7d6b6d4a6d9ae48063ea002404f788cbe6ad23fb Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:57:31 2025 +0000 fix: add back evm build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1c3bd16a4cfad884f685c55137deef4acbd1df75 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:54:24 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6d2a1f153160d5fda4c57f68b597df516e23fab9 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:50:59 2025 +0000 fix: add outputs to composite action Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c94cd2d259dc316cecd6995da2ea72a72a16bc41 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:44:51 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 1e0b5f8930d2c4d06718a47fce08893e7151d68b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:34:10 2025 +0000 fix: reorder Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 09d024fd3333c3167e1070042e7d77a5bfb95f10 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:23:06 2025 +0000 fix: generate svm assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4cd0bb7798145fa47a85e69c123c30cc493608a8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:13:47 2025 +0000 fix: add shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b5037f0d817cde641d0b5a9c220d510d8c5a2a79 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 12:11:36 2025 +0000 fix: cache svm assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8d0ace358b84319c7b48129515dbfc2b2f7617a0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:33:51 2025 +0000 fix: trigger pr Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0d52cefbf271a294c5374b0b39bc9a66889ff93b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:27:46 2025 +0000 fix: cache idls Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 061e9af8c062346edef097f0d780af1de177011b Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:14:44 2025 +0000 fix: install dependencies first Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 17be47718466b0e55d8889f86d8d23dffb497f99 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:08:26 2025 +0000 fix: add shell Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2f609a6c76a21f2de1f80bfdfc3d1fd27b6a6010 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 10:06:12 2025 +0000 fix: build svm assets script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6817fca42300226ae2de67f8ebdde8afa40cf6f4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 09:52:02 2025 +0000 fix: composite actions Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit fe655f81078c7c2650b021d0642b1c875dff86a9 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:16:18 2025 +0000 fix: build svm script Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 2f4f6000cdaa16718132b0c7e5ebd37571ec9343 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:14:43 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 928c8fc49ca9478437178dfe43e39738dd50b8c6 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:08:26 2025 +0000 fix: cache svm clients Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4208f34b41c4c10109c622cea98a6bde15ee23ee Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 07:05:14 2025 +0000 fix: cache svm assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 665edfefa151bff867dfcdf0ee237eb531d6d6d7 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 06:40:41 2025 +0000 test: only codama deposit Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit aa51b282ebac1e5976bd2bab732d5235ce69b950 Author: Reinis Martinsons <reinis@umaproject.org> Date: Mon May 5 06:26:48 2025 +0000 fix: cache verified build assets Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 9170f2711c7af0a1d5020b6b218ae18dfee28b98 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:57:50 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 760b3b68a69b46ec2538a887062e56a16157e8df Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:26:31 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 00d790855cd2ba8c10f4c30b0ddae1722298f833 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:23:37 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c07821e2b36dd58174fc3162fb47404659f4c88f Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:21:25 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b6632c7c48ceab862d41bc4ff03d1dd34862ae64 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:18:40 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b6a53a6237047a1c549262e82ff3f5f0407eb09c Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 13:15:52 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5019fc43869f44d2661814d72d6ffbba1c15f6c3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:48:20 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit c7f65e71da418834fc6b97442ded0ec5689c103b Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:42:10 2025 +0000 fix: test caching Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e73ea3cbb8b555780e3d60a7dc7fa9dccc2a2dad Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:39:03 2025 +0000 fix: comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb4e556b44ff54245e49e515fcc6704a70253e8c Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:30:35 2025 +0000 fix: comment Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 97650fb23790d9b198bd02a858e26c2e92586d0a Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:21:41 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 72ad5016d762239f9bdf59973979fb1428fb5fb4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 12:17:16 2025 +0000 fix: remove keypairs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit bcae287b52aba2693e390c4733988287154a6588 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:58:23 2025 +0000 fix: versioned cache key Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 6c5f3c52af98ff3e45e3fb89a41bd538a7694ca0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:56:05 2025 +0000 fix: cache idl and types Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 76a5df3cee14cdb0bf5f7c6cb377931f263d8a7e Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:49:07 2025 +0000 fix: trigger ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 046df93edd73dee807fa29cd9643a689ce76a69d Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 11:39:17 2025 +0000 fix: cache verified Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 0b1580b28d16a8e6f60238bc917e0017c3e6bd26 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:45:02 2025 +0000 fix: sudo Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5d9e185512a1e906d33805af2b93103b23f1049f Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:35:35 2025 +0000 fix: sudo Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb5fbd9c7e2def35d507d1fcee1b53dad3304e57 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:30:56 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 00b574ff141ad32e2da4a19061f8c2df5f0b3c4d Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 10:10:10 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 68a0b79d5debb67b0895a244ad3a7a2a1a90bfb3 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 09:33:27 2025 +0000 fix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit dcbfe36c36fd818e760daf0e86b5fa8ab6c32e32 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 09:29:10 2025 +0000 fix: check permissions Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b967735280099d943146d21415152b8d04d9dbea Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:26:24 2025 +0000 fix: remove metadata Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5c3e7b61085b9eac89a47e61cbbe1aa69c7bd974 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:25:09 2025 +0000 fix: missing dirs Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit fbc2ffa0ac47edd1c7268db173187bc48175a8c1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:08:35 2025 +0000 fix: metadata Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb927544f623d0d3df9e5bb0ed5c5393980abbdf Author: Reinis Martinsons <reinis@umaproject.org> Date: Fri May 2 07:04:17 2025 +0000 fix: test verified build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 39f371ae5dd9a9f61b152a677e78fe4321005ecf Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 19:00:21 2025 +0000 fix: test cache hit Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit de358df78035e5c216c71099468102f74c6923c8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 18:48:11 2025 +0000 fix: cleanup Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 4f920b441b3fbbfce74f08a1229989ffb93c2bd8 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 18:37:26 2025 +0000 fix: cargo metadata Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e7d7528a92856d9375ed41a832fb182b6d7e75ec Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 18:18:30 2025 +0000 fix: add test build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 7b658c938a203cdf3dca5fa6a851a70256ba7286 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 17:54:54 2025 +0000 fix: try regular build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit e106fea498ba1025c2dae5fd2a009edfebea945b Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 17:35:15 2025 +0000 fix: more debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 183a3bf0c86a23b029cba876ceb99c4f3c1a988c Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 17:12:10 2025 +0000 fix: debug Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cb825bdd619a946c4c29e337d94cc2998434a429 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:47:33 2025 +0000 fix: trigger ci Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3fd1141c784189d7e46a626818f1955ae48fa2eb Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:40:48 2025 +0000 fix: cargo target dir Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit ed150f7608390bba276c0ec3a6544188f47423ba Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:23:45 2025 +0000 fix: test regular build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 04c23675ad41c7952a19ef6ea63d73f69732ab50 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 16:09:17 2025 +0000 fix: move copy-idl to prepublish Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 3b41124adee1ad120bf76df97553903bb7edcd2b Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 15:33:44 2025 +0000 fix: cache cargo in verified build Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit bc7ab236b95a50fed84a877226787ba51c66e4d4 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 14:20:34 2025 +0000 fix: separate evm workflow Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 46fed97486276c369d7fd759d60f5762fad168cb Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 13:36:12 2025 +0000 fix: use matrix node Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit b4be36f5f231ac10425837e52c87fdbbf3a95a30 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 13:25:38 2025 +0000 fix: remove temp workflow Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit accb0f80d0c517cf8e37f658f24d61b3b50d13d0 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 11:49:53 2025 +0000 fix: optimize lint Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 398d744fd58a8c7ad1b4df8622b43c1dcce8a1ad Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 11:37:48 2025 +0000 fix: optimize forge job Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 06054c11023f927d18bc1659ef6b4a66cffa0b8e Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 10:41:27 2025 +0000 fix: artifact version Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 8996a1515c44bfbd46def6a2324672f3185d8ad5 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 10:08:24 2025 +0000 fix: ci syntax Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 5bb10ace2d114cfbb3a3f1c485b2b0d1533c1b96 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:59:40 2025 +0000 fix: ci syntax Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit 01887d92c4ce411a55b335eab746e810155168d1 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:57:34 2025 +0000 fix: include matrix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit cf79fa0388635886bd31305d039c4795b395de5c Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:53:27 2025 +0000 fix: include matrix Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit f1a97a36a1c3689132c850ec3f4fe8e0fa8268e2 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:46:55 2025 +0000 fix: rename Signed-off-by: Reinis Martinsons <reinis@umaproject.org> commit afde508fd1629ab7af79cd5f218dbecc21c1d552 Author: Reinis Martinsons <reinis@umaproject.org> Date: Thu May 1 09:44:58 2025 +0000 fix: test dependant c…
With current design, we need to use 1
AddressBook
per chain adapter, because we have no way to distinguish which adapter is using theAddressBook
. This PR changes that, indexing the storage data additionally byADAPTER_ID