@keplr-wallet/stores-eth 0.12.71-rc.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.
Files changed (58) hide show
  1. package/.eslintignore +2 -0
  2. package/.prettierignore +2 -0
  3. package/LICENSE +209 -0
  4. package/build/account/base.d.ts +36 -0
  5. package/build/account/base.js +235 -0
  6. package/build/account/base.js.map +1 -0
  7. package/build/account/index.d.ts +2 -0
  8. package/build/account/index.js +19 -0
  9. package/build/account/index.js.map +1 -0
  10. package/build/account/store.d.ts +9 -0
  11. package/build/account/store.js +20 -0
  12. package/build/account/store.js.map +1 -0
  13. package/build/constants.d.ts +2 -0
  14. package/build/constants.js +275 -0
  15. package/build/constants.js.map +1 -0
  16. package/build/index.d.ts +3 -0
  17. package/build/index.js +20 -0
  18. package/build/index.js.map +1 -0
  19. package/build/queries/balance.d.ts +19 -0
  20. package/build/queries/balance.js +72 -0
  21. package/build/queries/balance.js.map +1 -0
  22. package/build/queries/block.d.ts +54 -0
  23. package/build/queries/block.js +45 -0
  24. package/build/queries/block.js.map +1 -0
  25. package/build/queries/erc20-balance.d.ts +20 -0
  26. package/build/queries/erc20-balance.js +79 -0
  27. package/build/queries/erc20-balance.js.map +1 -0
  28. package/build/queries/erc20-contract-info.d.ts +20 -0
  29. package/build/queries/erc20-contract-info.js +51 -0
  30. package/build/queries/erc20-contract-info.js.map +1 -0
  31. package/build/queries/erc20-metadata.d.ts +31 -0
  32. package/build/queries/erc20-metadata.js +142 -0
  33. package/build/queries/erc20-metadata.js.map +1 -0
  34. package/build/queries/evm-chain-json-rpc.d.ts +13 -0
  35. package/build/queries/evm-chain-json-rpc.js +27 -0
  36. package/build/queries/evm-chain-json-rpc.js.map +1 -0
  37. package/build/queries/fee-histroy.d.ts +17 -0
  38. package/build/queries/fee-histroy.js +55 -0
  39. package/build/queries/fee-histroy.js.map +1 -0
  40. package/build/queries/index.d.ts +21 -0
  41. package/build/queries/index.js +32 -0
  42. package/build/queries/index.js.map +1 -0
  43. package/jest.config.js +5 -0
  44. package/package.json +35 -0
  45. package/src/account/base.ts +302 -0
  46. package/src/account/index.ts +2 -0
  47. package/src/account/store.ts +19 -0
  48. package/src/constants.ts +272 -0
  49. package/src/index.ts +3 -0
  50. package/src/queries/balance.ts +94 -0
  51. package/src/queries/block.ts +111 -0
  52. package/src/queries/erc20-balance.ts +103 -0
  53. package/src/queries/erc20-contract-info.ts +66 -0
  54. package/src/queries/erc20-metadata.ts +184 -0
  55. package/src/queries/evm-chain-json-rpc.ts +48 -0
  56. package/src/queries/fee-histroy.ts +80 -0
  57. package/src/queries/index.ts +86 -0
  58. package/tsconfig.json +12 -0
@@ -0,0 +1,51 @@
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.ObservableQueryERC20ContractInfo = exports.ObservableQueryERC20ContactInfoInner = void 0;
10
+ const stores_1 = require("@keplr-wallet/stores");
11
+ const erc20_metadata_1 = require("./erc20-metadata");
12
+ const mobx_1 = require("mobx");
13
+ class ObservableQueryERC20ContactInfoInner extends erc20_metadata_1.ObservableQueryEVMChainERC20MetadataInner {
14
+ constructor(sharedContext, chainId, chainGetter, contractAddress) {
15
+ super(sharedContext, chainId, chainGetter, contractAddress);
16
+ }
17
+ get tokenInfo() {
18
+ if (this.symbol === undefined || this.decimals === undefined) {
19
+ return undefined;
20
+ }
21
+ return {
22
+ decimals: this.decimals,
23
+ symbol: this.symbol,
24
+ };
25
+ }
26
+ get isFetching() {
27
+ return this._querySymbol.isFetching || this._queryDecimals.isFetching;
28
+ }
29
+ get error() {
30
+ return this._querySymbol.error || this._queryDecimals.error;
31
+ }
32
+ }
33
+ __decorate([
34
+ mobx_1.computed
35
+ ], ObservableQueryERC20ContactInfoInner.prototype, "tokenInfo", null);
36
+ exports.ObservableQueryERC20ContactInfoInner = ObservableQueryERC20ContactInfoInner;
37
+ class ObservableQueryERC20ContractInfo extends stores_1.HasMapStore {
38
+ constructor(sharedContext, chainId, chainGetter) {
39
+ super((contractAddress) => {
40
+ return new ObservableQueryERC20ContactInfoInner(this.sharedContext, this.chainId, this.chainGetter, contractAddress);
41
+ });
42
+ this.sharedContext = sharedContext;
43
+ this.chainId = chainId;
44
+ this.chainGetter = chainGetter;
45
+ }
46
+ getQueryContract(contractAddress) {
47
+ return this.get(contractAddress);
48
+ }
49
+ }
50
+ exports.ObservableQueryERC20ContractInfo = ObservableQueryERC20ContractInfo;
51
+ //# sourceMappingURL=erc20-contract-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20-contract-info.js","sourceRoot":"","sources":["../../src/queries/erc20-contract-info.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAI8B;AAC9B,qDAA6E;AAC7E,+BAAgC;AAOhC,MAAa,oCAAqC,SAAQ,0DAAyC;IACjG,YACE,aAAiC,EACjC,OAAe,EACf,WAAwB,EACxB,eAAuB;QAEvB,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAGD,IAAI,SAAS;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC5D,OAAO,SAAS,CAAC;SAClB;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;IACxE,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAC9D,CAAC;CACF;AAlBC;IADC,eAAQ;qEAUR;AApBH,oFA6BC;AAED,MAAa,gCAAiC,SAAQ,oBAAiD;IACrG,YACqB,aAAiC,EACjC,OAAe,EACf,WAAwB;QAE3C,KAAK,CAAC,CAAC,eAAuB,EAAE,EAAE;YAChC,OAAO,IAAI,oCAAoC,CAC7C,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,eAAe,CAChB,CAAC;QACJ,CAAC,CAAC,CAAC;QAXgB,kBAAa,GAAb,aAAa,CAAoB;QACjC,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;IAU7C,CAAC;IAED,gBAAgB,CACd,eAAuB;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAyC,CAAC;IAC3E,CAAC;CACF;AArBD,4EAqBC"}
@@ -0,0 +1,31 @@
1
+ import { ChainGetter, HasMapStore, QuerySharedContext } from "@keplr-wallet/stores";
2
+ import { ObservableEvmChainJsonRpcQuery } from "./evm-chain-json-rpc";
3
+ export declare class ObservableQueryEVMChainERC20MetadataSymbol extends ObservableEvmChainJsonRpcQuery<string> {
4
+ protected contractAddress: string;
5
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, contractAddress: string);
6
+ protected canFetch(): boolean;
7
+ get symbol(): string | undefined;
8
+ }
9
+ export declare class ObservableQueryEVMChainERC20MetadataDecimals extends ObservableEvmChainJsonRpcQuery<string> {
10
+ protected contractAddress: string;
11
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, contractAddress: string);
12
+ protected canFetch(): boolean;
13
+ get decimals(): number | undefined;
14
+ }
15
+ export declare class ObservableQueryEVMChainERC20MetadataInner {
16
+ protected readonly sharedContext: QuerySharedContext;
17
+ protected readonly _querySymbol: ObservableQueryEVMChainERC20MetadataSymbol;
18
+ protected readonly _queryDecimals: ObservableQueryEVMChainERC20MetadataDecimals;
19
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, contractAddress: string);
20
+ get querySymbol(): ObservableQueryEVMChainERC20MetadataSymbol;
21
+ get queryDecimals(): ObservableQueryEVMChainERC20MetadataDecimals;
22
+ get symbol(): string | undefined;
23
+ get decimals(): number | undefined;
24
+ }
25
+ export declare class ObservableQueryEVMChainERC20Metadata extends HasMapStore<ObservableQueryEVMChainERC20MetadataInner> {
26
+ protected readonly sharedContext: QuerySharedContext;
27
+ protected readonly chainId: string;
28
+ protected readonly chainGetter: ChainGetter;
29
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter);
30
+ get(contractAddress: string): ObservableQueryEVMChainERC20MetadataInner;
31
+ }
@@ -0,0 +1,142 @@
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.ObservableQueryEVMChainERC20Metadata = exports.ObservableQueryEVMChainERC20MetadataInner = exports.ObservableQueryEVMChainERC20MetadataDecimals = exports.ObservableQueryEVMChainERC20MetadataSymbol = void 0;
10
+ const stores_1 = require("@keplr-wallet/stores");
11
+ const abi_1 = require("@ethersproject/abi");
12
+ const mobx_1 = require("mobx");
13
+ const evm_chain_json_rpc_1 = require("./evm-chain-json-rpc");
14
+ const erc20MetadataInterface = new abi_1.Interface([
15
+ {
16
+ constant: true,
17
+ inputs: [],
18
+ name: "symbol",
19
+ outputs: [
20
+ {
21
+ name: "",
22
+ type: "string",
23
+ },
24
+ ],
25
+ payable: false,
26
+ stateMutability: "view",
27
+ type: "function",
28
+ },
29
+ {
30
+ constant: true,
31
+ inputs: [],
32
+ name: "decimals",
33
+ outputs: [
34
+ {
35
+ name: "",
36
+ type: "uint8",
37
+ },
38
+ ],
39
+ payable: false,
40
+ stateMutability: "view",
41
+ type: "function",
42
+ },
43
+ ]);
44
+ class ObservableQueryEVMChainERC20MetadataSymbol extends evm_chain_json_rpc_1.ObservableEvmChainJsonRpcQuery {
45
+ constructor(sharedContext, chainId, chainGetter, contractAddress) {
46
+ super(sharedContext, chainId, chainGetter, "eth_call", [
47
+ {
48
+ to: contractAddress,
49
+ data: erc20MetadataInterface.encodeFunctionData("symbol"),
50
+ },
51
+ "latest",
52
+ ]);
53
+ this.contractAddress = contractAddress;
54
+ (0, mobx_1.makeObservable)(this);
55
+ }
56
+ canFetch() {
57
+ return super.canFetch() && this.contractAddress !== "";
58
+ }
59
+ get symbol() {
60
+ if (!this.response) {
61
+ return undefined;
62
+ }
63
+ try {
64
+ return erc20MetadataInterface.decodeFunctionResult("symbol", this.response.data)[0];
65
+ }
66
+ catch (e) {
67
+ console.log(e);
68
+ }
69
+ return undefined;
70
+ }
71
+ }
72
+ __decorate([
73
+ mobx_1.computed
74
+ ], ObservableQueryEVMChainERC20MetadataSymbol.prototype, "symbol", null);
75
+ exports.ObservableQueryEVMChainERC20MetadataSymbol = ObservableQueryEVMChainERC20MetadataSymbol;
76
+ class ObservableQueryEVMChainERC20MetadataDecimals extends evm_chain_json_rpc_1.ObservableEvmChainJsonRpcQuery {
77
+ constructor(sharedContext, chainId, chainGetter, contractAddress) {
78
+ super(sharedContext, chainId, chainGetter, "eth_call", [
79
+ {
80
+ to: contractAddress,
81
+ data: erc20MetadataInterface.encodeFunctionData("decimals"),
82
+ },
83
+ "latest",
84
+ ]);
85
+ this.contractAddress = contractAddress;
86
+ (0, mobx_1.makeObservable)(this);
87
+ }
88
+ canFetch() {
89
+ return super.canFetch() && this.contractAddress !== "";
90
+ }
91
+ get decimals() {
92
+ if (!this.response) {
93
+ return undefined;
94
+ }
95
+ try {
96
+ return erc20MetadataInterface.decodeFunctionResult("decimals", this.response.data)[0];
97
+ }
98
+ catch (e) {
99
+ console.log(e);
100
+ }
101
+ return undefined;
102
+ }
103
+ }
104
+ __decorate([
105
+ mobx_1.computed
106
+ ], ObservableQueryEVMChainERC20MetadataDecimals.prototype, "decimals", null);
107
+ exports.ObservableQueryEVMChainERC20MetadataDecimals = ObservableQueryEVMChainERC20MetadataDecimals;
108
+ class ObservableQueryEVMChainERC20MetadataInner {
109
+ constructor(sharedContext, chainId, chainGetter, contractAddress) {
110
+ this.sharedContext = sharedContext;
111
+ this._querySymbol = new ObservableQueryEVMChainERC20MetadataSymbol(sharedContext, chainId, chainGetter, contractAddress);
112
+ this._queryDecimals = new ObservableQueryEVMChainERC20MetadataDecimals(sharedContext, chainId, chainGetter, contractAddress);
113
+ }
114
+ get querySymbol() {
115
+ return this._querySymbol;
116
+ }
117
+ get queryDecimals() {
118
+ return this._queryDecimals;
119
+ }
120
+ get symbol() {
121
+ return this._querySymbol.symbol;
122
+ }
123
+ get decimals() {
124
+ return this._queryDecimals.decimals;
125
+ }
126
+ }
127
+ exports.ObservableQueryEVMChainERC20MetadataInner = ObservableQueryEVMChainERC20MetadataInner;
128
+ class ObservableQueryEVMChainERC20Metadata extends stores_1.HasMapStore {
129
+ constructor(sharedContext, chainId, chainGetter) {
130
+ super((contractAddress) => {
131
+ return new ObservableQueryEVMChainERC20MetadataInner(this.sharedContext, this.chainId, this.chainGetter, contractAddress);
132
+ });
133
+ this.sharedContext = sharedContext;
134
+ this.chainId = chainId;
135
+ this.chainGetter = chainGetter;
136
+ }
137
+ get(contractAddress) {
138
+ return super.get(contractAddress);
139
+ }
140
+ }
141
+ exports.ObservableQueryEVMChainERC20Metadata = ObservableQueryEVMChainERC20Metadata;
142
+ //# sourceMappingURL=erc20-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20-metadata.js","sourceRoot":"","sources":["../../src/queries/erc20-metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { ChainGetter, HasMapStore, ObservableJsonRPCQuery, QuerySharedContext } from "@keplr-wallet/stores";
2
+ export declare class ObservableEvmChainJsonRpcQuery<T = unknown, E = unknown> extends ObservableJsonRPCQuery<T, E> {
3
+ protected readonly _chainId: string;
4
+ protected readonly chainGetter: ChainGetter;
5
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, method: string, params: any[]);
6
+ get chainId(): string;
7
+ }
8
+ export declare class ObservableEvmChainJsonRpcQueryMap<T = unknown, E = unknown> extends HasMapStore<ObservableEvmChainJsonRpcQuery<T, E>> {
9
+ protected readonly sharedContext: QuerySharedContext;
10
+ protected readonly chainId: string;
11
+ protected readonly chainGetter: ChainGetter;
12
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, creater: (key: string) => ObservableEvmChainJsonRpcQuery<T, E>);
13
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObservableEvmChainJsonRpcQueryMap = exports.ObservableEvmChainJsonRpcQuery = void 0;
4
+ const stores_1 = require("@keplr-wallet/stores");
5
+ class ObservableEvmChainJsonRpcQuery extends stores_1.ObservableJsonRPCQuery {
6
+ constructor(sharedContext, chainId, chainGetter, method, params) {
7
+ var _a, _b;
8
+ const chainInfo = chainGetter.getChain(chainId);
9
+ super(sharedContext, (_b = (_a = chainInfo.evm) === null || _a === void 0 ? void 0 : _a.rpc) !== null && _b !== void 0 ? _b : "", "", method, params);
10
+ this._chainId = chainId;
11
+ this.chainGetter = chainGetter;
12
+ }
13
+ get chainId() {
14
+ return this._chainId;
15
+ }
16
+ }
17
+ exports.ObservableEvmChainJsonRpcQuery = ObservableEvmChainJsonRpcQuery;
18
+ class ObservableEvmChainJsonRpcQueryMap extends stores_1.HasMapStore {
19
+ constructor(sharedContext, chainId, chainGetter, creater) {
20
+ super(creater);
21
+ this.sharedContext = sharedContext;
22
+ this.chainId = chainId;
23
+ this.chainGetter = chainGetter;
24
+ }
25
+ }
26
+ exports.ObservableEvmChainJsonRpcQueryMap = ObservableEvmChainJsonRpcQueryMap;
27
+ //# sourceMappingURL=evm-chain-json-rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-chain-json-rpc.js","sourceRoot":"","sources":["../../src/queries/evm-chain-json-rpc.ts"],"names":[],"mappings":";;;AAAA,iDAK8B;AAE9B,MAAa,8BAGX,SAAQ,+BAA4B;IAKpC,YACE,aAAiC,EACjC,OAAe,EACf,WAAwB,EACxB,MAAc,EACd,MAAa;;QAEb,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEhD,KAAK,CAAC,aAAa,EAAE,MAAA,MAAA,SAAS,CAAC,GAAG,0CAAE,GAAG,mCAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AA1BD,wEA0BC;AAED,MAAa,iCAGX,SAAQ,oBAAiD;IACzD,YACqB,aAAiC,EACjC,OAAe,EACf,WAAwB,EAC3C,OAA8D;QAE9D,KAAK,CAAC,OAAO,CAAC,CAAC;QALI,kBAAa,GAAb,aAAa,CAAoB;QACjC,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;IAI7C,CAAC;CACF;AAZD,8EAYC"}
@@ -0,0 +1,17 @@
1
+ import { ChainGetter, QuerySharedContext } from "@keplr-wallet/stores";
2
+ import { ObservableEvmChainJsonRpcQuery, ObservableEvmChainJsonRpcQueryMap } from "./evm-chain-json-rpc";
3
+ interface EthereumFeeHistory {
4
+ oldestBlock: string;
5
+ baseFeePerGas?: string[];
6
+ gasUsedRatio: number[];
7
+ reward?: string[][];
8
+ }
9
+ export declare class ObservableQueryEthereumFeeHistoryInner extends ObservableEvmChainJsonRpcQuery<EthereumFeeHistory> {
10
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter, blockCount: string | number, newestBlock: string, rewardPercentiles: number[]);
11
+ get feeHistory(): EthereumFeeHistory | undefined;
12
+ }
13
+ export declare class ObservableQueryEthereumFeeHistory extends ObservableEvmChainJsonRpcQueryMap<EthereumFeeHistory> {
14
+ constructor(sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter);
15
+ getQueryByFeeHistoryParams(blockCount: string | number, newestBlock: string, rewardPercentiles: number[]): ObservableQueryEthereumFeeHistoryInner;
16
+ }
17
+ export {};
@@ -0,0 +1,55 @@
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.ObservableQueryEthereumFeeHistory = exports.ObservableQueryEthereumFeeHistoryInner = void 0;
10
+ const mobx_1 = require("mobx");
11
+ const evm_chain_json_rpc_1 = require("./evm-chain-json-rpc");
12
+ class ObservableQueryEthereumFeeHistoryInner extends evm_chain_json_rpc_1.ObservableEvmChainJsonRpcQuery {
13
+ constructor(sharedContext, chainId, chainGetter, blockCount, newestBlock, rewardPercentiles) {
14
+ super(sharedContext, chainId, chainGetter, "eth_feeHistory", [
15
+ blockCount,
16
+ newestBlock,
17
+ rewardPercentiles,
18
+ ]);
19
+ (0, mobx_1.makeObservable)(this);
20
+ }
21
+ get feeHistory() {
22
+ if (!this.response) {
23
+ return;
24
+ }
25
+ return this.response.data;
26
+ }
27
+ }
28
+ __decorate([
29
+ mobx_1.computed
30
+ ], ObservableQueryEthereumFeeHistoryInner.prototype, "feeHistory", null);
31
+ exports.ObservableQueryEthereumFeeHistoryInner = ObservableQueryEthereumFeeHistoryInner;
32
+ class ObservableQueryEthereumFeeHistory extends evm_chain_json_rpc_1.ObservableEvmChainJsonRpcQueryMap {
33
+ constructor(sharedContext, chainId, chainGetter) {
34
+ super(sharedContext, chainId, chainGetter, (stringifiedParams) => {
35
+ const params = (() => {
36
+ try {
37
+ return JSON.parse(stringifiedParams);
38
+ }
39
+ catch (_a) {
40
+ throw new Error("Invalid JSON RPC params");
41
+ }
42
+ })();
43
+ const blockCount = params[0];
44
+ const newestBlock = params[1];
45
+ const rewardPercentiles = params[2];
46
+ return new ObservableQueryEthereumFeeHistoryInner(this.sharedContext, this.chainId, this.chainGetter, blockCount, newestBlock, rewardPercentiles);
47
+ });
48
+ }
49
+ getQueryByFeeHistoryParams(blockCount, newestBlock, rewardPercentiles) {
50
+ const key = JSON.stringify([blockCount, newestBlock, rewardPercentiles]);
51
+ return this.get(key);
52
+ }
53
+ }
54
+ exports.ObservableQueryEthereumFeeHistory = ObservableQueryEthereumFeeHistory;
55
+ //# sourceMappingURL=fee-histroy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee-histroy.js","sourceRoot":"","sources":["../../src/queries/fee-histroy.ts"],"names":[],"mappings":";;;;;;;;;AACA,+BAAgD;AAChD,6DAG8B;AAS9B,MAAa,sCAAuC,SAAQ,mDAAkD;IAC5G,YACE,aAAiC,EACjC,OAAe,EACf,WAAwB,EACxB,UAA2B,EAC3B,WAAmB,EACnB,iBAA2B;QAE3B,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;YAC3D,UAAU;YACV,WAAW;YACX,iBAAiB;SAClB,CAAC,CAAC;QAEH,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAGD,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF;AAPC;IADC,eAAQ;wEAOR;AAzBH,wFA0BC;AAED,MAAa,iCAAkC,SAAQ,sDAAqD;IAC1G,YACE,aAAiC,EACjC,OAAe,EACf,WAAwB;QAExB,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,iBAAyB,EAAE,EAAE;YACvE,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;gBACnB,IAAI;oBACF,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;iBACtC;gBAAC,WAAM;oBACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;iBAC5C;YACH,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpC,OAAO,IAAI,sCAAsC,CAC/C,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,UAAU,EACV,WAAW,EACX,iBAAiB,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B,CACxB,UAA2B,EAC3B,WAAmB,EACnB,iBAA2B;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAA2C,CAAC;IACjE,CAAC;CACF;AArCD,8EAqCC"}
@@ -0,0 +1,21 @@
1
+ import { QueriesSetBase, ChainGetter, QuerySharedContext } from "@keplr-wallet/stores";
2
+ import { DeepReadonly } from "utility-types";
3
+ import { ObservableQueryEthereumBlock } from "./block";
4
+ import { ObservableQueryEthereumFeeHistory } from "./fee-histroy";
5
+ import { ObservableQueryEVMChainERC20Metadata } from "./erc20-metadata";
6
+ import { ObservableQueryERC20ContractInfo } from "./erc20-contract-info";
7
+ export interface EthereumQueries {
8
+ ethereum: EthereumQueriesImpl;
9
+ }
10
+ export declare const EthereumQueries: {
11
+ use(): (queriesSetBase: QueriesSetBase, sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter) => EthereumQueries;
12
+ };
13
+ export declare class EthereumQueriesImpl {
14
+ protected chainId: string;
15
+ protected chainGetter: ChainGetter;
16
+ readonly queryEthereumBlock: DeepReadonly<ObservableQueryEthereumBlock>;
17
+ readonly queryEthereumFeeHistory: DeepReadonly<ObservableQueryEthereumFeeHistory>;
18
+ readonly queryEthereumERC20Metadata: DeepReadonly<ObservableQueryEVMChainERC20Metadata>;
19
+ readonly queryEthereumERC20ContractInfo: DeepReadonly<ObservableQueryERC20ContractInfo>;
20
+ constructor(base: QueriesSetBase, sharedContext: QuerySharedContext, chainId: string, chainGetter: ChainGetter);
21
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EthereumQueriesImpl = exports.EthereumQueries = void 0;
4
+ const balance_1 = require("./balance");
5
+ const erc20_balance_1 = require("./erc20-balance");
6
+ const block_1 = require("./block");
7
+ const fee_histroy_1 = require("./fee-histroy");
8
+ const erc20_metadata_1 = require("./erc20-metadata");
9
+ const erc20_contract_info_1 = require("./erc20-contract-info");
10
+ exports.EthereumQueries = {
11
+ use() {
12
+ return (queriesSetBase, sharedContext, chainId, chainGetter) => {
13
+ return {
14
+ ethereum: new EthereumQueriesImpl(queriesSetBase, sharedContext, chainId, chainGetter),
15
+ };
16
+ };
17
+ },
18
+ };
19
+ class EthereumQueriesImpl {
20
+ constructor(base, sharedContext, chainId, chainGetter) {
21
+ this.chainId = chainId;
22
+ this.chainGetter = chainGetter;
23
+ base.queryBalances.addBalanceRegistry(new balance_1.ObservableQueryEthAccountBalanceRegistry(sharedContext));
24
+ base.queryBalances.addBalanceRegistry(new erc20_balance_1.ObservableQueryEthereumERC20BalanceRegistry(sharedContext));
25
+ this.queryEthereumBlock = new block_1.ObservableQueryEthereumBlock(sharedContext, chainId, chainGetter);
26
+ this.queryEthereumFeeHistory = new fee_histroy_1.ObservableQueryEthereumFeeHistory(sharedContext, chainId, chainGetter);
27
+ this.queryEthereumERC20Metadata = new erc20_metadata_1.ObservableQueryEVMChainERC20Metadata(sharedContext, chainId, chainGetter);
28
+ this.queryEthereumERC20ContractInfo = new erc20_contract_info_1.ObservableQueryERC20ContractInfo(sharedContext, chainId, chainGetter);
29
+ }
30
+ }
31
+ exports.EthereumQueriesImpl = EthereumQueriesImpl;
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":";;;AAKA,uCAAqE;AACrE,mDAA8E;AAE9E,mCAAuD;AACvD,+CAAkE;AAClE,qDAAwE;AACxE,+DAAyE;AAM5D,QAAA,eAAe,GAAG;IAC7B,GAAG;QAMD,OAAO,CACL,cAA8B,EAC9B,aAAiC,EACjC,OAAe,EACf,WAAwB,EACxB,EAAE;YACF,OAAO;gBACL,QAAQ,EAAE,IAAI,mBAAmB,CAC/B,cAAc,EACd,aAAa,EACb,OAAO,EACP,WAAW,CACZ;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAa,mBAAmB;IAM9B,YACE,IAAoB,EACpB,aAAiC,EACvB,OAAe,EACf,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;QAElC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,IAAI,kDAAwC,CAAC,aAAa,CAAC,CAC5D,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,IAAI,2DAA2C,CAAC,aAAa,CAAC,CAC/D,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,IAAI,oCAA4B,CACxD,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,uBAAuB,GAAG,IAAI,+CAAiC,CAClE,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,0BAA0B,GAAG,IAAI,qDAAoC,CACxE,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,8BAA8B,GAAG,IAAI,sDAAgC,CACxE,aAAa,EACb,OAAO,EACP,WAAW,CACZ,CAAC;IACJ,CAAC;CACF;AA3CD,kDA2CC"}
package/jest.config.js ADDED
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ preset: "ts-jest",
3
+ testEnvironment: "node",
4
+ testMatch: ["**/src/**/?(*.)+(spec|test).[jt]s?(x)"],
5
+ };
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@keplr-wallet/stores-eth",
3
+ "version": "0.12.71-rc.0",
4
+ "main": "build/index.js",
5
+ "author": "chainapsis",
6
+ "license": "Apache-2.0",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "scripts": {
11
+ "clean": "rm -rf node_modules; rm -rf build",
12
+ "build": "tsc",
13
+ "dev": "tsc -w",
14
+ "test": "jest --passWithNoTests",
15
+ "lint-test": "eslint \"src/**/*\" && prettier --check \"src/**/*\"",
16
+ "lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
17
+ },
18
+ "dependencies": {
19
+ "@ethersproject/abi": "^5.7.0",
20
+ "@ethersproject/address": "^5.7.0",
21
+ "@ethersproject/bytes": "^5.7.0",
22
+ "@ethersproject/transactions": "^5.7.0",
23
+ "@ethersproject/units": "^5.7.0",
24
+ "@keplr-wallet/common": "0.12.71-rc.0",
25
+ "@keplr-wallet/simple-fetch": "0.12.71-rc.0",
26
+ "@keplr-wallet/stores": "0.12.71-rc.0",
27
+ "@keplr-wallet/types": "0.12.71-rc.0",
28
+ "@keplr-wallet/unit": "0.12.71-rc.0",
29
+ "big-integer": "^1.6.48",
30
+ "mobx": "^6.1.7",
31
+ "mobx-utils": "^6.0.3",
32
+ "utility-types": "^3.10.0"
33
+ },
34
+ "gitHead": "5a94681ed08ad2c2fe2ef3edb33a1c7cf6fa0dfc"
35
+ }