Skip to content
This repository was archived by the owner on Jun 16, 2025. It is now read-only.

Commit 530598a

Browse files
committed
tmp before migrating ethers version
1 parent 73202fb commit 530598a

File tree

2 files changed

+50
-11
lines changed

2 files changed

+50
-11
lines changed

evm/ts/src/protocol/tokenRouter.ts

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,58 @@
11
import { TokenRouter } from "@wormhole-foundation/example-liquidity-layer-definitions";
2-
import { Chain, Network } from "@wormhole-foundation/sdk-base";
2+
import { Network, nativeChainIds, toChainId } from "@wormhole-foundation/sdk-base";
33
import {
4-
AccountAddress,
5-
UnsignedTransaction,
6-
VAA,
74
CircleBridge,
85
Contracts,
6+
UnsignedTransaction,
7+
VAA,
98
} from "@wormhole-foundation/sdk-definitions";
10-
import { EvmTokenRouter as _EvmTokenRouter } from "../TokenRouter";
9+
import {
10+
AnyEvmAddress,
11+
EvmAddress,
12+
EvmChains,
13+
EvmUnsignedTransaction,
14+
} from "@wormhole-foundation/sdk-evm";
1115
import { ethers } from "ethers";
16+
import { EvmTokenRouter as _EvmTokenRouter } from "../TokenRouter";
1217

13-
export class EvmTokenRouter<N extends Network, C extends Chain>
18+
export class EvmTokenRouter<N extends Network, C extends EvmChains>
1419
extends _EvmTokenRouter
1520
implements TokenRouter<N, C>
1621
{
22+
private _chainId: number;
1723
constructor(
1824
readonly network: N,
1925
readonly chain: C,
2026
readonly provider: ethers.providers.Provider,
2127
readonly contracts: Contracts & TokenRouter.Addresses,
2228
) {
2329
super(provider, contracts.tokenRouter, contracts.cctp.tokenMessenger);
30+
this._chainId = 0; //nativeChainIds.networkChainToNativeChainId(network, chain);
2431
}
2532

2633
async *placeMarketOrder(
27-
sender: AccountAddress<C>,
28-
order: TokenRouter.OrderRequest | TokenRouter.PreparedOrder<C>,
34+
sender: AnyEvmAddress,
35+
order: TokenRouter.OrderRequest,
2936
): AsyncGenerator<UnsignedTransaction<N, C>, any, unknown> {
30-
throw new Error("Method not implemented.");
37+
const msg = order.redeemerMessage ? order.redeemerMessage : new Uint8Array();
38+
39+
const refundAddress = order.refundAddress
40+
? new EvmAddress(order.refundAddress).unwrap()
41+
: undefined;
42+
43+
const tx = await this.placeMarketOrderTx(
44+
order.amountIn,
45+
toChainId(order.targetChain),
46+
order.redeemer.toUint8Array(),
47+
msg,
48+
order.minAmountOut,
49+
refundAddress,
50+
);
51+
52+
yield this.createUnsignedTx(tx, "TokenRouter.placeMarketOrder");
3153
}
3254
async *redeemFill(
33-
sender: AccountAddress<C>,
55+
sender: AnyEvmAddress,
3456
vaa:
3557
| VAA<"FastTransfer:CctpDeposit">
3658
| VAA<"FastTransfer:FastMarketOrder">
@@ -39,4 +61,21 @@ export class EvmTokenRouter<N extends Network, C extends Chain>
3961
): AsyncGenerator<UnsignedTransaction<N, C>, any, unknown> {
4062
throw new Error("Method not implemented.");
4163
}
64+
65+
private createUnsignedTx(
66+
txReq: ethers.ContractTransaction,
67+
description: string,
68+
parallelizable: boolean = false,
69+
): EvmUnsignedTransaction<N, C> {
70+
txReq.chainId = this._chainId;
71+
72+
return new EvmUnsignedTransaction(
73+
// txReq,
74+
{},
75+
this.network,
76+
this.chain,
77+
description,
78+
parallelizable,
79+
);
80+
}
4281
}

universal/ts/src/protocol.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ export namespace TokenRouter {
150150
export type PreparedOrder<C extends Chain> = AccountAddress<C>;
151151
}
152152

153-
export interface TokenRouter<N extends Network = Network, C extends Chain = Chain> {
153+
export interface TokenRouter<N extends Network, C extends Chain> {
154154
placeMarketOrder(
155155
sender: AccountAddress<C>,
156156
order: TokenRouter.OrderRequest | TokenRouter.PreparedOrder<C>,

0 commit comments

Comments
 (0)