syntax = "proto3"; package pancakeswap.v3; message Pool { bytes address = 1; bytes token0 = 2; bytes token1 = 3; uint64 fee = 4; bytes created_tx_hash = 5; } // A struct describing a transaction. message Transaction { // The transaction hash. bytes hash = 1; // The sender of the transaction. bytes from = 2; // The receiver of the transaction. bytes to = 3; // The transactions index within the block. uint64 index = 4; } // A change to a pool's tick. message TickDelta { // The address of the pool. bytes pool_address = 1; // The index of the tick. int32 tick_index = 2; // The liquidity net delta of this tick. Bigint encoded as signed little endian bytes. bytes liquidity_net_delta = 3; // Used to determine the order of the balance changes. Necessary for the balance store. uint64 ordinal = 4; Transaction transaction = 5; } // A group of TickDelta message TickDeltas { repeated TickDelta deltas = 1; } // A change to a pool's liquidity. message LiquidityChange { // The address of the pool. bytes pool_address = 1; // The liquidity changed amount. Bigint encoded as signed little endian bytes. bytes value = 2; // The type of update, can be absolute or delta. LiquidityChangeType change_type = 3; // Used to determine the order of the balance changes. Necessary for the balance store. uint64 ordinal = 4; Transaction transaction = 5; } // A group of LiquidityChange message LiquidityChanges { repeated LiquidityChange changes = 1; } enum LiquidityChangeType { DELTA = 0; ABSOLUTE = 1; } message Events { repeated PoolEvent pool_events = 3; message PoolEvent { oneof type { Initialize initialize = 1; Mint mint = 2; Collect collect = 3; Burn burn = 4; Swap swap = 5; Flash flash = 6; SetFeeProtocol set_fee_protocol = 7; CollectProtocol collect_protocol = 8; } uint64 log_ordinal = 100; string pool_address = 102; string token0 = 103; string token1 = 104; uint64 fee = 105; Transaction transaction = 106; message Initialize { // Unsigned string sqrt_price = 1; int32 tick = 2; } message Mint { string sender = 1; string owner = 2; // Signed int32 tick_lower = 3; // Signed int32 tick_upper = 4; // Unsigned string amount = 5; // Unsigned string amount_0 = 6; // Unsigned string amount_1 = 7; } message Collect { string owner = 1; string recipient = 2; int32 tick_lower = 3; int32 tick_upper = 4; // Unsigned string amount_0 = 5; // Unsigned string amount_1 = 6; } message Burn { string owner = 1; int32 tick_lower = 2; int32 tick_upper = 3; // Unsigned string amount = 4; // Unsigned string amount_0 = 5; // Unsigned string amount_1 = 6; } message Swap { string sender = 1; string recipient = 2; // Signed string amount_0 = 3; // Signed string amount_1 = 4; // Unsigned string sqrt_price = 6; // Unsigned string liquidity = 7; int32 tick = 8; } message Flash { string sender = 1; string recipient = 2; // Unsigned string amount_0 = 3; // Unsigned string amount_1 = 4; // Unsigned string paid_0 = 5; // Unsigned string paid_1 = 6; } message SetFeeProtocol { // Unsigned uint64 fee_protocol_0_old = 1; // Unsigned uint64 fee_protocol_1_old = 2; // Unsigned uint64 fee_protocol_0_new = 3; // Unsigned uint64 fee_protocol_1_new = 4; } message CollectProtocol { string sender = 1; string recipient = 2; // Unsigned string amount_0 = 3; // Unsigned string amount_1 = 4; } } }