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 );