chore: fix CI
This commit is contained in:
@@ -8,6 +8,7 @@ use substreams::store::{
|
|||||||
use crate::hex::Hexable;
|
use crate::hex::Hexable;
|
||||||
|
|
||||||
/// HasAddresser is a trait that a few functionalities in this crate depend on.
|
/// HasAddresser is a trait that a few functionalities in this crate depend on.
|
||||||
|
///
|
||||||
/// Every time we need to filter something by address (events emmited by a set of addresses,
|
/// Every time we need to filter something by address (events emmited by a set of addresses,
|
||||||
/// storage changes occurring on certain contracts, etc) you'll likely need
|
/// storage changes occurring on certain contracts, etc) you'll likely need
|
||||||
/// to provide a HasAddresser.
|
/// to provide a HasAddresser.
|
||||||
|
|||||||
@@ -100,4 +100,4 @@ impl<'a> EventHandler<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,13 +52,15 @@ impl From<InterimContractChange> for tycho::ContractChange {
|
|||||||
|
|
||||||
/// Extracts all contract changes relevant to vm simulations
|
/// Extracts all contract changes relevant to vm simulations
|
||||||
///
|
///
|
||||||
/// This is the main logic of the substreams integration. It takes a raw ethereum block on input and extracts the BlockContractChanges stream. It includes tracking:
|
/// This is the main logic of the substreams integration. It takes a raw ethereum block on input and
|
||||||
|
/// extracts the BlockContractChanges stream. It includes tracking:
|
||||||
/// - new pool initializations
|
/// - new pool initializations
|
||||||
/// - all storage slot changes for the Ambient contract
|
/// - all storage slot changes for the Ambient contract
|
||||||
/// - all ERC20 balance changes for the Ambient pools
|
/// - all ERC20 balance changes for the Ambient pools
|
||||||
/// - all code changes and balance updates of the Ambient contract
|
/// - all code changes and balance updates of the Ambient contract
|
||||||
///
|
///
|
||||||
/// Generally we detect all changes in transactions sequentially and detect if it is a CREATE or UPDATE change based on already present data.
|
/// Generally we detect all changes in transactions sequentially and detect if it is a CREATE or
|
||||||
|
/// UPDATE change based on already present data.
|
||||||
#[substreams::handlers::map]
|
#[substreams::handlers::map]
|
||||||
fn map_changes(
|
fn map_changes(
|
||||||
block: eth::v2::Block,
|
block: eth::v2::Block,
|
||||||
@@ -83,7 +85,8 @@ fn map_changes(
|
|||||||
|
|
||||||
for block_tx in block.transactions() {
|
for block_tx in block.transactions() {
|
||||||
// Extract storage changes for all contracts relevant to this protocol system.
|
// Extract storage changes for all contracts relevant to this protocol system.
|
||||||
// Ambient is a protocol system consisting of many ProtocolComponents (one for each pool), but they all share the same AMBIENT_CONTRACT contract.
|
// Ambient is a protocol system consisting of many ProtocolComponents (one for each pool),
|
||||||
|
// but they all share the same AMBIENT_CONTRACT contract.
|
||||||
let mut storage_changes = block_tx
|
let mut storage_changes = block_tx
|
||||||
.calls
|
.calls
|
||||||
.iter()
|
.iter()
|
||||||
@@ -105,7 +108,7 @@ fn map_changes(
|
|||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
// Detect all pool initializations
|
// Detect all pool initializations
|
||||||
// Official documentation: https://docs.ambient.finance/developers/dex-contract-interface/pool-initialization
|
// Official documentation: https://docs.ambient.finance/developers/dex-contract-interface/pool-initialization
|
||||||
for call in ambient_calls {
|
for call in ambient_calls {
|
||||||
if call.input.len() < 4 {
|
if call.input.len() < 4 {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ message Events {
|
|||||||
|
|
||||||
message Event {
|
message Event {
|
||||||
oneof type {
|
oneof type {
|
||||||
DepositEvent deposit_type = 10;
|
DepositEvent deposit = 10;
|
||||||
WithdrawEvent withdraw_type = 20;
|
WithdrawEvent withdraw = 20;
|
||||||
SyncEvent sync_type = 30;
|
SyncEvent sync = 30;
|
||||||
SwapEvent swap_type = 40;
|
SwapEvent swap = 40;
|
||||||
}
|
}
|
||||||
|
|
||||||
string hash = 100;
|
string hash = 100;
|
||||||
|
|||||||
@@ -141,8 +141,9 @@ fn handle_sync(
|
|||||||
/// handle_sync
|
/// handle_sync
|
||||||
/// - block_entity_changes: The BlockChanges struct that will be updated with the changes from the
|
/// - block_entity_changes: The BlockChanges struct that will be updated with the changes from the
|
||||||
/// sync events.
|
/// sync events.
|
||||||
|
///
|
||||||
/// This HashMap comes pre-filled with the changes for the create_pool events, mapped in
|
/// This HashMap comes pre-filled with the changes for the create_pool events, mapped in
|
||||||
/// 1_map_pool_created.
|
/// 1_map_pool_created.
|
||||||
///
|
///
|
||||||
/// This function is called after the handle_sync function, and it is expected that
|
/// This function is called after the handle_sync function, and it is expected that
|
||||||
/// block_entity_changes will be complete after this function ends.
|
/// block_entity_changes will be complete after this function ends.
|
||||||
|
|||||||
@@ -51,13 +51,13 @@ pub mod event {
|
|||||||
#[derive(Clone, PartialEq, ::prost::Oneof)]
|
#[derive(Clone, PartialEq, ::prost::Oneof)]
|
||||||
pub enum Type {
|
pub enum Type {
|
||||||
#[prost(message, tag="10")]
|
#[prost(message, tag="10")]
|
||||||
DepositType(super::DepositEvent),
|
Deposit(super::DepositEvent),
|
||||||
#[prost(message, tag="20")]
|
#[prost(message, tag="20")]
|
||||||
WithdrawType(super::WithdrawEvent),
|
Withdraw(super::WithdrawEvent),
|
||||||
#[prost(message, tag="30")]
|
#[prost(message, tag="30")]
|
||||||
SyncType(super::SyncEvent),
|
Sync(super::SyncEvent),
|
||||||
#[prost(message, tag="40")]
|
#[prost(message, tag="40")]
|
||||||
SwapType(super::SwapEvent),
|
Swap(super::SwapEvent),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use std::{collections::HashMap, usize, vec};
|
use std::{collections::HashMap, vec};
|
||||||
use substreams::store::{StoreGet, StoreGetBigInt, StoreGetProto};
|
use substreams::store::{StoreGet, StoreGetBigInt, StoreGetProto};
|
||||||
use substreams_ethereum::pb::eth::v2::{self as eth, TransactionTrace};
|
use substreams_ethereum::pb::eth::v2::{self as eth, TransactionTrace};
|
||||||
|
|
||||||
|
|||||||
@@ -12,4 +12,6 @@ ignore = [
|
|||||||
"crates/tycho-substreams/src/pb",
|
"crates/tycho-substreams/src/pb",
|
||||||
"ethereum-balancer/src/abi",
|
"ethereum-balancer/src/abi",
|
||||||
"ethereum-curve/src/abi",
|
"ethereum-curve/src/abi",
|
||||||
|
"ethereum-uniswap-v2/src/abi",
|
||||||
|
"ethereum-uniswap-v3/src/abi",
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user