weweswap / contracts

smart contracts
MIT License
1 stars 4 forks source link

68 merge goodle #69

Closed bitcoinbrisbane closed 2 weeks ago

bitcoinbrisbane commented 2 weeks ago

Summary by CodeRabbit

coderabbitai[bot] commented 2 weeks ago

Walkthrough

This pull request introduces multiple new Solidity contracts and interfaces related to the Uniswap V3 protocol. Key additions include the IUniswapV3 interface with a getPool function, the UniswapV3ViaRouter, Uniswapv3, and UniswapDynamicFee contracts for facilitating token swaps, and the MergeWithMarket contract for merging tokens with market functionality. A mock contract named MockUniswapV3 is also added for testing purposes. Additionally, import paths for the IMergeV2 interface are updated across several contracts, and new dependencies are included in the package.json file.

Changes

File Path Change Summary
contracts/interfaces/IAMM.sol - Interface added: IAMM
- Methods added: function buy(uint256 amount, address token, bytes calldata extraData) external returns (uint256)
- Methods added: function sell(uint256 amount, address token, bytes calldata extraData) external returns (uint256)
- Method added: function swap(uint256 amount, address token, address recipient, bytes calldata extraData) external returns (uint256)
- Event added: event Swapped(uint256 amount, uint256 amountOut, address token, address indexed recipient)
contracts/core/adaptors/IUniswapV3.sol - Interface added: IUniswapV3
- Method added: function getPool(address tokenA, address tokenB, uint24 fee) external view returns (address pool)
contracts/core/adaptors/UniswapV3ViaRouter.sol - Contract added: UniswapV3ViaRouter
- Method added: function setFee(uint24 _fee) external onlyOwner
- Method added: function swap(uint256 amount, address token, address recipient, bytes calldata extraData) external returns (uint256)
- Method added: function _swap(address tokenIn, address from, address recipient, uint256 amountIn, uint256 amountOutMinimum) private returns (uint256 amountOut)
contracts/core/amm/Uniswap.sol - Contract added: Uniswapv3
- Public variable added: uint24 public fee
- Method added: function setFee(uint24 _fee) external onlyOwner
- Methods added: function buy(uint256 amount, address token, bytes calldata extraData) external returns (uint256)
- Methods added: function sell(uint256 amount, address token, bytes calldata extraData) external returns (uint256)
contracts/core/amm/UniswapDynamic.sol - Contract added: UniswapDynamicFee
- Methods added: function buy(uint256 amount, address token, bytes calldata extraData) external returns (uint256)
- Methods added: function sell(uint256 amount, address token, bytes calldata extraData) external returns (uint256)
- Method added: function _swap(address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOutMinimum, uint24 fee) private returns (uint256 amountOut)
contracts/core/merge/MergeWithMarket.sol - Contract added: MergeWithMarket
- Constructor added: constructor(address _wewe, address token)
- Method added: function mergeAndSell(uint256 amount, IAMM amm, bytes calldata extraData) external
contracts/core/mocks/MockAMM.sol - Contract added: MockUniswapV3
- Methods added: function buy(uint256 amount, address token, bytes calldata extraData) external pure returns (uint256)
- Methods added: function sell(uint256 amount, address token, bytes calldata extraData) external pure returns (uint256)
contracts/core/merge/BBroMerge.sol - Import path updated: import "./IMergeV2.sol";import "../../interfaces/IMergeV2.sol";
contracts/core/merge/BroMerge.sol - Import path updated: import "./IMergeV2.sol";import "../../interfaces/IMergeV2.sol";
contracts/core/merge/GenericMerge.sol - Import path updated: import "./IMergeV2.sol";import "../../interfaces/IMergeV2.sol";
contracts/core/merge/MergeFactory.sol - Import path updated: import "./IMergeV2.sol";import "../../interfaces/IMergeV2.sol";
package.json - Dependency updated: "hardhat": "^2.22.11""hardhat": "^2.22.13"
- Dependency added: "@uniswap/v3-core": "^1.0.1"
- Dependency added: "@uniswap/v3-periphery": "^1.4.4"
- New script added: "deploy:uni": "npx hardhat ignition deploy ignition/modules/UniAdaptor.ts --network base --verify"
test/Uniswap.test.ts - New test suite added: describe("UniswapV3 Adaptor", ...)
- New function added: async function deployFixture(TYPE: string = "UniswapV3ViaRouter")
- New test cases added for various functionalities

Possibly related PRs

Suggested labels

SC

Suggested reviewers

Poem

In the warren where tokens play,
New contracts hop and sway.
With pools and fees, they dance around,
In the Uniswap world, joy is found!
So let us trade and merge with glee,
For every swap brings harmony! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit , please review it.` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
bitcoinbrisbane commented 2 weeks ago

Todo: Add withdraw

xBi0 commented 2 weeks ago

merge is SellandBuy to Wewe