Skip to content

Commit

Permalink
Add back PFM but use ChannelKeeper instead of IBCFeeKeeper
Browse files Browse the repository at this point in the history
  • Loading branch information
Reecepbcups committed May 16, 2023
1 parent 250b715 commit 236ef8c
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 70 deletions.
20 changes: 10 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -122,37 +122,37 @@ benchmark:
###############################################################################

# Executes basic chain tests via interchaintest
ictest-basic:
ictest-basic: rm-testcache
cd interchaintest && go test -race -v -run TestBasicJunoStart .

ictest-tokenfactory:
ictest-tokenfactory: rm-testcache
cd interchaintest && go test -race -v -run TestJunoTokenFactory .

ictest-feeshare:
ictest-feeshare: rm-testcache
cd interchaintest && go test -race -v -run TestJunoFeeShare .

# Executes a basic chain upgrade test via interchaintest
ictest-upgrade:
ictest-upgrade: rm-testcache
cd interchaintest && go test -race -v -run TestBasicJunoUpgrade .

# Executes a basic chain upgrade locally via interchaintest after compiling a local image as juno:local
ictest-upgrade-local: local-image ictest-upgrade

# Executes IBC tests via interchaintest
ictest-ibc:
ictest-ibc: rm-testcache
cd interchaintest && go test -race -v -run TestJunoGaiaIBCTransfer .

# Unity contract CI
ictest-unity-deploy:
ictest-unity-deploy: rm-testcache
cd interchaintest && go test -race -v -run TestJunoUnityContractDeploy .

ictest-unity-gov:
ictest-unity-gov: rm-testcache
cd interchaintest && go test -race -v -run TestJunoUnityContractGovSubmit .

# Executes all tests via interchaintest after compling a local image as juno:local
ictest-all: local-image ictest-basic ictest-upgrade ictest-ibc
rm-testcache:
go clean -testcache

.PHONY: test-mutation ictest-basic ictest-upgrade ictest-ibc ictest-all
.PHONY: test-mutation ictest-basic ictest-upgrade ictest-ibc ictest-unity-deploy ictest-unity-gov

###############################################################################
### heighliner ###
Expand Down
104 changes: 52 additions & 52 deletions app/keepers/keepers.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ import (
ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper"

// packetforward "github.com/strangelove-ventures/packet-forward-middleware/v7/router"
// packetforwardkeeper "github.com/strangelove-ventures/packet-forward-middleware/v7/router/keeper"
// packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v7/router/types"
packetforward "github.com/strangelove-ventures/packet-forward-middleware/v7/router"
packetforwardkeeper "github.com/strangelove-ventures/packet-forward-middleware/v7/router/keeper"
packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v7/router/types"

"github.com/CosmosContracts/juno/v15/x/tokenfactory/bindings"
tokenfactorykeeper "github.com/CosmosContracts/juno/v15/x/tokenfactory/keeper"
Expand Down Expand Up @@ -127,22 +127,22 @@ type AppKeepers struct {
memKeys map[string]*storetypes.MemoryStoreKey

// keepers
AccountKeeper authkeeper.AccountKeeper
BankKeeper bankkeeper.BaseKeeper
CapabilityKeeper *capabilitykeeper.Keeper
StakingKeeper *stakingkeeper.Keeper
SlashingKeeper slashingkeeper.Keeper
MintKeeper mintkeeper.Keeper
DistrKeeper distrkeeper.Keeper
GovKeeper govkeeper.Keeper
CrisisKeeper *crisiskeeper.Keeper
UpgradeKeeper *upgradekeeper.Keeper
ParamsKeeper paramskeeper.Keeper
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
ICQKeeper icqkeeper.Keeper
IBCFeeKeeper ibcfeekeeper.Keeper
IBCHooksKeeper *ibchookskeeper.Keeper
// PacketForwardKeeper *packetforwardkeeper.Keeper
AccountKeeper authkeeper.AccountKeeper
BankKeeper bankkeeper.BaseKeeper
CapabilityKeeper *capabilitykeeper.Keeper
StakingKeeper *stakingkeeper.Keeper
SlashingKeeper slashingkeeper.Keeper
MintKeeper mintkeeper.Keeper
DistrKeeper distrkeeper.Keeper
GovKeeper govkeeper.Keeper
CrisisKeeper *crisiskeeper.Keeper
UpgradeKeeper *upgradekeeper.Keeper
ParamsKeeper paramskeeper.Keeper
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
ICQKeeper icqkeeper.Keeper
IBCFeeKeeper ibcfeekeeper.Keeper
IBCHooksKeeper *ibchookskeeper.Keeper
PacketForwardKeeper *packetforwardkeeper.Keeper
EvidenceKeeper evidencekeeper.Keeper
TransferKeeper ibctransferkeeper.Keeper
AuthzKeeper authzkeeper.Keeper
Expand Down Expand Up @@ -361,18 +361,6 @@ func NewAppKeepers(
appKeepers.Ics20WasmHooks,
)

// Initialize packet forward middleware router
// appKeepers.PacketForwardKeeper = packetforwardkeeper.NewKeeper(
// appCodec, appKeepers.keys[packetforwardtypes.StoreKey],
// appKeepers.GetSubspace(packetforwardtypes.ModuleName),
// appKeepers.TransferKeeper, // Will be zero-value here. Reference is set later on with SetTransferKeeper.
// appKeepers.IBCKeeper.ChannelKeeper,
// appKeepers.DistrKeeper,
// appKeepers.BankKeeper,
// // The ICS4Wrapper is replaced by the IBCFeeKeeper instead of the channel so that sending can be overridden by the middleware
// &appKeepers.IBCFeeKeeper,
// )

appKeepers.IBCFeeKeeper = ibcfeekeeper.NewKeeper(
appCodec,
appKeepers.keys[ibcfeetypes.StoreKey],
Expand All @@ -383,20 +371,35 @@ func NewAppKeepers(
appKeepers.BankKeeper,
)

// Initialize packet forward middleware router
appKeepers.PacketForwardKeeper = packetforwardkeeper.NewKeeper(
appCodec, appKeepers.keys[packetforwardtypes.StoreKey],
appKeepers.GetSubspace(packetforwardtypes.ModuleName),
appKeepers.TransferKeeper, // Will be zero-value here. Reference is set later on with SetTransferKeeper.
appKeepers.IBCKeeper.ChannelKeeper,
appKeepers.DistrKeeper,
appKeepers.BankKeeper,
// The ICS4Wrapper is replaced by the IBCFeeKeeper instead of the channel so that sending can be overridden by the middleware
// &appKeepers.IBCFeeKeeper,
appKeepers.IBCKeeper.ChannelKeeper,
)

// Create Transfer Keepers
appKeepers.TransferKeeper = ibctransferkeeper.NewKeeper(
appCodec,
appKeepers.keys[ibctransfertypes.StoreKey],
appKeepers.GetSubspace(ibctransfertypes.ModuleName),
// The ICS4Wrapper is replaced by the PacketForwardKeeper instead of the channel so that sending can be overridden by the middleware
appKeepers.IBCKeeper.ChannelKeeper,
appKeepers.PacketForwardKeeper,
appKeepers.IBCKeeper.ChannelKeeper,
&appKeepers.IBCKeeper.PortKeeper,
appKeepers.AccountKeeper,
appKeepers.BankKeeper,
scopedTransferKeeper,
)

appKeepers.PacketForwardKeeper.SetTransferKeeper(appKeepers.TransferKeeper)

// ICQ Keeper
appKeepers.ICQKeeper = icqkeeper.NewKeeper(
appCodec,
Expand All @@ -409,8 +412,6 @@ func NewAppKeepers(
NewQuerierWrapper(bApp),
)

// appKeepers.PacketForwardKeeper.SetTransferKeeper(appKeepers.TransferKeeper)

appKeepers.ICAHostKeeper = icahostkeeper.NewKeeper(
appCodec,
appKeepers.keys[icahosttypes.StoreKey],
Expand All @@ -431,13 +432,6 @@ func NewAppKeepers(
scopedICAControllerKeeper, bApp.MsgServiceRouter(),
)

icaHostIBCModule := icahost.NewIBCModule(appKeepers.ICAHostKeeper)

// initialize ICA module with mock module as the authentication module on the controller side
var icaControllerStack porttypes.IBCModule
icaControllerStack = icacontroller.NewIBCMiddleware(icaControllerStack, appKeepers.ICAControllerKeeper)
icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, appKeepers.IBCFeeKeeper)

// Create evidence Keeper for to register the IBC light client misbehaviour evidence route
evidenceKeeper := evidencekeeper.NewKeeper(
appCodec, appKeepers.keys[evidencetypes.StoreKey], appKeepers.StakingKeeper, appKeepers.SlashingKeeper,
Expand Down Expand Up @@ -539,19 +533,26 @@ func NewAppKeepers(
// Create Transfer Stack
var transferStack porttypes.IBCModule
transferStack = transfer.NewIBCModule(appKeepers.TransferKeeper)
// transferStack = packetforward.NewIBCMiddleware(
// transferStack,
// appKeepers.PacketForwardKeeper,
// 0,
// packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp,
// packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp,
// )
transferStack = ibcfee.NewIBCMiddleware(transferStack, appKeepers.IBCFeeKeeper)
// transferStack = ibchooks.NewIBCMiddleware(transferStack, &appKeepers.HooksICS4Wrapper)
transferStack = ibchooks.NewIBCMiddleware(transferStack, &appKeepers.HooksICS4Wrapper)
transferStack = packetforward.NewIBCMiddleware(
transferStack,
appKeepers.PacketForwardKeeper,
0,
packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp,
packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp,
)

// initialize ICA module with mock module as the authentication module on the controller side
var icaControllerStack porttypes.IBCModule
icaControllerStack = icacontroller.NewIBCMiddleware(icaControllerStack, appKeepers.ICAControllerKeeper)
icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, appKeepers.IBCFeeKeeper)

// RecvPacket, message that originates from core IBC and goes down to app, the flow is:
// channel.RecvPacket -> fee.OnRecvPacket -> icaHost.OnRecvPacket
icaHostStack := ibcfee.NewIBCMiddleware(icaHostIBCModule, appKeepers.IBCFeeKeeper)
var icaHostStack porttypes.IBCModule
icaHostStack = icahost.NewIBCModule(appKeepers.ICAHostKeeper)
icaHostStack = ibcfee.NewIBCMiddleware(icaHostStack, appKeepers.IBCFeeKeeper)

// Create fee enabled wasm ibc Stack
var wasmStack porttypes.IBCModule
Expand All @@ -568,7 +569,6 @@ func NewAppKeepers(
AddRoute(icacontrollertypes.SubModuleName, icaControllerStack).
AddRoute(icahosttypes.SubModuleName, icaHostStack).
AddRoute(icqtypes.ModuleName, icqModule)

appKeepers.IBCKeeper.SetRouter(ibcRouter)

appKeepers.ScopedIBCKeeper = scopedIBCKeeper
Expand Down Expand Up @@ -607,7 +607,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(icahosttypes.SubModuleName)
paramsKeeper.Subspace(icacontrollertypes.SubModuleName)
paramsKeeper.Subspace(icqtypes.ModuleName)
// paramsKeeper.Subspace(packetforwardtypes.ModuleName)
paramsKeeper.Subspace(packetforwardtypes.ModuleName)
paramsKeeper.Subspace(globalfee.ModuleName)
paramsKeeper.Subspace(tokenfactorytypes.ModuleName)
paramsKeeper.Subspace(feesharetypes.ModuleName)
Expand Down
4 changes: 2 additions & 2 deletions app/keepers/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import (
ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
icqtypes "github.com/strangelove-ventures/async-icq/v7/types"
// packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v7/router/types"
packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v7/router/types"
)

func (appKeepers *AppKeepers) GenerateKeys() {
Expand All @@ -43,7 +43,7 @@ func (appKeepers *AppKeepers) GenerateKeys() {
ibcexported.StoreKey, ibctransfertypes.StoreKey, ibcfeetypes.StoreKey,
wasm.StoreKey, icahosttypes.StoreKey,
icacontrollertypes.StoreKey, icqtypes.StoreKey,
// packetforwardtypes.StoreKey,
packetforwardtypes.StoreKey,
ibchookstypes.StoreKey,
tokenfactorytypes.StoreKey, feesharetypes.StoreKey,
)
Expand Down
13 changes: 8 additions & 5 deletions app/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ import (
ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint"
icq "github.com/strangelove-ventures/async-icq/v7"
icqtypes "github.com/strangelove-ventures/async-icq/v7/types"

packetforward "github.com/strangelove-ventures/packet-forward-middleware/v7/router"
packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v7/router/types"
)

// ModuleBasics defines the module BasicManager is in charge of setting up basic,
Expand Down Expand Up @@ -93,7 +96,7 @@ var ModuleBasics = module.NewBasicManager(
feeshare.AppModuleBasic{},
globalfee.AppModuleBasic{},
ibchooks.AppModuleBasic{},
// packetforward.AppModuleBasic{},
packetforward.AppModuleBasic{},
)

func appModules(
Expand Down Expand Up @@ -137,7 +140,7 @@ func appModules(
// IBC modules
ibchooks.NewAppModule(app.AppKeepers.AccountKeeper),
icq.NewAppModule(app.AppKeepers.ICQKeeper),
// packetforward.NewAppModule(app.AppKeepers.PacketForwardKeeper),
packetforward.NewAppModule(app.AppKeepers.PacketForwardKeeper),
}
}

Expand Down Expand Up @@ -196,7 +199,7 @@ func orderBeginBlockers() []string {
ibctransfertypes.ModuleName,
ibcexported.ModuleName,
icatypes.ModuleName,
// packetforwardtypes.ModuleName,
packetforwardtypes.ModuleName,
ibcfeetypes.ModuleName,
icqtypes.ModuleName,
tokenfactorytypes.ModuleName,
Expand Down Expand Up @@ -230,7 +233,7 @@ func orderEndBlockers() []string {
ibctransfertypes.ModuleName,
ibcexported.ModuleName,
icatypes.ModuleName,
// packetforwardtypes.ModuleName,
packetforwardtypes.ModuleName,
ibcfeetypes.ModuleName,
icqtypes.ModuleName,
tokenfactorytypes.ModuleName,
Expand Down Expand Up @@ -264,7 +267,7 @@ func orderInitBlockers() []string {
ibctransfertypes.ModuleName,
ibcexported.ModuleName,
icatypes.ModuleName,
// packetforwardtypes.ModuleName,
packetforwardtypes.ModuleName,
ibcfeetypes.ModuleName,
icqtypes.ModuleName,
tokenfactorytypes.ModuleName,
Expand Down
3 changes: 2 additions & 1 deletion app/upgrades/v13/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
tokenfactorytypes "github.com/CosmosContracts/juno/v15/x/tokenfactory/types"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v7/router/types"
)

func CreateV13UpgradeHandler(
Expand Down Expand Up @@ -75,7 +76,7 @@ func CreateV13UpgradeHandler(
logger.Info("set feeshare params")

// Packet Forward middleware initial params
// keepers.PacketForwardKeeper.SetParams(ctx, packetforwardtypes.DefaultParams())
keepers.PacketForwardKeeper.SetParams(ctx, packetforwardtypes.DefaultParams())

return versionMap, err
}
Expand Down

0 comments on commit 236ef8c

Please sign in to comment.