Proxima
  • 🎉Introduction
    • Welcome to Proxima
  • 🌊Streams
    • Overview
    • Quick start
    • Using streams
    • Our streams
      • Block headers
      • New tokens/collections
      • DEX events
      • Exchange rates
      • Private streams
        • Mangrove
        • All ERC20 events
        • All ERC721 events
        • Raw Uniswap events
      • Smart contract's events
    • Understanding streams
    • Architecture
  • 💾Data APIs
    • APIs
      • Fungible tokens
      • Decentralized exchanges
      • Account balances
  • 🚧Maru
    • Introduction
    • Programming Model
    • How Maru works
      • Architecture
      • Dataflow
      • Economics
      • Domain Specific Language
      • Arrangements
      • Open Problems
    • Background Knowledge
      • Multiset Hashes
      • Plonky2
    • Use Cases
      • Lifting Expensive Computation Off-Chain
      • Social Graph Database
      • Indexer
Powered by GitBook
On this page
  • proxima.univ2.{network}.domain-events.2_0
  • proxima.univ3.{network}.domain-events.2_0
  1. Streams
  2. Our streams
  3. Private streams

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;
PreviousAll ERC721 eventsNextSmart contract's events

Last updated 2 years ago

🌊