@keplr-wallet/stores 0.12.206 → 0.12.207
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/query/cosmos/ibc/client-state-v2.d.ts +13 -0
- package/build/query/cosmos/ibc/client-state-v2.js +50 -0
- package/build/query/cosmos/ibc/client-state-v2.js.map +1 -0
- package/build/query/cosmos/ibc/denom-trace.d.ts +3 -3
- package/build/query/cosmos/ibc/denom-trace.js +18 -2
- package/build/query/cosmos/ibc/denom-trace.js.map +1 -1
- package/build/query/cosmos/ibc/types.d.ts +19 -0
- package/build/query/cosmos/queries.d.ts +2 -0
- package/build/query/cosmos/queries.js +2 -0
- package/build/query/cosmos/queries.js.map +1 -1
- package/package.json +11 -11
- package/src/query/cosmos/ibc/client-state-v2.ts +67 -0
- package/src/query/cosmos/ibc/denom-trace.ts +26 -5
- package/src/query/cosmos/ibc/types.ts +21 -0
- package/src/query/cosmos/queries.ts +7 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ObservableChainQuery, ObservableChainQueryMap } from "../../chain-query";
|
|
2
|
+
import { ChainGetter } from "../../../chain";
|
|
3
|
+
import { ClientStateV2Response } from "./types";
|
|
4
|
+
import { QuerySharedContext } from "../../../common";
|
|
5
|
+
export declare class ObservableChainQueryClientStateV2 extends ObservableChainQuery<ClientStateV2Response> {
|
|
6
|
+
protected readonly channelId: string;
|
|
7
|
+
constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, channelId: string);
|
|
8
|
+
get clientChainId(): string | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare class ObservableQueryIBCClientStateV2 extends ObservableChainQueryMap<ClientStateV2Response> {
|
|
11
|
+
constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter);
|
|
12
|
+
getClientState(channelId: string): ObservableChainQueryClientStateV2;
|
|
13
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ObservableQueryIBCClientStateV2 = exports.ObservableChainQueryClientStateV2 = void 0;
|
|
10
|
+
const chain_query_1 = require("../../chain-query");
|
|
11
|
+
const mobx_1 = require("mobx");
|
|
12
|
+
const buffer_1 = require("buffer/");
|
|
13
|
+
class ObservableChainQueryClientStateV2 extends chain_query_1.ObservableChainQuery {
|
|
14
|
+
constructor(sharedContext, chainId, chainGetter, channelId) {
|
|
15
|
+
super(sharedContext, chainId, chainGetter, `/ibc/core/client/v1/client_states/${channelId}`);
|
|
16
|
+
this.channelId = channelId;
|
|
17
|
+
}
|
|
18
|
+
get clientChainId() {
|
|
19
|
+
if (!this.response) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const decoded = buffer_1.Buffer.from(this.response.data.client_state.data, "base64").toString();
|
|
24
|
+
const parsed = JSON.parse(decoded);
|
|
25
|
+
if (parsed.chain_id) {
|
|
26
|
+
return parsed.chain_id;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
console.log(e);
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
__decorate([
|
|
36
|
+
mobx_1.computed
|
|
37
|
+
], ObservableChainQueryClientStateV2.prototype, "clientChainId", null);
|
|
38
|
+
exports.ObservableChainQueryClientStateV2 = ObservableChainQueryClientStateV2;
|
|
39
|
+
class ObservableQueryIBCClientStateV2 extends chain_query_1.ObservableChainQueryMap {
|
|
40
|
+
constructor(sharedContext, chainId, chainGetter) {
|
|
41
|
+
super(sharedContext, chainId, chainGetter, (channelId) => {
|
|
42
|
+
return new ObservableChainQueryClientStateV2(this.sharedContext, this.chainId, this.chainGetter, channelId);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
getClientState(channelId) {
|
|
46
|
+
return this.get(channelId);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.ObservableQueryIBCClientStateV2 = ObservableQueryIBCClientStateV2;
|
|
50
|
+
//# sourceMappingURL=client-state-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-state-v2.js","sourceRoot":"","sources":["../../../../src/query/cosmos/ibc/client-state-v2.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mDAG2B;AAG3B,+BAAgC;AAEhC,oCAAiC;AAEjC,MAAa,iCAAkC,SAAQ,kCAA2C;IAChG,YACE,aAAiC,EACjC,OAAe,EACf,WAAwB,EACL,SAAiB;QAEpC,KAAK,CACH,aAAa,EACb,OAAO,EACP,WAAW,EACX,qCAAqC,SAAS,EAAE,CACjD,CAAC;QAPiB,cAAS,GAAT,SAAS,CAAQ;IAQtC,CAAC;IAGD,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI;YACF,MAAM,OAAO,GAAG,eAAM,CAAC,IAAI,CACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EACpC,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,OAAO,MAAM,CAAC,QAAQ,CAAC;aACxB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;CACF;AAnBC;IADC,eAAQ;sEAmBR;AAlCH,8EAmCC;AAED,MAAa,+BAAgC,SAAQ,qCAA8C;IACjG,YACE,aAAiC,EACjC,OAAe,EACf,WAAwB;QAExB,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE;YAC/D,OAAO,IAAI,iCAAiC,CAC1C,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAsC,CAAC;IAClE,CAAC;CACF;AAnBD,0EAmBC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ObservableChainQuery, ObservableChainQueryMap } from "../../chain-query";
|
|
2
2
|
import { ChainGetter } from "../../../chain";
|
|
3
|
-
import { DenomTraceResponse } from "./types";
|
|
3
|
+
import { DenomTraceResponse, DenomTraceV2Response } from "./types";
|
|
4
4
|
import { QuerySharedContext } from "../../../common";
|
|
5
|
-
export declare class ObservableChainQueryDenomTrace extends ObservableChainQuery<DenomTraceResponse> {
|
|
5
|
+
export declare class ObservableChainQueryDenomTrace extends ObservableChainQuery<DenomTraceResponse | DenomTraceV2Response> {
|
|
6
6
|
protected readonly hash: string;
|
|
7
7
|
protected disposer?: () => void;
|
|
8
8
|
constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, hash: string);
|
|
@@ -21,7 +21,7 @@ export declare class ObservableChainQueryDenomTrace extends ObservableChainQuery
|
|
|
21
21
|
}[];
|
|
22
22
|
} | undefined;
|
|
23
23
|
}
|
|
24
|
-
export declare class ObservableQueryDenomTrace extends ObservableChainQueryMap<DenomTraceResponse> {
|
|
24
|
+
export declare class ObservableQueryDenomTrace extends ObservableChainQueryMap<DenomTraceResponse | DenomTraceV2Response> {
|
|
25
25
|
constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter);
|
|
26
26
|
getDenomTrace(hash: string): ObservableChainQueryDenomTrace;
|
|
27
27
|
}
|
|
@@ -18,8 +18,13 @@ class ObservableChainQueryDenomTrace extends chain_query_1.ObservableChainQuery
|
|
|
18
18
|
super.onStart();
|
|
19
19
|
this.disposer = (0, mobx_1.autorun)(() => {
|
|
20
20
|
const chainInfo = this.chainGetter.getChain(this.chainId);
|
|
21
|
-
if (chainInfo.features
|
|
22
|
-
|
|
21
|
+
if (chainInfo.features) {
|
|
22
|
+
if (chainInfo.features.includes("ibc-v2")) {
|
|
23
|
+
this.setUrl(`/ibc/apps/transfer/v1/denoms/${this.hash}`);
|
|
24
|
+
}
|
|
25
|
+
else if (chainInfo.features.includes("ibc-go")) {
|
|
26
|
+
this.setUrl(`/ibc/apps/transfer/v1/denom_traces/${this.hash}`);
|
|
27
|
+
}
|
|
23
28
|
}
|
|
24
29
|
});
|
|
25
30
|
}
|
|
@@ -34,6 +39,14 @@ class ObservableChainQueryDenomTrace extends chain_query_1.ObservableChainQuery
|
|
|
34
39
|
if (!this.response) {
|
|
35
40
|
return [];
|
|
36
41
|
}
|
|
42
|
+
if ("denom" in this.response.data) {
|
|
43
|
+
return this.response.data.denom.trace.map((t) => {
|
|
44
|
+
return {
|
|
45
|
+
portId: t.port_id,
|
|
46
|
+
channelId: t.channel_id,
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}
|
|
37
50
|
const rawPaths = this.response.data.denom_trace.path.split("/");
|
|
38
51
|
if (rawPaths.length % 2 !== 0) {
|
|
39
52
|
console.log("Failed to parse paths", rawPaths);
|
|
@@ -54,6 +67,9 @@ class ObservableChainQueryDenomTrace extends chain_query_1.ObservableChainQuery
|
|
|
54
67
|
if (!this.response) {
|
|
55
68
|
return undefined;
|
|
56
69
|
}
|
|
70
|
+
if ("denom" in this.response.data) {
|
|
71
|
+
return this.response.data.denom.base;
|
|
72
|
+
}
|
|
57
73
|
return this.response.data.denom_trace.base_denom;
|
|
58
74
|
}
|
|
59
75
|
get denomTrace() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"denom-trace.js","sourceRoot":"","sources":["../../../../src/query/cosmos/ibc/denom-trace.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mDAG2B;AAG3B,+BAAyC;AAGzC,MAAa,8BAA+B,SAAQ,
|
|
1
|
+
{"version":3,"file":"denom-trace.js","sourceRoot":"","sources":["../../../../src/query/cosmos/ibc/denom-trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,9 +26,28 @@ export type ClientStateResponse = {
|
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
+
export type ClientStateV2Response = {
|
|
30
|
+
client_state: {
|
|
31
|
+
"@type": string;
|
|
32
|
+
data: string;
|
|
33
|
+
latest_height: {
|
|
34
|
+
revision_number: string;
|
|
35
|
+
revision_height: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
};
|
|
29
39
|
export type DenomTraceResponse = {
|
|
30
40
|
denom_trace: {
|
|
31
41
|
path: string;
|
|
32
42
|
base_denom: string;
|
|
33
43
|
};
|
|
34
44
|
};
|
|
45
|
+
export type DenomTraceV2Response = {
|
|
46
|
+
denom: {
|
|
47
|
+
base: string;
|
|
48
|
+
trace: {
|
|
49
|
+
port_id: string;
|
|
50
|
+
channel_id: string;
|
|
51
|
+
}[];
|
|
52
|
+
};
|
|
53
|
+
};
|
|
@@ -10,6 +10,7 @@ import { ObservableQueryRPCStatus } from "./status";
|
|
|
10
10
|
import { ObservableQueryAuthZGranter } from "./authz";
|
|
11
11
|
import { QuerySharedContext } from "../../common";
|
|
12
12
|
import { ObservableQueryFeeMarketGasPrices } from "./feemarket";
|
|
13
|
+
import { ObservableQueryIBCClientStateV2 } from "./ibc/client-state-v2";
|
|
13
14
|
export interface CosmosQueries {
|
|
14
15
|
cosmos: CosmosQueriesImpl;
|
|
15
16
|
}
|
|
@@ -28,6 +29,7 @@ export declare class CosmosQueriesImpl {
|
|
|
28
29
|
readonly queryUnbondingDelegations: DeepReadonly<ObservableQueryUnbondingDelegations>;
|
|
29
30
|
readonly queryValidators: DeepReadonly<ObservableQueryValidators>;
|
|
30
31
|
readonly queryIBCClientState: DeepReadonly<ObservableQueryIBCClientState>;
|
|
32
|
+
readonly queryIBCClientStateV2: DeepReadonly<ObservableQueryIBCClientStateV2>;
|
|
31
33
|
readonly queryIBCChannel: DeepReadonly<ObservableQueryIBCChannel>;
|
|
32
34
|
readonly queryIBCDenomTrace: DeepReadonly<ObservableQueryDenomTrace>;
|
|
33
35
|
readonly queryAuthZGranter: DeepReadonly<ObservableQueryAuthZGranter>;
|
|
@@ -9,6 +9,7 @@ const distribution_1 = require("./distribution");
|
|
|
9
9
|
const status_1 = require("./status");
|
|
10
10
|
const authz_1 = require("./authz");
|
|
11
11
|
const feemarket_1 = require("./feemarket");
|
|
12
|
+
const client_state_v2_1 = require("./ibc/client-state-v2");
|
|
12
13
|
exports.CosmosQueries = {
|
|
13
14
|
use() {
|
|
14
15
|
return (queriesSetBase, sharedContext, chainId, chainGetter) => {
|
|
@@ -32,6 +33,7 @@ class CosmosQueriesImpl {
|
|
|
32
33
|
this.queryUnbondingDelegations = new staking_1.ObservableQueryUnbondingDelegations(sharedContext, chainId, chainGetter);
|
|
33
34
|
this.queryValidators = new staking_1.ObservableQueryValidators(sharedContext, chainId, chainGetter);
|
|
34
35
|
this.queryIBCClientState = new ibc_1.ObservableQueryIBCClientState(sharedContext, chainId, chainGetter);
|
|
36
|
+
this.queryIBCClientStateV2 = new client_state_v2_1.ObservableQueryIBCClientStateV2(sharedContext, chainId, chainGetter);
|
|
35
37
|
this.queryIBCChannel = new ibc_1.ObservableQueryIBCChannel(sharedContext, chainId, chainGetter);
|
|
36
38
|
this.queryIBCDenomTrace = new ibc_1.ObservableQueryDenomTrace(sharedContext, chainId, chainGetter);
|
|
37
39
|
this.queryAuthZGranter = new authz_1.ObservableQueryAuthZGranter(sharedContext, chainId, chainGetter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/query/cosmos/queries.ts"],"names":[],"mappings":";;;AAEA,uCAAmD;AACnD,uCAOmB;AACnB,+BAIe;AACf,uCAGmB;AAEnB,iDAAmE;AACnE,qCAAoD;AACpD,mCAAsD;AAEtD,2CAAgE;
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/query/cosmos/queries.ts"],"names":[],"mappings":";;;AAEA,uCAAmD;AACnD,uCAOmB;AACnB,+BAIe;AACf,uCAGmB;AAEnB,iDAAmE;AACnE,qCAAoD;AACpD,mCAAsD;AAEtD,2CAAgE;AAChE,2DAAwE;AAM3D,QAAA,aAAa,GAAG;IAC3B,GAAG;QAMD,OAAO,CACL,cAA8B,EAC9B,aAAiC,EACjC,OAAe,EACf,WAAwB,EACxB,EAAE;YACF,OAAO;gBACL,MAAM,EAAE,IAAI,iBAAiB,CAC3B,cAAc,EACd,aAAa,EACb,OAAO,EACP,WAAW,CACZ;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAa,iBAAiB;IAsB5B,YACE,IAAoB,EACpB,aAAiC,EACjC,OAAe,EACf,WAAwB;QAExB,IAAI,CAAC,cAAc,GAAG,IAAI,iCAAwB,CAChD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,IAAI,8CAAoC,CAAC,aAAa,CAAC,CACxD,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,gCAAsB,CAC5C,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,0CAAgC,CAChE,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,oCAA0B,CAC7C,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,sCAA4B,CACxD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,uBAAuB,GAAG,IAAI,gDAAiC,CAClE,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,gCAAsB,CAC5C,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,oCAA0B,CACpD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,yBAAyB,GAAG,IAAI,6CAAmC,CACtE,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,mCAAyB,CAClD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,IAAI,mCAA6B,CAC1D,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,iDAA+B,CAC9D,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,+BAAyB,CAClD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,+BAAyB,CACrD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,mCAA2B,CACtD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,uBAAuB,GAAG,IAAI,6CAAiC,CAClE,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;IACJ,CAAC;CACF;AAtHD,8CAsHC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keplr-wallet/stores",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.207",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"author": "chainapsis",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -16,17 +16,17 @@
|
|
|
16
16
|
"lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@keplr-wallet/provider-mock": "0.12.
|
|
19
|
+
"@keplr-wallet/provider-mock": "0.12.207"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@keplr-wallet/common": "0.12.
|
|
23
|
-
"@keplr-wallet/cosmos": "0.12.
|
|
24
|
-
"@keplr-wallet/crypto": "0.12.
|
|
25
|
-
"@keplr-wallet/mobx-utils": "0.12.
|
|
26
|
-
"@keplr-wallet/proto-types": "0.12.
|
|
27
|
-
"@keplr-wallet/simple-fetch": "0.12.
|
|
28
|
-
"@keplr-wallet/types": "0.12.
|
|
29
|
-
"@keplr-wallet/unit": "0.12.
|
|
22
|
+
"@keplr-wallet/common": "0.12.207",
|
|
23
|
+
"@keplr-wallet/cosmos": "0.12.207",
|
|
24
|
+
"@keplr-wallet/crypto": "0.12.207",
|
|
25
|
+
"@keplr-wallet/mobx-utils": "0.12.207",
|
|
26
|
+
"@keplr-wallet/proto-types": "0.12.207",
|
|
27
|
+
"@keplr-wallet/simple-fetch": "0.12.207",
|
|
28
|
+
"@keplr-wallet/types": "0.12.207",
|
|
29
|
+
"@keplr-wallet/unit": "0.12.207",
|
|
30
30
|
"buffer": "^6.0.3",
|
|
31
31
|
"deepmerge": "^4.2.2",
|
|
32
32
|
"eventemitter3": "^4.0.7",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"mobx": "^6",
|
|
39
39
|
"mobx-utils": "^6"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "0d9a2b1a0185fcd65e37929bf749226c7e954ecc"
|
|
42
42
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ObservableChainQuery,
|
|
3
|
+
ObservableChainQueryMap,
|
|
4
|
+
} from "../../chain-query";
|
|
5
|
+
import { ChainGetter } from "../../../chain";
|
|
6
|
+
import { ClientStateV2Response } from "./types";
|
|
7
|
+
import { computed } from "mobx";
|
|
8
|
+
import { QuerySharedContext } from "../../../common";
|
|
9
|
+
import { Buffer } from "buffer/";
|
|
10
|
+
|
|
11
|
+
export class ObservableChainQueryClientStateV2 extends ObservableChainQuery<ClientStateV2Response> {
|
|
12
|
+
constructor(
|
|
13
|
+
sharedContext: QuerySharedContext,
|
|
14
|
+
chainId: string,
|
|
15
|
+
chainGetter: ChainGetter,
|
|
16
|
+
protected readonly channelId: string
|
|
17
|
+
) {
|
|
18
|
+
super(
|
|
19
|
+
sharedContext,
|
|
20
|
+
chainId,
|
|
21
|
+
chainGetter,
|
|
22
|
+
`/ibc/core/client/v1/client_states/${channelId}`
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@computed
|
|
27
|
+
get clientChainId(): string | undefined {
|
|
28
|
+
if (!this.response) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
const decoded = Buffer.from(
|
|
34
|
+
this.response.data.client_state.data,
|
|
35
|
+
"base64"
|
|
36
|
+
).toString();
|
|
37
|
+
const parsed = JSON.parse(decoded);
|
|
38
|
+
if (parsed.chain_id) {
|
|
39
|
+
return parsed.chain_id;
|
|
40
|
+
}
|
|
41
|
+
} catch (e) {
|
|
42
|
+
console.log(e);
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class ObservableQueryIBCClientStateV2 extends ObservableChainQueryMap<ClientStateV2Response> {
|
|
49
|
+
constructor(
|
|
50
|
+
sharedContext: QuerySharedContext,
|
|
51
|
+
chainId: string,
|
|
52
|
+
chainGetter: ChainGetter
|
|
53
|
+
) {
|
|
54
|
+
super(sharedContext, chainId, chainGetter, (channelId: string) => {
|
|
55
|
+
return new ObservableChainQueryClientStateV2(
|
|
56
|
+
this.sharedContext,
|
|
57
|
+
this.chainId,
|
|
58
|
+
this.chainGetter,
|
|
59
|
+
channelId
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
getClientState(channelId: string): ObservableChainQueryClientStateV2 {
|
|
65
|
+
return this.get(channelId) as ObservableChainQueryClientStateV2;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -3,11 +3,13 @@ import {
|
|
|
3
3
|
ObservableChainQueryMap,
|
|
4
4
|
} from "../../chain-query";
|
|
5
5
|
import { ChainGetter } from "../../../chain";
|
|
6
|
-
import { DenomTraceResponse } from "./types";
|
|
6
|
+
import { DenomTraceResponse, DenomTraceV2Response } from "./types";
|
|
7
7
|
import { autorun, computed } from "mobx";
|
|
8
8
|
import { QuerySharedContext } from "../../../common";
|
|
9
9
|
|
|
10
|
-
export class ObservableChainQueryDenomTrace extends ObservableChainQuery<
|
|
10
|
+
export class ObservableChainQueryDenomTrace extends ObservableChainQuery<
|
|
11
|
+
DenomTraceResponse | DenomTraceV2Response
|
|
12
|
+
> {
|
|
11
13
|
protected disposer?: () => void;
|
|
12
14
|
|
|
13
15
|
constructor(
|
|
@@ -29,8 +31,12 @@ export class ObservableChainQueryDenomTrace extends ObservableChainQuery<DenomTr
|
|
|
29
31
|
|
|
30
32
|
this.disposer = autorun(() => {
|
|
31
33
|
const chainInfo = this.chainGetter.getChain(this.chainId);
|
|
32
|
-
if (chainInfo.features
|
|
33
|
-
|
|
34
|
+
if (chainInfo.features) {
|
|
35
|
+
if (chainInfo.features.includes("ibc-v2")) {
|
|
36
|
+
this.setUrl(`/ibc/apps/transfer/v1/denoms/${this.hash}`);
|
|
37
|
+
} else if (chainInfo.features.includes("ibc-go")) {
|
|
38
|
+
this.setUrl(`/ibc/apps/transfer/v1/denom_traces/${this.hash}`);
|
|
39
|
+
}
|
|
34
40
|
}
|
|
35
41
|
});
|
|
36
42
|
}
|
|
@@ -52,6 +58,15 @@ export class ObservableChainQueryDenomTrace extends ObservableChainQuery<DenomTr
|
|
|
52
58
|
return [];
|
|
53
59
|
}
|
|
54
60
|
|
|
61
|
+
if ("denom" in this.response.data) {
|
|
62
|
+
return this.response.data.denom.trace.map((t) => {
|
|
63
|
+
return {
|
|
64
|
+
portId: t.port_id,
|
|
65
|
+
channelId: t.channel_id,
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
55
70
|
const rawPaths = this.response.data.denom_trace.path.split("/");
|
|
56
71
|
|
|
57
72
|
if (rawPaths.length % 2 !== 0) {
|
|
@@ -77,6 +92,10 @@ export class ObservableChainQueryDenomTrace extends ObservableChainQuery<DenomTr
|
|
|
77
92
|
return undefined;
|
|
78
93
|
}
|
|
79
94
|
|
|
95
|
+
if ("denom" in this.response.data) {
|
|
96
|
+
return this.response.data.denom.base;
|
|
97
|
+
}
|
|
98
|
+
|
|
80
99
|
return this.response.data.denom_trace.base_denom;
|
|
81
100
|
}
|
|
82
101
|
|
|
@@ -101,7 +120,9 @@ export class ObservableChainQueryDenomTrace extends ObservableChainQuery<DenomTr
|
|
|
101
120
|
}
|
|
102
121
|
}
|
|
103
122
|
|
|
104
|
-
export class ObservableQueryDenomTrace extends ObservableChainQueryMap<
|
|
123
|
+
export class ObservableQueryDenomTrace extends ObservableChainQueryMap<
|
|
124
|
+
DenomTraceResponse | DenomTraceV2Response
|
|
125
|
+
> {
|
|
105
126
|
constructor(
|
|
106
127
|
sharedContext: QuerySharedContext,
|
|
107
128
|
chainId: string,
|
|
@@ -36,9 +36,30 @@ export type ClientStateResponse = {
|
|
|
36
36
|
};
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
+
export type ClientStateV2Response = {
|
|
40
|
+
client_state: {
|
|
41
|
+
"@type": string;
|
|
42
|
+
data: string;
|
|
43
|
+
latest_height: {
|
|
44
|
+
revision_number: string;
|
|
45
|
+
revision_height: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
|
|
39
50
|
export type DenomTraceResponse = {
|
|
40
51
|
denom_trace: {
|
|
41
52
|
path: string;
|
|
42
53
|
base_denom: string;
|
|
43
54
|
};
|
|
44
55
|
};
|
|
56
|
+
|
|
57
|
+
export type DenomTraceV2Response = {
|
|
58
|
+
denom: {
|
|
59
|
+
base: string;
|
|
60
|
+
trace: {
|
|
61
|
+
port_id: string;
|
|
62
|
+
channel_id: string;
|
|
63
|
+
}[];
|
|
64
|
+
};
|
|
65
|
+
};
|
|
@@ -24,6 +24,7 @@ import { ObservableQueryRPCStatus } from "./status";
|
|
|
24
24
|
import { ObservableQueryAuthZGranter } from "./authz";
|
|
25
25
|
import { QuerySharedContext } from "../../common";
|
|
26
26
|
import { ObservableQueryFeeMarketGasPrices } from "./feemarket";
|
|
27
|
+
import { ObservableQueryIBCClientStateV2 } from "./ibc/client-state-v2";
|
|
27
28
|
|
|
28
29
|
export interface CosmosQueries {
|
|
29
30
|
cosmos: CosmosQueriesImpl;
|
|
@@ -68,6 +69,7 @@ export class CosmosQueriesImpl {
|
|
|
68
69
|
public readonly queryValidators: DeepReadonly<ObservableQueryValidators>;
|
|
69
70
|
|
|
70
71
|
public readonly queryIBCClientState: DeepReadonly<ObservableQueryIBCClientState>;
|
|
72
|
+
public readonly queryIBCClientStateV2: DeepReadonly<ObservableQueryIBCClientStateV2>;
|
|
71
73
|
public readonly queryIBCChannel: DeepReadonly<ObservableQueryIBCChannel>;
|
|
72
74
|
public readonly queryIBCDenomTrace: DeepReadonly<ObservableQueryDenomTrace>;
|
|
73
75
|
|
|
@@ -144,6 +146,11 @@ export class CosmosQueriesImpl {
|
|
|
144
146
|
chainId,
|
|
145
147
|
chainGetter
|
|
146
148
|
);
|
|
149
|
+
this.queryIBCClientStateV2 = new ObservableQueryIBCClientStateV2(
|
|
150
|
+
sharedContext,
|
|
151
|
+
chainId,
|
|
152
|
+
chainGetter
|
|
153
|
+
);
|
|
147
154
|
this.queryIBCChannel = new ObservableQueryIBCChannel(
|
|
148
155
|
sharedContext,
|
|
149
156
|
chainId,
|