mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
- **feat: provide access to block time** - **refactor: move block expiry calculation to helper function** - **feat: register decentralized web node HTMX views** - **feat: Reorganize methods in layout.templ file alphabetically** - **feat: add support for layout variants** - **feat: update Allocate RPC to use GET request with path parameters** - **feat: add gRPC Gateway endpoint for Allocate** - **refactor: rename SyncCurrent to Sync** - **feat: improve code organization by making vault assembly private** - **feat: add a new method for syncing DID documents**
95 lines
3.2 KiB
Go
95 lines
3.2 KiB
Go
package keeper
|
|
|
|
import (
|
|
"context"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
"github.com/onsonr/sonr/x/vault/types"
|
|
)
|
|
|
|
var _ types.QueryServer = Querier{}
|
|
|
|
type Querier struct{ Keeper }
|
|
|
|
func NewQuerier(keeper Keeper) Querier {
|
|
return Querier{Keeper: keeper}
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Fixed Query Methods │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
// Params implements types.QueryServer.
|
|
func (k Querier) Params(c context.Context, req *types.QueryParamsRequest) (*types.QueryParamsResponse, error) {
|
|
ctx := sdk.UnwrapSDKContext(c)
|
|
|
|
p, err := k.Keeper.Params.Get(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &types.QueryParamsResponse{Params: &p}, nil
|
|
}
|
|
|
|
// Schema implements types.QueryServer.
|
|
func (k Querier) Schema(goCtx context.Context, req *types.QuerySchemaRequest) (*types.QuerySchemaResponse, error) {
|
|
ctx := sdk.UnwrapSDKContext(goCtx)
|
|
|
|
p, err := k.Keeper.Params.Get(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &types.QuerySchemaResponse{
|
|
Schema: p.Schema,
|
|
}, nil
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Pre-Authenticated Queries │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
// Allocate implements types.QueryServer.
|
|
func (k Querier) Allocate(goCtx context.Context, req *types.AllocateRequest) (*types.AllocateResponse, error) {
|
|
ctx := sdk.UnwrapSDKContext(goCtx)
|
|
|
|
// 2.Allocate the vault msg.GetSubject(), msg.GetOrigin()
|
|
cid, expiryBlock, err := k.assembleVault(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &types.AllocateResponse{
|
|
Success: true,
|
|
Cid: cid,
|
|
ExpiryBlock: expiryBlock,
|
|
}, nil
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Authenticated Endpoints │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
// Sync implements types.QueryServer.
|
|
func (k Querier) Sync(goCtx context.Context, req *types.SyncRequest) (*types.SyncResponse, error) {
|
|
ctx := sdk.UnwrapSDKContext(goCtx)
|
|
p, err := k.Keeper.Params.Get(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
c, _ := k.DIDKeeper.ResolveController(ctx, req.Did)
|
|
if c == nil {
|
|
return &types.SyncResponse{
|
|
Success: false,
|
|
Schema: p.Schema,
|
|
ChainID: ctx.ChainID(),
|
|
}, nil
|
|
}
|
|
return &types.SyncResponse{
|
|
Success: true,
|
|
Schema: p.Schema,
|
|
ChainID: ctx.ChainID(),
|
|
Address: c.SonrAddress(),
|
|
}, nil
|
|
}
|