@keplr-wallet/background 0.12.313 → 0.13.1

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 (83) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.js +7 -1
  3. package/build/index.js.map +1 -1
  4. package/build/keyring-cosmos/service.d.ts +10 -0
  5. package/build/keyring-cosmos/service.js +100 -0
  6. package/build/keyring-cosmos/service.js.map +1 -1
  7. package/build/keyring-ethereum/service.d.ts +5 -0
  8. package/build/keyring-ethereum/service.js +66 -0
  9. package/build/keyring-ethereum/service.js.map +1 -1
  10. package/build/recent-send-history/api.d.ts +31 -0
  11. package/build/recent-send-history/api.js +97 -0
  12. package/build/recent-send-history/api.js.map +1 -0
  13. package/build/recent-send-history/handler.js +36 -0
  14. package/build/recent-send-history/handler.js.map +1 -1
  15. package/build/recent-send-history/init.js +5 -0
  16. package/build/recent-send-history/init.js.map +1 -1
  17. package/build/recent-send-history/messages.d.ts +76 -1
  18. package/build/recent-send-history/messages.js +121 -1
  19. package/build/recent-send-history/messages.js.map +1 -1
  20. package/build/recent-send-history/service.d.ts +262 -9
  21. package/build/recent-send-history/service.js +2103 -812
  22. package/build/recent-send-history/service.js.map +1 -1
  23. package/build/recent-send-history/types.d.ts +214 -22
  24. package/build/recent-send-history/types.js +21 -0
  25. package/build/recent-send-history/types.js.map +1 -1
  26. package/build/tx/service.d.ts +2 -0
  27. package/build/tx/service.js +35 -0
  28. package/build/tx/service.js.map +1 -1
  29. package/build/tx-ethereum/service.d.ts +2 -0
  30. package/build/tx-ethereum/service.js +42 -0
  31. package/build/tx-ethereum/service.js.map +1 -1
  32. package/build/tx-executor/constants.d.ts +1 -0
  33. package/build/tx-executor/constants.js +5 -0
  34. package/build/tx-executor/constants.js.map +1 -0
  35. package/build/tx-executor/handler.d.ts +3 -0
  36. package/build/tx-executor/handler.js +45 -0
  37. package/build/tx-executor/handler.js.map +1 -0
  38. package/build/tx-executor/index.d.ts +3 -0
  39. package/build/tx-executor/index.js +20 -0
  40. package/build/tx-executor/index.js.map +1 -0
  41. package/build/tx-executor/init.d.ts +3 -0
  42. package/build/tx-executor/init.js +14 -0
  43. package/build/tx-executor/init.js.map +1 -0
  44. package/build/tx-executor/internal.d.ts +4 -0
  45. package/build/tx-executor/internal.js +24 -0
  46. package/build/tx-executor/internal.js.map +1 -0
  47. package/build/tx-executor/messages.d.ts +53 -0
  48. package/build/tx-executor/messages.js +116 -0
  49. package/build/tx-executor/messages.js.map +1 -0
  50. package/build/tx-executor/service.d.ts +67 -0
  51. package/build/tx-executor/service.js +715 -0
  52. package/build/tx-executor/service.js.map +1 -0
  53. package/build/tx-executor/types.d.ts +105 -0
  54. package/build/tx-executor/types.js +33 -0
  55. package/build/tx-executor/types.js.map +1 -0
  56. package/build/tx-executor/utils/cosmos.d.ts +59 -0
  57. package/build/tx-executor/utils/cosmos.js +526 -0
  58. package/build/tx-executor/utils/cosmos.js.map +1 -0
  59. package/build/tx-executor/utils/evm.d.ts +4 -0
  60. package/build/tx-executor/utils/evm.js +236 -0
  61. package/build/tx-executor/utils/evm.js.map +1 -0
  62. package/package.json +13 -13
  63. package/src/index.ts +24 -1
  64. package/src/keyring-cosmos/service.ts +151 -0
  65. package/src/keyring-ethereum/service.ts +103 -6
  66. package/src/recent-send-history/api.ts +119 -0
  67. package/src/recent-send-history/handler.ts +84 -0
  68. package/src/recent-send-history/init.ts +10 -0
  69. package/src/recent-send-history/messages.ts +163 -1
  70. package/src/recent-send-history/service.ts +3042 -1153
  71. package/src/recent-send-history/types.ts +268 -31
  72. package/src/tx/service.ts +41 -0
  73. package/src/tx-ethereum/service.ts +57 -0
  74. package/src/tx-executor/constants.ts +1 -0
  75. package/src/tx-executor/handler.ts +71 -0
  76. package/src/tx-executor/index.ts +3 -0
  77. package/src/tx-executor/init.ts +20 -0
  78. package/src/tx-executor/internal.ts +9 -0
  79. package/src/tx-executor/messages.ts +157 -0
  80. package/src/tx-executor/service.ts +1025 -0
  81. package/src/tx-executor/types.ts +161 -0
  82. package/src/tx-executor/utils/cosmos.ts +771 -0
  83. package/src/tx-executor/utils/evm.ts +310 -0
@@ -0,0 +1,526 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.calculateCosmosStdFee = exports.getDefaultGasPrice = exports.getCosmosGasPrice = exports.fetchCosmosSpendableBalances = exports.simulateCosmosTx = exports.getCosmosPubKeyTypeUrl = exports.prepareSignDocForDirectSigning = exports.prepareSignDocForAminoSigning = exports.buildSignedTxFromAminoSignResponse = void 0;
13
+ const cosmos_1 = require("@keplr-wallet/cosmos");
14
+ const buffer_1 = require("buffer/");
15
+ const common_1 = require("@keplr-wallet/common");
16
+ const tx_1 = require("@keplr-wallet/proto-types/cosmos/tx/v1beta1/tx");
17
+ const web3_1 = require("@keplr-wallet/proto-types/ethermint/types/v1/web3");
18
+ const keys_1 = require("@keplr-wallet/proto-types/cosmos/crypto/secp256k1/keys");
19
+ const signing_1 = require("@keplr-wallet/proto-types/cosmos/tx/signing/v1beta1/signing");
20
+ const simple_fetch_1 = require("@keplr-wallet/simple-fetch");
21
+ const unit_1 = require("@keplr-wallet/unit");
22
+ // TODO: move helper functions to proper packages
23
+ /**
24
+ * Build a signed transaction from an AminoSignResponse
25
+ */
26
+ function buildSignedTxFromAminoSignResponse(params) {
27
+ var _a;
28
+ const { protoMsgs, signResponse, chainInfo, eip712Signing } = params;
29
+ const chainIsInjective = chainInfo.chainId.startsWith("injective");
30
+ const ethSignPlainJson = ((_a = chainInfo.features) === null || _a === void 0 ? void 0 : _a.includes("evm-ledger-sign-plain-json")) === true;
31
+ const pubKeyTypeUrl = getCosmosPubKeyTypeUrl(chainInfo);
32
+ return {
33
+ tx: tx_1.TxRaw.encode({
34
+ bodyBytes: tx_1.TxBody.encode(tx_1.TxBody.fromPartial({
35
+ messages: protoMsgs,
36
+ timeoutHeight: signResponse.signed.timeout_height,
37
+ memo: signResponse.signed.memo,
38
+ extensionOptions: eip712Signing && !ethSignPlainJson
39
+ ? [
40
+ {
41
+ typeUrl: (() => {
42
+ var _a;
43
+ if ((_a = chainInfo.features) === null || _a === void 0 ? void 0 : _a.includes("/cosmos.evm.types.v1.ExtensionOptionsWeb3Tx")) {
44
+ return "/cosmos.evm.types.v1.ExtensionOptionsWeb3Tx";
45
+ }
46
+ if (chainIsInjective) {
47
+ return "/injective.types.v1beta1.ExtensionOptionsWeb3Tx";
48
+ }
49
+ return "/ethermint.types.v1.ExtensionOptionsWeb3Tx";
50
+ })(),
51
+ value: web3_1.ExtensionOptionsWeb3Tx.encode(web3_1.ExtensionOptionsWeb3Tx.fromPartial({
52
+ typedDataChainId: cosmos_1.EthermintChainIdHelper.parse(chainInfo.chainId).ethChainId.toString(),
53
+ feePayer: !chainIsInjective
54
+ ? signResponse.signed.fee.feePayer
55
+ : undefined,
56
+ feePayerSig: !chainIsInjective
57
+ ? buffer_1.Buffer.from(signResponse.signature.signature, "base64")
58
+ : undefined,
59
+ })).finish(),
60
+ },
61
+ ]
62
+ : undefined,
63
+ })).finish(),
64
+ authInfoBytes: tx_1.AuthInfo.encode({
65
+ signerInfos: [
66
+ {
67
+ publicKey: {
68
+ typeUrl: pubKeyTypeUrl,
69
+ value: keys_1.PubKey.encode({
70
+ key: buffer_1.Buffer.from(signResponse.signature.pub_key.value, "base64"),
71
+ }).finish(),
72
+ },
73
+ modeInfo: {
74
+ single: {
75
+ mode: eip712Signing && ethSignPlainJson
76
+ ? signing_1.SignMode.SIGN_MODE_EIP_191
77
+ : signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,
78
+ },
79
+ multi: undefined,
80
+ },
81
+ sequence: signResponse.signed.sequence,
82
+ },
83
+ ],
84
+ fee: tx_1.Fee.fromPartial({
85
+ amount: signResponse.signed.fee.amount,
86
+ gasLimit: signResponse.signed.fee.gas,
87
+ payer: eip712Signing && !chainIsInjective && !ethSignPlainJson
88
+ ? // Fee delegation feature not yet supported. But, for eip712 ethermint signing, we must set fee payer.
89
+ signResponse.signed.fee.feePayer
90
+ : undefined,
91
+ }),
92
+ }).finish(),
93
+ signatures:
94
+ // Injective needs the signature in the signatures list even if eip712
95
+ !eip712Signing || chainIsInjective || ethSignPlainJson
96
+ ? [buffer_1.Buffer.from(signResponse.signature.signature, "base64")]
97
+ : [new Uint8Array(0)],
98
+ }).finish(),
99
+ signDoc: signResponse.signed,
100
+ };
101
+ }
102
+ exports.buildSignedTxFromAminoSignResponse = buildSignedTxFromAminoSignResponse;
103
+ /**
104
+ * Prepare sign document for Cosmos transaction signing
105
+ */
106
+ function prepareSignDocForAminoSigning(params) {
107
+ var _a;
108
+ const { chainInfo, accountNumber, sequence, aminoMsgs, memo, eip712Signing, signer, fee, } = params;
109
+ const chainIsInjective = chainInfo.chainId.startsWith("injective");
110
+ const ethSignPlainJson = ((_a = chainInfo.features) === null || _a === void 0 ? void 0 : _a.includes("evm-ledger-sign-plain-json")) === true;
111
+ const signDocRaw = {
112
+ chain_id: chainInfo.chainId,
113
+ account_number: accountNumber,
114
+ sequence,
115
+ fee,
116
+ msgs: aminoMsgs,
117
+ memo: (0, common_1.escapeHTML)(memo !== null && memo !== void 0 ? memo : ""),
118
+ };
119
+ if (eip712Signing) {
120
+ if (chainIsInjective) {
121
+ // Due to injective's problem, it should exist if injective with ledger.
122
+ // There is currently no effective way to handle this in keplr. Just set a very large number.
123
+ signDocRaw.timeout_height =
124
+ Number.MAX_SAFE_INTEGER.toString();
125
+ }
126
+ else {
127
+ // If not injective (evmos), they require fee payer.
128
+ // XXX: "feePayer" should be "payer". But, it maybe from ethermint team's mistake.
129
+ // That means this part is not standard.
130
+ signDocRaw.fee = Object.assign(Object.assign({}, signDocRaw.fee), (() => {
131
+ if (ethSignPlainJson) {
132
+ return {};
133
+ }
134
+ return {
135
+ feePayer: signer,
136
+ };
137
+ })());
138
+ }
139
+ }
140
+ return (0, common_1.sortObjectByKey)(signDocRaw);
141
+ }
142
+ exports.prepareSignDocForAminoSigning = prepareSignDocForAminoSigning;
143
+ function prepareSignDocForDirectSigning(params) {
144
+ const { chainInfo, accountNumber, sequence, protoMsgs, fee, memo, pubKey } = params;
145
+ const bodyBytes = tx_1.TxBody.encode(tx_1.TxBody.fromPartial({
146
+ messages: protoMsgs,
147
+ memo,
148
+ })).finish();
149
+ const pubKeyTypeUrl = getCosmosPubKeyTypeUrl(chainInfo);
150
+ const authInfoBytes = tx_1.AuthInfo.encode({
151
+ signerInfos: [
152
+ tx_1.SignerInfo.fromPartial({
153
+ publicKey: {
154
+ typeUrl: pubKeyTypeUrl,
155
+ value: keys_1.PubKey.encode({
156
+ key: pubKey,
157
+ }).finish(),
158
+ },
159
+ modeInfo: {
160
+ single: {
161
+ mode: signing_1.SignMode.SIGN_MODE_DIRECT,
162
+ },
163
+ },
164
+ sequence,
165
+ }),
166
+ ],
167
+ fee: tx_1.Fee.fromPartial({
168
+ amount: fee.amount.map((amount) => ({
169
+ amount: amount.amount,
170
+ denom: amount.denom,
171
+ })),
172
+ gasLimit: fee.gas,
173
+ }),
174
+ }).finish();
175
+ const signDoc = tx_1.SignDoc.fromPartial({
176
+ bodyBytes,
177
+ authInfoBytes,
178
+ chainId: chainInfo.chainId,
179
+ accountNumber,
180
+ });
181
+ return {
182
+ signDoc,
183
+ bodyBytes,
184
+ authInfoBytes,
185
+ };
186
+ }
187
+ exports.prepareSignDocForDirectSigning = prepareSignDocForDirectSigning;
188
+ /**
189
+ * Resolve the correct pub key typeUrl for a chain, accounting for ethermint/initia/injective variants.
190
+ */
191
+ function getCosmosPubKeyTypeUrl(chainInfo) {
192
+ var _a, _b, _c;
193
+ const useEthereumSign = ((_a = chainInfo.features) === null || _a === void 0 ? void 0 : _a.includes("eth-key-sign")) === true;
194
+ if (!useEthereumSign) {
195
+ return "/cosmos.crypto.secp256k1.PubKey";
196
+ }
197
+ if (chainInfo.chainId.startsWith("injective")) {
198
+ return "/injective.crypto.v1beta1.ethsecp256k1.PubKey";
199
+ }
200
+ if (chainInfo.chainId.startsWith("stratos")) {
201
+ return "/stratos.crypto.v1.ethsecp256k1.PubKey";
202
+ }
203
+ if ((_b = chainInfo.features) === null || _b === void 0 ? void 0 : _b.includes("eth-secp256k1-cosmos")) {
204
+ return "/cosmos.evm.crypto.v1.ethsecp256k1.PubKey";
205
+ }
206
+ if ((_c = chainInfo.features) === null || _c === void 0 ? void 0 : _c.includes("eth-secp256k1-initia")) {
207
+ return "/initia.crypto.v1beta1.ethsecp256k1.PubKey";
208
+ }
209
+ return "/ethermint.crypto.v1.ethsecp256k1.PubKey";
210
+ }
211
+ exports.getCosmosPubKeyTypeUrl = getCosmosPubKeyTypeUrl;
212
+ function simulateCosmosTx(signer, chainInfo, msgs, fee, memo = "") {
213
+ return __awaiter(this, void 0, void 0, function* () {
214
+ const account = yield cosmos_1.BaseAccount.fetchFromRest(chainInfo.rest, signer, true);
215
+ const unsignedTx = tx_1.TxRaw.encode({
216
+ bodyBytes: tx_1.TxBody.encode(tx_1.TxBody.fromPartial({
217
+ messages: msgs,
218
+ memo: memo,
219
+ })).finish(),
220
+ authInfoBytes: tx_1.AuthInfo.encode({
221
+ signerInfos: [
222
+ tx_1.SignerInfo.fromPartial({
223
+ // Pub key is ignored.
224
+ // It is fine to ignore the pub key when simulating tx.
225
+ // However, the estimated gas would be slightly smaller because tx size doesn't include pub key.
226
+ modeInfo: {
227
+ single: {
228
+ mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,
229
+ },
230
+ multi: undefined,
231
+ },
232
+ sequence: account.getSequence().toString(),
233
+ }),
234
+ ],
235
+ fee: tx_1.Fee.fromPartial({
236
+ amount: fee.amount.map((amount) => {
237
+ return { amount: amount.amount, denom: amount.denom };
238
+ }),
239
+ }),
240
+ }).finish(),
241
+ // Because of the validation of tx itself, the signature must exist.
242
+ // However, since they do not actually verify the signature, it is okay to use any value.
243
+ signatures: [new Uint8Array(64)],
244
+ }).finish();
245
+ const result = yield (0, simple_fetch_1.simpleFetch)(chainInfo.rest, "/cosmos/tx/v1beta1/simulate", {
246
+ method: "POST",
247
+ headers: {
248
+ "content-type": "application/json",
249
+ },
250
+ body: JSON.stringify({
251
+ tx_bytes: buffer_1.Buffer.from(unsignedTx).toString("base64"),
252
+ }),
253
+ });
254
+ const gasUsed = parseInt(result.data.gas_info.gas_used);
255
+ if (Number.isNaN(gasUsed)) {
256
+ throw new Error(`Invalid integer gas: ${result.data.gas_info.gas_used}`);
257
+ }
258
+ return {
259
+ gasUsed: gasUsed,
260
+ };
261
+ });
262
+ }
263
+ exports.simulateCosmosTx = simulateCosmosTx;
264
+ function fetchCosmosSpendableBalances(baseURL, bech32Address, limit = 1000) {
265
+ return __awaiter(this, void 0, void 0, function* () {
266
+ const { data } = yield (0, simple_fetch_1.simpleFetch)(baseURL, `/cosmos/bank/v1beta1/spendable_balances/${bech32Address}?pagination.limit=${limit}`);
267
+ return data;
268
+ });
269
+ }
270
+ exports.fetchCosmosSpendableBalances = fetchCosmosSpendableBalances;
271
+ // Default gas price steps
272
+ const DefaultGasPriceStep = {
273
+ low: 0.01,
274
+ average: 0.025,
275
+ high: 0.04,
276
+ };
277
+ // Default multiplication factors for fee market
278
+ const DefaultMultiplication = {
279
+ low: 1.1,
280
+ average: 1.2,
281
+ high: 1.3,
282
+ };
283
+ function getCosmosGasPrice(chainInfo, feeType = "average", feeCurrency) {
284
+ var _a, _b, _c, _d;
285
+ return __awaiter(this, void 0, void 0, function* () {
286
+ // Use first currency from chainInfo if feeCurrency is not provided
287
+ const currency = feeCurrency || chainInfo.feeCurrencies[0];
288
+ if (!currency) {
289
+ throw new Error("No fee currency is provided and not found for chain");
290
+ }
291
+ // 1. Try Osmosis base fee (for Osmosis with base-fee-beta feature)
292
+ if ((_a = chainInfo.features) === null || _a === void 0 ? void 0 : _a.includes("osmosis-base-fee-beta")) {
293
+ try {
294
+ const osmosisResult = yield getOsmosisBaseFeeCurrency(chainInfo, currency, feeType);
295
+ if (!osmosisResult) {
296
+ throw new Error("Failed to fetch Osmosis base fee currency");
297
+ }
298
+ if ((_b = chainInfo.features) === null || _b === void 0 ? void 0 : _b.includes("osmosis-txfees")) {
299
+ const osmosisTxFeesResult = yield getOsmosisTxFeesGasPrice(chainInfo, currency, feeType);
300
+ if (osmosisTxFeesResult) {
301
+ return {
302
+ gasPrice: osmosisTxFeesResult,
303
+ source: "osmosis-txfees",
304
+ };
305
+ }
306
+ }
307
+ // if osmosis-txfees is not enabled, use the base fee currency
308
+ return {
309
+ gasPrice: new unit_1.Dec(osmosisResult.gasPriceStep[feeType]),
310
+ source: "osmosis-base-fee",
311
+ };
312
+ }
313
+ catch (error) {
314
+ console.error("Failed to fetch Osmosis base fee:", error);
315
+ }
316
+ }
317
+ // 2. Try Initia Dynamic Fee
318
+ if ((_c = chainInfo.features) === null || _c === void 0 ? void 0 : _c.includes("initia-dynamicfee")) {
319
+ try {
320
+ const initiaResult = yield getInitiaDynamicFeeGasPrice(chainInfo, feeType);
321
+ if (initiaResult) {
322
+ return { gasPrice: initiaResult, source: "initia-dynamic" };
323
+ }
324
+ }
325
+ catch (error) {
326
+ console.error("Failed to fetch Initia dynamic fee:", error);
327
+ }
328
+ }
329
+ // 3. Try Fee Market (for chains with feemarket feature)
330
+ if ((_d = chainInfo.features) === null || _d === void 0 ? void 0 : _d.includes("feemarket")) {
331
+ try {
332
+ const feeMarketResult = yield getFeeMarketGasPrice(chainInfo, currency, feeType);
333
+ if (feeMarketResult) {
334
+ return { gasPrice: feeMarketResult, source: "feemarket" };
335
+ }
336
+ }
337
+ catch (error) {
338
+ console.error("Failed to fetch fee market gas price:", error);
339
+ }
340
+ }
341
+ // 5. Try EIP-1559 (for EVM chains)
342
+ if (chainInfo.evm) {
343
+ try {
344
+ const eip1559Result = yield getEIP1559GasPrice(chainInfo, feeType);
345
+ if (eip1559Result) {
346
+ return { gasPrice: eip1559Result, source: "eip1559" };
347
+ }
348
+ }
349
+ catch (error) {
350
+ console.error("Failed to fetch EIP-1559 gas price:", error);
351
+ }
352
+ }
353
+ // 6. Fallback to default gas price step
354
+ const gasPrice = getDefaultGasPrice(currency, feeType);
355
+ return { gasPrice, source: "default" };
356
+ });
357
+ }
358
+ exports.getCosmosGasPrice = getCosmosGasPrice;
359
+ function getOsmosisBaseFeeCurrency(chainInfo, feeCurrency, feeType) {
360
+ return __awaiter(this, void 0, void 0, function* () {
361
+ // Fetch base fee from Osmosis
362
+ const baseDenom = "uosmo";
363
+ if (feeCurrency.coinMinimalDenom !== baseDenom) {
364
+ return null;
365
+ }
366
+ // Fetch multiplication factors from remote config
367
+ const remoteConfig = yield (0, simple_fetch_1.simpleFetch)("https://gjsttg7mkgtqhjpt3mv5aeuszi0zblbb.lambda-url.us-west-2.on.aws/osmosis/osmosis-base-fee-beta.json").catch(() => ({ data: {} }));
368
+ const { data: baseFeeResponse } = yield (0, simple_fetch_1.simpleFetch)(chainInfo.rest, "/osmosis/txfees/v1beta1/cur_eip_base_fee");
369
+ const multiplier = remoteConfig.data[feeType] || DefaultMultiplication[feeType];
370
+ return Object.assign(Object.assign({}, feeCurrency), { gasPriceStep: {
371
+ low: parseFloat(baseFeeResponse.base_fee) * multiplier,
372
+ average: parseFloat(baseFeeResponse.base_fee) * multiplier,
373
+ high: parseFloat(baseFeeResponse.base_fee) * multiplier,
374
+ } });
375
+ });
376
+ }
377
+ function getOsmosisTxFeesGasPrice(chainInfo, feeCurrency, feeType) {
378
+ return __awaiter(this, void 0, void 0, function* () {
379
+ // Check if it's a fee token
380
+ const { data: feeTokensResponse } = yield (0, simple_fetch_1.simpleFetch)(chainInfo.rest, "/osmosis/txfees/v1beta1/fee_tokens");
381
+ const isFeeToken = feeTokensResponse.fee_tokens.some((token) => token.denom === feeCurrency.coinMinimalDenom);
382
+ if (!isFeeToken) {
383
+ return null;
384
+ }
385
+ // Get spot price
386
+ const { data: spotPriceResponse } = yield (0, simple_fetch_1.simpleFetch)(chainInfo.rest, `/osmosis/txfees/v1beta1/spot_price_by_denom?denom=${feeCurrency.coinMinimalDenom}`);
387
+ const spotPrice = new unit_1.Dec(spotPriceResponse.spot_price);
388
+ if (spotPrice.lte(new unit_1.Dec(0))) {
389
+ return null;
390
+ }
391
+ const baseGasPrice = getDefaultGasPrice(feeCurrency, feeType);
392
+ // Add 1% slippage protection
393
+ return baseGasPrice.quo(spotPrice).mul(new unit_1.Dec(1.01));
394
+ });
395
+ }
396
+ function getFeeMarketGasPrice(chainInfo, feeCurrency, feeType) {
397
+ return __awaiter(this, void 0, void 0, function* () {
398
+ try {
399
+ const gasPricesResponse = yield (0, simple_fetch_1.simpleFetch)(chainInfo.rest, "/feemarket/v1/gas_prices");
400
+ const gasPrice = gasPricesResponse.data.prices.find((price) => price.denom === feeCurrency.coinMinimalDenom);
401
+ if (!gasPrice) {
402
+ return null;
403
+ }
404
+ // Fetch multiplication config
405
+ const multiplicationConfig = yield (0, simple_fetch_1.simpleFetch)("https://gjsttg7mkgtqhjpt3mv5aeuszi0zblbb.lambda-url.us-west-2.on.aws", "/feemarket/info.json").catch(() => ({
406
+ data: {},
407
+ }));
408
+ let multiplication = DefaultMultiplication;
409
+ // Apply default multiplication
410
+ const defaultConfig = multiplicationConfig.data["__default__"];
411
+ if (defaultConfig) {
412
+ multiplication = {
413
+ low: defaultConfig.low || multiplication.low,
414
+ average: defaultConfig.average || multiplication.average,
415
+ high: defaultConfig.high || multiplication.high,
416
+ };
417
+ }
418
+ // Apply chain-specific multiplication
419
+ const chainConfig = multiplicationConfig.data[chainInfo.chainId];
420
+ if (chainConfig) {
421
+ multiplication = {
422
+ low: chainConfig.low || multiplication.low,
423
+ average: chainConfig.average || multiplication.average,
424
+ high: chainConfig.high || multiplication.high,
425
+ };
426
+ }
427
+ const baseGasPrice = new unit_1.Dec(gasPrice.amount);
428
+ return baseGasPrice.mul(new unit_1.Dec(multiplication[feeType]));
429
+ }
430
+ catch (error) {
431
+ return null;
432
+ }
433
+ });
434
+ }
435
+ function getInitiaDynamicFeeGasPrice(chainInfo, feeType) {
436
+ return __awaiter(this, void 0, void 0, function* () {
437
+ try {
438
+ const dynamicFeeResponse = yield (0, simple_fetch_1.simpleFetch)(chainInfo.rest, "/initia/dynamicfee/v1/params");
439
+ if (!dynamicFeeResponse.data.params.base_gas_price) {
440
+ return null;
441
+ }
442
+ const baseGasPrice = new unit_1.Dec(dynamicFeeResponse.data.params.base_gas_price);
443
+ // Fetch multiplication config
444
+ const multiplicationConfig = yield (0, simple_fetch_1.simpleFetch)("https://gjsttg7mkgtqhjpt3mv5aeuszi0zblbb.lambda-url.us-west-2.on.aws", "/feemarket/info.json").catch(() => ({
445
+ data: {},
446
+ }));
447
+ let multiplication = DefaultMultiplication;
448
+ // Apply default multiplication
449
+ const defaultConfig = multiplicationConfig.data["__default__"];
450
+ if (defaultConfig) {
451
+ multiplication = {
452
+ low: defaultConfig.low || multiplication.low,
453
+ average: defaultConfig.average || multiplication.average,
454
+ high: defaultConfig.high || multiplication.high,
455
+ };
456
+ }
457
+ // Apply chain-specific multiplication
458
+ const chainConfig = multiplicationConfig.data[chainInfo.chainId];
459
+ if (chainConfig) {
460
+ multiplication = {
461
+ low: chainConfig.low || multiplication.low,
462
+ average: chainConfig.average || multiplication.average,
463
+ high: chainConfig.high || multiplication.high,
464
+ };
465
+ }
466
+ return baseGasPrice.mul(new unit_1.Dec(multiplication[feeType]));
467
+ }
468
+ catch (error) {
469
+ return null;
470
+ }
471
+ });
472
+ }
473
+ function getEIP1559GasPrice(chainInfo, feeType) {
474
+ return __awaiter(this, void 0, void 0, function* () {
475
+ try {
476
+ // Get latest block for base fee
477
+ const blockResponse = yield (0, simple_fetch_1.simpleFetch)(chainInfo.rpc, {
478
+ method: "POST",
479
+ headers: { "Content-Type": "application/json" },
480
+ body: JSON.stringify({
481
+ jsonrpc: "2.0",
482
+ method: "eth_getBlockByNumber",
483
+ params: ["latest", false],
484
+ id: 1,
485
+ }),
486
+ });
487
+ const baseFeePerGasHex = blockResponse.data.result.baseFeePerGas;
488
+ if (!baseFeePerGasHex) {
489
+ return null;
490
+ }
491
+ const baseFeePerGas = new unit_1.Dec(parseInt(baseFeePerGasHex, 16));
492
+ // Calculate priority fee (simplified version)
493
+ const priorityFeeMultipliers = {
494
+ low: 1.1,
495
+ average: 1.25,
496
+ high: 1.5,
497
+ };
498
+ const maxPriorityFeePerGas = baseFeePerGas.mul(new unit_1.Dec(priorityFeeMultipliers[feeType] - 1));
499
+ return baseFeePerGas.add(maxPriorityFeePerGas);
500
+ }
501
+ catch (error) {
502
+ return null;
503
+ }
504
+ });
505
+ }
506
+ function getDefaultGasPrice(feeCurrency, feeType) {
507
+ const gasPriceStep = feeCurrency.gasPriceStep || DefaultGasPriceStep;
508
+ return new unit_1.Dec(gasPriceStep[feeType]);
509
+ }
510
+ exports.getDefaultGasPrice = getDefaultGasPrice;
511
+ function calculateCosmosStdFee(feeCurrency, gasUsed, gasPrice, features) {
512
+ const gasAdjustment = (features === null || features === void 0 ? void 0 : features.includes("feemarket")) ? 1.6 : 1.4;
513
+ const adjustedGas = Math.floor(gasUsed * gasAdjustment);
514
+ const feeAmount = gasPrice.mul(new unit_1.Dec(adjustedGas)).roundUp();
515
+ return {
516
+ amount: [
517
+ {
518
+ denom: feeCurrency.coinMinimalDenom,
519
+ amount: feeAmount.toString(),
520
+ },
521
+ ],
522
+ gas: adjustedGas.toString(),
523
+ };
524
+ }
525
+ exports.calculateCosmosStdFee = calculateCosmosStdFee;
526
+ //# sourceMappingURL=cosmos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../src/tx-executor/utils/cosmos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { EVMInfo } from "@keplr-wallet/types";
2
+ import { UnsignedTransaction } from "@ethersproject/transactions";
3
+ import { BackgroundTxFeeType } from "../types";
4
+ export declare function fillUnsignedEVMTx(origin: string, evmInfo: EVMInfo, signer: string, tx: UnsignedTransaction, feeType?: BackgroundTxFeeType): Promise<UnsignedTransaction>;