master

Master Thesis code
git clone git://popovic.xyz/master.git
Log | Files | Refs | README | LICENSE

interfaces.rs (1782B)


      1 use alloy::sol;
      2 
      3 sol!(
      4     #[sol(rpc)]
      5     interface IUniswapV3Pool {
      6         function slot0() external view returns (
      7             uint160 sqrtPriceX96,
      8             int24 tick,
      9             uint16 observationIndex,
     10             uint16 observationCardinality,
     11             uint16 observationCardinalityNext,
     12             uint8 feeProtocol,
     13             bool unlocked
     14         );
     15 
     16         function token0() external view returns (
     17             address adr
     18         );
     19 
     20         function token1() external view returns (
     21             address adr
     22         );
     23 
     24         function fee() external view returns (
     25             uint24 fee
     26         );
     27     }
     28 );
     29 
     30 sol!(
     31     #[sol(rpc)]
     32     interface IUniswapV2Pool {
     33         function getReserves() external view returns (
     34             uint112 reserve0,
     35             uint112 reserve1,
     36             uint32 blockTimestampLast
     37         );
     38 
     39         function token0() external view returns (
     40             address adr
     41         );
     42 
     43         function token1() external view returns (
     44             address adr
     45         );
     46 
     47         function fee() external view returns (
     48             uint24 fee
     49         );
     50     }
     51 );
     52 
     53 sol!(
     54     #[sol(rpc)]
     55     interface IERC20 {
     56         function balanceOf(address account) external view returns (
     57             uint256 balance
     58         );
     59 
     60         function decimals() external view returns (
     61             uint8 decimals
     62         );
     63 
     64         function name() external view returns (
     65             string name
     66         );
     67 
     68         function symbol() external view returns (
     69             string symbol
     70         );
     71     }
     72 );
     73 
     74 sol!(
     75     #[sol(rpc)]
     76     event PairCreated(address indexed token0, address indexed token1, address pair, uint);
     77     event PoolCreated(address indexed token0, address indexed token1, uint24 indexed fee, int24 tickSpacing, address pool);
     78 );