kabu_defi_pools/protocols/
sushiswap.rs

1use crate::protocols::helper::get_uniswap2pool_address;
2use crate::protocols::protocol::Protocol;
3use alloy::primitives::{Address, B256};
4use kabu_defi_address_book::FactoryAddress;
5
6pub struct SushiswapProtocol {}
7
8impl SushiswapProtocol {
9    pub fn get_pool_address_for_tokens(token0: Address, token1: Address) -> Address {
10        let init_code: B256 = "e18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303".parse().unwrap();
11        get_uniswap2pool_address(token0, token1, FactoryAddress::SUSHISWAP_V2, init_code)
12    }
13}
14
15impl Protocol for SushiswapProtocol {
16    fn get_pool_address_vec_for_tokens(token0: Address, token1: Address) -> Vec<Address> {
17        vec![SushiswapProtocol::get_pool_address_for_tokens(token0, token1)]
18    }
19}