From 86afb74aaa4be7978d9b461e25cd10a679a97836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Tue, 20 May 2025 23:37:48 +0200 Subject: [PATCH] storing DER MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jürgen Eckel --- x/der/keeper/der_asset.go | 28 +++++++++++++++++++++++++ x/der/keeper/msg_server_register_der.go | 5 +++-- x/der/types/keys.go | 2 ++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 x/der/keeper/der_asset.go diff --git a/x/der/keeper/der_asset.go b/x/der/keeper/der_asset.go new file mode 100644 index 0000000..51933b6 --- /dev/null +++ b/x/der/keeper/der_asset.go @@ -0,0 +1,28 @@ +package keeper + +import ( + "github.com/planetmint/planetmint-go/util" + "github.com/planetmint/planetmint-go/x/der/types" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (k Keeper) StoreDerAttest(ctx sdk.Context, asset types.DER) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.DerAssetKey)) + appendValue := k.cdc.MustMarshal(&asset) + store.Set(util.SerializeString(asset.ZigbeeID), appendValue) +} + +func (k Keeper) LookupLiquidAsset(ctx sdk.Context, zigbeeID string) (val types.DER, found bool) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.DerAssetKey)) + derAsset := store.Get(util.SerializeString(zigbeeID)) + + if derAsset == nil { + return val, false + } + if err := k.cdc.Unmarshal(derAsset, &val); err != nil { + return val, false + } + return val, true +} diff --git a/x/der/keeper/msg_server_register_der.go b/x/der/keeper/msg_server_register_der.go index ac74bdd..a77105d 100644 --- a/x/der/keeper/msg_server_register_der.go +++ b/x/der/keeper/msg_server_register_der.go @@ -10,8 +10,9 @@ import ( func (k msgServer) RegisterDER(goCtx context.Context, msg *types.MsgRegisterDER) (*types.MsgRegisterDERResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Handling the message - _ = ctx + k.StoreDerAttest(ctx, *msg.Der) + + //TODO: init NFT creation and storag of NFT to DER associations return &types.MsgRegisterDERResponse{}, nil } diff --git a/x/der/types/keys.go b/x/der/types/keys.go index 34fc5ed..c258d8c 100644 --- a/x/der/types/keys.go +++ b/x/der/types/keys.go @@ -12,6 +12,8 @@ const ( // MemStoreKey defines the in-memory store key MemStoreKey = "mem_der" + + DerAssetKey = "Der/DerAsset/" ) func KeyPrefix(p string) []byte {