Skip to content

Add token sweeping functions to Arbitrum Bridge Receiver#733

Merged
scott-silver merged 1 commit intosilver/arbitrumfrom
silver/arbitrum-sweep-tokens
May 4, 2023
Merged

Add token sweeping functions to Arbitrum Bridge Receiver#733
scott-silver merged 1 commit intosilver/arbitrumfrom
silver/arbitrum-sweep-tokens

Conversation

@scott-silver
Copy link
Copy Markdown
Contributor

@scott-silver scott-silver commented Apr 7, 2023

This PR adds native token and ERC20 sweeping functions to the Arbitrum bridge receiver per OpenZeppelin's recommendations.

Changes include:

  • a SweepableBridgeReceiver contract, which exposes sweepToken and sweepNativeToken functions that can be called by the localTimelock (adapted from the Bulker contract
  • aBridgeReceiverCore contract that is shared by BaseBridgeReceiver and SweepableBridgeReceiver (to allow both to use the localTimelock variable and the Unauthorized custom error)
  • unit tests, including a SweepableBridgeReceiver harness contract

@scott-silver scott-silver force-pushed the silver/arbitrum-sweep-tokens branch from c4358d9 to 3d45676 Compare April 10, 2023 20:57
Copy link
Copy Markdown
Contributor

@kevincheng96 kevincheng96 left a comment

Choose a reason for hiding this comment

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

Looks great!

@scott-silver scott-silver force-pushed the silver/arbitrum-sweep-tokens branch from b290ce0 to 6fc6be6 Compare April 11, 2023 16:36
@kevincheng96
Copy link
Copy Markdown
Contributor

This should be ready to merge.

@scott-silver scott-silver merged commit 2efa3e0 into silver/arbitrum May 4, 2023
scott-silver added a commit that referenced this pull request May 4, 2023
kevincheng96 added a commit that referenced this pull request May 15, 2023
* Arbitrum deployment

* Arbitrum mainnet (#717)

* update github actions

* add configuration file

* deploy script

* add inbox to roots

* update hardhat config

* update etherscan.ts

* template string in Spider trace fn

* Arbitrum whale

* MAINNET_TIMELOCK instead of mainnetTimelock.address

* add inbox to mainnet/usdc relations

* missing whale error

* add LINK, LINK whale

add Arbitrum SDK; bump hardhat-etherscan version; ARBISCAN_KEY; add l1GatewayRouter to roots; update getCompWhales

* CometRewards with multiplier (#702)

* Initial implementation of CometRewards with multiplier

* Simply implementation a bit

* Refactor slightly for more readability

* Update unit tests

* Implement setRewardsClaimed (#703)

This PR introduces a `setRewardsClaimed` function that gives the admin the ability to set rewards claimed for any user. This gives us the ability to initialize a new reward distribution that doesn't necessarily have to retroactively reward all past usage of Comet. 

We would have to compute off-chain the amount that each user would be able to claim at a specific block number `x` and write it on-chain via the `setRewardsClaimed` function. This allows us to essentially set the start time of the rewards accrual to be after that specific block number `x`.

* Add scenarios for testing reward multipliers

* Re-implement multiplier logic by storing multiplier in RewardConfig

* Add a unit test to sanity check zeroing out retroactive rewards for users

* restore hardhat-etherscan version; createCrossChainProposal; Goerli l1GatewayRouter

* update ArbitrumBridgeScenario

* refactor, rename in relayArbitrumMessage

* Pin Solidity version (#731)

* replace LINK with ARB

* pull in ARB in deploy.ts

* replace nock with undici in VerifyTest

* specify shanghai hardfork

* Emit event when setting rewards claimed (#736)

* Update aliases to include arbitrum prefix

* updates from #719 to enable proposals

* Fix spidering when using explicit address in relations config; use addresses to indicate ERC20 proxies in relations

* Adjust timelock delay on testnet

* Move arbitrum cross-chain scenario into cross-chain governance scenarios file

* Add pauseGuardian for arbitrum goerli

* Add custom chain for arbitrum goerli to verify on etherscan

* Add api key for arbitrum goerli

* Modified deployment roots from GitHub Actions

* add Arbitrum pauseGuardian address to config

* SweepableBridgeReceiver, tests (#733)

* Add custom chain in hardhat etherscan config for arbitrum

* Modified deployment roots from GitHub Actions

* Arbitrum proposals (#719)

* Arbitrum proposals

* update Arbitrum aliases in proposals

* update asset supply caps

* spider in verify()

* add prices to BulkerScenario

* restore original asset variables; update supply cap expectations; enable diffState test for Arbitrum-Goerli

* Add arb to enact-migration.yaml

* Modified migration from GitHub Actions

* Finalize arb gas estimation

* update proposal description

* update diffState test

* add action to set v2 COMP speeds for USDT to 0; update Arbitrum baseSupplySpeed

* Skip calling verify on migrations that are already enacted

* Update COMP amount to bridge and hardcoded gas price; modify proposal text to be more specific about shifting COMP distributions from USDT v2 to Arbitrum

* Change skip to skipVerify

* Add COMP whale for arbitrum-goerli

* Modified migration from GitHub Actions

---------

Co-authored-by: kevincheng96 <kevincheng96@hotmail.com>
Co-authored-by: GitHub Actions Bot <>

* Small fixes for Arbitrum scenarios

---------

Co-authored-by: Kevin Cheng <kevincheng96@hotmail.com>
Co-authored-by: GitHub Actions Bot <>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants