Skip to content

Commit b0594ac

Browse files
committed
fix: allow passing grpc options into client classes
1 parent 0f4304b commit b0594ac

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+143
-115
lines changed

packages/sdk-ts/src/client/base/BaseGrpcConsumer.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
} from '@injectivelabs/exceptions'
88
import { GrpcWebRpcTransport } from './GrpcWebRpcTransport.js'
99
import type { UnaryCall, RpcOptions } from '@protobuf-ts/runtime-rpc'
10+
import type { GrpcWebTransportAdditionalOptions } from '../../utils/grpc.js'
1011

1112
/**
1213
* BaseGrpcConsumer provides base functionality for all gRPC consumers.
@@ -17,19 +18,20 @@ export default class BaseGrpcConsumer {
1718
protected module: string = ''
1819
protected metadata?: Record<string, string>
1920
protected endpoint: string
21+
protected options?: GrpcWebTransportAdditionalOptions
2022

21-
constructor(endpoint: string) {
23+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
2224
this.endpoint = endpoint
23-
this.transport = new GrpcWebRpcTransport(endpoint, {
24-
headers: {},
25-
})
25+
this.options = options
26+
this.transport = new GrpcWebRpcTransport(endpoint, options)
2627
}
2728

2829
public setMetadata(map: Record<string, string>) {
2930
this.metadata = map
30-
// Recreate transport with new metadata
31+
// Recreate transport with new metadata, preserving existing options
3132
this.transport = new GrpcWebRpcTransport(this.endpoint, {
32-
headers: this.metadata,
33+
...this.options,
34+
meta: this.metadata,
3335
})
3436
return this
3537
}

packages/sdk-ts/src/client/base/GrpcWebRpcTransport.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import { getGrpcWebTransport } from '../../utils/grpc.js'
1+
import {
2+
getGrpcWebTransport,
3+
type GrpcWebTransportAdditionalOptions,
4+
} from '../../utils/grpc.js'
25
import type {
36
UnaryCall,
47
RpcOptions,
@@ -18,15 +21,7 @@ import type {
1821
export class GrpcWebRpcTransport implements RpcTransport {
1922
private transport: RpcTransport
2023

21-
constructor(
22-
baseUrl: string,
23-
options?: {
24-
fetch?: typeof fetch
25-
headers?: Record<string, string>
26-
timeout?: number
27-
credentials?: RequestCredentials
28-
},
29-
) {
24+
constructor(baseUrl: string, options?: GrpcWebTransportAdditionalOptions) {
3025
this.transport = getGrpcWebTransport(baseUrl, options)
3126
}
3227

packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuctionApi.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { QueryClient as InjectiveAuctionV1Beta1QueryClient } from '@injectivelab
33
import { ChainModule } from '../types/index.js'
44
import BaseGrpcConsumer from '../../base/BaseGrpcConsumer.js'
55
import { ChainGrpcAuctionTransformer } from '../transformers/index.js'
6+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
67

78
/**
89
* @category Chain Grpc API
@@ -12,8 +13,8 @@ export class ChainGrpcAuctionApi extends BaseGrpcConsumer {
1213

1314
private client: InjectiveAuctionV1Beta1QueryClient
1415

15-
constructor(endpoint: string) {
16-
super(endpoint)
16+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
17+
super(endpoint, options)
1718

1819
this.client = new InjectiveAuctionV1Beta1QueryClient(this.transport)
1920
}

packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthApi.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import BaseGrpcConsumer from '../../base/BaseGrpcConsumer.js'
55
import { ChainGrpcAuthTransformer } from '../transformers/ChainGrpcAuthTransformer.js'
66
import { ChainGrpcCommonTransformer } from '../transformers/ChainGrpcCommonTransformer.js'
77
import type { PaginationOption } from '../../../types/pagination.js'
8+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
89

910
/**
1011
* @category Chain Grpc API
@@ -13,8 +14,8 @@ export class ChainGrpcAuthApi extends BaseGrpcConsumer {
1314
protected module: string = ChainModule.Auth
1415
private client: CosmosAuthV1BetaQueryClient
1516

16-
constructor(endpoint: string) {
17-
super(endpoint)
17+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
18+
super(endpoint, options)
1819
this.client = new CosmosAuthV1BetaQueryClient(this.transport)
1920
}
2021

packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthZApi.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import BaseGrpcConsumer from '../../base/BaseGrpcConsumer.js'
55
import { ChainGrpcAuthZTransformer } from '../transformers/ChainGrpcAuthZTransformer.js'
66
import { ChainGrpcCommonTransformer } from '../transformers/ChainGrpcCommonTransformer.js'
77
import type { PaginationOption } from '../../../types/pagination.js'
8+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
89

910
/**
1011
* @category Chain Grpc API
@@ -13,8 +14,8 @@ export class ChainGrpcAuthZApi extends BaseGrpcConsumer {
1314
protected module: string = ChainModule.Authz
1415
private client: CosmosAuthzV1BetaQueryClient
1516

16-
constructor(endpoint: string) {
17-
super(endpoint)
17+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
18+
super(endpoint, options)
1819
this.client = new CosmosAuthzV1BetaQueryClient(this.transport)
1920
}
2021

packages/sdk-ts/src/client/chain/grpc/ChainGrpcBankApi.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { ChainGrpcBankTransformer } from '../transformers/index.js'
66
import { fetchAllWithPagination } from '../../../utils/pagination.js'
77
import { ChainGrpcCommonTransformer } from '../transformers/ChainGrpcCommonTransformer.js'
88
import type { PaginationOption } from '../../../types/pagination.js'
9+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
910

1011
const MAX_LIMIT_FOR_SUPPLY = 10000
1112

@@ -16,8 +17,8 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
1617
protected module: string = ChainModule.Bank
1718
private client: CosmosBankV1BetaQueryClient
1819

19-
constructor(endpoint: string) {
20-
super(endpoint)
20+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
21+
super(endpoint, options)
2122
this.client = new CosmosBankV1BetaQueryClient(this.transport)
2223
}
2324

packages/sdk-ts/src/client/chain/grpc/ChainGrpcDistributionApi.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import BaseGrpcConsumer from '../../base/BaseGrpcConsumer.js'
55
import { ChainGrpcDistributionTransformer } from '../transformers/index.js'
66
import type { Coin } from '@injectivelabs/ts-types'
77
import type { ValidatorRewards } from '../types/index.js'
8+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
89

910
/**
1011
* @category Chain Grpc API
@@ -13,8 +14,8 @@ export class ChainGrpcDistributionApi extends BaseGrpcConsumer {
1314
protected module: string = ChainModule.Distribution
1415
private client: CosmosDistributionV1Beta1QueryClient
1516

16-
constructor(endpoint: string) {
17-
super(endpoint)
17+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
18+
super(endpoint, options)
1819
this.client = new CosmosDistributionV1Beta1QueryClient(this.transport)
1920
}
2021

packages/sdk-ts/src/client/chain/grpc/ChainGrpcErc20Api.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
ChainGrpcCommonTransformer,
99
} from '../transformers/index.js'
1010
import type { PaginationOption } from '../../../types/pagination.js'
11+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
1112

1213
const MAX_LIMIT_FOR_SUPPLY = 10000
1314

@@ -19,8 +20,8 @@ export class ChainGrpcErc20Api extends BaseGrpcConsumer {
1920

2021
private client: InjectiveErc20V1Beta1QueryClient
2122

22-
constructor(endpoint: string) {
23-
super(endpoint)
23+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
24+
super(endpoint, options)
2425

2526
this.client = new InjectiveErc20V1Beta1QueryClient(this.transport)
2627
}

packages/sdk-ts/src/client/chain/grpc/ChainGrpcEvmApi.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { QueryClient as InjectiveEvmV1QueryClient } from '@injectivelabs/core-pr
33
import { ChainModule } from '../types/index.js'
44
import BaseGrpcConsumer from '../../base/BaseGrpcConsumer.js'
55
import { ChainGrpcEvmTransformer } from '../transformers/index.js'
6+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
67

78
/**
89
* @category Chain Grpc API
@@ -12,8 +13,8 @@ export class ChainGrpcEvmApi extends BaseGrpcConsumer {
1213

1314
private client: InjectiveEvmV1QueryClient
1415

15-
constructor(endpoint: string) {
16-
super(endpoint)
16+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
17+
super(endpoint, options)
1718

1819
this.client = new InjectiveEvmV1QueryClient(this.transport)
1920
}

packages/sdk-ts/src/client/chain/grpc/ChainGrpcExchangeApi.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import BaseGrpcConsumer from '../../base/BaseGrpcConsumer.js'
55
import { ChainGrpcExchangeTransformer } from '../transformers/index.js'
66
import type * as InjectiveExchangeV1Beta1GenesisPb from '@injectivelabs/core-proto-ts-v2/generated/injective/exchange/v1beta1/genesis_pb'
77
import type * as InjectiveExchangeV1Beta1ExchangePb from '@injectivelabs/core-proto-ts-v2/generated/injective/exchange/v1beta1/exchange_pb'
8+
import type { GrpcWebTransportAdditionalOptions } from '../../../utils/grpc.js'
89

910
/**
1011
* @category Chain Grpc API
@@ -13,8 +14,8 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
1314
protected module: string = ChainModule.Exchange
1415
private client: InjectiveExchangeV1Beta1QueryClient
1516

16-
constructor(endpoint: string) {
17-
super(endpoint)
17+
constructor(endpoint: string, options?: GrpcWebTransportAdditionalOptions) {
18+
super(endpoint, options)
1819
this.client = new InjectiveExchangeV1Beta1QueryClient(this.transport)
1920
}
2021

0 commit comments

Comments
 (0)