@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 +108 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/strategy/strategy.d.ts +46 -0
- package/dist/cjs/strategy/strategy.d.ts.map +1 -0
- package/dist/cjs/strategy/strategy.js +231 -0
- package/dist/cjs/strategy/strategy.js.map +1 -0
- package/dist/cjs/wallet.d.ts +59 -0
- package/dist/cjs/wallet.d.ts.map +1 -0
- package/dist/cjs/wallet.js +293 -0
- package/dist/cjs/wallet.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/strategy/strategy.d.ts +46 -0
- package/dist/esm/strategy/strategy.d.ts.map +1 -0
- package/dist/esm/strategy/strategy.js +190 -0
- package/dist/esm/strategy/strategy.js.map +1 -0
- package/dist/esm/wallet.d.ts +59 -0
- package/dist/esm/wallet.d.ts.map +1 -0
- package/dist/esm/wallet.js +264 -0
- package/dist/esm/wallet.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,293 @@
|
|
|
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.CosmosWallet = void 0;
|
|
13
|
+
const exceptions_1 = require("@injectivelabs/exceptions");
|
|
14
|
+
const launchpad_1 = require("@cosmjs/launchpad");
|
|
15
|
+
const wallet_base_1 = require("@injectivelabs/wallet-base");
|
|
16
|
+
const sdk_ts_1 = require("@injectivelabs/sdk-ts");
|
|
17
|
+
const stargate_1 = require("@cosmjs/stargate");
|
|
18
|
+
const $window = (typeof window !== 'undefined' ? window : {});
|
|
19
|
+
class CosmosWallet {
|
|
20
|
+
constructor(chainId, wallet) {
|
|
21
|
+
this.wallet = wallet;
|
|
22
|
+
this.chainId = chainId;
|
|
23
|
+
}
|
|
24
|
+
isChainIdSupported(chainId) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const { wallet } = this;
|
|
27
|
+
return new CosmosWallet(chainId, wallet).checkChainIdSupport();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getCosmosWallet() {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const { chainId } = this;
|
|
33
|
+
const cosmos = this.getCosmos();
|
|
34
|
+
try {
|
|
35
|
+
yield cosmos.enable(chainId);
|
|
36
|
+
return cosmos;
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message));
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
chainNotSupported() {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const { chainId, wallet } = this;
|
|
46
|
+
const chainName = chainId.split('-');
|
|
47
|
+
const context = wallet === wallet_base_1.Wallet.Keplr
|
|
48
|
+
? 'https://chains.keplr.app/'
|
|
49
|
+
: wallet === wallet_base_1.Wallet.OWallet
|
|
50
|
+
? 'https://owallet.io/'
|
|
51
|
+
: undefined;
|
|
52
|
+
throw new exceptions_1.CosmosWalletException(new Error(`${wallet} may not support ${chainName[0] || chainId} network. Please check if the chain can be added.`), context ? { context } : {});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
getAccounts() {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const { chainId } = this;
|
|
58
|
+
const cosmos = this.getCosmos();
|
|
59
|
+
try {
|
|
60
|
+
return cosmos.getOfflineSigner(chainId).getAccounts();
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
64
|
+
contextModule: exceptions_1.WalletErrorActionModule.GetAccounts,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
getKey() {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
const { wallet, chainId } = this;
|
|
72
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
73
|
+
try {
|
|
74
|
+
return cosmosWallet.getKey(chainId);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
78
|
+
contextModule: wallet,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
getOfflineSigner() {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
const { chainId, wallet } = this;
|
|
86
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
87
|
+
try {
|
|
88
|
+
return cosmosWallet.getOfflineSigner(chainId);
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
92
|
+
contextModule: wallet,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
getOfflineAminoSigner() {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
const { chainId, wallet } = this;
|
|
100
|
+
if ([wallet_base_1.Wallet.Keplr, wallet_base_1.Wallet.OWallet].includes(wallet)) {
|
|
101
|
+
throw new exceptions_1.CosmosWalletException(new Error(`getOfflineAminoSigner is not support on ${wallet}`));
|
|
102
|
+
}
|
|
103
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
104
|
+
try {
|
|
105
|
+
return cosmosWallet.getOfflineSignerOnlyAmino(chainId);
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
109
|
+
context: wallet,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* This method is used to broadcast a transaction to the network.
|
|
116
|
+
* Since it uses the `Sync` mode, it will not wait for the transaction to be included in a block,
|
|
117
|
+
* so we have to make sure the transaction is included in a block after its broadcasted
|
|
118
|
+
*
|
|
119
|
+
* @param txRaw - raw transaction to broadcast
|
|
120
|
+
* @returns tx hash
|
|
121
|
+
*/
|
|
122
|
+
broadcastTx(txRaw) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const { chainId, wallet } = this;
|
|
125
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
126
|
+
try {
|
|
127
|
+
const result = yield cosmosWallet.sendTx(chainId, sdk_ts_1.CosmosTxV1Beta1Tx.TxRaw.encode(txRaw).finish(), launchpad_1.BroadcastMode.Sync);
|
|
128
|
+
if (!result || result.length === 0) {
|
|
129
|
+
throw new exceptions_1.TransactionException(new Error('Transaction failed to be broadcasted'), { contextModule: wallet });
|
|
130
|
+
}
|
|
131
|
+
return Buffer.from(result).toString('hex');
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
if (e instanceof exceptions_1.TransactionException) {
|
|
135
|
+
throw e;
|
|
136
|
+
}
|
|
137
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
138
|
+
context: 'broadcast-tx',
|
|
139
|
+
contextModule: wallet,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* This method is used to broadcast a transaction to the network.
|
|
146
|
+
* Since it uses the `Block` mode, and it will wait for the transaction to be included in a block,
|
|
147
|
+
*
|
|
148
|
+
* @param txRaw - raw transaction to broadcast
|
|
149
|
+
* @returns tx hash
|
|
150
|
+
*/
|
|
151
|
+
broadcastTxBlock(txRaw) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
const { chainId, wallet } = this;
|
|
154
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
155
|
+
try {
|
|
156
|
+
const result = yield cosmosWallet.sendTx(chainId, sdk_ts_1.CosmosTxV1Beta1Tx.TxRaw.encode(txRaw).finish(), launchpad_1.BroadcastMode.Block);
|
|
157
|
+
if (!result || result.length === 0) {
|
|
158
|
+
throw new exceptions_1.TransactionException(new Error('Transaction failed to be broadcasted'), { contextModule: wallet });
|
|
159
|
+
}
|
|
160
|
+
return Buffer.from(result).toString('hex');
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
if (e instanceof exceptions_1.TransactionException) {
|
|
164
|
+
throw e;
|
|
165
|
+
}
|
|
166
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
167
|
+
context: 'broadcast-tx',
|
|
168
|
+
contextModule: wallet,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
signAndBroadcastAminoUsingCosmjs(messages, stdFee, endpoints) {
|
|
174
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
175
|
+
const { chainId, wallet } = this;
|
|
176
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
177
|
+
if (![wallet_base_1.Wallet.Keplr, wallet_base_1.Wallet.OWallet].includes(wallet)) {
|
|
178
|
+
throw new exceptions_1.CosmosWalletException(new Error(`signAndBroadcastAminoUsingCosmjs is not support on ${wallet}`));
|
|
179
|
+
}
|
|
180
|
+
if (!endpoints.rpc) {
|
|
181
|
+
throw new exceptions_1.GeneralException(new Error(`Please provide rpc endpoint`));
|
|
182
|
+
}
|
|
183
|
+
const offlineSigner = cosmosWallet.getOfflineSignerOnlyAmino(chainId);
|
|
184
|
+
const [account] = yield offlineSigner.getAccounts();
|
|
185
|
+
const client = yield stargate_1.SigningStargateClient.connectWithSigner(endpoints.rpc, offlineSigner);
|
|
186
|
+
const txResponse = yield client.signAndBroadcast(account.address, messages, stdFee);
|
|
187
|
+
return txResponse;
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
signArbitrary(_a) {
|
|
191
|
+
return __awaiter(this, arguments, void 0, function* ({ data, signer, }) {
|
|
192
|
+
const { chainId, wallet } = this;
|
|
193
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
194
|
+
if (wallet !== wallet_base_1.Wallet.Keplr) {
|
|
195
|
+
throw new exceptions_1.CosmosWalletException(new Error(`signArbitrary is not supported on ${wallet}`));
|
|
196
|
+
}
|
|
197
|
+
try {
|
|
198
|
+
const signature = yield cosmosWallet.signArbitrary(chainId, signer, data);
|
|
199
|
+
return signature.signature;
|
|
200
|
+
}
|
|
201
|
+
catch (e) {
|
|
202
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
203
|
+
context: wallet,
|
|
204
|
+
contextModule: 'sign-arbitrary',
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
signEIP712CosmosTx(_a) {
|
|
210
|
+
return __awaiter(this, arguments, void 0, function* ({ eip712, signDoc, }) {
|
|
211
|
+
const { chainId, wallet } = this;
|
|
212
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
213
|
+
const key = yield this.getKey();
|
|
214
|
+
try {
|
|
215
|
+
return cosmosWallet.experimentalSignEIP712CosmosTx_v0(chainId, key.bech32Address, eip712, signDoc);
|
|
216
|
+
}
|
|
217
|
+
catch (e) {
|
|
218
|
+
throw new exceptions_1.CosmosWalletException(new Error(e.message), {
|
|
219
|
+
context: wallet,
|
|
220
|
+
contextModule: 'sign-eip712-cosmos-tx',
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
checkChainIdSupport() {
|
|
226
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
227
|
+
const { chainId, wallet } = this;
|
|
228
|
+
const cosmos = this.getCosmos();
|
|
229
|
+
const chainName = chainId.split('-');
|
|
230
|
+
try {
|
|
231
|
+
return !!(yield cosmos.getKey(chainId));
|
|
232
|
+
}
|
|
233
|
+
catch (e) {
|
|
234
|
+
throw new exceptions_1.CosmosWalletException(new Error(`${wallet} doesn't support ${chainName[0] || chainId} network. Please use another Cosmos wallet`));
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
getCosmos() {
|
|
239
|
+
const { wallet } = this;
|
|
240
|
+
if (!$window) {
|
|
241
|
+
throw new exceptions_1.CosmosWalletException(new Error(`Please install ${wallet} extension`), {
|
|
242
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
243
|
+
type: exceptions_1.ErrorType.WalletNotInstalledError,
|
|
244
|
+
contextModule: wallet,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
let cosmos = undefined;
|
|
248
|
+
if (wallet === wallet_base_1.Wallet.OWallet) {
|
|
249
|
+
cosmos = $window.owallet;
|
|
250
|
+
}
|
|
251
|
+
if (wallet === wallet_base_1.Wallet.Keplr) {
|
|
252
|
+
cosmos = $window.keplr;
|
|
253
|
+
}
|
|
254
|
+
if (wallet === wallet_base_1.Wallet.Ninji) {
|
|
255
|
+
cosmos = $window.ninji;
|
|
256
|
+
}
|
|
257
|
+
if (wallet === wallet_base_1.Wallet.Leap) {
|
|
258
|
+
cosmos = $window.leap;
|
|
259
|
+
}
|
|
260
|
+
if (!cosmos) {
|
|
261
|
+
throw new exceptions_1.CosmosWalletException(new Error(`Please install ${wallet} extension`), {
|
|
262
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
263
|
+
type: exceptions_1.ErrorType.WalletNotInstalledError,
|
|
264
|
+
contextModule: wallet,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
return cosmos;
|
|
268
|
+
}
|
|
269
|
+
disableGasCheck() {
|
|
270
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
271
|
+
const { wallet } = this;
|
|
272
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
273
|
+
if ([wallet_base_1.Wallet.Keplr, wallet_base_1.Wallet.OWallet].includes(wallet)) {
|
|
274
|
+
throw new exceptions_1.CosmosWalletException(new Error(`disableGasCheck is not support on ${wallet}`));
|
|
275
|
+
}
|
|
276
|
+
// Temporary disable tx gas check for fee delegation purposes
|
|
277
|
+
cosmosWallet.defaultOptions = Object.assign(Object.assign({}, cosmosWallet.defaultOptions), { sign: Object.assign(Object.assign({}, cosmosWallet.defaultOptions.sign), { disableBalanceCheck: true }) });
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
enableGasCheck() {
|
|
281
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
282
|
+
const { wallet } = this;
|
|
283
|
+
const cosmosWallet = yield this.getCosmosWallet();
|
|
284
|
+
if ([wallet_base_1.Wallet.Keplr, wallet_base_1.Wallet.OWallet].includes(wallet)) {
|
|
285
|
+
throw new exceptions_1.CosmosWalletException(new Error(`enableGasCheck is not support on ${wallet}`));
|
|
286
|
+
}
|
|
287
|
+
// Temporary disable tx gas check for fee delegation purposes
|
|
288
|
+
cosmosWallet.defaultOptions = Object.assign(Object.assign({}, cosmosWallet.defaultOptions), { sign: Object.assign(Object.assign({}, cosmosWallet.defaultOptions.sign), { disableBalanceCheck: false }) });
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
exports.CosmosWallet = CosmosWallet;
|
|
293
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","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,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,190 @@
|
|
|
1
|
+
/* eslint-disable class-methods-use-this */
|
|
2
|
+
import { waitTxBroadcasted, createTxRawFromSigResponse, createSignDocFromTransaction, } from '@injectivelabs/sdk-ts';
|
|
3
|
+
import { CosmosChainId, } from '@injectivelabs/ts-types';
|
|
4
|
+
import { ErrorType, UnspecifiedErrorCode, CosmosWalletException, TransactionException, } from '@injectivelabs/exceptions';
|
|
5
|
+
import { Wallet, WalletAction, WalletDeviceType, WalletEventListener, BaseConcreteStrategy, createCosmosSignDocFromSignDoc, } from '@injectivelabs/wallet-base';
|
|
6
|
+
import { CosmosWallet } from './../wallet';
|
|
7
|
+
const cosmosWallets = [Wallet.Leap, Wallet.Ninji, Wallet.Keplr, Wallet.OWallet];
|
|
8
|
+
export class CosmosWalletStrategy extends BaseConcreteStrategy {
|
|
9
|
+
wallet;
|
|
10
|
+
cosmosWallet;
|
|
11
|
+
constructor(args) {
|
|
12
|
+
super(args);
|
|
13
|
+
if (!cosmosWallets.includes(args.wallet)) {
|
|
14
|
+
throw new CosmosWalletException(new Error(`Cosmos Wallet for ${args.wallet} is not supported.`));
|
|
15
|
+
}
|
|
16
|
+
this.wallet = args.wallet;
|
|
17
|
+
this.chainId = args.chainId || CosmosChainId.Injective;
|
|
18
|
+
this.cosmosWallet = new CosmosWallet(args.chainId, args.wallet);
|
|
19
|
+
}
|
|
20
|
+
async getWalletDeviceType() {
|
|
21
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
22
|
+
const key = await cosmosWallet.getKey();
|
|
23
|
+
return key.isNanoLedger
|
|
24
|
+
? Promise.resolve(WalletDeviceType.Hardware)
|
|
25
|
+
: Promise.resolve(WalletDeviceType.Browser);
|
|
26
|
+
}
|
|
27
|
+
async enable() {
|
|
28
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
29
|
+
return await cosmosWallet.checkChainIdSupport();
|
|
30
|
+
}
|
|
31
|
+
async disconnect() {
|
|
32
|
+
const { wallet } = this;
|
|
33
|
+
if (this.listeners[WalletEventListener.AccountChange]) {
|
|
34
|
+
if (wallet === Wallet.Ninji) {
|
|
35
|
+
window.ninji.off('accountsChanged', this.listeners[WalletEventListener.AccountChange]);
|
|
36
|
+
}
|
|
37
|
+
if ([Wallet.Keplr, Wallet.OWallet].includes(wallet)) {
|
|
38
|
+
window.removeEventListener('keplr_keystorechange', this.listeners[WalletEventListener.AccountChange]);
|
|
39
|
+
}
|
|
40
|
+
if (wallet === Wallet.Leap) {
|
|
41
|
+
window.removeEventListener('leap_keystorechange', this.listeners[WalletEventListener.AccountChange]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.listeners = {};
|
|
45
|
+
}
|
|
46
|
+
async getAddresses() {
|
|
47
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
48
|
+
try {
|
|
49
|
+
const accounts = await cosmosWallet.getAccounts();
|
|
50
|
+
return accounts.map((account) => account.address);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
throw new CosmosWalletException(new Error(e.message), {
|
|
54
|
+
code: UnspecifiedErrorCode,
|
|
55
|
+
context: WalletAction.GetAccounts,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async getSessionOrConfirm(address) {
|
|
60
|
+
return Promise.resolve(`0x${Buffer.from(`Confirmation for ${address} at time: ${Date.now()}`).toString('hex')}`);
|
|
61
|
+
}
|
|
62
|
+
// eslint-disable-next-line class-methods-use-this
|
|
63
|
+
async sendEthereumTransaction(_transaction, _options) {
|
|
64
|
+
const { wallet } = this;
|
|
65
|
+
throw new CosmosWalletException(new Error(`sendEthereumTransaction is not supported. ${wallet} only supports sending cosmos transactions`), {
|
|
66
|
+
code: UnspecifiedErrorCode,
|
|
67
|
+
context: WalletAction.SendEthereumTransaction,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
async sendTransaction(transaction, options) {
|
|
71
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
72
|
+
const txRaw = createTxRawFromSigResponse(transaction);
|
|
73
|
+
if (!options.endpoints) {
|
|
74
|
+
throw new CosmosWalletException(new Error('You have to pass endpoints within the options to broadcast transaction'));
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const txHash = await cosmosWallet.broadcastTx(txRaw);
|
|
78
|
+
return await waitTxBroadcasted(txHash, options);
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
if (e instanceof TransactionException) {
|
|
82
|
+
throw e;
|
|
83
|
+
}
|
|
84
|
+
throw new TransactionException(new Error(e.message), {
|
|
85
|
+
code: UnspecifiedErrorCode,
|
|
86
|
+
context: WalletAction.SendTransaction,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async signAminoCosmosTransaction(transaction) {
|
|
91
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
92
|
+
const signer = await cosmosWallet.getOfflineAminoSigner();
|
|
93
|
+
try {
|
|
94
|
+
return await signer.signAmino(transaction.address, transaction.signDoc);
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
throw new CosmosWalletException(new Error(e.message), {
|
|
98
|
+
code: UnspecifiedErrorCode,
|
|
99
|
+
context: WalletAction.SignTransaction,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async signCosmosTransaction(transaction) {
|
|
104
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
105
|
+
const signer = await cosmosWallet.getOfflineSigner();
|
|
106
|
+
const signDoc = createSignDocFromTransaction(transaction);
|
|
107
|
+
try {
|
|
108
|
+
return await signer.signDirect(transaction.address, createCosmosSignDocFromSignDoc(signDoc));
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
throw new CosmosWalletException(new Error(e.message), {
|
|
112
|
+
code: UnspecifiedErrorCode,
|
|
113
|
+
context: WalletAction.SendTransaction,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async signEip712TypedData(_eip712TypedData, _address) {
|
|
118
|
+
throw new CosmosWalletException(new Error('This wallet does not support signing Ethereum transactions'), {
|
|
119
|
+
code: UnspecifiedErrorCode,
|
|
120
|
+
context: WalletAction.SendTransaction,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
async signArbitrary(signer, data) {
|
|
124
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
125
|
+
try {
|
|
126
|
+
const signature = await cosmosWallet.signArbitrary({ data, signer });
|
|
127
|
+
return signature;
|
|
128
|
+
}
|
|
129
|
+
catch (e) {
|
|
130
|
+
throw new CosmosWalletException(new Error(e.message), {
|
|
131
|
+
code: UnspecifiedErrorCode,
|
|
132
|
+
context: WalletAction.SignArbitrary,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async getEthereumChainId() {
|
|
137
|
+
const { wallet } = this;
|
|
138
|
+
throw new CosmosWalletException(new Error(`getEthereumChainId is not supported on ${wallet}`), {
|
|
139
|
+
code: UnspecifiedErrorCode,
|
|
140
|
+
context: WalletAction.GetChainId,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
async getEthereumTransactionReceipt(_txHash) {
|
|
144
|
+
const { wallet } = this;
|
|
145
|
+
throw new CosmosWalletException(new Error(`getEthereumTransactionReceipt is not supported on ${wallet}`), {
|
|
146
|
+
code: UnspecifiedErrorCode,
|
|
147
|
+
context: WalletAction.GetEthereumTransactionReceipt,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
async getPubKey() {
|
|
151
|
+
const cosmosWallet = this.getCurrentCosmosWallet();
|
|
152
|
+
const key = await cosmosWallet.getKey();
|
|
153
|
+
return Buffer.from(key.pubKey).toString('base64');
|
|
154
|
+
}
|
|
155
|
+
async onAccountChange(callback) {
|
|
156
|
+
const { wallet } = this;
|
|
157
|
+
const listener = async () => {
|
|
158
|
+
const [account] = await this.getAddresses();
|
|
159
|
+
callback(account);
|
|
160
|
+
};
|
|
161
|
+
this.listeners = {
|
|
162
|
+
[WalletEventListener.AccountChange]: listener,
|
|
163
|
+
};
|
|
164
|
+
if (wallet === Wallet.Ninji) {
|
|
165
|
+
window.ninji.on('accountsChanged', listener);
|
|
166
|
+
}
|
|
167
|
+
if ([Wallet.Keplr, Wallet.OWallet].includes(wallet)) {
|
|
168
|
+
window.addEventListener('keplr_keystorechange', listener);
|
|
169
|
+
}
|
|
170
|
+
if (wallet === Wallet.Leap) {
|
|
171
|
+
window.addEventListener('leap_keystorechange', listener);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
getCosmosWallet(chainId) {
|
|
175
|
+
const { wallet, cosmosWallet } = this;
|
|
176
|
+
return !cosmosWallet ? new CosmosWallet(chainId, wallet) : cosmosWallet;
|
|
177
|
+
}
|
|
178
|
+
getCurrentCosmosWallet() {
|
|
179
|
+
const { wallet, cosmosWallet } = this;
|
|
180
|
+
if (!cosmosWallet) {
|
|
181
|
+
throw new CosmosWalletException(new Error(`Please install the ${wallet} wallet extension`), {
|
|
182
|
+
code: UnspecifiedErrorCode,
|
|
183
|
+
type: ErrorType.WalletNotInstalledError,
|
|
184
|
+
context: WalletAction.SignTransaction,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
return cosmosWallet;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# 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"}
|