@keplr-wallet/background 0.10.9 → 0.10.10
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/build/chains/service.d.ts +15 -3
- package/build/chains/service.js +37 -38
- package/build/chains/service.js.map +1 -1
- package/build/chains/types.js +1 -1
- package/build/chains/types.js.map +1 -1
- package/build/index.d.ts +5 -3
- package/build/index.js +24 -47
- package/build/index.js.map +1 -1
- package/build/interaction/service.d.ts +1 -0
- package/build/interaction/service.js +5 -22
- package/build/interaction/service.js.map +1 -1
- package/build/keyring/crypto.d.ts +1 -2
- package/build/keyring/crypto.js +3 -3
- package/build/keyring/crypto.js.map +1 -1
- package/build/keyring/keyring.d.ts +5 -7
- package/build/keyring/keyring.js +23 -27
- package/build/keyring/keyring.js.map +1 -1
- package/build/keyring/service.d.ts +8 -7
- package/build/keyring/service.js +20 -47
- package/build/keyring/service.js.map +1 -1
- package/build/keyring/types.d.ts +2 -0
- package/build/ledger/service.d.ts +3 -2
- package/build/ledger/service.js +6 -26
- package/build/ledger/service.js.map +1 -1
- package/build/permission/service.d.ts +5 -4
- package/build/permission/service.js +13 -39
- package/build/permission/service.js.map +1 -1
- package/build/persistent-memory/service.d.ts +1 -0
- package/build/persistent-memory/service.js +5 -12
- package/build/persistent-memory/service.js.map +1 -1
- package/build/secret-wasm/service.d.ts +5 -4
- package/build/secret-wasm/service.js +8 -33
- package/build/secret-wasm/service.js.map +1 -1
- package/build/tokens/service.d.ts +6 -5
- package/build/tokens/service.js +15 -44
- package/build/tokens/service.js.map +1 -1
- package/build/tx/service.d.ts +4 -3
- package/build/tx/service.js +9 -32
- package/build/tx/service.js.map +1 -1
- package/build/updater/service.d.ts +3 -2
- package/build/updater/service.js +6 -26
- package/build/updater/service.js.map +1 -1
- package/package.json +11 -13
- package/src/chains/service.ts +51 -17
- package/src/chains/types.ts +3 -1
- package/src/index.ts +71 -63
- package/src/interaction/service.ts +5 -6
- package/src/keyring/crypto.ts +3 -4
- package/src/keyring/keyring.ts +22 -33
- package/src/keyring/service.ts +57 -33
- package/src/keyring/types.ts +3 -0
- package/src/ledger/service.ts +6 -8
- package/src/permission/service.ts +14 -12
- package/src/persistent-memory/service.ts +4 -3
- package/src/secret-wasm/service.ts +14 -14
- package/src/tokens/service.ts +17 -15
- package/src/tx/service.ts +9 -12
- package/src/updater/service.ts +7 -9
- package/tsconfig.json +1 -2
- package/build/types.d.ts +0 -19
- package/build/types.js +0 -23
- package/build/types.js.map +0 -1
- package/src/types.ts +0 -33
package/build/tx/service.js
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -23,21 +11,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
23
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
13
|
};
|
|
26
|
-
var BackgroundTxService_1;
|
|
27
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
15
|
exports.BackgroundTxService = void 0;
|
|
29
|
-
const tsyringe_1 = require("tsyringe");
|
|
30
|
-
const types_1 = require("../types");
|
|
31
16
|
const axios_1 = __importDefault(require("axios"));
|
|
32
|
-
const chains_1 = require("../chains");
|
|
33
|
-
const permission_1 = require("../permission");
|
|
34
17
|
const cosmos_1 = require("@keplr-wallet/cosmos");
|
|
35
18
|
const buffer_1 = require("buffer/");
|
|
36
|
-
|
|
37
|
-
constructor(
|
|
19
|
+
class BackgroundTxService {
|
|
20
|
+
constructor(notification) {
|
|
21
|
+
this.notification = notification;
|
|
22
|
+
}
|
|
23
|
+
init(chainsService, permissionService) {
|
|
38
24
|
this.chainsService = chainsService;
|
|
39
25
|
this.permissionService = permissionService;
|
|
40
|
-
this.notification = notification;
|
|
41
26
|
}
|
|
42
27
|
sendTx(chainId, tx, mode) {
|
|
43
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -81,13 +66,13 @@ let BackgroundTxService = BackgroundTxService_1 = class BackgroundTxService {
|
|
|
81
66
|
const txTracer = new cosmos_1.TendermintTxTracer(chainInfo.rpc, "/websocket");
|
|
82
67
|
txTracer.traceTx(txHash).then((tx) => {
|
|
83
68
|
txTracer.close();
|
|
84
|
-
|
|
69
|
+
BackgroundTxService.processTxResultNotification(this.notification, tx);
|
|
85
70
|
});
|
|
86
71
|
return txHash;
|
|
87
72
|
}
|
|
88
73
|
catch (e) {
|
|
89
74
|
console.log(e);
|
|
90
|
-
|
|
75
|
+
BackgroundTxService.processTxErrorNotification(this.notification, e);
|
|
91
76
|
throw e;
|
|
92
77
|
}
|
|
93
78
|
});
|
|
@@ -119,7 +104,7 @@ let BackgroundTxService = BackgroundTxService_1 = class BackgroundTxService {
|
|
|
119
104
|
});
|
|
120
105
|
}
|
|
121
106
|
catch (e) {
|
|
122
|
-
|
|
107
|
+
BackgroundTxService.processTxErrorNotification(notification, e);
|
|
123
108
|
}
|
|
124
109
|
}
|
|
125
110
|
static processTxErrorNotification(notification, e) {
|
|
@@ -165,14 +150,6 @@ let BackgroundTxService = BackgroundTxService_1 = class BackgroundTxService {
|
|
|
165
150
|
message,
|
|
166
151
|
});
|
|
167
152
|
}
|
|
168
|
-
}
|
|
169
|
-
BackgroundTxService = BackgroundTxService_1 = __decorate([
|
|
170
|
-
tsyringe_1.singleton(),
|
|
171
|
-
__param(0, tsyringe_1.inject(tsyringe_1.delay(() => chains_1.ChainsService))),
|
|
172
|
-
__param(1, tsyringe_1.inject(tsyringe_1.delay(() => permission_1.PermissionService))),
|
|
173
|
-
__param(2, tsyringe_1.inject(types_1.TYPES.Notification)),
|
|
174
|
-
__metadata("design:paramtypes", [chains_1.ChainsService,
|
|
175
|
-
permission_1.PermissionService, Object])
|
|
176
|
-
], BackgroundTxService);
|
|
153
|
+
}
|
|
177
154
|
exports.BackgroundTxService = BackgroundTxService;
|
|
178
155
|
//# sourceMappingURL=service.js.map
|
package/build/tx/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/tx/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/tx/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ import { KVStore } from "@keplr-wallet/common";
|
|
|
3
3
|
import { ChainsService } from "../chains";
|
|
4
4
|
export declare class ChainUpdaterService {
|
|
5
5
|
protected readonly kvStore: KVStore;
|
|
6
|
-
protected
|
|
7
|
-
constructor(kvStore: KVStore
|
|
6
|
+
protected chainsService: ChainsService;
|
|
7
|
+
constructor(kvStore: KVStore);
|
|
8
|
+
init(chainsService: ChainsService): void;
|
|
8
9
|
putUpdatedPropertyToChainInfo(chainInfo: ChainInfo): Promise<ChainInfo>;
|
|
9
10
|
clearUpdatedProperty(chainId: string): Promise<void>;
|
|
10
11
|
tryUpdateChain(chainId: string): Promise<void>;
|
package/build/updater/service.js
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -23,17 +11,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
23
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
13
|
};
|
|
26
|
-
var ChainUpdaterService_1;
|
|
27
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
15
|
exports.ChainUpdaterService = void 0;
|
|
29
|
-
const tsyringe_1 = require("tsyringe");
|
|
30
|
-
const types_1 = require("../types");
|
|
31
16
|
const axios_1 = __importDefault(require("axios"));
|
|
32
17
|
const cosmos_1 = require("@keplr-wallet/cosmos");
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
constructor(kvStore, chainsService) {
|
|
18
|
+
class ChainUpdaterService {
|
|
19
|
+
constructor(kvStore) {
|
|
36
20
|
this.kvStore = kvStore;
|
|
21
|
+
}
|
|
22
|
+
init(chainsService) {
|
|
37
23
|
this.chainsService = chainsService;
|
|
38
24
|
}
|
|
39
25
|
putUpdatedPropertyToChainInfo(chainInfo) {
|
|
@@ -73,7 +59,7 @@ let ChainUpdaterService = ChainUpdaterService_1 = class ChainUpdaterService {
|
|
|
73
59
|
if (!cosmos_1.ChainIdHelper.hasChainVersion(chainInfo.chainId)) {
|
|
74
60
|
return;
|
|
75
61
|
}
|
|
76
|
-
const updates = yield
|
|
62
|
+
const updates = yield ChainUpdaterService.checkChainUpdate(chainInfo);
|
|
77
63
|
if (updates.explicit || updates.slient) {
|
|
78
64
|
const currentVersion = cosmos_1.ChainIdHelper.parse(chainInfo.chainId);
|
|
79
65
|
if (updates.chainId) {
|
|
@@ -224,12 +210,6 @@ let ChainUpdaterService = ChainUpdaterService_1 = class ChainUpdaterService {
|
|
|
224
210
|
};
|
|
225
211
|
});
|
|
226
212
|
}
|
|
227
|
-
}
|
|
228
|
-
ChainUpdaterService = ChainUpdaterService_1 = __decorate([
|
|
229
|
-
tsyringe_1.singleton(),
|
|
230
|
-
__param(0, tsyringe_1.inject(types_1.TYPES.UpdaterStore)),
|
|
231
|
-
__param(1, tsyringe_1.inject(tsyringe_1.delay(() => chains_1.ChainsService))),
|
|
232
|
-
__metadata("design:paramtypes", [Object, chains_1.ChainsService])
|
|
233
|
-
], ChainUpdaterService);
|
|
213
|
+
}
|
|
234
214
|
exports.ChainUpdaterService = ChainUpdaterService;
|
|
235
215
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/updater/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/updater/service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keplr-wallet/background",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.10",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"author": "chainapsis",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"@ethersproject/bytes": "^5.5.0",
|
|
30
30
|
"@ethersproject/keccak256": "^5.5.0",
|
|
31
31
|
"@ethersproject/wallet": "^5.5.0",
|
|
32
|
-
"@keplr-wallet/common": "0.10.
|
|
33
|
-
"@keplr-wallet/cosmos": "0.10.
|
|
34
|
-
"@keplr-wallet/crypto": "0.10.
|
|
35
|
-
"@keplr-wallet/popup": "0.10.
|
|
36
|
-
"@keplr-wallet/proto-types": "0.10.
|
|
37
|
-
"@keplr-wallet/router": "0.10.
|
|
38
|
-
"@keplr-wallet/types": "0.10.
|
|
39
|
-
"@keplr-wallet/unit": "0.10.
|
|
32
|
+
"@keplr-wallet/common": "0.10.10",
|
|
33
|
+
"@keplr-wallet/cosmos": "0.10.10",
|
|
34
|
+
"@keplr-wallet/crypto": "0.10.10",
|
|
35
|
+
"@keplr-wallet/popup": "0.10.10",
|
|
36
|
+
"@keplr-wallet/proto-types": "0.10.10",
|
|
37
|
+
"@keplr-wallet/router": "0.10.10",
|
|
38
|
+
"@keplr-wallet/types": "0.10.10",
|
|
39
|
+
"@keplr-wallet/unit": "0.10.10",
|
|
40
40
|
"@ledgerhq/hw-transport": "^6.20.0",
|
|
41
41
|
"@ledgerhq/hw-transport-webhid": "^6.20.0",
|
|
42
42
|
"@ledgerhq/hw-transport-webusb": "^6.20.0",
|
|
@@ -51,10 +51,8 @@
|
|
|
51
51
|
"ledger-cosmos-js": "^2.1.8",
|
|
52
52
|
"long": "^4.0.0",
|
|
53
53
|
"pbkdf2": "^3.1.2",
|
|
54
|
-
"reflect-metadata": "^0.1.13",
|
|
55
54
|
"secp256k1": "^4.0.2",
|
|
56
|
-
"secretjs": "^0.17.0"
|
|
57
|
-
"tsyringe": "^4.5.0"
|
|
55
|
+
"secretjs": "^0.17.0"
|
|
58
56
|
},
|
|
59
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "b5a4352aa8622f1190bb6daab77fcd6277156888"
|
|
60
58
|
}
|
package/src/chains/service.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { delay, inject, singleton } from "tsyringe";
|
|
2
|
-
import { TYPES } from "../types";
|
|
3
|
-
|
|
4
1
|
import { ChainInfoSchema, ChainInfoWithEmbed } from "./types";
|
|
5
2
|
import { ChainInfo } from "@keplr-wallet/types";
|
|
6
|
-
import { KVStore, Debouncer } from "@keplr-wallet/common";
|
|
3
|
+
import { KVStore, Debouncer, MemoryKVStore } from "@keplr-wallet/common";
|
|
7
4
|
import { ChainUpdaterService } from "../updater";
|
|
8
5
|
import { InteractionService } from "../interaction";
|
|
9
6
|
import { Env, KeplrError } from "@keplr-wallet/router";
|
|
@@ -12,22 +9,37 @@ import { ChainIdHelper } from "@keplr-wallet/cosmos";
|
|
|
12
9
|
|
|
13
10
|
type ChainRemovedHandler = (chainId: string, identifier: string) => void;
|
|
14
11
|
|
|
15
|
-
@singleton()
|
|
16
12
|
export class ChainsService {
|
|
17
13
|
protected onChainRemovedHandlers: ChainRemovedHandler[] = [];
|
|
18
14
|
|
|
19
15
|
protected cachedChainInfos: ChainInfoWithEmbed[] | undefined;
|
|
20
16
|
|
|
17
|
+
protected chainUpdaterKeeper!: ChainUpdaterService;
|
|
18
|
+
protected interactionKeeper!: InteractionService;
|
|
19
|
+
|
|
20
|
+
protected readonly kvStoreForSuggestChain: KVStore;
|
|
21
|
+
|
|
21
22
|
constructor(
|
|
22
|
-
@inject(TYPES.ChainsStore)
|
|
23
23
|
protected readonly kvStore: KVStore,
|
|
24
|
-
@inject(TYPES.ChainsEmbedChainInfos)
|
|
25
24
|
protected readonly embedChainInfos: ChainInfo[],
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
protected readonly experimentalOptions: Partial<{
|
|
26
|
+
useMemoryKVStoreForSuggestChain: boolean;
|
|
27
|
+
}> = {}
|
|
28
|
+
) {
|
|
29
|
+
if (experimentalOptions?.useMemoryKVStoreForSuggestChain) {
|
|
30
|
+
this.kvStoreForSuggestChain = new MemoryKVStore("suggest-chain");
|
|
31
|
+
} else {
|
|
32
|
+
this.kvStoreForSuggestChain = kvStore;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
init(
|
|
37
|
+
chainUpdaterKeeper: ChainUpdaterService,
|
|
38
|
+
interactionKeeper: InteractionService
|
|
39
|
+
) {
|
|
40
|
+
this.chainUpdaterKeeper = chainUpdaterKeeper;
|
|
41
|
+
this.interactionKeeper = interactionKeeper;
|
|
42
|
+
}
|
|
31
43
|
|
|
32
44
|
readonly getChainInfos: () => Promise<
|
|
33
45
|
ChainInfoWithEmbed[]
|
|
@@ -54,7 +66,7 @@ export class ChainsService {
|
|
|
54
66
|
}
|
|
55
67
|
|
|
56
68
|
const savedChainInfos: ChainInfoWithEmbed[] = (
|
|
57
|
-
|
|
69
|
+
await this.getSavedChainInfos()
|
|
58
70
|
)
|
|
59
71
|
.filter((chainInfo) => {
|
|
60
72
|
// Filter the overlaped chain info with the embeded chain infos.
|
|
@@ -159,17 +171,26 @@ export class ChainsService {
|
|
|
159
171
|
await this.addChainInfo(chainInfo);
|
|
160
172
|
}
|
|
161
173
|
|
|
174
|
+
async getSavedChainInfos(): Promise<ChainInfo[]> {
|
|
175
|
+
return (
|
|
176
|
+
(await this.kvStoreForSuggestChain.get<ChainInfo[]>("chain-infos")) ?? []
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
162
180
|
async addChainInfo(chainInfo: ChainInfo): Promise<void> {
|
|
163
181
|
if (await this.hasChainInfo(chainInfo.chainId)) {
|
|
164
182
|
throw new KeplrError("chains", 121, "Same chain is already registered");
|
|
165
183
|
}
|
|
166
184
|
|
|
167
185
|
const savedChainInfos =
|
|
168
|
-
(await this.
|
|
186
|
+
(await this.kvStoreForSuggestChain.get<ChainInfo[]>("chain-infos")) ?? [];
|
|
169
187
|
|
|
170
188
|
savedChainInfos.push(chainInfo);
|
|
171
189
|
|
|
172
|
-
await this.
|
|
190
|
+
await this.kvStoreForSuggestChain.set<ChainInfo[]>(
|
|
191
|
+
"chain-infos",
|
|
192
|
+
savedChainInfos
|
|
193
|
+
);
|
|
173
194
|
|
|
174
195
|
this.clearCachedChainInfos();
|
|
175
196
|
}
|
|
@@ -184,7 +205,7 @@ export class ChainsService {
|
|
|
184
205
|
}
|
|
185
206
|
|
|
186
207
|
const savedChainInfos =
|
|
187
|
-
(await this.
|
|
208
|
+
(await this.kvStoreForSuggestChain.get<ChainInfo[]>("chain-infos")) ?? [];
|
|
188
209
|
|
|
189
210
|
const resultChainInfo = savedChainInfos.filter((chainInfo) => {
|
|
190
211
|
return (
|
|
@@ -193,7 +214,10 @@ export class ChainsService {
|
|
|
193
214
|
);
|
|
194
215
|
});
|
|
195
216
|
|
|
196
|
-
await this.
|
|
217
|
+
await this.kvStoreForSuggestChain.set<ChainInfo[]>(
|
|
218
|
+
"chain-infos",
|
|
219
|
+
resultChainInfo
|
|
220
|
+
);
|
|
197
221
|
|
|
198
222
|
// Clear the updated chain info.
|
|
199
223
|
await this.chainUpdaterKeeper.clearUpdatedProperty(chainId);
|
|
@@ -205,6 +229,16 @@ export class ChainsService {
|
|
|
205
229
|
this.clearCachedChainInfos();
|
|
206
230
|
}
|
|
207
231
|
|
|
232
|
+
async getChainEthereumKeyFeatures(
|
|
233
|
+
chainId: string
|
|
234
|
+
): Promise<{ address: boolean; signing: boolean }> {
|
|
235
|
+
const chainInfo = await this.getChainInfo(chainId);
|
|
236
|
+
return {
|
|
237
|
+
address: chainInfo.features?.includes("eth-address-gen") ?? false,
|
|
238
|
+
signing: chainInfo.features?.includes("eth-key-sign") ?? false,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
|
|
208
242
|
addChainRemovedHandler(handler: ChainRemovedHandler) {
|
|
209
243
|
this.onChainRemovedHandlers.push(handler);
|
|
210
244
|
}
|
package/src/chains/types.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import "reflect-metadata";
|
|
2
|
-
|
|
3
|
-
import { container } from "tsyringe";
|
|
4
|
-
import { TYPES } from "./types";
|
|
5
|
-
|
|
6
1
|
import { MessageRequester, Router } from "@keplr-wallet/router";
|
|
7
2
|
|
|
8
3
|
import * as PersistentMemory from "./persistent-memory/internal";
|
|
@@ -29,7 +24,6 @@ export * from "./permission";
|
|
|
29
24
|
|
|
30
25
|
import { KVStore } from "@keplr-wallet/common";
|
|
31
26
|
import { ChainInfo } from "@keplr-wallet/types";
|
|
32
|
-
import { RNG } from "@keplr-wallet/crypto";
|
|
33
27
|
import { CommonCrypto } from "./keyring";
|
|
34
28
|
import { Notification } from "./tx";
|
|
35
29
|
import { LedgerOptions } from "./ledger/options";
|
|
@@ -42,79 +36,93 @@ export function init(
|
|
|
42
36
|
embedChainInfos: ChainInfo[],
|
|
43
37
|
// The origins that are able to pass any permission.
|
|
44
38
|
privilegedOrigins: string[],
|
|
45
|
-
rng: RNG,
|
|
46
39
|
commonCrypto: CommonCrypto,
|
|
47
40
|
notification: Notification,
|
|
48
|
-
ledgerOptions: Partial<LedgerOptions> = {}
|
|
41
|
+
ledgerOptions: Partial<LedgerOptions> = {},
|
|
42
|
+
experimentalOptions: Partial<{
|
|
43
|
+
suggestChain: Partial<{
|
|
44
|
+
// Chains registered as suggest chains are managed in memory.
|
|
45
|
+
// In other words, it disappears when the app is closed.
|
|
46
|
+
// General operation should be fine. This is a temporary solution for the mobile app.
|
|
47
|
+
useMemoryKVStore: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
}> = {}
|
|
49
50
|
) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
const interactionService = new Interaction.InteractionService(
|
|
52
|
+
eventMsgRequester,
|
|
53
|
+
commonCrypto.rng
|
|
54
|
+
);
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
useValue: eventMsgRequester,
|
|
56
|
-
});
|
|
57
|
-
container.register(TYPES.RNG, { useValue: rng });
|
|
58
|
-
container.register(TYPES.CommonCrypto, { useValue: commonCrypto });
|
|
59
|
-
container.register(TYPES.Notification, { useValue: notification });
|
|
56
|
+
const persistentMemoryService = new PersistentMemory.PersistentMemoryService();
|
|
60
57
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
container.register(TYPES.KeyRingStore, { useValue: storeCreator("keyring") });
|
|
66
|
-
container.register(TYPES.LedgerStore, { useValue: storeCreator("ledger") });
|
|
67
|
-
container.register(TYPES.LedgerOptions, { useValue: ledgerOptions });
|
|
58
|
+
const permissionService = new Permission.PermissionService(
|
|
59
|
+
storeCreator("permission"),
|
|
60
|
+
privilegedOrigins
|
|
61
|
+
);
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
container.register(TYPES.PermissionServicePrivilegedOrigins, {
|
|
73
|
-
useValue: privilegedOrigins,
|
|
74
|
-
});
|
|
75
|
-
container.register(TYPES.PersistentMemoryStore, {
|
|
76
|
-
useValue: storeCreator("persistent-memory"),
|
|
77
|
-
});
|
|
78
|
-
container.register(TYPES.SecretWasmStore, {
|
|
79
|
-
useValue: storeCreator("secretwasm"),
|
|
80
|
-
});
|
|
81
|
-
container.register(TYPES.TokensStore, { useValue: storeCreator("tokens") });
|
|
82
|
-
container.register(TYPES.TxStore, {
|
|
83
|
-
useValue: storeCreator("background-tx"),
|
|
84
|
-
});
|
|
85
|
-
container.register(TYPES.UpdaterStore, { useValue: storeCreator("updator") });
|
|
63
|
+
const chainUpdaterService = new Updater.ChainUpdaterService(
|
|
64
|
+
storeCreator("updator")
|
|
65
|
+
);
|
|
86
66
|
|
|
87
|
-
const
|
|
88
|
-
Interaction.init(router, interactionService);
|
|
67
|
+
const tokensService = new Tokens.TokensService(storeCreator("tokens"));
|
|
89
68
|
|
|
90
|
-
const
|
|
91
|
-
|
|
69
|
+
const chainsService = new Chains.ChainsService(
|
|
70
|
+
storeCreator("chains"),
|
|
71
|
+
embedChainInfos,
|
|
72
|
+
{
|
|
73
|
+
useMemoryKVStoreForSuggestChain:
|
|
74
|
+
experimentalOptions.suggestChain?.useMemoryKVStore,
|
|
75
|
+
}
|
|
92
76
|
);
|
|
93
|
-
PersistentMemory.init(router, persistentMemory);
|
|
94
77
|
|
|
95
|
-
const
|
|
96
|
-
|
|
78
|
+
const ledgerService = new Ledger.LedgerService(
|
|
79
|
+
storeCreator("ledger"),
|
|
80
|
+
ledgerOptions
|
|
81
|
+
);
|
|
97
82
|
|
|
98
|
-
const
|
|
99
|
-
|
|
83
|
+
const keyRingService = new KeyRing.KeyRingService(
|
|
84
|
+
storeCreator("keyring"),
|
|
85
|
+
embedChainInfos,
|
|
86
|
+
commonCrypto
|
|
87
|
+
);
|
|
100
88
|
|
|
101
|
-
const
|
|
102
|
-
|
|
89
|
+
const secretWasmService = new SecretWasm.SecretWasmService(
|
|
90
|
+
storeCreator("secretwasm")
|
|
91
|
+
);
|
|
103
92
|
|
|
104
|
-
const
|
|
105
|
-
|
|
93
|
+
const backgroundTxService = new BackgroundTx.BackgroundTxService(
|
|
94
|
+
notification
|
|
95
|
+
);
|
|
106
96
|
|
|
107
|
-
|
|
108
|
-
|
|
97
|
+
interactionService.init();
|
|
98
|
+
persistentMemoryService.init();
|
|
99
|
+
permissionService.init(interactionService, chainsService, keyRingService);
|
|
100
|
+
chainUpdaterService.init(chainsService);
|
|
101
|
+
tokensService.init(
|
|
102
|
+
interactionService,
|
|
103
|
+
permissionService,
|
|
104
|
+
chainsService,
|
|
105
|
+
keyRingService
|
|
106
|
+
);
|
|
107
|
+
chainsService.init(chainUpdaterService, interactionService);
|
|
108
|
+
ledgerService.init(interactionService);
|
|
109
|
+
keyRingService.init(
|
|
110
|
+
interactionService,
|
|
111
|
+
chainsService,
|
|
112
|
+
permissionService,
|
|
113
|
+
ledgerService
|
|
114
|
+
);
|
|
115
|
+
secretWasmService.init(chainsService, keyRingService, permissionService);
|
|
116
|
+
backgroundTxService.init(chainsService, permissionService);
|
|
109
117
|
|
|
110
|
-
|
|
118
|
+
Interaction.init(router, interactionService);
|
|
119
|
+
PersistentMemory.init(router, persistentMemoryService);
|
|
120
|
+
Permission.init(router, permissionService);
|
|
121
|
+
Updater.init(router, chainUpdaterService);
|
|
122
|
+
Tokens.init(router, tokensService);
|
|
123
|
+
Chains.init(router, chainsService);
|
|
124
|
+
Ledger.init(router, ledgerService);
|
|
111
125
|
KeyRing.init(router, keyRingService);
|
|
112
|
-
|
|
113
|
-
const secretWasmService = container.resolve(SecretWasm.SecretWasmService);
|
|
114
126
|
SecretWasm.init(router, secretWasmService);
|
|
115
|
-
|
|
116
|
-
const backgroundTxService = container.resolve(
|
|
117
|
-
BackgroundTx.BackgroundTxService
|
|
118
|
-
);
|
|
119
127
|
BackgroundTx.init(router, backgroundTxService);
|
|
120
128
|
}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { singleton, inject } from "tsyringe";
|
|
2
|
-
import { TYPES } from "../types";
|
|
3
|
-
|
|
4
1
|
import { InteractionWaitingData } from "./types";
|
|
5
2
|
import {
|
|
6
3
|
Env,
|
|
@@ -11,7 +8,6 @@ import {
|
|
|
11
8
|
import { PushEventDataMsg, PushInteractionDataMsg } from "./foreground";
|
|
12
9
|
import { RNG } from "@keplr-wallet/crypto";
|
|
13
10
|
|
|
14
|
-
@singleton()
|
|
15
11
|
export class InteractionService {
|
|
16
12
|
protected waitingMap: Map<string, InteractionWaitingData> = new Map();
|
|
17
13
|
protected resolverMap: Map<
|
|
@@ -20,11 +16,14 @@ export class InteractionService {
|
|
|
20
16
|
> = new Map();
|
|
21
17
|
|
|
22
18
|
constructor(
|
|
23
|
-
@inject(TYPES.EventMsgRequester)
|
|
24
19
|
protected readonly eventMsgRequester: MessageRequester,
|
|
25
|
-
|
|
20
|
+
protected readonly rng: RNG
|
|
26
21
|
) {}
|
|
27
22
|
|
|
23
|
+
init() {
|
|
24
|
+
// noop
|
|
25
|
+
}
|
|
26
|
+
|
|
28
27
|
// Dispatch the event to the frontend. Don't wait any interaction.
|
|
29
28
|
// And, don't ensure that the event is delivered successfully, just ignore the any errors.
|
|
30
29
|
dispatchEvent(port: string, type: string, data: unknown) {
|
package/src/keyring/crypto.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
ScryptParams,
|
|
6
6
|
CommonCrypto,
|
|
7
7
|
} from "./types";
|
|
8
|
-
import { Hash
|
|
8
|
+
import { Hash } from "@keplr-wallet/crypto";
|
|
9
9
|
import pbkdf2 from "pbkdf2";
|
|
10
10
|
|
|
11
11
|
import { Buffer } from "buffer/";
|
|
@@ -42,7 +42,6 @@ export interface KeyStore {
|
|
|
42
42
|
|
|
43
43
|
export class Crypto {
|
|
44
44
|
public static async encrypt(
|
|
45
|
-
rng: RNG,
|
|
46
45
|
crypto: CommonCrypto,
|
|
47
46
|
kdf: "scrypt" | "sha256" | "pbkdf2",
|
|
48
47
|
type: "mnemonic" | "privateKey" | "ledger",
|
|
@@ -52,7 +51,7 @@ export class Crypto {
|
|
|
52
51
|
bip44HDPath?: BIP44HDPath
|
|
53
52
|
): Promise<KeyStore> {
|
|
54
53
|
let random = new Uint8Array(32);
|
|
55
|
-
const salt = Buffer.from(await rng(random)).toString("hex");
|
|
54
|
+
const salt = Buffer.from(await crypto.rng(random)).toString("hex");
|
|
56
55
|
|
|
57
56
|
const scryptParams: ScryptParams = {
|
|
58
57
|
salt,
|
|
@@ -91,7 +90,7 @@ export class Crypto {
|
|
|
91
90
|
const buf = Buffer.from(text);
|
|
92
91
|
|
|
93
92
|
random = new Uint8Array(16);
|
|
94
|
-
const iv = Buffer.from(await rng(random));
|
|
93
|
+
const iv = Buffer.from(await crypto.rng(random));
|
|
95
94
|
|
|
96
95
|
const counter = new Counter(0);
|
|
97
96
|
counter.setBytes(iv);
|