@shapeshiftoss/hdwallet-keplr 1.23.0
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/LICENSE.md +21 -0
- package/dist/adapter.d.ts +10 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +62 -0
- package/dist/adapter.js.map +1 -0
- package/dist/cosmos.d.ts +11 -0
- package/dist/cosmos.d.ts.map +1 -0
- package/dist/cosmos.js +98 -0
- package/dist/cosmos.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/keplr.d.ts +91 -0
- package/dist/keplr.d.ts.map +1 -0
- package/dist/keplr.js +374 -0
- package/dist/keplr.js.map +1 -0
- package/dist/osmosis.d.ts +11 -0
- package/dist/osmosis.d.ts.map +1 -0
- package/dist/osmosis.js +98 -0
- package/dist/osmosis.js.map +1 -0
- package/package.json +30 -0
- package/src/adapter.ts +36 -0
- package/src/cosmos.ts +74 -0
- package/src/index.ts +2 -0
- package/src/keplr.ts +372 -0
- package/src/osmosis.ts +74 -0
- package/tsconfig.json +10 -0
- package/tsconfig.tsbuildinfo +1 -0
package/dist/keplr.js
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
31
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
|
+
};
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.KeplrHDWallet = exports.KeplrHDWalletInfo = exports.isKeplr = void 0;
|
|
35
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
36
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
37
|
+
const isObject_1 = __importDefault(require("lodash/isObject"));
|
|
38
|
+
const cosmos = __importStar(require("./cosmos"));
|
|
39
|
+
const osmosis = __importStar(require("./osmosis"));
|
|
40
|
+
class KeplrTransport extends core.Transport {
|
|
41
|
+
getDeviceID() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
return "keplr:0";
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
47
|
+
call(...args) {
|
|
48
|
+
return Promise.resolve();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function isKeplr(wallet) {
|
|
52
|
+
return isObject_1.default(wallet) && wallet._isKeplr;
|
|
53
|
+
}
|
|
54
|
+
exports.isKeplr = isKeplr;
|
|
55
|
+
class KeplrHDWalletInfo {
|
|
56
|
+
constructor() {
|
|
57
|
+
this._supportsCosmosInfo = true;
|
|
58
|
+
this._supportsOsmosisInfo = true;
|
|
59
|
+
}
|
|
60
|
+
getVendor() {
|
|
61
|
+
return "Keplr";
|
|
62
|
+
}
|
|
63
|
+
hasOnDevicePinEntry() {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
hasOnDevicePassphrase() {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
hasOnDeviceDisplay() {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
hasOnDeviceRecovery() {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
76
|
+
hasNativeShapeShift(srcCoin, dstCoin) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
supportsOfflineSigning() {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
supportsBroadcast() {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
describePath(msg) {
|
|
86
|
+
switch (msg.coin) {
|
|
87
|
+
case "Atom":
|
|
88
|
+
return cosmos.cosmosDescribePath(msg.path);
|
|
89
|
+
case "Osmo":
|
|
90
|
+
return osmosis.osmosisDescribePath(msg.path);
|
|
91
|
+
default:
|
|
92
|
+
throw new Error("Unsupported path");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
cosmosSupportsNetwork(chainId = 118) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
return chainId === 118;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
cosmosSupportsSecureTransfer() {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
return false;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
cosmosSupportsNativeShapeShift() {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
cosmosGetAccountPaths(msg) {
|
|
109
|
+
return cosmos.cosmosGetAccountPaths(msg);
|
|
110
|
+
}
|
|
111
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
112
|
+
cosmosNextAccountPath(msg) {
|
|
113
|
+
// TODO: What do we do here?
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
osmosisSupportsNetwork(chainId = 1) {
|
|
117
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
118
|
+
return chainId === 1;
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
osmosisSupportsSecureTransfer() {
|
|
122
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
return false;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
osmosisSupportsNativeShapeShift() {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
osmosisGetAccountPaths(msg) {
|
|
130
|
+
return osmosis.osmosisGetAccountPaths(msg);
|
|
131
|
+
}
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
133
|
+
osmosisNextAccountPath(msg) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.KeplrHDWalletInfo = KeplrHDWalletInfo;
|
|
138
|
+
class KeplrHDWallet {
|
|
139
|
+
constructor() {
|
|
140
|
+
this._isKeplr = true;
|
|
141
|
+
this._supportsCosmos = true;
|
|
142
|
+
this._supportsCosmosInfo = true;
|
|
143
|
+
this._supportsOsmosis = true;
|
|
144
|
+
this._supportsOsmosisInfo = true;
|
|
145
|
+
this.transport = new KeplrTransport(new core.Keyring());
|
|
146
|
+
this.initialized = false;
|
|
147
|
+
this.provider = {};
|
|
148
|
+
this.supportedNetworks = [caip_1.ChainReference.CosmosHubMainnet, caip_1.ChainReference.OsmosisMainnet];
|
|
149
|
+
this.info = new KeplrHDWalletInfo();
|
|
150
|
+
}
|
|
151
|
+
getFeatures() {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
return {};
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
isLocked() {
|
|
157
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
return this.provider.isLocked();
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
getVendor() {
|
|
162
|
+
return "Keplr";
|
|
163
|
+
}
|
|
164
|
+
getModel() {
|
|
165
|
+
return Promise.resolve("Keplr");
|
|
166
|
+
}
|
|
167
|
+
getLabel() {
|
|
168
|
+
return Promise.resolve("Keplr");
|
|
169
|
+
}
|
|
170
|
+
initialize(networks = []) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
try {
|
|
173
|
+
if (!window.keplr) {
|
|
174
|
+
throw new Error("Keplr extension not installed.");
|
|
175
|
+
}
|
|
176
|
+
this.provider = window.keplr;
|
|
177
|
+
/** Initialize Keplr Wallet with all supported chains by default
|
|
178
|
+
* or the subset of supported chains passed in the call to initialize() */
|
|
179
|
+
yield this.provider.enable(networks.length ? networks : this.supportedNetworks);
|
|
180
|
+
return Promise.resolve();
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
/**
|
|
184
|
+
* @todo Use logger instead of console.error()
|
|
185
|
+
*/
|
|
186
|
+
console.error(error);
|
|
187
|
+
throw new Error("Error initializing Keplr");
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
hasOnDevicePinEntry() {
|
|
192
|
+
return this.info.hasOnDevicePinEntry();
|
|
193
|
+
}
|
|
194
|
+
hasOnDevicePassphrase() {
|
|
195
|
+
return this.info.hasOnDevicePassphrase();
|
|
196
|
+
}
|
|
197
|
+
hasOnDeviceDisplay() {
|
|
198
|
+
return this.info.hasOnDeviceDisplay();
|
|
199
|
+
}
|
|
200
|
+
hasOnDeviceRecovery() {
|
|
201
|
+
return this.info.hasOnDeviceRecovery();
|
|
202
|
+
}
|
|
203
|
+
hasNativeShapeShift(srcCoin, dstCoin) {
|
|
204
|
+
return this.info.hasNativeShapeShift(srcCoin, dstCoin);
|
|
205
|
+
}
|
|
206
|
+
supportsOfflineSigning() {
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
supportsBroadcast() {
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
clearSession() {
|
|
213
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
214
|
+
// TODO: Can we lock Keplr from here?
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
ping(msg) {
|
|
218
|
+
// no ping function for Keplr, so just returning Core.Pong
|
|
219
|
+
return Promise.resolve({ msg: msg.msg });
|
|
220
|
+
}
|
|
221
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
222
|
+
sendPin(pin) {
|
|
223
|
+
// no concept of pin in Keplr
|
|
224
|
+
return Promise.resolve();
|
|
225
|
+
}
|
|
226
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
227
|
+
sendPassphrase(passphrase) {
|
|
228
|
+
// cannot send passphrase to Keplr. Could show the widget?
|
|
229
|
+
return Promise.resolve();
|
|
230
|
+
}
|
|
231
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
232
|
+
sendCharacter(character) {
|
|
233
|
+
// no concept of sendCharacter in Keplr
|
|
234
|
+
return Promise.resolve();
|
|
235
|
+
}
|
|
236
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
237
|
+
sendWord(word) {
|
|
238
|
+
// no concept of sendWord in Keplr
|
|
239
|
+
return Promise.resolve();
|
|
240
|
+
}
|
|
241
|
+
cancel() {
|
|
242
|
+
// no concept of cancel in Keplr
|
|
243
|
+
return Promise.resolve();
|
|
244
|
+
}
|
|
245
|
+
wipe() {
|
|
246
|
+
return Promise.resolve();
|
|
247
|
+
}
|
|
248
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
249
|
+
reset(msg) {
|
|
250
|
+
return Promise.resolve();
|
|
251
|
+
}
|
|
252
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
253
|
+
recover(msg) {
|
|
254
|
+
// no concept of recover in Keplr
|
|
255
|
+
return Promise.resolve();
|
|
256
|
+
}
|
|
257
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
258
|
+
loadDevice(msg) {
|
|
259
|
+
/**
|
|
260
|
+
* @todo: Does Keplr allow this to be done programatically?
|
|
261
|
+
*/
|
|
262
|
+
return Promise.resolve();
|
|
263
|
+
}
|
|
264
|
+
describePath(msg) {
|
|
265
|
+
return this.info.describePath(msg);
|
|
266
|
+
}
|
|
267
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
268
|
+
getPublicKeys(msg, chainId = caip_1.ChainReference.CosmosHubMainnet) {
|
|
269
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
270
|
+
if (!this.supportedNetworks.includes(chainId)) {
|
|
271
|
+
throw new Error(`Unsupported chainId: ${chainId}`);
|
|
272
|
+
}
|
|
273
|
+
const keys = [];
|
|
274
|
+
yield this.provider.enable(chainId);
|
|
275
|
+
const offlineSigner = this.provider.getOfflineSigner(chainId);
|
|
276
|
+
keys.push({ xpub: Buffer.from((yield offlineSigner.getAccounts())[0].pubkey).toString() });
|
|
277
|
+
return keys;
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
isInitialized() {
|
|
281
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
282
|
+
return this.initialized;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
disconnect() {
|
|
286
|
+
return Promise.resolve();
|
|
287
|
+
}
|
|
288
|
+
cosmosSupportsNetwork(chainId = 118) {
|
|
289
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
+
return chainId === 118;
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
cosmosSupportsSecureTransfer() {
|
|
294
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
295
|
+
return false;
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
cosmosSupportsNativeShapeShift() {
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
cosmosGetAccountPaths(msg) {
|
|
302
|
+
return cosmos.cosmosGetAccountPaths(msg);
|
|
303
|
+
}
|
|
304
|
+
cosmosNextAccountPath(msg) {
|
|
305
|
+
return this.info.cosmosNextAccountPath(msg);
|
|
306
|
+
}
|
|
307
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
308
|
+
cosmosGetAddress() {
|
|
309
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
310
|
+
return (yield cosmos.cosmosGetAddress(this.provider)) || null;
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
cosmosSignTx(msg) {
|
|
314
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
315
|
+
return cosmos.cosmosSignTx(this.provider, msg);
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
319
|
+
cosmosSendTx(msg) {
|
|
320
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
321
|
+
/** Broadcast from Keplr is currently unimplemented */
|
|
322
|
+
return null;
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
osmosisSupportsNetwork(chainId = 118) {
|
|
326
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
327
|
+
return chainId === 118;
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
osmosisSupportsSecureTransfer() {
|
|
331
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
332
|
+
return false;
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
osmosisSupportsNativeShapeShift() {
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
osmosisGetAccountPaths(msg) {
|
|
339
|
+
return osmosis.osmosisGetAccountPaths(msg);
|
|
340
|
+
}
|
|
341
|
+
osmosisNextAccountPath(msg) {
|
|
342
|
+
return this.info.osmosisNextAccountPath(msg);
|
|
343
|
+
}
|
|
344
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
345
|
+
osmosisGetAddress() {
|
|
346
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
347
|
+
return (yield osmosis.osmosisGetAddress(this.provider)) || null;
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
osmosisSignTx(msg) {
|
|
351
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
352
|
+
return osmosis.osmosisSignTx(this.provider, msg);
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
356
|
+
osmosisSendTx(msg) {
|
|
357
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
358
|
+
/** Broadcast from Keplr is currently unimplemented */
|
|
359
|
+
return null;
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
getDeviceID() {
|
|
363
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
364
|
+
return "keplr:" + (yield this.cosmosGetAddress());
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
getFirmwareVersion() {
|
|
368
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
369
|
+
return "keplr";
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
exports.KeplrHDWallet = KeplrHDWallet;
|
|
374
|
+
//# sourceMappingURL=keplr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keplr.js","sourceRoot":"","sources":["../src/keplr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAqD;AACrD,mEAAqD;AACrD,+DAAuC;AAEvC,iDAAmC;AACnC,mDAAqC;AAOrC,MAAM,cAAe,SAAQ,IAAI,CAAC,SAAS;IAC5B,WAAW;;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAED,6DAA6D;IACtD,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,SAAgB,OAAO,CAAC,MAAqB;IAC3C,OAAO,kBAAQ,CAAC,MAAM,CAAC,IAAK,MAAc,CAAC,QAAQ,CAAC;AACtD,CAAC;AAFD,0BAEC;AAED,MAAa,iBAAiB;IAA9B;QACW,wBAAmB,GAAG,IAAI,CAAC;QAC3B,yBAAoB,GAAG,IAAI,CAAC;IAwFvC,CAAC;IAtFQ,SAAS;QACd,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,mBAAmB;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,qBAAqB;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,mBAAmB;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6DAA6D;IACtD,mBAAmB,CAAC,OAAkB,EAAE,OAAkB;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,sBAAsB;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,YAAY,CAAC,GAAsB;QACxC,QAAQ,GAAG,CAAC,IAAI,EAAE;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C;gBACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACvC;IACH,CAAC;IAEY,qBAAqB,CAAC,OAAO,GAAG,GAAG;;YAC9C,OAAO,OAAO,KAAK,GAAG,CAAC;QACzB,CAAC;KAAA;IAEY,4BAA4B;;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEM,8BAA8B;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,qBAAqB,CAAC,GAA+B;QAC1D,OAAO,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,6DAA6D;IACtD,qBAAqB,CAAC,GAA2B;QACtD,4BAA4B;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAEY,sBAAsB,CAAC,OAAO,GAAG,CAAC;;YAC7C,OAAO,OAAO,KAAK,CAAC,CAAC;QACvB,CAAC;KAAA;IAEY,6BAA6B;;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEM,+BAA+B;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,sBAAsB,CAAC,GAAgC;QAC5D,OAAO,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,6DAA6D;IACtD,sBAAsB,CAAC,GAA4B;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA1FD,8CA0FC;AAED,MAAa,aAAa;IAcxB;QAbS,aAAQ,GAAG,IAAI,CAAC;QAChB,oBAAe,GAAG,IAAI,CAAC;QACvB,wBAAmB,GAAG,IAAI,CAAC;QAC3B,qBAAgB,GAAG,IAAI,CAAC;QACxB,yBAAoB,GAAG,IAAI,CAAC;QAErC,cAAS,GAAmB,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAGnE,gBAAW,GAAG,KAAK,CAAC;QACpB,aAAQ,GAAQ,EAAE,CAAC;QACnB,sBAAiB,GAAqB,CAAC,qBAAc,CAAC,gBAAgB,EAAE,qBAAc,CAAC,cAAc,CAAC,CAAC;QAGrG,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACtC,CAAC;IAEK,WAAW;;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;KAAA;IAEY,QAAQ;;YACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClC,CAAC;KAAA;IAEM,SAAS;QACd,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,QAAQ;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,QAAQ;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEY,UAAU,CAAC,WAAkC,EAAE;;YAC1D,IAAI;gBACF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;oBACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;gBAE7B;0FAC0E;gBAC1E,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAChF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B;YAAC,OAAO,KAAK,EAAE;gBACd;;mBAEG;gBACH,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;aAC7C;QACH,CAAC;KAAA;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACzC,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC3C,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACzC,CAAC;IAEM,mBAAmB,CAAC,OAAkB,EAAE,OAAkB;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEM,sBAAsB;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEY,YAAY;;YACvB,qCAAqC;QACvC,CAAC;KAAA;IAEM,IAAI,CAAC,GAAc;QACxB,0DAA0D;QAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,6DAA6D;IACtD,OAAO,CAAC,GAAW;QACxB,6BAA6B;QAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IACtD,cAAc,CAAC,UAAkB;QACtC,0DAA0D;QAC1D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IACtD,aAAa,CAAC,SAAiB;QACpC,uCAAuC;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IACtD,QAAQ,CAAC,IAAY;QAC1B,kCAAkC;QAClC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM;QACX,gCAAgC;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,IAAI;QACT,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,GAAqB;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IACtD,OAAO,CAAC,GAAuB;QACpC,iCAAiC;QACjC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IACtD,UAAU,CAAC,GAAoB;QACpC;;WAEG;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,YAAY,CAAC,GAAsB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,6DAA6D;IAChD,aAAa,CACxB,GAA6B,EAC7B,UAA0B,qBAAc,CAAC,gBAAgB;;YAEzD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;aACpD;YACD,MAAM,IAAI,GAAiC,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEY,aAAa;;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;KAAA;IAEM,UAAU;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEY,qBAAqB,CAAC,OAAO,GAAG,GAAG;;YAC9C,OAAO,OAAO,KAAK,GAAG,CAAC;QACzB,CAAC;KAAA;IAEY,4BAA4B;;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEM,8BAA8B;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,qBAAqB,CAAC,GAA+B;QAC1D,OAAO,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,qBAAqB,CAAC,GAA2B;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,6DAA6D;IAChD,gBAAgB;;YAC3B,OAAO,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;QAChE,CAAC;KAAA;IAEY,YAAY,CAAC,GAAsB;;YAC9C,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;KAAA;IAED,6DAA6D;IAChD,YAAY,CAAC,GAAsB;;YAC9C,sDAAsD;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEY,sBAAsB,CAAC,OAAO,GAAG,GAAG;;YAC/C,OAAO,OAAO,KAAK,GAAG,CAAC;QACzB,CAAC;KAAA;IAEY,6BAA6B;;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEM,+BAA+B;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,sBAAsB,CAAC,GAAgC;QAC5D,OAAO,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAEM,sBAAsB,CAAC,GAA4B;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,6DAA6D;IAChD,iBAAiB;;YAC5B,OAAO,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;QAClE,CAAC;KAAA;IAEY,aAAa,CAAC,GAAuB;;YAChD,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;KAAA;IAED,6DAA6D;IAChD,aAAa,CAAC,GAAuB;;YAChD,sDAAsD;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEY,WAAW;;YACtB,OAAO,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpD,CAAC;KAAA;IAEY,kBAAkB;;YAC7B,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;CACF;AA3PD,sCA2PC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import { OsmosisAccountPath, OsmosisGetAccountPaths, OsmosisSignedTx, OsmosisSignTx } from "@shapeshiftoss/hdwallet-core";
|
|
3
|
+
export declare function osmosisDescribePath(path: core.BIP32Path): core.PathDescription;
|
|
4
|
+
export declare function osmosisGetAccountPaths(msg: OsmosisGetAccountPaths): Array<OsmosisAccountPath>;
|
|
5
|
+
export declare function osmosisGetAddress(provider: any): Promise<string | undefined>;
|
|
6
|
+
export declare function osmosisSignTx(provider: any, msg: OsmosisSignTx): Promise<OsmosisSignedTx>;
|
|
7
|
+
/**
|
|
8
|
+
* @todo: Add support for sign/verify message see documentation at:
|
|
9
|
+
* https://github.com/chainapsis/keplr-wallet/blob/fbbc0b6d8eb4859a1663988d1bd90f07c9b74708/docs/api/README.md
|
|
10
|
+
*/
|
|
11
|
+
//# sourceMappingURL=osmosis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osmosis.d.ts","sourceRoot":"","sources":["../src/osmosis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,aAAa,EAEd,MAAM,8BAA8B,CAAC;AAGtC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAqC9E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,sBAAsB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAM7F;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAIlF;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAI/F;AAED;;;GAGG"}
|
package/dist/osmosis.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.osmosisSignTx = exports.osmosisGetAddress = exports.osmosisGetAccountPaths = exports.osmosisDescribePath = void 0;
|
|
32
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
33
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
34
|
+
const hdwallet_core_1 = require("@shapeshiftoss/hdwallet-core");
|
|
35
|
+
const proto_tx_builder_1 = require("@shapeshiftoss/proto-tx-builder");
|
|
36
|
+
function osmosisDescribePath(path) {
|
|
37
|
+
const pathStr = core.addressNListToBIP32(path);
|
|
38
|
+
const unknown = {
|
|
39
|
+
verbose: pathStr,
|
|
40
|
+
coin: "Osmo",
|
|
41
|
+
isKnown: false,
|
|
42
|
+
};
|
|
43
|
+
if (path.length != 5) {
|
|
44
|
+
return unknown;
|
|
45
|
+
}
|
|
46
|
+
if (path[0] != 0x80000000 + 44) {
|
|
47
|
+
return unknown;
|
|
48
|
+
}
|
|
49
|
+
if (path[1] != 0x80000000 + hdwallet_core_1.slip44ByCoin("Osmo")) {
|
|
50
|
+
return unknown;
|
|
51
|
+
}
|
|
52
|
+
if ((path[2] & 0x80000000) >>> 0 !== 0x80000000) {
|
|
53
|
+
return unknown;
|
|
54
|
+
}
|
|
55
|
+
if (path[3] !== 0 || path[4] !== 0) {
|
|
56
|
+
return unknown;
|
|
57
|
+
}
|
|
58
|
+
const index = path[2] & 0x7fffffff;
|
|
59
|
+
return {
|
|
60
|
+
verbose: `Osmosis Account #${index}`,
|
|
61
|
+
accountIdx: index,
|
|
62
|
+
wholeAccount: true,
|
|
63
|
+
coin: "Osmo",
|
|
64
|
+
isKnown: true,
|
|
65
|
+
isPrefork: false,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
exports.osmosisDescribePath = osmosisDescribePath;
|
|
69
|
+
function osmosisGetAccountPaths(msg) {
|
|
70
|
+
return [
|
|
71
|
+
{
|
|
72
|
+
addressNList: [0x80000000 + 44, 0x80000000 + hdwallet_core_1.slip44ByCoin("Osmo"), 0x80000000 + msg.accountIdx, 0, 0],
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
exports.osmosisGetAccountPaths = osmosisGetAccountPaths;
|
|
77
|
+
function osmosisGetAddress(provider) {
|
|
78
|
+
var _a;
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const offlineSigner = provider.getOfflineSigner(caip_1.ChainReference.OsmosisMainnet);
|
|
81
|
+
const osmosisAddress = (_a = (yield (offlineSigner === null || offlineSigner === void 0 ? void 0 : offlineSigner.getAccounts()))) === null || _a === void 0 ? void 0 : _a[0].address;
|
|
82
|
+
return osmosisAddress;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
exports.osmosisGetAddress = osmosisGetAddress;
|
|
86
|
+
function osmosisSignTx(provider, msg) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const offlineSigner = provider.getOfflineSigner(caip_1.ChainReference.OsmosisMainnet);
|
|
89
|
+
const output = yield proto_tx_builder_1.sign(msg.tx, offlineSigner, msg.sequence, msg.account_number, msg.chain_id);
|
|
90
|
+
return output;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
exports.osmosisSignTx = osmosisSignTx;
|
|
94
|
+
/**
|
|
95
|
+
* @todo: Add support for sign/verify message see documentation at:
|
|
96
|
+
* https://github.com/chainapsis/keplr-wallet/blob/fbbc0b6d8eb4859a1663988d1bd90f07c9b74708/docs/api/README.md
|
|
97
|
+
*/
|
|
98
|
+
//# sourceMappingURL=osmosis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osmosis.js","sourceRoot":"","sources":["../src/osmosis.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAqD;AACrD,mEAAqD;AACrD,gEAMsC;AACtC,sEAAuD;AAEvD,SAAgB,mBAAmB,CAAC,IAAoB;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAyB;QACpC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QACpB,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,EAAE,EAAE;QAC9B,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,4BAAY,CAAC,MAAM,CAAC,EAAE;QAChD,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE;QAC/C,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;QAClC,OAAO,OAAO,CAAC;KAChB;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,oBAAoB,KAAK,EAAE;QACpC,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AArCD,kDAqCC;AAED,SAAgB,sBAAsB,CAAC,GAA2B;IAChE,OAAO;QACL;YACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,4BAAY,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;SACtG;KACF,CAAC;AACJ,CAAC;AAND,wDAMC;AAED,SAAsB,iBAAiB,CAAC,QAAa;;;QACnD,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,qBAAc,CAAC,cAAc,CAAC,CAAC;QAC/E,MAAM,cAAc,GAAG,MAAA,CAAC,MAAM,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,EAAE,CAAA,CAAC,0CAAG,CAAC,EAAE,OAAO,CAAC;QACzE,OAAO,cAAc,CAAC;;CACvB;AAJD,8CAIC;AAED,SAAsB,aAAa,CAAC,QAAa,EAAE,GAAkB;;QACnE,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,qBAAc,CAAC,cAAc,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,uBAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjG,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA;AAJD,sCAIC;AAED;;;GAGG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@shapeshiftoss/hdwallet-keplr",
|
|
3
|
+
"version": "1.23.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"source": "src/index.ts",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc --build",
|
|
13
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
14
|
+
"prepublishOnly": "yarn clean && yarn build"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@shapeshiftoss/caip": "3.0.0",
|
|
18
|
+
"@shapeshiftoss/hdwallet-core": "1.21.1",
|
|
19
|
+
"@shapeshiftoss/proto-tx-builder": "0.2.1",
|
|
20
|
+
"@shapeshiftoss/types": "3.1.3",
|
|
21
|
+
"base64-js": "^1.5.1",
|
|
22
|
+
"lodash": "^4.17.21"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@keplr-wallet/types": "^0.9.10",
|
|
26
|
+
"@types/lodash": "^4.14.168",
|
|
27
|
+
"typescript": "^4.3.2"
|
|
28
|
+
},
|
|
29
|
+
"gitHead": "26c45c22bcd7c8cecfe96b01751c7f817b57cb05"
|
|
30
|
+
}
|
package/src/adapter.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
|
|
3
|
+
import { KeplrHDWallet } from "./keplr";
|
|
4
|
+
|
|
5
|
+
export class KeplrAdapter {
|
|
6
|
+
keyring: core.Keyring;
|
|
7
|
+
|
|
8
|
+
// wallet id to remove from the keyring when the active wallet changes
|
|
9
|
+
currentDeviceID?: string;
|
|
10
|
+
|
|
11
|
+
private constructor(keyring: core.Keyring) {
|
|
12
|
+
this.keyring = keyring;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public static useKeyring(keyring: core.Keyring) {
|
|
16
|
+
return new KeplrAdapter(keyring);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public async initialize(): Promise<number> {
|
|
20
|
+
return Object.keys(this.keyring.wallets).length;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public async pairDevice(): Promise<core.HDWallet> {
|
|
24
|
+
if (!window.getOfflineSigner || !window.keplr) {
|
|
25
|
+
console.error("Please install Keplr Extension!");
|
|
26
|
+
}
|
|
27
|
+
const wallet = new KeplrHDWallet();
|
|
28
|
+
await wallet.initialize();
|
|
29
|
+
const deviceID = await wallet.getDeviceID();
|
|
30
|
+
this.keyring.add(wallet, deviceID);
|
|
31
|
+
this.currentDeviceID = deviceID;
|
|
32
|
+
this.keyring.emit(["Keplr", deviceID, core.Events.CONNECT], deviceID);
|
|
33
|
+
|
|
34
|
+
return wallet;
|
|
35
|
+
}
|
|
36
|
+
}
|
package/src/cosmos.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ChainReference } from "@shapeshiftoss/caip";
|
|
2
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
3
|
+
import {
|
|
4
|
+
CosmosAccountPath,
|
|
5
|
+
CosmosGetAccountPaths,
|
|
6
|
+
CosmosSignedTx,
|
|
7
|
+
CosmosSignTx,
|
|
8
|
+
slip44ByCoin,
|
|
9
|
+
} from "@shapeshiftoss/hdwallet-core";
|
|
10
|
+
import { sign } from "@shapeshiftoss/proto-tx-builder";
|
|
11
|
+
|
|
12
|
+
export function cosmosDescribePath(path: core.BIP32Path): core.PathDescription {
|
|
13
|
+
const pathStr = core.addressNListToBIP32(path);
|
|
14
|
+
const unknown: core.PathDescription = {
|
|
15
|
+
verbose: pathStr,
|
|
16
|
+
coin: "Atom",
|
|
17
|
+
isKnown: false,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
if (path.length != 5) {
|
|
21
|
+
return unknown;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (path[0] != 0x80000000 + 44) {
|
|
25
|
+
return unknown;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (path[1] != 0x80000000 + slip44ByCoin("Atom")) {
|
|
29
|
+
return unknown;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if ((path[2] & 0x80000000) >>> 0 !== 0x80000000) {
|
|
33
|
+
return unknown;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (path[3] !== 0 || path[4] !== 0) {
|
|
37
|
+
return unknown;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const index = path[2] & 0x7fffffff;
|
|
41
|
+
return {
|
|
42
|
+
verbose: `Cosmos Account #${index}`,
|
|
43
|
+
accountIdx: index,
|
|
44
|
+
wholeAccount: true,
|
|
45
|
+
coin: "Atom",
|
|
46
|
+
isKnown: true,
|
|
47
|
+
isPrefork: false,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function cosmosGetAccountPaths(msg: CosmosGetAccountPaths): Array<CosmosAccountPath> {
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
addressNList: [0x80000000 + 44, 0x80000000 + slip44ByCoin("Atom"), 0x80000000 + msg.accountIdx, 0, 0],
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export async function cosmosGetAddress(provider: any): Promise<string | undefined> {
|
|
60
|
+
const offlineSigner = provider.getOfflineSigner(ChainReference.CosmosHubMainnet);
|
|
61
|
+
const cosmosAddress = (await offlineSigner?.getAccounts())?.[0]?.address;
|
|
62
|
+
return cosmosAddress;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export async function cosmosSignTx(provider: any, msg: CosmosSignTx): Promise<CosmosSignedTx> {
|
|
66
|
+
const offlineSigner = provider.getOfflineSigner(ChainReference.CosmosHubMainnet);
|
|
67
|
+
const output = await sign(msg.tx, offlineSigner, msg.sequence, msg.account_number, msg.chain_id);
|
|
68
|
+
return output;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @todo: Add support for sign/verify message see documentation at:
|
|
73
|
+
* https://github.com/chainapsis/keplr-wallet/blob/fbbc0b6d8eb4859a1663988d1bd90f07c9b74708/docs/api/README.md
|
|
74
|
+
*/
|
package/src/index.ts
ADDED