github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/testing/simapp/adapter/transfer/module.go (about) 1 package transfer 2 3 import ( 4 "encoding/json" 5 "fmt" 6 7 capabilitytypes "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/capability/types" 8 porttypes "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/05-port/types" 9 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/exported" 10 11 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 12 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 13 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/transfer" 14 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/transfer/keeper" 15 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/transfer/types" 16 "github.com/fibonacci-chain/fbc/libs/ibc-go/testing/simapp/adapter" 17 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 18 ) 19 20 var ( 21 _ porttypes.Middleware = (*TransferModule)(nil) 22 ) 23 24 type TransferModule struct { 25 transfer.AppModule 26 27 TKeeper keeper.Keeper 28 } 29 30 func (am TransferModule) SendPacket(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI) error { 31 //TODO implement me 32 panic("implement me") 33 } 34 35 func (am TransferModule) WriteAcknowledgement(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ack exported.Acknowledgement) error { 36 //TODO implement me 37 panic("implement me") 38 } 39 40 func (am TransferModule) GetAppVersion(ctx sdk.Context, portID, channelID string) (string, bool) { 41 //TODO implement me 42 panic("implement me") 43 } 44 45 func TNewTransferModule(k keeper.Keeper, m *codec.CodecProxy) *TransferModule { 46 ret := &TransferModule{} 47 48 ret.AppModule = transfer.NewAppModule(k, m) 49 ret.TKeeper = k 50 return ret 51 } 52 func (am TransferModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate { 53 return am.initGenesis(ctx, data) 54 } 55 56 func (am TransferModule) initGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate { 57 var genesisState types.GenesisState 58 adapter.ModuleCdc.MustUnmarshalJSON(data, &genesisState) 59 am.TKeeper.InitGenesis(ctx, genesisState) 60 return []abci.ValidatorUpdate{} 61 } 62 63 // ValidateGenesis performs genesis state validation for the mint module. 64 func (t TransferModule) ValidateGenesis(data json.RawMessage) error { 65 if nil == data { 66 return nil 67 } 68 var genState types.GenesisState 69 if err := adapter.ModuleCdc.UnmarshalJSON(data, &genState); err != nil { 70 return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) 71 } 72 return genState.Validate() 73 } 74 75 // ExportGenesis returns the exported genesis state as raw bytes for the ibc-transfer 76 // module. 77 func (am TransferModule) ExportGenesis(ctx sdk.Context) json.RawMessage { 78 return am.exportGenesis(ctx) 79 } 80 81 func (am TransferModule) exportGenesis(ctx sdk.Context) json.RawMessage { 82 gs := am.TKeeper.ExportGenesis(ctx) 83 return adapter.ModuleCdc.MustMarshalJSON(gs) 84 } 85 86 // DefaultGenesis returns default genesis state as raw bytes for the ibc 87 // transfer module. 88 func (am TransferModule) DefaultGenesis() json.RawMessage { 89 state := types.DefaultGenesisState() 90 state.Params.SendEnabled = true 91 state.Params.ReceiveEnabled = true 92 return adapter.ModuleCdc.MustMarshalJSON(state) 93 }