Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions evm/ts/src/ntt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,15 @@ export class EvmNtt<N extends Network, C extends EvmChains>
dstChain: Chain,
options: Ntt.TransferOptions
): Promise<bigint> {
if (options.automatic) {
console.warn(
"EvmNtt.quoteDeliveryPrice with automatic: true queries on-chain " +
"special/standard relayer pricing which is no longer maintained " +
"and may return inflated fees. " +

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest adding "Any messages sent via the Standard Relayer will not be automatically delivered to the destination chain."

"For automatic EVM transfers, use nttExecutorRoute and obtain quotes via route.quote() instead."
);
}

await this.initTransceiverIndices();

// Bypass the manager's quoteDeliveryPrice because it has a bug: it sizes the
Expand Down
4 changes: 2 additions & 2 deletions sdk/examples/src/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import "@wormhole-foundation/sdk-evm-ntt";
import "@wormhole-foundation/sdk-solana-ntt";

import {
nttAutomaticRoute,
nttExecutorRoute,
nttManualRoute,
} from "@wormhole-foundation/sdk-route-ntt";
import { NttTokens } from "./consts.js";
Expand All @@ -29,7 +29,7 @@ import { getSigner } from "./helpers.js";

const resolver = wh.resolver([
nttManualRoute({ tokens: NttTokens }),
nttAutomaticRoute({ tokens: NttTokens }),
nttExecutorRoute({ ntt: { tokens: NttTokens } }),
]);

const { chain, token } = NttTokens.Test[0]!;
Expand Down
12 changes: 12 additions & 0 deletions sdk/route/src/automatic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,25 @@ type Q = routes.Quote<Op, Vp>;

type R = NttRoute.AutomaticTransferReceipt;

/**
* @deprecated Use {@link nttExecutorRoute} instead.
* When the source chain is EVM, this route relies on on-chain special/standard relayer pricing
* which is no longer maintained. Older EVM transceiver deployments may return stale or inflated
* delivery quotes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of "Older EVM transceiver deployments may return stale or inflated delivery quotes", let's say: "Messages sent via the Standard Relayer will not be automatically delivered to the destination chain past April 1st, 2026."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call on adding the delivery deadline, I'll add it, but I would still keep the stale quotes note too since that's the main issue integrators have been hitting. An explanation for why the quote is very high is important here imo.

*/
export function nttAutomaticRoute(config: NttRoute.Config) {
class NttRouteImpl<N extends Network> extends NttAutomaticRoute<N> {
static override config = config;
}
return NttRouteImpl;
}

/**
* @deprecated Use {@link NttExecutorRoute} instead.
* When the source chain is EVM, this route relies on on-chain special/standard relayer pricing
* which is no longer maintained. Older EVM transceiver deployments may return stale or inflated
* delivery quotes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as the above

*/
export class NttAutomaticRoute<N extends Network>
extends routes.AutomaticRoute<N, Op, Vp, R>
implements routes.StaticRouteMethods<typeof NttAutomaticRoute>
Expand Down
Loading