@injectivelabs/wallet-cosmos 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,108 @@
1
+ # 🌟 Injective Protocol - Cosmos Wallet Strategy
2
+
3
+ <!-- TODO -->
4
+
5
+ [![downloads](https://img.shields.io/npm/dm/@injectivelabs/wallet-ts.svg)](https://www.npmjs.com/package/@injectivelabs/wallet-ts)
6
+ [![npm-version](https://img.shields.io/npm/v/@injectivelabs/wallet-ts.svg)](https://www.npmjs.com/package/@injectivelabs/wallet-ts)
7
+ [![license](https://img.shields.io/npm/l/express.svg)]()
8
+
9
+ _Package to use Cosmos Wallets on Injective via the wallet strategy._
10
+
11
+ ---
12
+
13
+ ## 📚 Installation
14
+
15
+ ```bash
16
+ yarn add @injectivelabs/wallet-cosmos
17
+ ```
18
+
19
+ ---
20
+
21
+ ## 📖 Documentation
22
+
23
+ Injective's wallet packages are intended to make it easy for developers to choose exactly what wallets - and subsequent dependencies - they
24
+ want to include in their projects.
25
+
26
+ Regardless of which wallet package(s) you choose to use you must also have `@injectivelabs/wallet-core` and `@injectivelabs/wallet-base`
27
+ installed. These contain all of the types and core wallet functionality, with the separate wallet packages only providing the necessary
28
+ dependencies and implementations for their specific wallets.
29
+
30
+ Here's a brief example of how to use this package to send 1 INJ.:
31
+
32
+ ```typescript
33
+ import { Wallet } from '@injectivelabs/wallet-base';
34
+ import { BaseWalletStrategy, MsgBroadcaster } from '@injectivelabs/wallet-core';
35
+ import { CosmosWalletStrategy } from '@injectivelabs/wallet-cosmos';
36
+
37
+
38
+ const strategyArgs: WalletStrategyArguments = {
39
+ chainId: ChainId.Mainnet,
40
+ wallet: Wallet.Keplr,
41
+ strategies: {
42
+ [Wallet.Keplr]: new CosmosWalletStrategy({
43
+ chainId: ChainId.Mainnet
44
+ }),
45
+ },
46
+ }
47
+ const walletStrategy = new BaseWalletStrategy(strategyArgs)
48
+
49
+ const msgBroadcaster = new MsgBroadcaster({
50
+ walletStrategy,
51
+ simulateTx: true,
52
+ network: Network.Mainnet,
53
+ })
54
+
55
+ const sendTX = async () => {
56
+ const injectiveAddress = 'someInjectiveAddress'
57
+
58
+ const message = MsgSend.fromJSON({
59
+ srcInjectiveAddress: injectiveAddress,
60
+ dstInjectiveAddress: injectiveAddress,
61
+ amount: {
62
+ amount: '1',
63
+ denom: 'inj',
64
+ },
65
+ })
66
+
67
+ return await msgBroadcaster.broadcast({ msgs: message })
68
+ }
69
+
70
+ const result = await sendTX()
71
+ ```
72
+
73
+ Read more and find example usages on our [WalletStrategy Docs](https://docs.ts.injective.network/wallet/wallet-wallet-strategy)
74
+
75
+ ---
76
+
77
+ ## 📜 Contribution
78
+
79
+ **Contribution guides and practices will be available once there is a stable foundation of the whole package set within the `injective-ts` repo.**
80
+
81
+ ---
82
+
83
+ ## ⛑ Support
84
+
85
+ Reach out to us at one of the following places!
86
+
87
+ - Website at <a href="https://injective.com" target="_blank">`injective.com`</a>
88
+ - Twitter at <a href="https://twitter.com/Injective_" target="_blank">`@Injective`</a>
89
+ - Discord at <a href="https://discord.com/invite/NK4qdbv" target="_blank">`Discord`</a>
90
+ - Telegram at <a href="https://t.me/joininjective" target="_blank">`Telegram`</a>
91
+
92
+ ---
93
+
94
+ ## 🔓 License
95
+
96
+ Copyright © 2021 - 2022 Injective Labs Inc. (https://injectivelabs.org/)
97
+
98
+ <a href="https://iili.io/mNneZN.md.png"><img src="https://iili.io/mNneZN.md.png" style="width: 300px; max-width: 100%; height: auto" />
99
+
100
+ Originally released by Injective Labs Inc. under: <br />
101
+ Apache License <br />
102
+ Version 2.0, January 2004 <br />
103
+ http://www.apache.org/licenses/
104
+
105
+ <p>&nbsp;</p>
106
+ <div align="center">
107
+ <sub><em>Powering the future of decentralized finance.</em></sub>
108
+ </div>
@@ -0,0 +1,3 @@
1
+ export { CosmosWallet } from './wallet';
2
+ export { CosmosWalletStrategy } from './strategy/strategy';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CosmosWalletStrategy = exports.CosmosWallet = void 0;
4
+ var wallet_1 = require("./wallet");
5
+ Object.defineProperty(exports, "CosmosWallet", { enumerable: true, get: function () { return wallet_1.CosmosWallet; } });
6
+ var strategy_1 = require("./strategy/strategy");
7
+ Object.defineProperty(exports, "CosmosWalletStrategy", { enumerable: true, get: function () { return strategy_1.CosmosWalletStrategy; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AACrB,gDAA0D;AAAjD,gHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,46 @@
1
+ import { TxRaw, TxResponse, AminoSignResponse, DirectSignResponse } from '@injectivelabs/sdk-ts';
2
+ import { ChainId, AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
3
+ import { Wallet, StdSignDoc, WalletDeviceType, BaseConcreteStrategy, ConcreteWalletStrategy, SendTransactionOptions } from '@injectivelabs/wallet-base';
4
+ import { CosmosWallet } from './../wallet';
5
+ export declare class CosmosWalletStrategy extends BaseConcreteStrategy implements ConcreteWalletStrategy {
6
+ wallet: Wallet;
7
+ private cosmosWallet;
8
+ constructor(args: {
9
+ chainId: ChainId;
10
+ endpoints?: {
11
+ rest: string;
12
+ rpc: string;
13
+ };
14
+ } & {
15
+ wallet: Wallet;
16
+ });
17
+ getWalletDeviceType(): Promise<WalletDeviceType>;
18
+ enable(): Promise<boolean>;
19
+ disconnect(): Promise<void>;
20
+ getAddresses(): Promise<string[]>;
21
+ getSessionOrConfirm(address: AccountAddress): Promise<string>;
22
+ sendEthereumTransaction(_transaction: unknown, _options: {
23
+ address: AccountAddress;
24
+ ethereumChainId: EthereumChainId;
25
+ }): Promise<string>;
26
+ sendTransaction(transaction: DirectSignResponse | TxRaw, options: SendTransactionOptions): Promise<TxResponse>;
27
+ signAminoCosmosTransaction(transaction: {
28
+ address: string;
29
+ signDoc: StdSignDoc;
30
+ }): Promise<AminoSignResponse>;
31
+ signCosmosTransaction(transaction: {
32
+ txRaw: TxRaw;
33
+ accountNumber: number;
34
+ chainId: string;
35
+ address: AccountAddress;
36
+ }): Promise<DirectSignResponse>;
37
+ signEip712TypedData(_eip712TypedData: string, _address: AccountAddress): Promise<string>;
38
+ signArbitrary(signer: string, data: string | Uint8Array): Promise<string>;
39
+ getEthereumChainId(): Promise<string>;
40
+ getEthereumTransactionReceipt(_txHash: string): Promise<string>;
41
+ getPubKey(): Promise<string>;
42
+ onAccountChange(callback: (account: AccountAddress) => void): Promise<void>;
43
+ getCosmosWallet(chainId: ChainId): CosmosWallet;
44
+ private getCurrentCosmosWallet;
45
+ }
46
+ //# sourceMappingURL=strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/strategy/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,OAAO,EAEP,cAAc,EACd,eAAe,EAChB,MAAM,yBAAyB,CAAA;AAOhC,OAAO,EACL,MAAM,EACN,UAAU,EAEV,gBAAgB,EAEhB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAEvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,qBAAa,oBACX,SAAQ,oBACR,YAAW,sBAAsB;IAE1B,MAAM,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,YAAY,CAAc;gBAGhC,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAA;QAChB,SAAS,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAC1C,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAelB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAShD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnB,UAAU;IA6BjB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAejC,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAS7D,uBAAuB,CAC3B,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE,GACtE,OAAO,CAAC,MAAM,CAAC;IAcZ,eAAe,CACnB,WAAW,EAAE,kBAAkB,GAAG,KAAK,EACvC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC;IA4BhB,0BAA0B,CAAC,WAAW,EAAE;QAC5C,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,UAAU,CAAA;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAcxB,qBAAqB,CAAC,WAAW,EAAE;QACvC,KAAK,EAAE,KAAK,CAAA;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,cAAc,CAAA;KACxB;IAkBK,mBAAmB,CACvB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAUZ,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,MAAM,CAAC;IAeZ,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAYrC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY/D,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAO5B,eAAe,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAC1C,OAAO,CAAC,IAAI,CAAC;IA0BT,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY;IAMtD,OAAO,CAAC,sBAAsB;CAgB/B"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CosmosWalletStrategy = void 0;
13
+ /* eslint-disable class-methods-use-this */
14
+ const sdk_ts_1 = require("@injectivelabs/sdk-ts");
15
+ const ts_types_1 = require("@injectivelabs/ts-types");
16
+ const exceptions_1 = require("@injectivelabs/exceptions");
17
+ const wallet_base_1 = require("@injectivelabs/wallet-base");
18
+ const wallet_1 = require("./../wallet");
19
+ const cosmosWallets = [wallet_base_1.Wallet.Leap, wallet_base_1.Wallet.Ninji, wallet_base_1.Wallet.Keplr, wallet_base_1.Wallet.OWallet];
20
+ class CosmosWalletStrategy extends wallet_base_1.BaseConcreteStrategy {
21
+ constructor(args) {
22
+ super(args);
23
+ if (!cosmosWallets.includes(args.wallet)) {
24
+ throw new exceptions_1.CosmosWalletException(new Error(`Cosmos Wallet for ${args.wallet} is not supported.`));
25
+ }
26
+ this.wallet = args.wallet;
27
+ this.chainId = args.chainId || ts_types_1.CosmosChainId.Injective;
28
+ this.cosmosWallet = new wallet_1.CosmosWallet(args.chainId, args.wallet);
29
+ }
30
+ getWalletDeviceType() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const cosmosWallet = this.getCurrentCosmosWallet();
33
+ const key = yield cosmosWallet.getKey();
34
+ return key.isNanoLedger
35
+ ? Promise.resolve(wallet_base_1.WalletDeviceType.Hardware)
36
+ : Promise.resolve(wallet_base_1.WalletDeviceType.Browser);
37
+ });
38
+ }
39
+ enable() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const cosmosWallet = this.getCurrentCosmosWallet();
42
+ return yield cosmosWallet.checkChainIdSupport();
43
+ });
44
+ }
45
+ disconnect() {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const { wallet } = this;
48
+ if (this.listeners[wallet_base_1.WalletEventListener.AccountChange]) {
49
+ if (wallet === wallet_base_1.Wallet.Ninji) {
50
+ window.ninji.off('accountsChanged', this.listeners[wallet_base_1.WalletEventListener.AccountChange]);
51
+ }
52
+ if ([wallet_base_1.Wallet.Keplr, wallet_base_1.Wallet.OWallet].includes(wallet)) {
53
+ window.removeEventListener('keplr_keystorechange', this.listeners[wallet_base_1.WalletEventListener.AccountChange]);
54
+ }
55
+ if (wallet === wallet_base_1.Wallet.Leap) {
56
+ window.removeEventListener('leap_keystorechange', this.listeners[wallet_base_1.WalletEventListener.AccountChange]);
57
+ }
58
+ }
59
+ this.listeners = {};
60
+ });
61
+ }
62
+ getAddresses() {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const cosmosWallet = this.getCurrentCosmosWallet();
65
+ try {
66
+ const accounts = yield cosmosWallet.getAccounts();
67
+ return accounts.map((account) => account.address);
68
+ }
69
+ catch (e) {
70
+ throw new exceptions_1.CosmosWalletException(new Error(e.message), {
71
+ code: exceptions_1.UnspecifiedErrorCode,
72
+ context: wallet_base_1.WalletAction.GetAccounts,
73
+ });
74
+ }
75
+ });
76
+ }
77
+ getSessionOrConfirm(address) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ return Promise.resolve(`0x${Buffer.from(`Confirmation for ${address} at time: ${Date.now()}`).toString('hex')}`);
80
+ });
81
+ }
82
+ // eslint-disable-next-line class-methods-use-this
83
+ sendEthereumTransaction(_transaction, _options) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ const { wallet } = this;
86
+ throw new exceptions_1.CosmosWalletException(new Error(`sendEthereumTransaction is not supported. ${wallet} only supports sending cosmos transactions`), {
87
+ code: exceptions_1.UnspecifiedErrorCode,
88
+ context: wallet_base_1.WalletAction.SendEthereumTransaction,
89
+ });
90
+ });
91
+ }
92
+ sendTransaction(transaction, options) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const cosmosWallet = this.getCurrentCosmosWallet();
95
+ const txRaw = (0, sdk_ts_1.createTxRawFromSigResponse)(transaction);
96
+ if (!options.endpoints) {
97
+ throw new exceptions_1.CosmosWalletException(new Error('You have to pass endpoints within the options to broadcast transaction'));
98
+ }
99
+ try {
100
+ const txHash = yield cosmosWallet.broadcastTx(txRaw);
101
+ return yield (0, sdk_ts_1.waitTxBroadcasted)(txHash, options);
102
+ }
103
+ catch (e) {
104
+ if (e instanceof exceptions_1.TransactionException) {
105
+ throw e;
106
+ }
107
+ throw new exceptions_1.TransactionException(new Error(e.message), {
108
+ code: exceptions_1.UnspecifiedErrorCode,
109
+ context: wallet_base_1.WalletAction.SendTransaction,
110
+ });
111
+ }
112
+ });
113
+ }
114
+ signAminoCosmosTransaction(transaction) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ const cosmosWallet = this.getCurrentCosmosWallet();
117
+ const signer = yield cosmosWallet.getOfflineAminoSigner();
118
+ try {
119
+ return yield signer.signAmino(transaction.address, transaction.signDoc);
120
+ }
121
+ catch (e) {
122
+ throw new exceptions_1.CosmosWalletException(new Error(e.message), {
123
+ code: exceptions_1.UnspecifiedErrorCode,
124
+ context: wallet_base_1.WalletAction.SignTransaction,
125
+ });
126
+ }
127
+ });
128
+ }
129
+ signCosmosTransaction(transaction) {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ const cosmosWallet = this.getCurrentCosmosWallet();
132
+ const signer = yield cosmosWallet.getOfflineSigner();
133
+ const signDoc = (0, sdk_ts_1.createSignDocFromTransaction)(transaction);
134
+ try {
135
+ return yield signer.signDirect(transaction.address, (0, wallet_base_1.createCosmosSignDocFromSignDoc)(signDoc));
136
+ }
137
+ catch (e) {
138
+ throw new exceptions_1.CosmosWalletException(new Error(e.message), {
139
+ code: exceptions_1.UnspecifiedErrorCode,
140
+ context: wallet_base_1.WalletAction.SendTransaction,
141
+ });
142
+ }
143
+ });
144
+ }
145
+ signEip712TypedData(_eip712TypedData, _address) {
146
+ return __awaiter(this, void 0, void 0, function* () {
147
+ throw new exceptions_1.CosmosWalletException(new Error('This wallet does not support signing Ethereum transactions'), {
148
+ code: exceptions_1.UnspecifiedErrorCode,
149
+ context: wallet_base_1.WalletAction.SendTransaction,
150
+ });
151
+ });
152
+ }
153
+ signArbitrary(signer, data) {
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ const cosmosWallet = this.getCurrentCosmosWallet();
156
+ try {
157
+ const signature = yield cosmosWallet.signArbitrary({ data, signer });
158
+ return signature;
159
+ }
160
+ catch (e) {
161
+ throw new exceptions_1.CosmosWalletException(new Error(e.message), {
162
+ code: exceptions_1.UnspecifiedErrorCode,
163
+ context: wallet_base_1.WalletAction.SignArbitrary,
164
+ });
165
+ }
166
+ });
167
+ }
168
+ getEthereumChainId() {
169
+ return __awaiter(this, void 0, void 0, function* () {
170
+ const { wallet } = this;
171
+ throw new exceptions_1.CosmosWalletException(new Error(`getEthereumChainId is not supported on ${wallet}`), {
172
+ code: exceptions_1.UnspecifiedErrorCode,
173
+ context: wallet_base_1.WalletAction.GetChainId,
174
+ });
175
+ });
176
+ }
177
+ getEthereumTransactionReceipt(_txHash) {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ const { wallet } = this;
180
+ throw new exceptions_1.CosmosWalletException(new Error(`getEthereumTransactionReceipt is not supported on ${wallet}`), {
181
+ code: exceptions_1.UnspecifiedErrorCode,
182
+ context: wallet_base_1.WalletAction.GetEthereumTransactionReceipt,
183
+ });
184
+ });
185
+ }
186
+ getPubKey() {
187
+ return __awaiter(this, void 0, void 0, function* () {
188
+ const cosmosWallet = this.getCurrentCosmosWallet();
189
+ const key = yield cosmosWallet.getKey();
190
+ return Buffer.from(key.pubKey).toString('base64');
191
+ });
192
+ }
193
+ onAccountChange(callback) {
194
+ return __awaiter(this, void 0, void 0, function* () {
195
+ const { wallet } = this;
196
+ const listener = () => __awaiter(this, void 0, void 0, function* () {
197
+ const [account] = yield this.getAddresses();
198
+ callback(account);
199
+ });
200
+ this.listeners = {
201
+ [wallet_base_1.WalletEventListener.AccountChange]: listener,
202
+ };
203
+ if (wallet === wallet_base_1.Wallet.Ninji) {
204
+ window.ninji.on('accountsChanged', listener);
205
+ }
206
+ if ([wallet_base_1.Wallet.Keplr, wallet_base_1.Wallet.OWallet].includes(wallet)) {
207
+ window.addEventListener('keplr_keystorechange', listener);
208
+ }
209
+ if (wallet === wallet_base_1.Wallet.Leap) {
210
+ window.addEventListener('leap_keystorechange', listener);
211
+ }
212
+ });
213
+ }
214
+ getCosmosWallet(chainId) {
215
+ const { wallet, cosmosWallet } = this;
216
+ return !cosmosWallet ? new wallet_1.CosmosWallet(chainId, wallet) : cosmosWallet;
217
+ }
218
+ getCurrentCosmosWallet() {
219
+ const { wallet, cosmosWallet } = this;
220
+ if (!cosmosWallet) {
221
+ throw new exceptions_1.CosmosWalletException(new Error(`Please install the ${wallet} wallet extension`), {
222
+ code: exceptions_1.UnspecifiedErrorCode,
223
+ type: exceptions_1.ErrorType.WalletNotInstalledError,
224
+ context: wallet_base_1.WalletAction.SignTransaction,
225
+ });
226
+ }
227
+ return cosmosWallet;
228
+ }
229
+ }
230
+ exports.CosmosWalletStrategy = CosmosWalletStrategy;
231
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/strategy/strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { Keplr, StdSignDoc, AminoSignResponse, OfflineAminoSigner } from '@keplr-wallet/types';
2
+ import { ChainId, CosmosChainId, TestnetCosmosChainId } from '@injectivelabs/ts-types';
3
+ import { Wallet } from '@injectivelabs/wallet-base';
4
+ import { CosmosTxV1Beta1Tx } from '@injectivelabs/sdk-ts';
5
+ import { StdFee } from '@cosmjs/stargate';
6
+ import type { EncodeObject, OfflineDirectSigner } from '@cosmjs/proto-signing';
7
+ export declare class CosmosWallet {
8
+ wallet: Wallet;
9
+ private chainId;
10
+ constructor(chainId: CosmosChainId | TestnetCosmosChainId | ChainId, wallet: Wallet);
11
+ isChainIdSupported(chainId: CosmosChainId): Promise<boolean>;
12
+ getCosmosWallet(): Promise<Keplr>;
13
+ chainNotSupported(): Promise<void>;
14
+ getAccounts(): Promise<readonly import("@keplr-wallet/types").AccountData[]>;
15
+ getKey(): Promise<{
16
+ name: string;
17
+ algo: string;
18
+ isNanoLedger: boolean;
19
+ pubKey: Uint8Array;
20
+ address: Uint8Array;
21
+ bech32Address: string;
22
+ }>;
23
+ getOfflineSigner(): Promise<OfflineDirectSigner>;
24
+ getOfflineAminoSigner(): Promise<OfflineAminoSigner>;
25
+ /**
26
+ * This method is used to broadcast a transaction to the network.
27
+ * Since it uses the `Sync` mode, it will not wait for the transaction to be included in a block,
28
+ * so we have to make sure the transaction is included in a block after its broadcasted
29
+ *
30
+ * @param txRaw - raw transaction to broadcast
31
+ * @returns tx hash
32
+ */
33
+ broadcastTx(txRaw: CosmosTxV1Beta1Tx.TxRaw): Promise<string>;
34
+ /**
35
+ * This method is used to broadcast a transaction to the network.
36
+ * Since it uses the `Block` mode, and it will wait for the transaction to be included in a block,
37
+ *
38
+ * @param txRaw - raw transaction to broadcast
39
+ * @returns tx hash
40
+ */
41
+ broadcastTxBlock(txRaw: CosmosTxV1Beta1Tx.TxRaw): Promise<string>;
42
+ signAndBroadcastAminoUsingCosmjs(messages: EncodeObject[], stdFee: StdFee, endpoints: {
43
+ rest: string;
44
+ rpc: string;
45
+ }): Promise<import("@cosmjs/stargate").DeliverTxResponse>;
46
+ signArbitrary({ data, signer, }: {
47
+ signer: string;
48
+ data: string | Uint8Array;
49
+ }): Promise<string>;
50
+ signEIP712CosmosTx({ eip712, signDoc, }: {
51
+ eip712: any;
52
+ signDoc: StdSignDoc;
53
+ }): Promise<AminoSignResponse>;
54
+ checkChainIdSupport(): Promise<boolean>;
55
+ private getCosmos;
56
+ disableGasCheck(): Promise<void>;
57
+ enableGasCheck(): Promise<void>;
58
+ }
59
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EACP,aAAa,EACb,oBAAoB,EACrB,MAAM,yBAAyB,CAAA;AAUhC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAyB,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAS9E,qBAAa,YAAY;IAChB,MAAM,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,OAAO,CAAgD;gBAG7D,OAAO,EAAE,aAAa,GAAG,oBAAoB,GAAG,OAAO,EACvD,MAAM,EAAE,MAAM;IAMH,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAM5D,eAAe;IAaf,iBAAiB;IAqBjB,WAAW;IAaX,MAAM,IAAI,OAAO,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,EAAE,OAAO,CAAA;QACrB,MAAM,EAAE,UAAU,CAAA;QAClB,OAAO,EAAE,UAAU,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAC;IAaW,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAehD,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAsBjE;;;;;;;OAOG;IACU,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BzE;;;;;;OAMG;IACU,gBAAgB,CAC3B,KAAK,EAAE,iBAAiB,CAAC,KAAK,GAC7B,OAAO,CAAC,MAAM,CAAC;IA+BL,gCAAgC,CAC3C,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAiC7B,aAAa,CAAC,EACzB,IAAI,EACJ,MAAM,GACP,EAAE;QACD,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAC1B;IAsBY,kBAAkB,CAAC,EAC9B,MAAM,EACN,OAAO,GACR,EAAE;QACD,MAAM,EAAE,GAAG,CAAA;QACX,OAAO,EAAE,UAAU,CAAA;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoBjB,mBAAmB;IAkBhC,OAAO,CAAC,SAAS;IA8CJ,eAAe;IAoBf,cAAc;CAmB5B"}