@cheqd/sdk-esm 5.3.4-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/build/index.d.ts +140 -0
  2. package/build/index.d.ts.map +1 -0
  3. package/build/index.js +182 -0
  4. package/build/index.js.map +1 -0
  5. package/build/modules/_.d.ts +62 -0
  6. package/build/modules/_.d.ts.map +1 -0
  7. package/build/modules/_.js +75 -0
  8. package/build/modules/_.js.map +1 -0
  9. package/build/modules/did.d.ts +386 -0
  10. package/build/modules/did.d.ts.map +1 -0
  11. package/build/modules/did.js +1013 -0
  12. package/build/modules/did.js.map +1 -0
  13. package/build/modules/feeabstraction.d.ts +409 -0
  14. package/build/modules/feeabstraction.d.ts.map +1 -0
  15. package/build/modules/feeabstraction.js +462 -0
  16. package/build/modules/feeabstraction.js.map +1 -0
  17. package/build/modules/feemarket.d.ts +242 -0
  18. package/build/modules/feemarket.d.ts.map +1 -0
  19. package/build/modules/feemarket.js +296 -0
  20. package/build/modules/feemarket.js.map +1 -0
  21. package/build/modules/resource.d.ts +204 -0
  22. package/build/modules/resource.d.ts.map +1 -0
  23. package/build/modules/resource.js +297 -0
  24. package/build/modules/resource.js.map +1 -0
  25. package/build/package.json +64 -0
  26. package/build/querier.d.ts +62 -0
  27. package/build/querier.d.ts.map +1 -0
  28. package/build/querier.js +86 -0
  29. package/build/querier.js.map +1 -0
  30. package/build/registry.d.ts +18 -0
  31. package/build/registry.d.ts.map +1 -0
  32. package/build/registry.js +23 -0
  33. package/build/registry.js.map +1 -0
  34. package/build/signer.d.ts +190 -0
  35. package/build/signer.d.ts.map +1 -0
  36. package/build/signer.js +547 -0
  37. package/build/signer.js.map +1 -0
  38. package/build/types/index.d.ts +140 -0
  39. package/build/types/index.d.ts.map +1 -0
  40. package/build/types/modules/_.d.ts +62 -0
  41. package/build/types/modules/_.d.ts.map +1 -0
  42. package/build/types/modules/did.d.ts +386 -0
  43. package/build/types/modules/did.d.ts.map +1 -0
  44. package/build/types/modules/feeabstraction.d.ts +409 -0
  45. package/build/types/modules/feeabstraction.d.ts.map +1 -0
  46. package/build/types/modules/feemarket.d.ts +242 -0
  47. package/build/types/modules/feemarket.d.ts.map +1 -0
  48. package/build/types/modules/resource.d.ts +204 -0
  49. package/build/types/modules/resource.d.ts.map +1 -0
  50. package/build/types/querier.d.ts +62 -0
  51. package/build/types/querier.d.ts.map +1 -0
  52. package/build/types/registry.d.ts +18 -0
  53. package/build/types/registry.d.ts.map +1 -0
  54. package/build/types/signer.d.ts +190 -0
  55. package/build/types/signer.d.ts.map +1 -0
  56. package/build/types/types.d.ts +196 -0
  57. package/build/types/types.d.ts.map +1 -0
  58. package/build/types/utils.d.ts +223 -0
  59. package/build/types/utils.d.ts.map +1 -0
  60. package/build/types.d.ts +196 -0
  61. package/build/types.d.ts.map +1 -0
  62. package/build/types.js +43 -0
  63. package/build/types.js.map +1 -0
  64. package/build/utils.d.ts +223 -0
  65. package/build/utils.d.ts.map +1 -0
  66. package/build/utils.js +541 -0
  67. package/build/utils.js.map +1 -0
  68. package/package.json +64 -0
@@ -0,0 +1,462 @@
1
+ import { protobufPackage, MsgAddHostZone, MsgAddHostZoneResponse, MsgFundFeeAbsModuleAccount, MsgFundFeeAbsModuleAccountResponse, MsgRemoveHostZone, MsgRemoveHostZoneResponse, MsgSendQueryIbcDenomTWAP, MsgSendQueryIbcDenomTWAPResponse, MsgSwapCrossChain, MsgSwapCrossChainResponse, MsgUpdateHostZone, MsgUpdateHostZoneResponse, MsgUpdateParams, MsgUpdateParamsResponse, QueryClientImpl, } from '@cheqd/ts-proto/feeabstraction/feeabs/v1beta1/index.js';
2
+ import { AbstractCheqdSDKModule } from './_.js';
3
+ import { createProtobufRpcClient } from '@cosmjs/stargate';
4
+ import { MsgSubmitProposal } from 'cosmjs-types/cosmos/gov/v1/tx.js';
5
+ /** Default extension key for fee abstraction-related query operations */
6
+ export const defaultFeeabstractionExtensionKey = 'feeabs';
7
+ /**
8
+ * Protobuf message type literals for fee abstraction operations.
9
+ * Used for consistent message type identification across the module.
10
+ */
11
+ export const protobufLiterals = {
12
+ /** Add host zone message type */
13
+ MsgAddHostZone: 'MsgAddHostZone',
14
+ /** Add host zone response message type */
15
+ MsgAddHostZoneResponse: 'MsgAddHostZoneResponse',
16
+ /** Fund fee abstraction module account message type */
17
+ MsgFundFeeAbsModuleAccount: 'MsgFundFeeAbsModuleAccount',
18
+ /** Fund fee abstraction module account response message type */
19
+ MsgFundFeeAbsModuleAccountResponse: 'MsgFundFeeAbsModuleAccountResponse',
20
+ /** Remove host zone message type */
21
+ MsgRemoveHostZone: 'MsgRemoveHostZone',
22
+ /** Remove host zone response message type */
23
+ MsgRemoveHostZoneResponse: 'MsgRemoveHostZoneResponse',
24
+ /** Send query IBC denomination TWAP message type */
25
+ MsgSendQueryIbcDenomTWAP: 'MsgSendQueryIbcDenomTWAP',
26
+ /** Send query IBC denomination TWAP response message type */
27
+ MsgSendQueryIbcDenomTWAPResponse: 'MsgSendQueryIbcDenomTWAPResponse',
28
+ /** Swap cross-chain message type */
29
+ MsgSwapCrossChain: 'MsgSwapCrossChain',
30
+ /** Swap cross-chain response message type */
31
+ MsgSwapCrossChainResponse: 'MsgSwapCrossChainResponse',
32
+ /** Update host zone message type */
33
+ MsgUpdateHostZone: 'MsgUpdateHostZone',
34
+ /** Update host zone response message type */
35
+ MsgUpdateHostZoneResponse: 'MsgUpdateHostZoneResponse',
36
+ /** Update parameters message type */
37
+ MsgUpdateParams: 'MsgUpdateParams',
38
+ /** Update parameters response message type */
39
+ MsgUpdateParamsResponse: 'MsgUpdateParamsResponse',
40
+ };
41
+ /** Type URL for MsgAddHostZone messages */
42
+ export const typeUrlMsgAddHostZone = `/${protobufPackage}.${protobufLiterals.MsgAddHostZone}`;
43
+ /** Type URL for MsgAddHostZoneResponse messages */
44
+ export const typeUrlMsgAddHostZoneResponse = `/${protobufPackage}.${protobufLiterals.MsgAddHostZoneResponse}`;
45
+ /** Type URL for MsgFundFeeAbsModuleAccount messages */
46
+ export const typeUrlMsgFundFeeAbsModuleAccount = `/${protobufPackage}.${protobufLiterals.MsgFundFeeAbsModuleAccount}`;
47
+ /** Type URL for MsgFundFeeAbsModuleAccountResponse messages */
48
+ export const typeUrlMsgFundFeeAbsModuleAccountResponse = `/${protobufPackage}.${protobufLiterals.MsgFundFeeAbsModuleAccountResponse}`;
49
+ /** Type URL for MsgRemoveHostZone messages */
50
+ export const typeUrlMsgRemoveHostZone = `/${protobufPackage}.${protobufLiterals.MsgRemoveHostZone}`;
51
+ /** Type URL for MsgRemoveHostZoneResponse messages */
52
+ export const typeUrlMsgRemoveHostZoneResponse = `/${protobufPackage}.${protobufLiterals.MsgRemoveHostZoneResponse}`;
53
+ /** Type URL for MsgSendQueryIbcDenomTWAP messages */
54
+ export const typeUrlMsgSendQueryIbcDenomTWAP = `/${protobufPackage}.${protobufLiterals.MsgSendQueryIbcDenomTWAP}`;
55
+ /** Type URL for MsgSendQueryIbcDenomTWAPResponse messages */
56
+ export const typeUrlMsgSendQueryIbcDenomTWAPResponse = `/${protobufPackage}.${protobufLiterals.MsgSendQueryIbcDenomTWAPResponse}`;
57
+ /** Type URL for MsgSwapCrossChain messages */
58
+ export const typeUrlMsgSwapCrossChain = `/${protobufPackage}.${protobufLiterals.MsgSwapCrossChain}`;
59
+ /** Type URL for MsgSwapCrossChainResponse messages */
60
+ export const typeUrlMsgSwapCrossChainResponse = `/${protobufPackage}.${protobufLiterals.MsgSwapCrossChainResponse}`;
61
+ /** Type URL for MsgUpdateHostZone messages */
62
+ export const typeUrlMsgUpdateHostZone = `/${protobufPackage}.${protobufLiterals.MsgUpdateHostZone}`;
63
+ /** Type URL for MsgUpdateHostZoneResponse messages */
64
+ export const typeUrlMsgUpdateHostZoneResponse = `/${protobufPackage}.${protobufLiterals.MsgUpdateHostZoneResponse}`;
65
+ /** Type URL for MsgUpdateParams messages */
66
+ export const typeUrlMsgUpdateParams = `/${protobufPackage}.${protobufLiterals.MsgUpdateParams}`;
67
+ /** Type URL for MsgUpdateParamsResponse messages */
68
+ export const typeUrlMsgUpdateParamsResponse = `/${protobufPackage}.${protobufLiterals.MsgUpdateParamsResponse}`;
69
+ /**
70
+ * Type guard function to check if an object is a MsgAddHostZoneEncodeObject.
71
+ *
72
+ * @param obj - EncodeObject to check
73
+ * @returns True if the object is a MsgAddHostZoneEncodeObject
74
+ */
75
+ export function isMsgAddHostZoneEncodeObject(obj) {
76
+ return obj.typeUrl === typeUrlMsgAddHostZone;
77
+ }
78
+ export function isMsgAddHostZoneResponseEncodeObject(obj) {
79
+ return obj.typeUrl === typeUrlMsgAddHostZoneResponse;
80
+ }
81
+ export function isMsgFundFeeAbsModuleAccountEncodeObject(obj) {
82
+ return obj.typeUrl === typeUrlMsgFundFeeAbsModuleAccount;
83
+ }
84
+ /**
85
+ * Type guard function to check if an object is a MsgFundFeeAbsModuleAccountResponseEncodeObject.
86
+ *
87
+ * @param obj - EncodeObject to check
88
+ * @returns True if the object is a MsgFundFeeAbsModuleAccountResponseEncodeObject
89
+ */
90
+ export function isMsgFundFeeAbsModuleAccountResponseEncodeObject(obj) {
91
+ return obj.typeUrl === typeUrlMsgFundFeeAbsModuleAccountResponse;
92
+ }
93
+ /**
94
+ * Type guard function to check if an object is a MsgRemoveHostZoneEncodeObject.
95
+ *
96
+ * @param obj - EncodeObject to check
97
+ * @returns True if the object is a MsgRemoveHostZoneEncodeObject
98
+ */
99
+ export function isMsgRemoveHostZoneEncodeObject(obj) {
100
+ return obj.typeUrl === typeUrlMsgRemoveHostZone;
101
+ }
102
+ /**
103
+ * Type guard function to check if an object is a MsgRemoveHostZoneResponseEncodeObject.
104
+ *
105
+ * @param obj - EncodeObject to check
106
+ * @returns True if the object is a MsgRemoveHostZoneResponseEncodeObject
107
+ */
108
+ export function isMsgRemoveHostZoneResponseEncodeObject(obj) {
109
+ return obj.typeUrl === typeUrlMsgRemoveHostZoneResponse;
110
+ }
111
+ /**
112
+ * Type guard function to check if an object is a MsgSendQueryIbcDenomTWAPEncodeObject.
113
+ *
114
+ * @param obj - EncodeObject to check
115
+ * @returns True if the object is a MsgSendQueryIbcDenomTWAPEncodeObject
116
+ */
117
+ export function isMsgSendQueryIbcDenomTWAPEncodeObject(obj) {
118
+ return obj.typeUrl === typeUrlMsgSendQueryIbcDenomTWAP;
119
+ }
120
+ /**
121
+ * Type guard function to check if an object is a MsgSendQueryIbcDenomTWAPResponseEncodeObject.
122
+ *
123
+ * @param obj - EncodeObject to check
124
+ * @returns True if the object is a MsgSendQueryIbcDenomTWAPResponseEncodeObject
125
+ */
126
+ export function isMsgSendQueryIbcDenomTWAPResponseEncodeObject(obj) {
127
+ return obj.typeUrl === typeUrlMsgSendQueryIbcDenomTWAPResponse;
128
+ }
129
+ /**
130
+ * Type guard function to check if an object is a MsgSwapCrossChainEncodeObject.
131
+ *
132
+ * @param obj - EncodeObject to check
133
+ * @returns True if the object is a MsgSwapCrossChainEncodeObject
134
+ */
135
+ export function isMsgSwapCrossChainEncodeObject(obj) {
136
+ return obj.typeUrl === typeUrlMsgSwapCrossChain;
137
+ }
138
+ /**
139
+ * Type guard function to check if an object is a MsgSwapCrossChainResponseEncodeObject.
140
+ *
141
+ * @param obj - EncodeObject to check
142
+ * @returns True if the object is a MsgSwapCrossChainResponseEncodeObject
143
+ */
144
+ export function isMsgSwapCrossChainResponseEncodeObject(obj) {
145
+ return obj.typeUrl === typeUrlMsgSwapCrossChainResponse;
146
+ }
147
+ /**
148
+ * Type guard function to check if an object is a MsgUpdateHostZoneEncodeObject.
149
+ *
150
+ * @param obj - EncodeObject to check
151
+ * @returns True if the object is a MsgUpdateHostZoneEncodeObject
152
+ */
153
+ export function isMsgUpdateHostZoneEncodeObject(obj) {
154
+ return obj.typeUrl === typeUrlMsgUpdateHostZone;
155
+ }
156
+ /**
157
+ * Type guard function to check if an object is a MsgUpdateHostZoneResponseEncodeObject.
158
+ *
159
+ * @param obj - EncodeObject to check
160
+ * @returns True if the object is a MsgUpdateHostZoneResponseEncodeObject
161
+ */
162
+ export function isMsgUpdateHostZoneResponseEncodeObject(obj) {
163
+ return obj.typeUrl === typeUrlMsgUpdateHostZoneResponse;
164
+ }
165
+ /**
166
+ * Type guard function to check if an object is a MsgUpdateParamsEncodeObject.
167
+ *
168
+ * @param obj - EncodeObject to check
169
+ * @returns True if the object is a MsgUpdateParamsEncodeObject
170
+ */
171
+ export function isMsgUpdateParamsEncodeObject(obj) {
172
+ return obj.typeUrl === typeUrlMsgUpdateParams;
173
+ }
174
+ /**
175
+ * Type guard function to check if an object is a MsgUpdateParamsResponseEncodeObject.
176
+ *
177
+ * @param obj - EncodeObject to check
178
+ * @returns True if the object is a MsgUpdateParamsResponseEncodeObject
179
+ */
180
+ export function isMsgUpdateParamsResponseEncodeObject(obj) {
181
+ return obj.typeUrl === typeUrlMsgUpdateParamsResponse;
182
+ }
183
+ /**
184
+ * Sets up the fee abstraction extension for the querier client.
185
+ * Creates and configures the fee abstraction-specific query methods.
186
+ *
187
+ * @param base - Base QueryClient to extend
188
+ * @returns Configured fee abstraction extension with query methods
189
+ */
190
+ export const setupFeeabstractionExtension = (base) => {
191
+ const rpc = createProtobufRpcClient(base);
192
+ const queryService = new QueryClientImpl(rpc);
193
+ return {
194
+ [defaultFeeabstractionExtensionKey]: {
195
+ hostChainConfig: async (request) => {
196
+ return await queryService.HostChainConfig(request);
197
+ },
198
+ osmosisArithmeticTwap: async (request) => {
199
+ return await queryService.OsmosisArithmeticTwap(request);
200
+ },
201
+ feeabsModuleBalances: async (request) => {
202
+ return await queryService.FeeabsModuleBalances(request);
203
+ },
204
+ },
205
+ };
206
+ };
207
+ /**
208
+ * Fee Abstraction Module class providing comprehensive fee abstraction functionality.
209
+ * Handles host zone management, cross-chain swaps, and fee abstraction operations on the Cheqd blockchain.
210
+ */
211
+ export class FeeabstractionModule extends AbstractCheqdSDKModule {
212
+ // @ts-expect-error underlying type `GeneratedType` is intentionally wider
213
+ static registryTypes = [
214
+ [typeUrlMsgAddHostZone, MsgAddHostZone],
215
+ [typeUrlMsgAddHostZoneResponse, MsgAddHostZoneResponse],
216
+ [typeUrlMsgFundFeeAbsModuleAccount, MsgFundFeeAbsModuleAccount],
217
+ [typeUrlMsgFundFeeAbsModuleAccountResponse, MsgFundFeeAbsModuleAccountResponse],
218
+ [typeUrlMsgRemoveHostZone, MsgRemoveHostZone],
219
+ [typeUrlMsgRemoveHostZoneResponse, MsgRemoveHostZoneResponse],
220
+ [typeUrlMsgSendQueryIbcDenomTWAP, MsgSendQueryIbcDenomTWAP],
221
+ [typeUrlMsgSendQueryIbcDenomTWAPResponse, MsgSendQueryIbcDenomTWAPResponse],
222
+ [typeUrlMsgSwapCrossChain, MsgSwapCrossChain],
223
+ [typeUrlMsgSwapCrossChainResponse, MsgSwapCrossChainResponse],
224
+ [typeUrlMsgUpdateHostZone, MsgUpdateHostZone],
225
+ [typeUrlMsgUpdateHostZoneResponse, MsgUpdateHostZoneResponse],
226
+ [typeUrlMsgUpdateParams, MsgUpdateParams],
227
+ [typeUrlMsgUpdateParamsResponse, MsgUpdateParamsResponse],
228
+ ];
229
+ /** Querier extension setup function for fee abstraction operations */
230
+ static querierExtensionSetup = setupFeeabstractionExtension;
231
+ /** Querier instance with fee abstraction extension capabilities */
232
+ querier;
233
+ /**
234
+ * Constructs a new fee abstraction module instance.
235
+ *
236
+ * @param signer - Signing client for blockchain transactions
237
+ * @param querier - Querier client with fee abstraction extension for data retrieval
238
+ */
239
+ constructor(signer, querier) {
240
+ super(signer, querier);
241
+ this.querier = querier;
242
+ this.methods = {
243
+ addHostZoneProposal: this.addHostZoneProposal.bind(this),
244
+ fundFeeAbsModuleAccount: this.fundFeeAbsModuleAccount.bind(this),
245
+ removeHostZoneProposal: this.removeHostZoneProposal.bind(this),
246
+ sendQueryIbcDenomTWAP: this.sendQueryIbcDenomTWAP.bind(this),
247
+ swapCrossChain: this.swapCrossChain.bind(this),
248
+ updateHostZoneProposal: this.updateHostZoneProposal.bind(this),
249
+ updateParamsProposal: this.updateParamsProposal.bind(this),
250
+ };
251
+ }
252
+ /**
253
+ * Gets the registry types for fee abstraction message encoding/decoding.
254
+ *
255
+ * @returns Iterable of [typeUrl, GeneratedType] pairs for the registry
256
+ */
257
+ getRegistryTypes() {
258
+ return FeeabstractionModule.registryTypes;
259
+ }
260
+ /**
261
+ * Gets the querier extension setup for fee abstraction operations.
262
+ *
263
+ * @returns Query extension setup function for fee abstraction functionality
264
+ */
265
+ getQuerierExtensionSetup() {
266
+ return FeeabstractionModule.querierExtensionSetup;
267
+ }
268
+ /**
269
+ * Creates a governance proposal to add a new host zone for fee abstraction.
270
+ * Submits the proposal through the governance module for community voting.
271
+ *
272
+ * @param data - Host zone data to add
273
+ * @param title - Proposal title
274
+ * @param deposit - Initial deposit for the proposal
275
+ * @param proposer - Address of the proposal submitter
276
+ * @param fee - Transaction fee configuration
277
+ * @param memo - Optional transaction memo
278
+ * @param context - Optional SDK context for accessing clients
279
+ * @returns Promise resolving to the transaction response
280
+ */
281
+ async addHostZoneProposal(data, title, deposit, proposer, fee, memo, context) {
282
+ if (!this._signer)
283
+ this._signer = context.sdk.signer;
284
+ const proposalEncodeObject = {
285
+ typeUrl: '/cosmos.gov.v1.MsgSubmitProposal',
286
+ value: MsgSubmitProposal.fromPartial({
287
+ messages: [
288
+ {
289
+ typeUrl: typeUrlMsgAddHostZone,
290
+ value: Uint8Array.from(MsgAddHostZone.encode(data).finish()),
291
+ },
292
+ ],
293
+ title,
294
+ initialDeposit: deposit,
295
+ proposer,
296
+ }),
297
+ };
298
+ return await this._signer.signAndBroadcast(proposer, [proposalEncodeObject], fee, memo);
299
+ }
300
+ /**
301
+ * Funds the fee abstraction module account with tokens.
302
+ * Allows users to provide liquidity for fee abstraction functionality.
303
+ *
304
+ * @param sender - Address of the account sending funds
305
+ * @param amount - Array of coins to send to the module account
306
+ * @param fee - Transaction fee configuration
307
+ * @param memo - Optional transaction memo
308
+ * @param context - Optional SDK context for accessing clients
309
+ * @returns Promise resolving to the transaction response
310
+ */
311
+ async fundFeeAbsModuleAccount(sender, amount, fee, memo, context) {
312
+ if (!this._signer)
313
+ this._signer = context.sdk.signer;
314
+ const fundFeeAbsModuleAccountMsg = {
315
+ typeUrl: typeUrlMsgFundFeeAbsModuleAccount,
316
+ value: {
317
+ sender,
318
+ amount,
319
+ },
320
+ };
321
+ return await this._signer.signAndBroadcast(sender, [fundFeeAbsModuleAccountMsg], fee, memo);
322
+ }
323
+ /**
324
+ * Creates a governance proposal to remove an existing host zone from fee abstraction.
325
+ * Submits the proposal through the governance module for community voting.
326
+ *
327
+ * @param data - Host zone data to remove
328
+ * @param title - Proposal title
329
+ * @param deposit - Initial deposit for the proposal
330
+ * @param proposer - Address of the proposal submitter
331
+ * @param fee - Transaction fee configuration
332
+ * @param memo - Optional transaction memo
333
+ * @param context - Optional SDK context for accessing clients
334
+ * @returns Promise resolving to the transaction response
335
+ */
336
+ async removeHostZoneProposal(data, title, deposit, proposer, fee, memo, context) {
337
+ if (!this._signer)
338
+ this._signer = context.sdk.signer;
339
+ const proposalEncodeObject = {
340
+ typeUrl: '/cosmos.gov.v1.MsgSubmitProposal',
341
+ value: MsgSubmitProposal.fromPartial({
342
+ messages: [
343
+ {
344
+ typeUrl: typeUrlMsgRemoveHostZone,
345
+ value: Uint8Array.from(MsgRemoveHostZone.encode(data).finish()),
346
+ },
347
+ ],
348
+ title,
349
+ initialDeposit: deposit,
350
+ proposer,
351
+ }),
352
+ };
353
+ return await this._signer.signAndBroadcast(proposer, [proposalEncodeObject], fee, memo);
354
+ }
355
+ /**
356
+ * Sends a query for IBC denomination Time-Weighted Average Price (TWAP) data.
357
+ * Initiates a cross-chain query to retrieve pricing information for fee calculation.
358
+ *
359
+ * @param sender - Address of the account sending the query
360
+ * @param data - TWAP query data containing denomination and parameters
361
+ * @param fee - Transaction fee configuration
362
+ * @param memo - Optional transaction memo
363
+ * @param context - Optional SDK context for accessing clients
364
+ * @returns Promise resolving to the TWAP query response
365
+ */
366
+ async sendQueryIbcDenomTWAP(sender, data, fee, memo, context) {
367
+ if (!this._signer)
368
+ this._signer = context.sdk.signer;
369
+ const sendQueryIbcDenomTwapMsg = {
370
+ typeUrl: typeUrlMsgSendQueryIbcDenomTWAP,
371
+ value: data,
372
+ };
373
+ return await this._signer.signAndBroadcast(sender, [sendQueryIbcDenomTwapMsg], fee, memo);
374
+ }
375
+ /**
376
+ * Performs a cross-chain token swap using fee abstraction.
377
+ * Enables users to swap IBC tokens across different chains.
378
+ *
379
+ * @param sender - Address of the account initiating the swap
380
+ * @param ibcDenom - IBC denomination to swap
381
+ * @param fee - Transaction fee configuration
382
+ * @param memo - Optional transaction memo
383
+ * @param context - Optional SDK context for accessing clients
384
+ * @returns Promise resolving to the swap response
385
+ */
386
+ async swapCrossChain(sender, ibcDenom, fee, memo, context) {
387
+ if (!this._signer)
388
+ this._signer = context.sdk.signer;
389
+ const swapCrossChainMsg = {
390
+ typeUrl: typeUrlMsgSwapCrossChain,
391
+ value: {
392
+ ibcDenom,
393
+ },
394
+ };
395
+ return await this._signer.signAndBroadcast(sender, [swapCrossChainMsg], fee, memo);
396
+ }
397
+ /**
398
+ * Creates a governance proposal to update an existing host zone configuration.
399
+ * Submits the proposal through the governance module for community voting.
400
+ *
401
+ * @param data - Updated host zone configuration data
402
+ * @param title - Proposal title
403
+ * @param deposit - Initial deposit for the proposal
404
+ * @param proposer - Address of the proposal submitter
405
+ * @param fee - Transaction fee configuration
406
+ * @param memo - Optional transaction memo
407
+ * @param context - Optional SDK context for accessing clients
408
+ * @returns Promise resolving to the transaction response
409
+ */
410
+ async updateHostZoneProposal(data, title, deposit, proposer, fee, memo, context) {
411
+ if (!this._signer)
412
+ this._signer = context.sdk.signer;
413
+ const proposalEncodeObject = {
414
+ typeUrl: '/cosmos.gov.v1.MsgSubmitProposal',
415
+ value: MsgSubmitProposal.fromPartial({
416
+ messages: [
417
+ {
418
+ typeUrl: typeUrlMsgUpdateHostZone,
419
+ value: Uint8Array.from(MsgUpdateHostZone.encode(data).finish()),
420
+ },
421
+ ],
422
+ title,
423
+ initialDeposit: deposit,
424
+ proposer,
425
+ }),
426
+ };
427
+ return await this._signer.signAndBroadcast(proposer, [proposalEncodeObject], fee, memo);
428
+ }
429
+ /**
430
+ * Creates a governance proposal to update fee abstraction module parameters.
431
+ * Submits the proposal through the governance module for community voting.
432
+ *
433
+ * @param data - Updated module parameters
434
+ * @param title - Proposal title
435
+ * @param deposit - Initial deposit for the proposal
436
+ * @param proposer - Address of the proposal submitter
437
+ * @param fee - Transaction fee configuration
438
+ * @param memo - Optional transaction memo
439
+ * @param context - Optional SDK context for accessing clients
440
+ * @returns Promise resolving to the transaction response
441
+ */
442
+ async updateParamsProposal(data, title, deposit, proposer, fee, memo, context) {
443
+ if (!this._signer)
444
+ this._signer = context.sdk.signer;
445
+ const proposalEncodeObject = {
446
+ typeUrl: '/cosmos.gov.v1.MsgSubmitProposal',
447
+ value: MsgSubmitProposal.fromPartial({
448
+ messages: [
449
+ {
450
+ typeUrl: typeUrlMsgUpdateParams,
451
+ value: Uint8Array.from(MsgUpdateParams.encode(data).finish()),
452
+ },
453
+ ],
454
+ title,
455
+ initialDeposit: deposit,
456
+ proposer,
457
+ }),
458
+ };
459
+ return await this._signer.signAndBroadcast(proposer, [proposalEncodeObject], fee, memo);
460
+ }
461
+ }
462
+ //# sourceMappingURL=feeabstraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feeabstraction.js","sourceRoot":"","sources":["../../src/modules/feeabstraction.ts"],"names":[],"mappings":"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"}