Skip to content

Commit

Permalink
add group emitter
Browse files Browse the repository at this point in the history
  • Loading branch information
colmazia authored and RogerKSI committed Sep 21, 2023
1 parent 6eea803 commit 092c4b4
Show file tree
Hide file tree
Showing 5 changed files with 514 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -536,11 +536,13 @@ func NewBandApp(
app.MintKeeper,
app.DistrKeeper,
app.GovKeeper,
app.GroupKeeper,
app.OracleKeeper,
app.ICAHostKeeper,
app.IBCKeeper.ClientKeeper,
app.IBCKeeper.ConnectionKeeper,
app.IBCKeeper.ChannelKeeper,
keys[group.StoreKey],
emitterFlag,
false,
))
Expand Down
49 changes: 49 additions & 0 deletions flusher/flusher/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@
counterparty_chains,
connections,
channels,
groups,
group_members,
group_policies,
group_proposals,
group_votes,
)


Expand Down Expand Up @@ -81,6 +86,9 @@ def get_data_source_id(self, id):
def get_oracle_script_id(self, id):
return self.conn.execute(select([oracle_scripts.c.id]).where(oracle_scripts.c.id == id)).scalar()

def get_group_id_from_policy_address(self, address):
return self.conn.execute(select([group_policies.c.group_id]).where(group_policies.c.address == address)).scalar()

def handle_new_block(self, msg):
self.conn.execute(blocks.insert(), msg)

Expand Down Expand Up @@ -128,6 +136,47 @@ def handle_new_data_source(self, msg):
self.conn.execute(data_sources.insert(), msg)
self.init_data_source_request_count(msg["id"])

def handle_new_group(self, msg):
self.conn.execute(groups.insert(), msg)

def handle_new_group_member(self, msg):
msg["account_id"] = self.get_account_id(msg["address"])
del msg["address"]
self.conn.execute(group_members.insert(), msg)

def handle_new_group_policy(self, msg):
self.get_account_id(msg["address"])
self.conn.execute(group_policies.insert(), msg)

def handle_new_group_proposal(self, msg):
msg["group_id"] = self.get_group_id_from_policy_address(msg["group_policy_address"])
self.conn.execute(group_proposals.insert(), msg)

def handle_new_group_vote(self, msg):
msg["voter_id"] = self.get_account_id(msg["voter_address"])
del msg["voter_address"]
self.conn.execute(group_votes.insert(), msg)

def handle_update_group(self, msg):
self.conn.execute(groups.update().where(groups.c.id == msg["id"]).values(**msg))

def handle_remove_group_member(self, msg):
account_id = self.get_account_id(msg["address"])
self.conn.execute(group_members.delete().where((group_members.c.group_id == msg["group_id"]) & (group_members.c.account_id == account_id)))

def handle_remove_group_members_by_group_id(self, msg):
self.conn.execute(group_members.delete().where(group_members.c.group_id == msg["group_id"]))

def handle_update_group_policy(self, msg):
self.conn.execute(group_policies.update().where(group_policies.c.address == msg["address"]).values(**msg))

def handle_update_group_proposal(self, msg):
msg["group_id"] = self.get_group_id_from_policy_address(msg["group_policy_address"])
self.conn.execute(group_proposals.update().where(group_proposals.c.id == msg["id"]).values(**msg))

def handle_update_group_proposal_by_id(self, msg):
self.conn.execute(group_proposals.update().where(group_proposals.c.id == msg["id"]).values(**msg))

def handle_set_data_source(self, msg):
msg["transaction_id"] = self.get_transaction_id(msg["tx_hash"])
del msg["tx_hash"]
Expand Down
9 changes: 9 additions & 0 deletions hooks/emitter/emitter.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/cometbft/cometbft/crypto/tmhash"
tmjson "github.com/cometbft/cometbft/libs/json"
"github.com/cosmos/cosmos-sdk/codec"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
"github.com/cosmos/cosmos-sdk/x/authz"
Expand All @@ -21,6 +22,7 @@ import (
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper"
mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
Expand Down Expand Up @@ -57,13 +59,16 @@ type Hook struct {
mintKeeper mintkeeper.Keeper
distrKeeper distrkeeper.Keeper
govKeeper govkeeper.Keeper
groupKeeper groupkeeper.Keeper
oracleKeeper oraclekeeper.Keeper
icahostKeeper icahostkeeper.Keeper

//ibc keeper
clientkeeper clientkeeper.Keeper
connectionkeeper connectionkeeper.Keeper
channelkeeper channelkeeper.Keeper

groupStoreKey storetypes.StoreKey
}

// NewHook creates an emitter hook instance that will be added in Band App.
Expand All @@ -77,11 +82,13 @@ func NewHook(
mintKeeper mintkeeper.Keeper,
distrKeeper distrkeeper.Keeper,
govKeeper govkeeper.Keeper,
groupKeeper groupkeeper.Keeper,
oracleKeeper keeper.Keeper,
icahostKeeper icahostkeeper.Keeper,
clientkeeper clientkeeper.Keeper,
connectionkeeper connectionkeeper.Keeper,
channelkeeper channelkeeper.Keeper,
groupstorekey storetypes.StoreKey,
kafkaURI string,
emitStartState bool,
) *Hook {
Expand All @@ -103,11 +110,13 @@ func NewHook(
mintKeeper: mintKeeper,
distrKeeper: distrKeeper,
govKeeper: govKeeper,
groupKeeper: groupKeeper,
oracleKeeper: oracleKeeper,
icahostKeeper: icahostKeeper,
clientkeeper: clientkeeper,
connectionkeeper: connectionkeeper,
channelkeeper: channelkeeper,
groupStoreKey: groupstorekey,
emitStartState: emitStartState,
}
}
Expand Down
Loading

0 comments on commit 092c4b4

Please sign in to comment.