undedoloremque
Version:
Green Field JS SDK
81 lines (67 loc) • 2.96 kB
text/typescript
import {
QueryGlobalVirtualGroupByFamilyIDRequest,
QueryGlobalVirtualGroupByFamilyIDResponse,
QueryGlobalVirtualGroupFamiliesRequest,
QueryGlobalVirtualGroupFamiliesResponse,
QueryGlobalVirtualGroupFamilyRequest,
QueryGlobalVirtualGroupFamilyResponse,
QueryGlobalVirtualGroupRequest,
QueryGlobalVirtualGroupResponse,
QueryParamsResponse,
} from '@bnb-chain/greenfield-cosmos-types/greenfield/virtualgroup/query';
import { MsgSettle } from '@bnb-chain/greenfield-cosmos-types/greenfield/virtualgroup/tx';
import { container, delay, inject, injectable } from 'tsyringe';
import { MsgSettleTypeUrl, TxResponse } from '..';
import { RpcQueryClient } from '../clients/queryclient';
import { TxClient } from '../clients/txClient';
import { MsgSettleSDKTypeEIP712 } from '../messages/greenfield/virtualgroup/MsgSettle';
export interface IVirtualGroup {
params(): Promise<QueryParamsResponse>;
getGlobalVirtualGroup(
request: QueryGlobalVirtualGroupRequest,
): Promise<QueryGlobalVirtualGroupResponse>;
getGlobalVirtualGroupByFamilyID(
request: QueryGlobalVirtualGroupByFamilyIDRequest,
): Promise<QueryGlobalVirtualGroupByFamilyIDResponse>;
getGlobalVirtualGroupFamilies(
request: QueryGlobalVirtualGroupFamiliesRequest,
): Promise<QueryGlobalVirtualGroupFamiliesResponse>;
getGlobalVirtualGroupFamily(
request: QueryGlobalVirtualGroupFamilyRequest,
): Promise<QueryGlobalVirtualGroupFamilyResponse>;
settle(address: string, msg: MsgSettle): Promise<TxResponse>;
}
()
export class VirtualGroup implements IVirtualGroup {
constructor((delay(() => TxClient)) private txClient: TxClient) {}
private queryClient = container.resolve(RpcQueryClient);
public async params() {
const rpc = await this.queryClient.getVirtualGroupClient();
return await rpc.Params();
}
public async getGlobalVirtualGroup(request: QueryGlobalVirtualGroupRequest) {
const rpc = await this.queryClient.getVirtualGroupClient();
return await rpc.GlobalVirtualGroup(request);
}
public async getGlobalVirtualGroupByFamilyID(request: QueryGlobalVirtualGroupByFamilyIDRequest) {
const rpc = await this.queryClient.getVirtualGroupClient();
return await rpc.GlobalVirtualGroupByFamilyID(request);
}
public async getGlobalVirtualGroupFamilies(request: QueryGlobalVirtualGroupFamiliesRequest) {
const rpc = await this.queryClient.getVirtualGroupClient();
return await rpc.GlobalVirtualGroupFamilies(request);
}
public async getGlobalVirtualGroupFamily(request: QueryGlobalVirtualGroupFamilyRequest) {
const rpc = await this.queryClient.getVirtualGroupClient();
return await rpc.GlobalVirtualGroupFamily(request);
}
public async settle(address: string, msg: MsgSettle) {
return await this.txClient.tx(
MsgSettleTypeUrl,
address,
MsgSettleSDKTypeEIP712,
MsgSettle.toSDK(msg),
MsgSettle.encode(msg).finish(),
);
}
}