Skip to content

Commit

Permalink
cctp and router + wiring (#214)
Browse files Browse the repository at this point in the history
Co-authored-by: bd21 <[email protected]>
  • Loading branch information
agouin and bd21 authored Jul 19, 2023
1 parent fcb702c commit cfd318e
Show file tree
Hide file tree
Showing 297 changed files with 46,856 additions and 711 deletions.
11 changes: 10 additions & 1 deletion .github/workflows/e2e-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,16 @@ jobs:
strategy:
matrix:
# names of `make` commands to run tests
test: ["ictest-tkn-factory", "ictest-packet-forward", "ictest-paramauthority", "ictest-chain-upgrade-noble-1", "ictest-chain-upgrade-grand-1", "ictest-globalFee", "ictest-ics20-bps-fees", "ictest-client-substitution"]
test:
- ictest-tkn-factory
- ictest-packet-forward
- ictest-paramauthority
- ictest-chain-upgrade-noble-1
- ictest-chain-upgrade-grand-1
- ictest-globalFee
- ictest-ics20-bps-fees
- ictest-client-substitution
- ictest-cctp
fail-fast: false

steps:
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@ ictest-ics20-bps-fees:
ictest-client-substitution:
cd interchaintest && go test -race -v -run ^TestClientSubstitution$$ .

ictest-cctp:
cd interchaintest && go test -race -v -run ^TestCCTP$$ .

###############################################################################
### Build Image ###
###############################################################################
Expand Down
46 changes: 45 additions & 1 deletion app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,13 @@ import (
tokenfactorymodule "github.com/strangelove-ventures/noble/x/tokenfactory"
tokenfactorymodulekeeper "github.com/strangelove-ventures/noble/x/tokenfactory/keeper"
tokenfactorymoduletypes "github.com/strangelove-ventures/noble/x/tokenfactory/types"

cctp "github.com/strangelove-ventures/noble/x/cctp"
cctpkeeper "github.com/strangelove-ventures/noble/x/cctp/keeper"
cctptypes "github.com/strangelove-ventures/noble/x/cctp/types"
router "github.com/strangelove-ventures/noble/x/router"
routerkeeper "github.com/strangelove-ventures/noble/x/router/keeper"
routertypes "github.com/strangelove-ventures/noble/x/router/types"
)

const (
Expand Down Expand Up @@ -146,6 +153,8 @@ var (
packetforward.AppModuleBasic{},
globalfee.AppModuleBasic{},
tariff.AppModuleBasic{},
cctp.AppModuleBasic{},
router.AppModuleBasic{},
)

// module account permissions
Expand All @@ -158,7 +167,6 @@ var (
fiattokenfactorymoduletypes.ModuleName: {authtypes.Minter, authtypes.Burner, authtypes.Staking},
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
// this line is used by starport scaffolding # stargate/app/maccPerms
}
)

Expand Down Expand Up @@ -221,6 +229,8 @@ type App struct {
TokenFactoryKeeper *tokenfactorymodulekeeper.Keeper
FiatTokenFactoryKeeper *fiattokenfactorymodulekeeper.Keeper
TariffKeeper tariffkeeper.Keeper
CCTPKeeper *cctpkeeper.Keeper
RouterKeeper *routerkeeper.Keeper

// this line is used by starport scaffolding # stargate/app/keeperDeclaration

Expand Down Expand Up @@ -259,6 +269,7 @@ func New(
paramstypes.StoreKey, ibchost.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey, evidencetypes.StoreKey,
ibctransfertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey,
tokenfactorymoduletypes.StoreKey, fiattokenfactorymoduletypes.StoreKey, packetforwardtypes.StoreKey, stakingtypes.StoreKey,
cctptypes.StoreKey, routertypes.StoreKey,
)
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
Expand Down Expand Up @@ -459,6 +470,25 @@ func New(
)
fiattokenfactorymodule := fiattokenfactorymodule.NewAppModule(appCodec, app.FiatTokenFactoryKeeper, app.AccountKeeper, app.BankKeeper)

app.RouterKeeper = routerkeeper.NewKeeper(
appCodec,
keys[routertypes.StoreKey],
app.GetSubspace(routertypes.ModuleName),
app.CCTPKeeper,
app.TransferKeeper,
)

app.CCTPKeeper = cctpkeeper.NewKeeper(
appCodec,
keys[cctptypes.StoreKey],
app.GetSubspace(cctptypes.ModuleName),
app.BankKeeper,
app.FiatTokenFactoryKeeper,
app.RouterKeeper,
)

app.RouterKeeper.SetCctpKeeper(app.CCTPKeeper)

var transferStack ibcporttypes.IBCModule
transferStack = transfer.NewIBCModule(app.TransferKeeper)
transferStack = packetforward.NewIBCMiddleware(
Expand All @@ -468,6 +498,7 @@ func New(
packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp,
packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp,
)
transferStack = router.NewIBCMiddleware(transferStack, app.RouterKeeper)
transferStack = blockibc.NewIBCMiddleware(transferStack, app.TokenFactoryKeeper, app.FiatTokenFactoryKeeper)

// Create static IBC router, add transfer route, then set and seal it
Expand Down Expand Up @@ -513,6 +544,8 @@ func New(
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
globalfee.NewAppModule(app.GetSubspace(globalfee.ModuleName)),
tariff.NewAppModule(appCodec, app.TariffKeeper, app.AccountKeeper, app.BankKeeper),
cctp.NewAppModule(appCodec, app.CCTPKeeper),
router.NewAppModule(appCodec, app.RouterKeeper),
)

// During begin block slashing happens after distr.BeginBlocker so that
Expand Down Expand Up @@ -543,6 +576,8 @@ func New(
tokenfactorymoduletypes.ModuleName,
fiattokenfactorymoduletypes.ModuleName,
globalfee.ModuleName,
cctptypes.ModuleName,
routertypes.ModuleName,
)

app.mm.SetOrderEndBlockers(
Expand All @@ -568,6 +603,8 @@ func New(
fiattokenfactorymoduletypes.ModuleName,
globalfee.ModuleName,
tarifftypes.ModuleName,
cctptypes.ModuleName,
routertypes.ModuleName,
)

// NOTE: The genutils module must occur after staking so that pools are
Expand Down Expand Up @@ -598,6 +635,8 @@ func New(
tokenfactorymoduletypes.ModuleName,
fiattokenfactorymoduletypes.ModuleName,
globalfee.ModuleName,
cctptypes.ModuleName,
routertypes.ModuleName,

// this line is used by starport scaffolding # stargate/app/initGenesis
)
Expand Down Expand Up @@ -840,6 +879,8 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(fiattokenfactorymoduletypes.ModuleName)
paramsKeeper.Subspace(upgradetypes.ModuleName)
paramsKeeper.Subspace(globalfee.ModuleName)
paramsKeeper.Subspace(cctptypes.ModuleName)
paramsKeeper.Subspace(routertypes.ModuleName)
// this line is used by starport scaffolding # stargate/app/paramSubspace

return paramsKeeper
Expand Down Expand Up @@ -872,6 +913,9 @@ func (app *App) setupUpgradeHandlers() {
argon.CreateUpgradeHandler(
app.mm,
app.configurator,
app.FiatTokenFactoryKeeper,
app.ParamsKeeper,
app.CCTPKeeper,
),
)

Expand Down
8 changes: 7 additions & 1 deletion app/upgrades/argon/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,16 @@ import (
"github.com/cosmos/cosmos-sdk/baseapp"
storeTypes "github.com/cosmos/cosmos-sdk/store/types"
upgradeTypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
cctptypes "github.com/strangelove-ventures/noble/x/cctp/types"
routertypes "github.com/strangelove-ventures/noble/x/router/types"
)

func CreateStoreLoader(upgradeHeight int64) baseapp.StoreLoader {
storeUpgrades := storeTypes.StoreUpgrades{}
storeUpgrades := storeTypes.StoreUpgrades{
Added: []string{
cctptypes.ModuleName, routertypes.ModuleName,
},
}

return upgradeTypes.UpgradeStoreLoader(upgradeHeight, &storeUpgrades)
}
28 changes: 28 additions & 0 deletions app/upgrades/argon/upgrade.go
Original file line number Diff line number Diff line change
@@ -1,16 +1,44 @@
package argon

import (
"fmt"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradeTypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
cctpkeeper "github.com/strangelove-ventures/noble/x/cctp/keeper"
cctptypes "github.com/strangelove-ventures/noble/x/cctp/types"
fiattokenfactorykeeper "github.com/strangelove-ventures/noble/x/fiattokenfactory/keeper"
paramauthoritykeeper "github.com/strangelove-ventures/paramauthority/x/params/keeper"
)

func CreateUpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
fiatTFKeeper *fiattokenfactorykeeper.Keeper,
paramauthoritykeeper paramauthoritykeeper.Keeper,
cctpKeeper *cctpkeeper.Keeper,
) upgradeTypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradeTypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
var authority string
if ctx.ChainID() == TestnetChainID {
authority = paramauthoritykeeper.GetAuthority(ctx)
} else {
owner, ok := fiatTFKeeper.GetOwner(ctx)
if !ok {
return nil, fmt.Errorf("fiat token factory owner not found")
}

authority = owner.Address
}

cctpKeeper.SetAuthority(ctx, cctptypes.Authority{Address: authority})
cctpKeeper.SetPerMessageBurnLimit(ctx, cctptypes.PerMessageBurnLimit{Amount: 99999999})
cctpKeeper.SetBurningAndMintingPaused(ctx, cctptypes.BurningAndMintingPaused{Paused: false})
cctpKeeper.SetSendingAndReceivingMessagesPaused(ctx, cctptypes.SendingAndReceivingMessagesPaused{Paused: false})
cctpKeeper.SetMaxMessageBodySize(ctx, cctptypes.MaxMessageBodySize{Amount: 8000})
cctpKeeper.SetSignatureThreshold(ctx, cctptypes.SignatureThreshold{Amount: 2})

return mm.RunMigrations(ctx, configurator, vm)
}
}
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ require (
cosmossdk.io/errors v1.0.0-beta.7
github.com/cosmos/cosmos-sdk v0.45.15
github.com/cosmos/ibc-go/v3 v3.4.0
github.com/ethereum/go-ethereum v1.10.17
github.com/gogo/protobuf v1.3.3
github.com/golang/protobuf v1.5.2
github.com/gorilla/mux v1.8.0
Expand Down
1 change: 1 addition & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,7 @@ github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZi
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw=
github.com/ethereum/go-ethereum v1.10.17 h1:XEcumY+qSr1cZQaWsQs5Kck3FHB0V2RiMHPdTBJ+oT8=
github.com/ethereum/go-ethereum v1.10.17/go.mod h1:Lt5WzjM07XlXc95YzrhosmR4J9Ahd6X2wyEV2SvGhk0=
github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0=
github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A=
Expand Down
Loading

0 comments on commit cfd318e

Please sign in to comment.