From 2514f20649d19e875eab33684c3667d4f8012bfd Mon Sep 17 00:00:00 2001 From: Lorenz Herzberger Date: Tue, 23 May 2023 14:31:03 +0200 Subject: [PATCH] added get/store asset keeper methods Signed-off-by: Lorenz Herzberger --- x/asset/keeper/asset.go | 29 +++++++++++++++++++++ x/asset/keeper/msg_server_notarize_asset.go | 11 +++++--- x/asset/types/keys.go | 2 ++ 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 x/asset/keeper/asset.go diff --git a/x/asset/keeper/asset.go b/x/asset/keeper/asset.go new file mode 100644 index 0000000..573ed2e --- /dev/null +++ b/x/asset/keeper/asset.go @@ -0,0 +1,29 @@ +package keeper + +import ( + "planetmint-go/x/asset/types" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (k Keeper) StoreAsset(ctx sdk.Context, asset types.Asset) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.AssetKey)) + appendValue := k.cdc.MustMarshal(&asset) + store.Set(GetAssetHashBytes(asset.Hash), appendValue) +} + +func (k Keeper) GetAsset(ctx sdk.Context, hash string) (val types.Asset, found bool) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.AssetKey)) + asset := store.Get(GetAssetHashBytes(hash)) + if asset == nil { + return val, false + } + k.cdc.MustUnmarshal(asset, &val) + return val, true +} + +func GetAssetHashBytes(hash string) []byte { + bz := []byte(hash) + return bz +} diff --git a/x/asset/keeper/msg_server_notarize_asset.go b/x/asset/keeper/msg_server_notarize_asset.go index 3a0122f..e46a940 100644 --- a/x/asset/keeper/msg_server_notarize_asset.go +++ b/x/asset/keeper/msg_server_notarize_asset.go @@ -11,14 +11,17 @@ import ( func (k msgServer) NotarizeAsset(goCtx context.Context, msg *types.MsgNotarizeAsset) (*types.MsgNotarizeAssetResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Handling the message - _ = ctx - // CHECK IF MSG CREATOR (pub_key) IS ATTESTED MACHINE + var asset = types.Asset{ + Hash: msg.CidHash, + Signature: msg.Sign, + Pubkey: msg.Creator, + } - // CHECK SHORTENED URL FOR NODE + // CHECK LOCATION FOR NODE // STORE CID_HASH SIGNATURE PUBLIC KEY + k.StoreAsset(ctx, asset) return &types.MsgNotarizeAssetResponse{}, nil } diff --git a/x/asset/types/keys.go b/x/asset/types/keys.go index 20874d1..814a661 100644 --- a/x/asset/types/keys.go +++ b/x/asset/types/keys.go @@ -12,6 +12,8 @@ const ( // MemStoreKey defines the in-memory store key MemStoreKey = "mem_asset" + + AssetKey = "Asset/value/" ) func KeyPrefix(p string) []byte {