@@ -5,20 +5,11 @@ import (
55 "errors"
66 "time"
77
8- permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types"
9-
108 sdkmath "cosmossdk.io/math"
11-
12- "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"
13- "google.golang.org/grpc"
14-
159 wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
16- exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types"
17- chainstreamtypes "github.com/InjectiveLabs/sdk-go/chain/stream/types"
18- tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types"
19- "github.com/InjectiveLabs/sdk-go/client/common"
2010 rpchttp "github.com/cometbft/cometbft/rpc/client/http"
2111 "github.com/cosmos/cosmos-sdk/client"
12+ "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"
2213 sdk "github.com/cosmos/cosmos-sdk/types"
2314 "github.com/cosmos/cosmos-sdk/types/query"
2415 txtypes "github.com/cosmos/cosmos-sdk/types/tx"
@@ -31,10 +22,23 @@ import (
3122 ibcconnectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"
3223 ibcchanneltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
3324 eth "github.com/ethereum/go-ethereum/common"
25+ "google.golang.org/grpc"
26+
27+ exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types"
28+ permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types"
29+ chainstreamtypes "github.com/InjectiveLabs/sdk-go/chain/stream/types"
30+ tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types"
31+ "github.com/InjectiveLabs/sdk-go/client/common"
3432)
3533
34+ var _ ChainClient = & MockChainClient {}
35+
3636type MockChainClient struct {
37- DenomsMetadataResponses []* banktypes.QueryDenomsMetadataResponse
37+ Network common.Network
38+ DenomsMetadataResponses []* banktypes.QueryDenomsMetadataResponse
39+ QuerySpotMarketsResponses []* exchangetypes.QuerySpotMarketsResponse
40+ QueryDerivativeMarketsResponses []* exchangetypes.QueryDerivativeMarketsResponse
41+ QueryBinaryMarketsResponses []* exchangetypes.QueryBinaryMarketsResponse
3842}
3943
4044func (c * MockChainClient ) CanSignTransactions () bool {
@@ -191,18 +195,10 @@ func (c *MockChainClient) ComputeOrderHashes(spotOrders []exchangetypes.SpotOrde
191195 return OrderHashes {}, nil
192196}
193197
194- func (c * MockChainClient ) SpotOrder (defaultSubaccountID eth.Hash , network common.Network , d * SpotOrderData ) * exchangetypes.SpotOrder {
195- return c .CreateSpotOrder (defaultSubaccountID , d , MarketsAssistant {})
196- }
197-
198198func (c * MockChainClient ) CreateSpotOrder (defaultSubaccountID eth.Hash , d * SpotOrderData , marketsAssistant MarketsAssistant ) * exchangetypes.SpotOrder {
199199 return & exchangetypes.SpotOrder {}
200200}
201201
202- func (c * MockChainClient ) DerivativeOrder (defaultSubaccountID eth.Hash , network common.Network , d * DerivativeOrderData ) * exchangetypes.DerivativeOrder {
203- return c .CreateDerivativeOrder (defaultSubaccountID , d , MarketsAssistant {})
204- }
205-
206202func (c * MockChainClient ) CreateDerivativeOrder (defaultSubaccountID eth.Hash , d * DerivativeOrderData , marketAssistant MarketsAssistant ) * exchangetypes.DerivativeOrder {
207203 return & exchangetypes.DerivativeOrder {}
208204}
@@ -371,7 +367,18 @@ func (c *MockChainClient) FetchDenomDecimals(ctx context.Context, denoms []strin
371367}
372368
373369func (c * MockChainClient ) FetchChainSpotMarkets (ctx context.Context , status string , marketIDs []string ) (* exchangetypes.QuerySpotMarketsResponse , error ) {
374- return & exchangetypes.QuerySpotMarketsResponse {}, nil
370+ var response * exchangetypes.QuerySpotMarketsResponse
371+ var localError error
372+ if len (c .QuerySpotMarketsResponses ) > 0 {
373+ response = c .QuerySpotMarketsResponses [0 ]
374+ c .QuerySpotMarketsResponses = c .QuerySpotMarketsResponses [1 :]
375+ localError = nil
376+ } else {
377+ response = & exchangetypes.QuerySpotMarketsResponse {}
378+ localError = errors .New ("there are no responses configured" )
379+ }
380+
381+ return response , localError
375382}
376383
377384func (c * MockChainClient ) FetchChainSpotMarket (ctx context.Context , marketId string ) (* exchangetypes.QuerySpotMarketResponse , error ) {
@@ -439,7 +446,18 @@ func (c *MockChainClient) FetchChainTraderDerivativeTransientOrders(ctx context.
439446}
440447
441448func (c * MockChainClient ) FetchChainDerivativeMarkets (ctx context.Context , status string , marketIDs []string , withMidPriceAndTob bool ) (* exchangetypes.QueryDerivativeMarketsResponse , error ) {
442- return & exchangetypes.QueryDerivativeMarketsResponse {}, nil
449+ var response * exchangetypes.QueryDerivativeMarketsResponse
450+ var localError error
451+ if len (c .QueryDerivativeMarketsResponses ) > 0 {
452+ response = c .QueryDerivativeMarketsResponses [0 ]
453+ c .QueryDerivativeMarketsResponses = c .QueryDerivativeMarketsResponses [1 :]
454+ localError = nil
455+ } else {
456+ response = & exchangetypes.QueryDerivativeMarketsResponse {}
457+ localError = errors .New ("there are no responses configured" )
458+ }
459+
460+ return response , localError
443461}
444462
445463func (c * MockChainClient ) FetchChainDerivativeMarket (ctx context.Context , marketId string ) (* exchangetypes.QueryDerivativeMarketResponse , error ) {
@@ -543,7 +561,18 @@ func (c *MockChainClient) FetchMarketVolatility(ctx context.Context, marketId st
543561}
544562
545563func (c * MockChainClient ) FetchChainBinaryOptionsMarkets (ctx context.Context , status string ) (* exchangetypes.QueryBinaryMarketsResponse , error ) {
546- return & exchangetypes.QueryBinaryMarketsResponse {}, nil
564+ var response * exchangetypes.QueryBinaryMarketsResponse
565+ var localError error
566+ if len (c .QueryBinaryMarketsResponses ) > 0 {
567+ response = c .QueryBinaryMarketsResponses [0 ]
568+ c .QueryBinaryMarketsResponses = c .QueryBinaryMarketsResponses [1 :]
569+ localError = nil
570+ } else {
571+ response = & exchangetypes.QueryBinaryMarketsResponse {}
572+ localError = errors .New ("there are no responses configured" )
573+ }
574+
575+ return response , localError
547576}
548577
549578func (c * MockChainClient ) FetchTraderDerivativeConditionalOrders (ctx context.Context , subaccountId , marketId string ) (* exchangetypes.QueryTraderDerivativeConditionalOrdersResponse , error ) {
@@ -741,3 +770,7 @@ func (c *MockChainClient) FetchAddressesByRole(ctx context.Context, denom, role
741770func (c * MockChainClient ) FetchVouchersForAddress (ctx context.Context , address string ) (* permissionstypes.QueryVouchersForAddressResponse , error ) {
742771 return & permissionstypes.QueryVouchersForAddressResponse {}, nil
743772}
773+
774+ func (c * MockChainClient ) GetNetwork () common.Network {
775+ return c .Network
776+ }
0 commit comments