@keplr-wallet/hooks 0.12.262 → 0.12.263

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/tx/fee.d.ts CHANGED
@@ -62,6 +62,7 @@ export declare class FeeConfig extends TxChainSetter implements IFeeConfig {
62
62
  maxPriorityFeePerGas?: undefined;
63
63
  maxFeePerGas?: undefined;
64
64
  };
65
+ private calculateOptimalMaxPriorityFeePerGas;
65
66
  protected populateGasPriceStep(feeCurrency: FeeCurrency, feeType: FeeType): Dec;
66
67
  get uiProperties(): UIProperties;
67
68
  }
package/build/tx/fee.js CHANGED
@@ -221,16 +221,13 @@ class FeeConfig extends chain_1.TxChainSetter {
221
221
  const block = ethereumQueries.queryEthereumBlock.getQueryByBlockNumberOrTag(ETH_FEE_HISTORY_NEWEST_BLOCK).block;
222
222
  const latestBaseFeePerGas = parseInt((_a = block === null || block === void 0 ? void 0 : block.baseFeePerGas) !== null && _a !== void 0 ? _a : "0");
223
223
  if (latestBaseFeePerGas !== 0) {
224
- const maxPriorityFeePerGas = ethereumQueries.queryEthereumMaxPriorityFee.maxPriorityFeePerGas;
225
- if (maxPriorityFeePerGas != null) {
226
- const baseFeePerGasDec = new unit_1.Dec(latestBaseFeePerGas).mul(ETH_FEE_SETTINGS_BY_FEE_TYPE[feeType].baseFeePercentageMultiplier);
227
- const maxPriorityFeePerGasDec = new unit_1.Dec(BigInt(maxPriorityFeePerGas));
228
- const maxFeePerGas = baseFeePerGasDec.add(maxPriorityFeePerGasDec);
229
- return {
230
- maxPriorityFeePerGas: maxPriorityFeePerGasDec.truncateDec(),
231
- maxFeePerGas: maxFeePerGas.truncateDec(),
232
- };
233
- }
224
+ const baseFeePerGasDec = new unit_1.Dec(latestBaseFeePerGas);
225
+ const maxPriorityFeePerGas = this.calculateOptimalMaxPriorityFeePerGas(ethereumQueries, feeType);
226
+ const maxFeePerGas = baseFeePerGasDec.add(maxPriorityFeePerGas);
227
+ return {
228
+ maxPriorityFeePerGas: maxPriorityFeePerGas.truncateDec(),
229
+ maxFeePerGas: maxFeePerGas.truncateDec(),
230
+ };
234
231
  }
235
232
  else {
236
233
  const gasPrice = ethereumQueries.queryEthereumGasPrice.gasPrice;
@@ -548,6 +545,12 @@ class FeeConfig extends chain_1.TxChainSetter {
548
545
  if (isRefresh) {
549
546
  blockQuery.waitFreshResponse();
550
547
  }
548
+ const feeHistoryQuery = queries.ethereum.queryEthereumFeeHistory.getQueryByFeeHistoryParams(ETH_FEE_HISTORY_BLOCK_COUNT, ETH_FEE_HISTORY_NEWEST_BLOCK, ETH_FEE_HISTORY_REWARD_PERCENTILES);
549
+ if (feeHistoryQuery.feeHistory != null) {
550
+ if (isRefresh) {
551
+ feeHistoryQuery.waitFreshResponse();
552
+ }
553
+ }
551
554
  const maxPriorityFeePerGasQuery = queries.ethereum.queryEthereumMaxPriorityFee;
552
555
  if (maxPriorityFeePerGasQuery.maxPriorityFeePerGas != null) {
553
556
  if (isRefresh) {
@@ -575,6 +578,28 @@ class FeeConfig extends chain_1.TxChainSetter {
575
578
  refreshEIP1559TxFees() {
576
579
  this.canEIP1559TxFeesAndReady(true);
577
580
  }
581
+ calculateOptimalMaxPriorityFeePerGas(ethereumQueries, feeType) {
582
+ const feeHistoryQuery = ethereumQueries.queryEthereumFeeHistory.getQueryByFeeHistoryParams(ETH_FEE_HISTORY_BLOCK_COUNT, ETH_FEE_HISTORY_NEWEST_BLOCK, ETH_FEE_HISTORY_REWARD_PERCENTILES);
583
+ const reasonableMaxPriorityFeePerGas = feeHistoryQuery.reasonableMaxPriorityFeePerGas;
584
+ const maxPriorityFeePerGas = ethereumQueries.queryEthereumMaxPriorityFee.maxPriorityFeePerGas;
585
+ if (reasonableMaxPriorityFeePerGas &&
586
+ reasonableMaxPriorityFeePerGas.length > 0) {
587
+ const percentile = ETH_FEE_SETTINGS_BY_FEE_TYPE[feeType].percentile;
588
+ const targetPercentileData = reasonableMaxPriorityFeePerGas.find((item) => item.percentile === percentile);
589
+ if (targetPercentileData) {
590
+ const historyBasedFee = new unit_1.Dec(targetPercentileData.value);
591
+ const networkSuggestedFee = new unit_1.Dec(BigInt(maxPriorityFeePerGas !== null && maxPriorityFeePerGas !== void 0 ? maxPriorityFeePerGas : "0x0"));
592
+ return historyBasedFee.gt(networkSuggestedFee)
593
+ ? historyBasedFee
594
+ : networkSuggestedFee;
595
+ }
596
+ }
597
+ if (maxPriorityFeePerGas) {
598
+ const multiplier = ETH_FEE_SETTINGS_BY_FEE_TYPE[feeType].baseFeePercentageMultiplier;
599
+ return new unit_1.Dec(BigInt(maxPriorityFeePerGas)).mul(multiplier);
600
+ }
601
+ return new unit_1.Dec(0);
602
+ }
578
603
  populateGasPriceStep(feeCurrency, feeType) {
579
604
  var _a;
580
605
  const gasPriceStep = (_a = feeCurrency.gasPriceStep) !== null && _a !== void 0 ? _a : types_1.DefaultGasPriceStep;
@@ -757,6 +782,22 @@ class FeeConfig extends chain_1.TxChainSetter {
757
782
  loadingState: "loading-block",
758
783
  };
759
784
  }
785
+ const feeHistoryQuery = ethereumQueries.queryEthereumFeeHistory.getQueryByFeeHistoryParams(ETH_FEE_HISTORY_BLOCK_COUNT, ETH_FEE_HISTORY_NEWEST_BLOCK, ETH_FEE_HISTORY_REWARD_PERCENTILES);
786
+ if (feeHistoryQuery.error) {
787
+ return {
788
+ warning: new Error(`Failed to fetch fee history. chain id: ${this.chainId}`),
789
+ };
790
+ }
791
+ if (feeHistoryQuery.isFetching) {
792
+ return {
793
+ loadingState: "loading",
794
+ };
795
+ }
796
+ if (!feeHistoryQuery.response) {
797
+ return {
798
+ loadingState: "loading-block",
799
+ };
800
+ }
760
801
  const maxPriorityFeePerGasQuery = ethereumQueries.queryEthereumMaxPriorityFee;
761
802
  if (maxPriorityFeePerGasQuery.error) {
762
803
  return {
@@ -895,17 +936,19 @@ const useFeeConfig = (chainGetter, queriesStore, chainId, senderConfig, amountCo
895
936
  return config;
896
937
  };
897
938
  exports.useFeeConfig = useFeeConfig;
939
+ const ETH_FEE_HISTORY_BLOCK_COUNT = 20;
940
+ const ETH_FEE_HISTORY_REWARD_PERCENTILES = [10, 25, 45];
898
941
  const ETH_FEE_SETTINGS_BY_FEE_TYPE = {
899
942
  low: {
900
- percentile: 10,
943
+ percentile: ETH_FEE_HISTORY_REWARD_PERCENTILES[0],
901
944
  baseFeePercentageMultiplier: new unit_1.Dec(1),
902
945
  },
903
946
  average: {
904
- percentile: 40,
947
+ percentile: ETH_FEE_HISTORY_REWARD_PERCENTILES[1],
905
948
  baseFeePercentageMultiplier: new unit_1.Dec(1.125),
906
949
  },
907
950
  high: {
908
- percentile: 70,
951
+ percentile: ETH_FEE_HISTORY_REWARD_PERCENTILES[2],
909
952
  baseFeePercentageMultiplier: new unit_1.Dec(1.25),
910
953
  },
911
954
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/tx/fee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/tx/fee.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/hooks",
3
- "version": "0.12.262",
3
+ "version": "0.12.263",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -18,17 +18,17 @@
18
18
  "dependencies": {
19
19
  "@ethersproject/address": "^5.7.0",
20
20
  "@ethersproject/providers": "^5.7.0",
21
- "@keplr-wallet/background": "0.12.262",
22
- "@keplr-wallet/common": "0.12.262",
23
- "@keplr-wallet/cosmos": "0.12.262",
24
- "@keplr-wallet/crypto": "0.12.262",
25
- "@keplr-wallet/proto-types": "0.12.262",
26
- "@keplr-wallet/simple-fetch": "0.12.262",
27
- "@keplr-wallet/stores": "0.12.262",
28
- "@keplr-wallet/stores-etc": "0.12.262",
29
- "@keplr-wallet/stores-eth": "0.12.262",
30
- "@keplr-wallet/types": "0.12.262",
31
- "@keplr-wallet/unit": "0.12.262",
21
+ "@keplr-wallet/background": "0.12.263",
22
+ "@keplr-wallet/common": "0.12.263",
23
+ "@keplr-wallet/cosmos": "0.12.263",
24
+ "@keplr-wallet/crypto": "0.12.263",
25
+ "@keplr-wallet/proto-types": "0.12.263",
26
+ "@keplr-wallet/simple-fetch": "0.12.263",
27
+ "@keplr-wallet/stores": "0.12.263",
28
+ "@keplr-wallet/stores-etc": "0.12.263",
29
+ "@keplr-wallet/stores-eth": "0.12.263",
30
+ "@keplr-wallet/types": "0.12.263",
31
+ "@keplr-wallet/unit": "0.12.263",
32
32
  "buffer": "^6.0.3",
33
33
  "long": "^4.0.0",
34
34
  "utility-types": "^3.10.0"
@@ -38,5 +38,5 @@
38
38
  "mobx-utils": "^6",
39
39
  "react": "^16.8.0 || ^17 || ^18"
40
40
  },
41
- "gitHead": "5f6f00ab2146dd0ac842145b97fb9e33e09c350e"
41
+ "gitHead": "91258dd0f98e35610ac1e376975465feb3868167"
42
42
  }
package/src/tx/fee.ts CHANGED
@@ -17,6 +17,7 @@ import { useState } from "react";
17
17
  import { InsufficientFeeError } from "./errors";
18
18
  import { QueriesStore } from "./internal";
19
19
  import { DenomHelper } from "@keplr-wallet/common";
20
+ import { EthereumQueriesImpl } from "@keplr-wallet/stores-eth";
20
21
 
21
22
  export class FeeConfig extends TxChainSetter implements IFeeConfig {
22
23
  @observable.ref
@@ -489,6 +490,18 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
489
490
  blockQuery.waitFreshResponse();
490
491
  }
491
492
 
493
+ const feeHistoryQuery =
494
+ queries.ethereum.queryEthereumFeeHistory.getQueryByFeeHistoryParams(
495
+ ETH_FEE_HISTORY_BLOCK_COUNT,
496
+ ETH_FEE_HISTORY_NEWEST_BLOCK,
497
+ ETH_FEE_HISTORY_REWARD_PERCENTILES
498
+ );
499
+ if (feeHistoryQuery.feeHistory != null) {
500
+ if (isRefresh) {
501
+ feeHistoryQuery.waitFreshResponse();
502
+ }
503
+ }
504
+
492
505
  const maxPriorityFeePerGasQuery =
493
506
  queries.ethereum.queryEthereumMaxPriorityFee;
494
507
  if (maxPriorityFeePerGasQuery.maxPriorityFeePerGas != null) {
@@ -819,22 +832,15 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
819
832
  ).block;
820
833
  const latestBaseFeePerGas = parseInt(block?.baseFeePerGas ?? "0");
821
834
  if (latestBaseFeePerGas !== 0) {
835
+ const baseFeePerGasDec = new Dec(latestBaseFeePerGas);
822
836
  const maxPriorityFeePerGas =
823
- ethereumQueries.queryEthereumMaxPriorityFee.maxPriorityFeePerGas;
824
- if (maxPriorityFeePerGas != null) {
825
- const baseFeePerGasDec = new Dec(latestBaseFeePerGas).mul(
826
- ETH_FEE_SETTINGS_BY_FEE_TYPE[feeType].baseFeePercentageMultiplier
827
- );
828
- const maxPriorityFeePerGasDec = new Dec(
829
- BigInt(maxPriorityFeePerGas)
830
- );
831
- const maxFeePerGas = baseFeePerGasDec.add(maxPriorityFeePerGasDec);
837
+ this.calculateOptimalMaxPriorityFeePerGas(ethereumQueries, feeType);
838
+ const maxFeePerGas = baseFeePerGasDec.add(maxPriorityFeePerGas);
832
839
 
833
- return {
834
- maxPriorityFeePerGas: maxPriorityFeePerGasDec.truncateDec(),
835
- maxFeePerGas: maxFeePerGas.truncateDec(),
836
- };
837
- }
840
+ return {
841
+ maxPriorityFeePerGas: maxPriorityFeePerGas.truncateDec(),
842
+ maxFeePerGas: maxFeePerGas.truncateDec(),
843
+ };
838
844
  } else {
839
845
  const gasPrice = ethereumQueries.queryEthereumGasPrice.gasPrice;
840
846
 
@@ -856,6 +862,52 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
856
862
  }
857
863
  );
858
864
 
865
+ private calculateOptimalMaxPriorityFeePerGas(
866
+ ethereumQueries: EthereumQueriesImpl,
867
+ feeType: FeeType
868
+ ): Dec {
869
+ const feeHistoryQuery =
870
+ ethereumQueries.queryEthereumFeeHistory.getQueryByFeeHistoryParams(
871
+ ETH_FEE_HISTORY_BLOCK_COUNT,
872
+ ETH_FEE_HISTORY_NEWEST_BLOCK,
873
+ ETH_FEE_HISTORY_REWARD_PERCENTILES
874
+ );
875
+
876
+ const reasonableMaxPriorityFeePerGas =
877
+ feeHistoryQuery.reasonableMaxPriorityFeePerGas;
878
+ const maxPriorityFeePerGas =
879
+ ethereumQueries.queryEthereumMaxPriorityFee.maxPriorityFeePerGas;
880
+
881
+ if (
882
+ reasonableMaxPriorityFeePerGas &&
883
+ reasonableMaxPriorityFeePerGas.length > 0
884
+ ) {
885
+ const percentile = ETH_FEE_SETTINGS_BY_FEE_TYPE[feeType].percentile;
886
+ const targetPercentileData = reasonableMaxPriorityFeePerGas.find(
887
+ (item) => item.percentile === percentile
888
+ );
889
+
890
+ if (targetPercentileData) {
891
+ const historyBasedFee = new Dec(targetPercentileData.value);
892
+ const networkSuggestedFee = new Dec(
893
+ BigInt(maxPriorityFeePerGas ?? "0x0")
894
+ );
895
+
896
+ return historyBasedFee.gt(networkSuggestedFee)
897
+ ? historyBasedFee
898
+ : networkSuggestedFee;
899
+ }
900
+ }
901
+
902
+ if (maxPriorityFeePerGas) {
903
+ const multiplier =
904
+ ETH_FEE_SETTINGS_BY_FEE_TYPE[feeType].baseFeePercentageMultiplier;
905
+ return new Dec(BigInt(maxPriorityFeePerGas)).mul(multiplier);
906
+ }
907
+
908
+ return new Dec(0);
909
+ }
910
+
859
911
  protected populateGasPriceStep(
860
912
  feeCurrency: FeeCurrency,
861
913
  feeType: FeeType
@@ -1069,6 +1121,30 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
1069
1121
  };
1070
1122
  }
1071
1123
 
1124
+ const feeHistoryQuery =
1125
+ ethereumQueries.queryEthereumFeeHistory.getQueryByFeeHistoryParams(
1126
+ ETH_FEE_HISTORY_BLOCK_COUNT,
1127
+ ETH_FEE_HISTORY_NEWEST_BLOCK,
1128
+ ETH_FEE_HISTORY_REWARD_PERCENTILES
1129
+ );
1130
+ if (feeHistoryQuery.error) {
1131
+ return {
1132
+ warning: new Error(
1133
+ `Failed to fetch fee history. chain id: ${this.chainId}`
1134
+ ),
1135
+ };
1136
+ }
1137
+ if (feeHistoryQuery.isFetching) {
1138
+ return {
1139
+ loadingState: "loading",
1140
+ };
1141
+ }
1142
+ if (!feeHistoryQuery.response) {
1143
+ return {
1144
+ loadingState: "loading-block",
1145
+ };
1146
+ }
1147
+
1072
1148
  const maxPriorityFeePerGasQuery =
1073
1149
  ethereumQueries.queryEthereumMaxPriorityFee;
1074
1150
  if (maxPriorityFeePerGasQuery.error) {
@@ -1213,6 +1289,8 @@ export const useFeeConfig = (
1213
1289
  return config;
1214
1290
  };
1215
1291
 
1292
+ const ETH_FEE_HISTORY_BLOCK_COUNT = 20;
1293
+ const ETH_FEE_HISTORY_REWARD_PERCENTILES = [10, 25, 45];
1216
1294
  const ETH_FEE_SETTINGS_BY_FEE_TYPE: Record<
1217
1295
  FeeType,
1218
1296
  {
@@ -1221,15 +1299,15 @@ const ETH_FEE_SETTINGS_BY_FEE_TYPE: Record<
1221
1299
  }
1222
1300
  > = {
1223
1301
  low: {
1224
- percentile: 10,
1302
+ percentile: ETH_FEE_HISTORY_REWARD_PERCENTILES[0],
1225
1303
  baseFeePercentageMultiplier: new Dec(1),
1226
1304
  },
1227
1305
  average: {
1228
- percentile: 40,
1306
+ percentile: ETH_FEE_HISTORY_REWARD_PERCENTILES[1],
1229
1307
  baseFeePercentageMultiplier: new Dec(1.125),
1230
1308
  },
1231
1309
  high: {
1232
- percentile: 70,
1310
+ percentile: ETH_FEE_HISTORY_REWARD_PERCENTILES[2],
1233
1311
  baseFeePercentageMultiplier: new Dec(1.25),
1234
1312
  },
1235
1313
  };