-
Notifications
You must be signed in to change notification settings - Fork 41
/
Copy pathclient.ts
68 lines (68 loc) · 3.36 KB
/
client.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import { GeneratedType, Registry, OfflineSigner } from '@cosmjs/proto-signing';
import { AminoTypes, SigningStargateClient } from '@cosmjs/stargate';
import { HttpEndpoint } from '@cosmjs/tendermint-rpc';
import * as cosmosAccesscontrolXTxRegistry from './accesscontrol_x/tx.registry';
import * as cosmosAuthzV1beta1TxRegistry from './authz/v1beta1/tx.registry';
import * as cosmosBankV1beta1TxRegistry from './bank/v1beta1/tx.registry';
import * as cosmosDistributionV1beta1TxRegistry from './distribution/v1beta1/tx.registry';
import * as cosmosEvidenceV1beta1TxRegistry from './evidence/v1beta1/tx.registry';
import * as cosmosFeegrantV1beta1TxRegistry from './feegrant/v1beta1/tx.registry';
import * as cosmosGovV1beta1TxRegistry from './gov/v1beta1/tx.registry';
import * as cosmosSlashingV1beta1TxRegistry from './slashing/v1beta1/tx.registry';
import * as cosmosStakingV1beta1TxRegistry from './staking/v1beta1/tx.registry';
import * as cosmosUpgradeV1beta1TxRegistry from './upgrade/v1beta1/tx.registry';
import * as cosmosAccesscontrolXTxAmino from './accesscontrol_x/tx.amino';
import * as cosmosAuthzV1beta1TxAmino from './authz/v1beta1/tx.amino';
import * as cosmosBankV1beta1TxAmino from './bank/v1beta1/tx.amino';
import * as cosmosDistributionV1beta1TxAmino from './distribution/v1beta1/tx.amino';
import * as cosmosEvidenceV1beta1TxAmino from './evidence/v1beta1/tx.amino';
import * as cosmosFeegrantV1beta1TxAmino from './feegrant/v1beta1/tx.amino';
import * as cosmosGovV1beta1TxAmino from './gov/v1beta1/tx.amino';
import * as cosmosSlashingV1beta1TxAmino from './slashing/v1beta1/tx.amino';
import * as cosmosStakingV1beta1TxAmino from './staking/v1beta1/tx.amino';
import * as cosmosUpgradeV1beta1TxAmino from './upgrade/v1beta1/tx.amino';
export const cosmosAminoConverters = {
...cosmosAccesscontrolXTxAmino.AminoConverter,
...cosmosAuthzV1beta1TxAmino.AminoConverter,
...cosmosBankV1beta1TxAmino.AminoConverter,
...cosmosDistributionV1beta1TxAmino.AminoConverter,
...cosmosEvidenceV1beta1TxAmino.AminoConverter,
...cosmosFeegrantV1beta1TxAmino.AminoConverter,
...cosmosGovV1beta1TxAmino.AminoConverter,
...cosmosSlashingV1beta1TxAmino.AminoConverter,
...cosmosStakingV1beta1TxAmino.AminoConverter,
...cosmosUpgradeV1beta1TxAmino.AminoConverter
};
export const cosmosProtoRegistry: ReadonlyArray<[string, GeneratedType]> = [
...cosmosAccesscontrolXTxRegistry.registry,
...cosmosAuthzV1beta1TxRegistry.registry,
...cosmosBankV1beta1TxRegistry.registry,
...cosmosDistributionV1beta1TxRegistry.registry,
...cosmosEvidenceV1beta1TxRegistry.registry,
...cosmosFeegrantV1beta1TxRegistry.registry,
...cosmosGovV1beta1TxRegistry.registry,
...cosmosSlashingV1beta1TxRegistry.registry,
...cosmosStakingV1beta1TxRegistry.registry,
...cosmosUpgradeV1beta1TxRegistry.registry
];
export const getSigningCosmosClientOptions = (): {
registry: Registry;
aminoTypes: AminoTypes;
} => {
const registry = new Registry([...cosmosProtoRegistry]);
const aminoTypes = new AminoTypes({
...cosmosAminoConverters
});
return {
registry,
aminoTypes
};
};
export const getSigningCosmosClient = async ({ rpcEndpoint, signer }: { rpcEndpoint: string | HttpEndpoint; signer: OfflineSigner }) => {
const { registry, aminoTypes } = getSigningCosmosClientOptions();
const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, {
registry: registry as any,
aminoTypes
});
return client;
};