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  }