Raw Uniswap events

proxima.univ2.{network}.domain-events.2_0

Uniswap V2 events parsed from logs emitted by pool contracts.

TypeScript schema:

export type Univ2Event = NewPair | PairTx;

export interface NewPair {
  type: "NewPair";

  address: string;
  token0: string;
  token1: string;
}

export interface PairTx {
  type: "PairTx";

  pairAddress: string;
  sync: SyncState;
  event: PairEvent;
}

export interface SyncState {
  reserve0: string;
  reserve1: string;
}

export type PairEvent = MintEvent | BurnEvent | SwapEvent | OtherEvent;

export interface MintEvent {
  type: "Mint";

  sender: string;
  mintsTo: EthTransfer[];
  amount0: string;
  amount1: string;
}

export interface EthTransfer {
  from: string;
  to: string;
  value: string;
}

export interface BurnEvent {
  type: "Burn";

  sender: string;
  amount0: string;
  amount1: string;
  burnTransfers: EthTransfer[];
  feeTransfers: EthTransfer[];
}

export interface SwapEvent {
  type: "Swap";

  to: string;
  sender: string;
  amount0In: string;
  amount1In: string;
  amount0Out: string;
  amount1Out: string;
}

export class OtherEvent {
  type = "Other" as const;
}

proxima.univ3.{network}.domain-events.2_0

Uniswap V3 events parsed from logs emitted by pool contracts.

TypeScript schema:

export type Univ3Event = FactoryEvent | PoolTx;

export type FactoryEvent = PoolCreated | OwnerChanged | FeeAmountEnabled;

export type PoolCreated = {
  type: "PoolCreated";

  poolAddress: Address;
  token0: string;
  token1: string;
  fee: number;
  tickSpacing: number;
};

export interface OwnerChanged {
  type: "OwnerChanged";

  oldOwner: Address;
  newOwner: Address;
}

export interface FeeAmountEnabled {
  type: "FeeAmountEnabled";

  fee: number;
  tickSpacing: number;
}

export interface PoolTx {
  type: "PoolTx";

  poolAddress: string;
  event: PoolEvent;
}

export type PoolEvent = DexEvent | FlashLoanEvent | OracleEvent;

export type DexEvent = Swap | Burn | Mint | Collect | Initialize;

export type OracleEvent = IncreaseObservationCardinalityNext;

export type FlashLoanEvent = SetFeeProtocol | CollectProtocol | Flash;

export type Swap = {
  type: "Swap";

  sender: Address;
  recipient: Address;
  amount0: EthNumber;
  amount1: EthNumber;
  sqrtPriceX96: EthNumber;
  liquidity: EthNumber;
  tick: number;
};

export type Burn = {
  type: "Burn";

  owner: Address;
  tickLower: number;
  tickUpper: number;
  amount: EthNumber;
  amount0: EthNumber;
  amount1: EthNumber;
};

export type Mint = {
  type: "Mint";

  sender: Address;
  owner: Address;
  tickLower: number;
  tickUpper: number;
  amount: EthNumber;
  amount0: EthNumber;
  amount1: EthNumber;
};

export type Collect = {
  type: "Collect";

  owner: Address;
  recipient: Address;
  tickLower: number;
  tickUpper: number;
  amount0: EthNumber;
  amount1: EthNumber;
};

export type Initialize = {
  type: "Initialize";

  sqrtPriceX96: EthNumber;
  tick: number;
};

export type IncreaseObservationCardinalityNext = {
  type: "IncreaseObservationCardinalityNext";

  observationCardinalityNextOld: number;
  observationCardinalityNextNew: number;
};

export type CollectProtocol = {
  type: "CollectProtocol";

  sender: Address;
  recipient: Address;
  amount0: EthNumber;
  amount1: EthNumber;
};

export type SetFeeProtocol = {
  type: "SetFeeProtocol";

  feeProtocol0Old: number;
  feeProtocol1Old: number;
  feeProtocol0New: number;
  feeProtocol1New: number;
};

export type Flash = {
  type: "Flash";

  sender: Address;
  recipient: Address;
  amount0: EthNumber;
  amount1: EthNumber;
  paid0: EthNumber;
  paid1: EthNumber;
};

export type EthNumber = string;
export type Address = string;

Last updated