@keplr-wallet/background 0.11.18-alpha.1 → 0.11.18-alpha.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/build/updater/service.d.ts +1 -0
- package/build/updater/service.js +26 -8
- package/build/updater/service.js.map +1 -1
- package/package.json +11 -11
- package/src/updater/service.ts +45 -8
package/build/updater/service.js
CHANGED
|
@@ -44,7 +44,7 @@ class ChainUpdaterService {
|
|
|
44
44
|
}
|
|
45
45
|
const features = (_a = chainInfo.features) !== null && _a !== void 0 ? _a : [];
|
|
46
46
|
for (const add of local.features) {
|
|
47
|
-
if (!features.
|
|
47
|
+
if (!features.includes(add)) {
|
|
48
48
|
features.push(add);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -88,29 +88,39 @@ class ChainUpdaterService {
|
|
|
88
88
|
console.log(`The chainId is not valid.(${chainId} -> ${fetchedChainIdentifier})`);
|
|
89
89
|
return false;
|
|
90
90
|
}
|
|
91
|
-
let
|
|
91
|
+
let repoUpdated = false;
|
|
92
92
|
const prevFetchedChainInfo = yield this.kvStore.get("updated-chain-info/" + chainIdentifier);
|
|
93
93
|
if (!prevFetchedChainInfo ||
|
|
94
94
|
common_1.sortedJsonByKeyStringify(prevFetchedChainInfo) !==
|
|
95
95
|
common_1.sortedJsonByKeyStringify(chainInfo)) {
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
if (updated) {
|
|
96
|
+
repoUpdated = true;
|
|
99
97
|
chainInfo = yield chain_validator_1.validateBasicChainInfoType(chainInfo);
|
|
100
98
|
yield this.kvStore.set("updated-chain-info/" + chainIdentifier, chainInfo);
|
|
101
99
|
this.chainsService.clearCachedChainInfos();
|
|
102
100
|
}
|
|
103
101
|
const updatedChainInfo = yield this.chainsService.getChainInfo(chainId);
|
|
102
|
+
let chainIdUpdated = false;
|
|
103
|
+
const chainIdFromRPC = yield this.checkChainIdFromRPC(updatedChainInfo.rpc);
|
|
104
|
+
if (cosmos_1.ChainIdHelper.parse(chainIdFromRPC).identifier !== chainIdentifier) {
|
|
105
|
+
throw new Error(`Chain id is different from rpc: (expected: ${chainId}, actual: ${chainIdFromRPC})`);
|
|
106
|
+
}
|
|
107
|
+
if (updatedChainInfo.chainId !== chainIdFromRPC) {
|
|
108
|
+
chainIdUpdated = true;
|
|
109
|
+
const local = yield this.kvStore.get(chainIdentifier);
|
|
110
|
+
yield this.kvStore.set(chainIdentifier, Object.assign(Object.assign({}, local), { chainId: chainIdFromRPC }));
|
|
111
|
+
}
|
|
104
112
|
const toUpdateFeatures = yield chain_validator_1.checkChainFeatures(updatedChainInfo);
|
|
105
|
-
|
|
106
|
-
if (
|
|
113
|
+
const featuresUpdated = toUpdateFeatures.length !== 0;
|
|
114
|
+
if (featuresUpdated) {
|
|
107
115
|
const local = yield this.kvStore.get(chainIdentifier);
|
|
108
116
|
yield this.kvStore.set(chainIdentifier, Object.assign(Object.assign({}, local), { features: [
|
|
109
117
|
...new Set([...toUpdateFeatures, ...((_a = local === null || local === void 0 ? void 0 : local.features) !== null && _a !== void 0 ? _a : [])]),
|
|
110
118
|
] }));
|
|
119
|
+
}
|
|
120
|
+
if (chainIdUpdated || featuresUpdated) {
|
|
111
121
|
this.chainsService.clearCachedChainInfos();
|
|
112
122
|
}
|
|
113
|
-
return
|
|
123
|
+
return repoUpdated || chainIdUpdated || featuresUpdated;
|
|
114
124
|
}
|
|
115
125
|
catch (e) {
|
|
116
126
|
console.log(`Failed to try to update chain info for ${chainId}`, e);
|
|
@@ -158,6 +168,14 @@ class ChainUpdaterService {
|
|
|
158
168
|
return yield this.chainsService.getChainInfos();
|
|
159
169
|
});
|
|
160
170
|
}
|
|
171
|
+
checkChainIdFromRPC(rpc) {
|
|
172
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
173
|
+
const statusResponse = yield axios_1.default.get("/status", {
|
|
174
|
+
baseURL: rpc,
|
|
175
|
+
});
|
|
176
|
+
return statusResponse.data.result.node_info.network;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
161
179
|
}
|
|
162
180
|
exports.ChainUpdaterService = ChainUpdaterService;
|
|
163
181
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/updater/service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iDAAyE;AACzE,iDAAqD;AAErD,mEAGuC;AACvC,kDAA0B;AAE1B,MAAa,mBAAmB;IAG9B,YACqB,OAAgB,EAChB,sBAGlB;QAJkB,YAAO,GAAP,OAAO,CAAS;QAChB,2BAAsB,GAAtB,sBAAsB,CAGxC;IACA,CAAC;IAEJ,IAAI,CAAC,aAA4B;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEK,gBAAgB,CAAC,MAAiB;;YACtC,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;YAEvE,IAAI,SAAS,GAAc,MAAM,CAAC;YAElC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAC7C,qBAAqB,GAAG,eAAe,CACxC,CAAC;YAEF,IAAI,gBAAgB,EAAE;gBACpB,SAAS,GAAG,gBAAgB,CAAC;aAC9B;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,eAAe,CAAC,CAAC;YAC1E,IAAI,KAAK,EAAE;gBACT,SAAS,mCACJ,SAAS,GACT;oBACD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO;oBAC3C,QAAQ,EAAE,CAAC,GAAG,EAAE;;wBACd,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;4BACnB,OAAO,SAAS,CAAC,QAAQ,CAAC;yBAC3B;wBAED,MAAM,QAAQ,SAAG,SAAS,CAAC,QAAQ,mCAAI,EAAE,CAAC;wBAC1C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;4BAChC,IAAI,CAAC,QAAQ,CAAC,
|
|
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.11.18-alpha.
|
|
3
|
+
"version": "0.11.18-alpha.2",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"author": "chainapsis",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
"@ethersproject/hash": "^5.7.0",
|
|
29
29
|
"@ethersproject/transactions": "^5.7.0",
|
|
30
30
|
"@ethersproject/wallet": "^5.7.0",
|
|
31
|
-
"@keplr-wallet/chain-validator": "0.11.18-alpha.
|
|
32
|
-
"@keplr-wallet/common": "0.11.18-alpha.
|
|
33
|
-
"@keplr-wallet/cosmos": "0.11.18-alpha.
|
|
34
|
-
"@keplr-wallet/crypto": "0.11.18-alpha.
|
|
35
|
-
"@keplr-wallet/popup": "0.11.18-alpha.
|
|
36
|
-
"@keplr-wallet/proto-types": "0.11.18-alpha.
|
|
37
|
-
"@keplr-wallet/router": "0.11.18-alpha.
|
|
38
|
-
"@keplr-wallet/types": "0.11.18-alpha.
|
|
39
|
-
"@keplr-wallet/unit": "0.11.18-alpha.
|
|
31
|
+
"@keplr-wallet/chain-validator": "0.11.18-alpha.2",
|
|
32
|
+
"@keplr-wallet/common": "0.11.18-alpha.2",
|
|
33
|
+
"@keplr-wallet/cosmos": "0.11.18-alpha.2",
|
|
34
|
+
"@keplr-wallet/crypto": "0.11.18-alpha.2",
|
|
35
|
+
"@keplr-wallet/popup": "0.11.18-alpha.2",
|
|
36
|
+
"@keplr-wallet/proto-types": "0.11.18-alpha.2",
|
|
37
|
+
"@keplr-wallet/router": "0.11.18-alpha.2",
|
|
38
|
+
"@keplr-wallet/types": "0.11.18-alpha.2",
|
|
39
|
+
"@keplr-wallet/unit": "0.11.18-alpha.2",
|
|
40
40
|
"@ledgerhq/hw-app-eth": "^6.29.3",
|
|
41
41
|
"@ledgerhq/hw-transport": "^6.20.0",
|
|
42
42
|
"@ledgerhq/hw-transport-webhid": "^6.20.0",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"secretjs": "0.17.7",
|
|
56
56
|
"utility-types": "^3.10.0"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "2e7c96c5af61ec73e920946ff3871de12d8c56c0"
|
|
59
59
|
}
|
package/src/updater/service.ts
CHANGED
|
@@ -49,7 +49,7 @@ export class ChainUpdaterService {
|
|
|
49
49
|
|
|
50
50
|
const features = chainInfo.features ?? [];
|
|
51
51
|
for (const add of local.features) {
|
|
52
|
-
if (!features.
|
|
52
|
+
if (!features.includes(add)) {
|
|
53
53
|
features.push(add);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -117,7 +117,7 @@ export class ChainUpdaterService {
|
|
|
117
117
|
return false;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
let
|
|
120
|
+
let repoUpdated = false;
|
|
121
121
|
|
|
122
122
|
const prevFetchedChainInfo = await this.kvStore.get<ChainInfo>(
|
|
123
123
|
"updated-chain-info/" + chainIdentifier
|
|
@@ -127,10 +127,8 @@ export class ChainUpdaterService {
|
|
|
127
127
|
sortedJsonByKeyStringify(prevFetchedChainInfo) !==
|
|
128
128
|
sortedJsonByKeyStringify(chainInfo)
|
|
129
129
|
) {
|
|
130
|
-
|
|
131
|
-
}
|
|
130
|
+
repoUpdated = true;
|
|
132
131
|
|
|
133
|
-
if (updated) {
|
|
134
132
|
chainInfo = await validateBasicChainInfoType(chainInfo);
|
|
135
133
|
|
|
136
134
|
await this.kvStore.set<ChainInfo>(
|
|
@@ -142,11 +140,34 @@ export class ChainUpdaterService {
|
|
|
142
140
|
}
|
|
143
141
|
|
|
144
142
|
const updatedChainInfo = await this.chainsService.getChainInfo(chainId);
|
|
143
|
+
|
|
144
|
+
let chainIdUpdated = false;
|
|
145
|
+
const chainIdFromRPC = await this.checkChainIdFromRPC(
|
|
146
|
+
updatedChainInfo.rpc
|
|
147
|
+
);
|
|
148
|
+
if (ChainIdHelper.parse(chainIdFromRPC).identifier !== chainIdentifier) {
|
|
149
|
+
throw new Error(
|
|
150
|
+
`Chain id is different from rpc: (expected: ${chainId}, actual: ${chainIdFromRPC})`
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
if (updatedChainInfo.chainId !== chainIdFromRPC) {
|
|
154
|
+
chainIdUpdated = true;
|
|
155
|
+
|
|
156
|
+
const local = await this.kvStore.get<Partial<ChainInfo>>(
|
|
157
|
+
chainIdentifier
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
await this.kvStore.set<Partial<ChainInfo>>(chainIdentifier, {
|
|
161
|
+
...local,
|
|
162
|
+
chainId: chainIdFromRPC,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
145
166
|
const toUpdateFeatures = await checkChainFeatures(updatedChainInfo);
|
|
146
167
|
|
|
147
|
-
|
|
168
|
+
const featuresUpdated = toUpdateFeatures.length !== 0;
|
|
148
169
|
|
|
149
|
-
if (
|
|
170
|
+
if (featuresUpdated) {
|
|
150
171
|
const local = await this.kvStore.get<Partial<ChainInfo>>(
|
|
151
172
|
chainIdentifier
|
|
152
173
|
);
|
|
@@ -157,11 +178,13 @@ export class ChainUpdaterService {
|
|
|
157
178
|
...new Set([...toUpdateFeatures, ...(local?.features ?? [])]),
|
|
158
179
|
],
|
|
159
180
|
});
|
|
181
|
+
}
|
|
160
182
|
|
|
183
|
+
if (chainIdUpdated || featuresUpdated) {
|
|
161
184
|
this.chainsService.clearCachedChainInfos();
|
|
162
185
|
}
|
|
163
186
|
|
|
164
|
-
return
|
|
187
|
+
return repoUpdated || chainIdUpdated || featuresUpdated;
|
|
165
188
|
} catch (e) {
|
|
166
189
|
console.log(`Failed to try to update chain info for ${chainId}`, e);
|
|
167
190
|
}
|
|
@@ -235,4 +258,18 @@ export class ChainUpdaterService {
|
|
|
235
258
|
|
|
236
259
|
return await this.chainsService.getChainInfos();
|
|
237
260
|
}
|
|
261
|
+
|
|
262
|
+
protected async checkChainIdFromRPC(rpc: string): Promise<string> {
|
|
263
|
+
const statusResponse = await Axios.get<{
|
|
264
|
+
result: {
|
|
265
|
+
node_info: {
|
|
266
|
+
network: string;
|
|
267
|
+
};
|
|
268
|
+
};
|
|
269
|
+
}>("/status", {
|
|
270
|
+
baseURL: rpc,
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
return statusResponse.data.result.node_info.network;
|
|
274
|
+
}
|
|
238
275
|
}
|