feat: add Pancakeswap v3 Substreams module (#178)
* feat: Add Pancakeswap V3 Substreams module At this point it's just hard copy of Uniswap V3. It will be adapted in the following commits to make reviewing easier. * refactor: adapt uniswapv3 module logic for pancakeswap v3 The main change is how they handle protocol fees. Protocol fees are set by default depending on the fee of the pool. * refactor: use new protobuf structs The "EntityChanges" got deprecated in favor of the hybrid messages. This commit makes PancakeswapV3 module use the new structs. * fix: set correct factory address --------- Co-authored-by: zizou <111426680+flopell@users.noreply.github.com> Co-authored-by: Louise Poole <louise@datarevenue.com>
This commit is contained in:
125
substreams/ethereum-pancakeswap-v3/ethereum-pancakeswap-v3.yaml
Normal file
125
substreams/ethereum-pancakeswap-v3/ethereum-pancakeswap-v3.yaml
Normal file
@@ -0,0 +1,125 @@
|
||||
specVersion: v0.1.0
|
||||
package:
|
||||
name: "ethereum_pancakeswap_v3"
|
||||
version: v0.1.1
|
||||
|
||||
protobuf:
|
||||
files:
|
||||
- tycho/evm/v1/entity.proto
|
||||
- tycho/evm/v1/common.proto
|
||||
- tycho/evm/v1/utils.proto
|
||||
- pancakeswap.proto
|
||||
importPaths:
|
||||
- ./proto/v1
|
||||
- ../../proto/
|
||||
|
||||
binaries:
|
||||
default:
|
||||
type: wasm/rust-v1
|
||||
file: ../target/wasm32-unknown-unknown/release/ethereum_pancakeswap_v3.wasm
|
||||
|
||||
modules:
|
||||
- name: map_pools_created
|
||||
kind: map
|
||||
initialBlock: 16950686
|
||||
inputs:
|
||||
- params: string
|
||||
- source: sf.ethereum.type.v2.Block
|
||||
output:
|
||||
type: proto:tycho.evm.v1.BlockChanges
|
||||
|
||||
- name: store_pools
|
||||
kind: store
|
||||
initialBlock: 16950686
|
||||
updatePolicy: set_if_not_exists
|
||||
valueType: proto:pancakeswap.v3.Pool
|
||||
inputs:
|
||||
- map: map_pools_created
|
||||
|
||||
- name: map_events
|
||||
kind: map
|
||||
initialBlock: 16950686
|
||||
inputs:
|
||||
- source: sf.ethereum.type.v2.Block
|
||||
- store: store_pools
|
||||
output:
|
||||
type: proto:pancakeswap.v3.Events
|
||||
|
||||
- name: map_balance_changes
|
||||
kind: map
|
||||
initialBlock: 16950686
|
||||
inputs:
|
||||
- map: map_events
|
||||
output:
|
||||
type: proto:tycho.evm.v1.BlockBalanceDeltas
|
||||
|
||||
- name: store_pools_balances
|
||||
kind: store
|
||||
initialBlock: 16950686
|
||||
updatePolicy: add
|
||||
valueType: bigint
|
||||
inputs:
|
||||
- map: map_balance_changes
|
||||
|
||||
- name: map_ticks_changes
|
||||
kind: map
|
||||
initialBlock: 16950686
|
||||
inputs:
|
||||
- map: map_events
|
||||
output:
|
||||
type: proto:pancakeswap.v3.TickDeltas
|
||||
|
||||
- name: store_ticks_liquidity
|
||||
kind: store
|
||||
initialBlock: 16950686
|
||||
updatePolicy: add
|
||||
valueType: bigint
|
||||
inputs:
|
||||
- map: map_ticks_changes
|
||||
|
||||
- name: store_pool_current_tick
|
||||
kind: store
|
||||
initialBlock: 16950686
|
||||
updatePolicy: set
|
||||
valueType: int64
|
||||
inputs:
|
||||
- map: map_events
|
||||
|
||||
- name: map_liquidity_changes
|
||||
kind: map
|
||||
initialBlock: 16950686
|
||||
inputs:
|
||||
- map: map_events
|
||||
- store: store_pool_current_tick
|
||||
output:
|
||||
type: proto:pancakeswap.v3.LiquidityChanges
|
||||
|
||||
- name: store_liquidity
|
||||
kind: store
|
||||
initialBlock: 16950686
|
||||
updatePolicy: set_sum
|
||||
valueType: bigint
|
||||
inputs:
|
||||
- map: map_liquidity_changes
|
||||
|
||||
- name: map_protocol_changes
|
||||
kind: map
|
||||
initialBlock: 16950686
|
||||
inputs:
|
||||
- source: sf.ethereum.type.v2.Block
|
||||
- map: map_pools_created
|
||||
- map: map_events
|
||||
- map: map_balance_changes
|
||||
- store: store_pools_balances
|
||||
mode: deltas
|
||||
- map: map_ticks_changes
|
||||
- store: store_ticks_liquidity
|
||||
mode: deltas
|
||||
- map: map_liquidity_changes
|
||||
- store: store_liquidity
|
||||
mode: deltas
|
||||
output:
|
||||
type: proto:tycho.evm.v1.BlockChanges
|
||||
|
||||
params:
|
||||
map_pools_created: "0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865"
|
||||
Reference in New Issue
Block a user