Skip to content

Commit 99e1ea1

Browse files
committed
feat: axelar gas multiplier
1 parent 035d0e3 commit 99e1ea1

File tree

6 files changed

+21
-9
lines changed

6 files changed

+21
-9
lines changed

evm/ts/src/multiTokenNtt.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,8 @@ export class EvmMultiTokenNtt<N extends Network, C extends EvmChains>
255255

256256
async createTransceiverInstructions(
257257
dstChain: Chain,
258-
gasLimit: bigint
258+
gasLimit: bigint,
259+
axelarGasMultiplier: number | "auto" = "auto"
259260
): Promise<Ntt.TransceiverInstruction[]> {
260261
const sendTransceivers = await this.getSendTransceivers(dstChain);
261262

@@ -276,7 +277,8 @@ export class EvmMultiTokenNtt<N extends Network, C extends EvmChains>
276277
this.network,
277278
this.chain,
278279
dstChain,
279-
gasLimit
280+
gasLimit,
281+
axelarGasMultiplier
280282
).catch(() => 1n);
281283
return {
282284
index: transceiver.index,
@@ -313,13 +315,15 @@ export class EvmMultiTokenNtt<N extends Network, C extends EvmChains>
313315
token: TokenAddress<C>,
314316
amount: bigint,
315317
destination: ChainAddress,
316-
destinationGasLimit: bigint
318+
destinationGasLimit: bigint,
319+
axelarGasMultiplier: number | "auto" = "auto"
317320
): AsyncGenerator<EvmUnsignedTransaction<N, C>> {
318321
const senderAddress = new EvmAddress(sender).toString();
319322

320323
const transceiverInstructions = await this.createTransceiverInstructions(
321324
destination.chain,
322-
destinationGasLimit
325+
destinationGasLimit,
326+
axelarGasMultiplier
323327
);
324328

325329
const totalPrice = await this.quoteDeliveryPrice(

sdk/definitions/src/axelar.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export async function getAxelarGasFee(
5454
sourceChain: Chain,
5555
destinationChain: Chain,
5656
gasLimit: bigint,
57+
gasMultiplier: number | "auto" = "auto",
5758
timeoutMs = 10000
5859
): Promise<bigint> {
5960
const url = `${getAxelarApiUrl(network)}/gmp/estimateGasFee`;
@@ -76,7 +77,7 @@ export async function getAxelarGasFee(
7677
body: JSON.stringify({
7778
sourceChain: axelarSourceChain,
7879
destinationChain: axelarDestinationChain,
79-
gasMultiplier: "auto",
80+
gasMultiplier,
8081
gasLimit: gasLimit.toString(),
8182
}),
8283
signal: controller.signal,

sdk/definitions/src/multiTokenNtt.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export namespace MultiTokenNtt {
3535
chain: Chain;
3636
manager: string;
3737
gmpManager: string;
38+
axelarGasMultiplier?: number | "auto";
3839
};
3940

4041
export interface TokenMeta {
@@ -98,7 +99,8 @@ export interface MultiTokenNtt<N extends Network, C extends Chain> {
9899

99100
createTransceiverInstructions(
100101
dstChain: Chain,
101-
gasLimit: bigint
102+
gasLimit: bigint,
103+
axelarGasMultiplier?: number | "auto"
102104
): Promise<Ntt.TransceiverInstruction[]>;
103105

104106
quoteDeliveryPrice(
@@ -111,7 +113,8 @@ export interface MultiTokenNtt<N extends Network, C extends Chain> {
111113
token: TokenAddress<C>,
112114
amount: bigint,
113115
destination: ChainAddress,
114-
destinationGasLimit: bigint
116+
destinationGasLimit: bigint,
117+
axelarGasMultiplier?: number | "auto"
115118
): AsyncGenerator<UnsignedTransaction<N, C>>;
116119

117120
redeem(

sdk/route/src/executor/multiToken.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export namespace MultiTokenNttExecutorRoute {
4747
export type Config = {
4848
contracts: MultiTokenNtt.Contracts[];
4949
referrerFee?: ReferrerFeeConfig;
50+
axelarGasMultiplier?: number | "auto";
5051
};
5152

5253
export type ReferrerFeeConfig = NttExecutorRoute.ReferrerFeeConfig;
@@ -481,7 +482,8 @@ export class MultiTokenNttExecutorRoute<N extends Network>
481482
const transceiverInstructions =
482483
await sourceNtt.createTransceiverInstructions(
483484
toChain.chain,
484-
params.normalizedParams.gasLimit
485+
params.normalizedParams.gasLimit,
486+
this.staticConfig.axelarGasMultiplier
485487
);
486488

487489
const deliveryPrice = await sourceNtt.quoteDeliveryPrice(

sdk/route/src/multiTokenManual.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,8 @@ export class MultiTokenNttManualRoute<N extends Network>
246246
params.normalizedParams.sourceTokenId.address,
247247
amount.units(params.normalizedParams.amount),
248248
to,
249-
params.normalizedParams.gasLimit
249+
params.normalizedParams.gasLimit,
250+
this.staticConfig.axelarGasMultiplier
250251
);
251252
const txids = await signSendWait(fromChain, initXfer, signer);
252253

sdk/route/src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ export namespace MultiTokenNttRoute {
284284
export type Config = {
285285
contracts: MultiTokenNtt.Contracts[];
286286
perTokenOverrides?: MultiTokenNttRoute.PerTokenGasLimit;
287+
axelarGasMultiplier?: number | "auto";
287288
};
288289

289290
export type NormalizedParams = {

0 commit comments

Comments
 (0)