go-cyber/x/resources/keeper/grpc_query.go

package keeper

import (
	"context"

	errorsmod "cosmossdk.io/errors"

	sdk "github.com/cosmos/cosmos-sdk/types"
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/status"

	ctypes "github.com/cybercongress/go-cyber/v7/types"

	"github.com/cybercongress/go-cyber/v7/x/resources/types"
)

var _ types.QueryServer = Keeper{}

func (k Keeper) Params(goCtx context.Context, request *types.QueryParamsRequest) (*types.QueryParamsResponse, error) {
	ctx := sdk.UnwrapSDKContext(goCtx)
	params := k.GetParams(ctx)

	return &types.QueryParamsResponse{Params: params}, nil
}

func (k Keeper) Investmint(goCtx context.Context, request *types.QueryInvestmintRequest) (*types.QueryInvestmintResponse, error) {
	if request == nil {
		return nil, status.Errorf(codes.InvalidArgument, "empty request")
	}

	if request.Amount.Denom != ctypes.SCYB {
		return nil, errorsmod.Wrap(types.ErrInvalidBaseResource, request.Amount.String())
	}

	if request.Resource != ctypes.VOLT && request.Resource != ctypes.AMPERE {
		return nil, errorsmod.Wrap(types.ErrResourceNotExist, request.Resource)
	}

	ctx := sdk.UnwrapSDKContext(goCtx)

	maxPeriod := k.GetMaxPeriod(ctx, request.Resource)

	amount := k.CalculateInvestmint(ctx, request.Amount, request.Resource, maxPeriod)

	amount = k.applySupplyExponentialAdjustment(ctx, request.Resource, amount)

	return &types.QueryInvestmintResponse{Amount: amount}, nil
}

func (k Keeper) AdjustedPrice(goCtx context.Context, request *types.QueryAdjustedPriceRequest) (*types.QueryAdjustedPriceResponse, error) {
	if request == nil {
		return nil, status.Errorf(codes.InvalidArgument, "empty request")
	}

	if request.Resource != ctypes.VOLT && request.Resource != ctypes.AMPERE {
		return nil, errorsmod.Wrap(types.ErrResourceNotExist, request.Resource)
	}

	ctx := sdk.UnwrapSDKContext(goCtx)

	amount := k.applySupplyExponentialAdjustment(ctx, request.Resource, request.Base)

	return &types.QueryAdjustedPriceResponse{Adjusted: amount}, nil
}

Synonyms

space-pussy/x/resources/keeper/grpc_query.go
go-cyber/x/tokenfactory/keeper/grpc_query.go
go-cyber/x/dmn/keeper/grpc_query.go
space-pussy/x/bandwidth/keeper/grpc_query.go
space-pussy/x/graph/keeper/grpc_query.go
space-pussy/x/rank/keeper/grpc_query.go
go-cyber/x/rank/keeper/grpc_query.go
space-pussy/x/grid/keeper/grpc_query.go
go-cyber/x/liquidity/keeper/grpc_query.go
space-pussy/x/dmn/keeper/grpc_query.go
go-cyber/x/bandwidth/keeper/grpc_query.go
go-cyber/x/graph/keeper/grpc_query.go
go-cyber/x/grid/keeper/grpc_query.go

Neighbours