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

Commit f1bc1a7

Browse files
committed
more const changes, move types out of index file for matching engine and token router
1 parent be7f6f3 commit f1bc1a7

File tree

9 files changed

+338
-349
lines changed

9 files changed

+338
-349
lines changed

solana/ts/src/matchingEngine/index.ts

Lines changed: 25 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
export * from "./state";
2-
32
import { BN, Program, utils } from "@coral-xyz/anchor";
43
import * as splToken from "@solana/spl-token";
54
import {
@@ -15,6 +14,7 @@ import {
1514
SystemProgram,
1615
TransactionInstruction,
1716
} from "@solana/web3.js";
17+
import { MatchingEngine } from "@wormhole-foundation/example-liquidity-layer-definitions";
1818
import { ChainId, isChainId, toChainId } from "@wormhole-foundation/sdk-base";
1919
import { PreparedTransaction, PreparedTransactionOptions } from "..";
2020
import { MessageTransmitterProgram, TokenMessengerMinterProgram } from "../cctp";
@@ -43,177 +43,41 @@ import {
4343
Custodian,
4444
EndpointInfo,
4545
FastFill,
46-
FastFillInfo,
47-
FastFillSeeds,
4846
FastFillSequencer,
49-
MessageProtocol,
5047
PreparedOrderResponse,
5148
Proposal,
52-
ProposalAction,
5349
ReservedFastFillSequence,
5450
RouterEndpoint,
5551
} from "./state";
56-
import { MatchingEngine } from "@wormhole-foundation/example-liquidity-layer-definitions";
52+
import {
53+
AddCctpRouterEndpointArgs,
54+
AuctionSettled,
55+
AuctionUpdated,
56+
BurnAndPublishAccounts,
57+
CctpMessageArgs,
58+
Enacted,
59+
FastFillRedeemed,
60+
FastFillSequenceReserved,
61+
FastOrderPathComposite,
62+
LocalFastOrderFilled,
63+
MatchingEngineCommonAccounts,
64+
OrderExecuted,
65+
Proposed,
66+
PublishMessageAccounts,
67+
RedeemFastFillAccounts,
68+
ReserveFastFillSequenceCompositeOpts,
69+
} from "./types";
5770

5871
export const PROGRAM_IDS = [
5972
"MatchingEngine11111111111111111111111111111",
6073
"mPydpGUWxzERTNpyvTKdvS7v8kvw5sgwfiP8WQFrXVS",
6174
] as const;
75+
export type ProgramId = (typeof PROGRAM_IDS)[number] | string;
6276

6377
export const FEE_PRECISION_MAX = 1_000_000n;
6478

6579
export const CPI_EVENT_IX_SELECTOR = Uint8Array.from([228, 69, 165, 46, 81, 203, 154, 29]);
6680

67-
export type ProgramId = (typeof PROGRAM_IDS)[number] | string;
68-
69-
export type AddCctpRouterEndpointArgs = {
70-
chain: ChainId;
71-
cctpDomain: number;
72-
address: Array<number>;
73-
mintRecipient: Array<number> | null;
74-
};
75-
76-
export type WormholeCoreBridgeAccounts = {
77-
coreBridgeConfig: PublicKey;
78-
coreEmitterSequence: PublicKey;
79-
coreFeeCollector: PublicKey;
80-
coreBridgeProgram: PublicKey;
81-
};
82-
83-
export type PublishMessageAccounts = WormholeCoreBridgeAccounts & {
84-
custodian: PublicKey;
85-
coreMessage: PublicKey;
86-
};
87-
88-
export type MatchingEngineCommonAccounts = WormholeCoreBridgeAccounts & {
89-
matchingEngineProgram: PublicKey;
90-
systemProgram: PublicKey;
91-
rent: PublicKey;
92-
clock: PublicKey;
93-
custodian: PublicKey;
94-
cctpMintRecipient: PublicKey;
95-
tokenMessenger: PublicKey;
96-
tokenMinter: PublicKey;
97-
tokenMessengerMinterSenderAuthority: PublicKey;
98-
tokenMessengerMinterProgram: PublicKey;
99-
messageTransmitterAuthority: PublicKey;
100-
messageTransmitterConfig: PublicKey;
101-
messageTransmitterProgram: PublicKey;
102-
tokenProgram: PublicKey;
103-
mint: PublicKey;
104-
localToken: PublicKey;
105-
tokenMessengerMinterCustodyToken: PublicKey;
106-
};
107-
108-
export type BurnAndPublishAccounts = {
109-
custodian: PublicKey;
110-
routerEndpoint: PublicKey;
111-
coreMessage: PublicKey;
112-
cctpMessage: PublicKey;
113-
coreBridgeConfig: PublicKey;
114-
coreEmitterSequence: PublicKey;
115-
coreFeeCollector: PublicKey;
116-
coreBridgeProgram: PublicKey;
117-
tokenMessengerMinterSenderAuthority: PublicKey;
118-
messageTransmitterConfig: PublicKey;
119-
tokenMessenger: PublicKey;
120-
remoteTokenMessenger: PublicKey;
121-
tokenMinter: PublicKey;
122-
localToken: PublicKey;
123-
tokenMessengerMinterEventAuthority: PublicKey;
124-
messageTransmitterProgram: PublicKey;
125-
tokenMessengerMinterProgram: PublicKey;
126-
};
127-
128-
export type RedeemFastFillAccounts = {
129-
custodian: PublicKey;
130-
fromRouterEndpoint: PublicKey;
131-
toRouterEndpoint: PublicKey;
132-
localCustodyToken: PublicKey;
133-
matchingEngineProgram: PublicKey;
134-
};
135-
136-
export type CctpMessageArgs = {
137-
encodedCctpMessage: Buffer;
138-
cctpAttestation: Buffer;
139-
};
140-
141-
export type SettledTokenAccountInfo = {
142-
key: PublicKey;
143-
balanceAfter: BN;
144-
};
145-
146-
export type AuctionSettled = {
147-
auction: PublicKey;
148-
bestOfferToken: SettledTokenAccountInfo | null;
149-
executorToken: SettledTokenAccountInfo | null;
150-
withExecute: MessageProtocol | null;
151-
};
152-
153-
export type AuctionUpdated = {
154-
configId: number;
155-
auction: PublicKey;
156-
vaa: PublicKey | null;
157-
sourceChain: number;
158-
targetProtocol: MessageProtocol;
159-
redeemerMessageLen: number;
160-
endSlot: BN;
161-
bestOfferToken: PublicKey;
162-
tokenBalanceBefore: BN;
163-
amountIn: BN;
164-
totalDeposit: BN;
165-
maxOfferPriceAllowed: BN | null;
166-
};
167-
168-
export type OrderExecuted = {
169-
auction: PublicKey;
170-
vaa: PublicKey;
171-
targetProtocol: MessageProtocol;
172-
};
173-
174-
export type Proposed = {
175-
action: ProposalAction;
176-
};
177-
178-
export type Enacted = {
179-
action: ProposalAction;
180-
};
181-
182-
export type LocalFastOrderFilled = {
183-
seeds: FastFillSeeds;
184-
info: FastFillInfo;
185-
auction: PublicKey | null;
186-
};
187-
188-
export type FastFillSequenceReserved = {
189-
fastVaaHash: Array<number>;
190-
fastFillSeeds: FastFillSeeds;
191-
};
192-
193-
export type FastFillRedeemed = {
194-
preparedBy: PublicKey;
195-
fastFill: PublicKey;
196-
};
197-
198-
export type FastOrderPathComposite = {
199-
fastVaa: {
200-
vaa: PublicKey;
201-
};
202-
path: {
203-
fromEndpoint: {
204-
endpoint: PublicKey;
205-
};
206-
toEndpoint: { endpoint: PublicKey };
207-
};
208-
};
209-
210-
export type ReserveFastFillSequenceCompositeOpts = {
211-
fastVaaHash?: VaaHash;
212-
sourceChain?: ChainId;
213-
orderSender?: Array<number>;
214-
targetChain?: ChainId;
215-
};
216-
21781
export class MatchingEngineProgram {
21882
private _programId: ProgramId;
21983
private _mint: PublicKey;
@@ -229,7 +93,7 @@ export class MatchingEngineProgram {
22993
private _addresses: MatchingEngine.Addresses,
23094
) {
23195
this._programId = programId;
232-
this._mint = new PublicKey(_addresses.usdcMint);
96+
this._mint = new PublicKey(_addresses.cctp.usdcMint);
23397
this.pdas = programDerivedAddresses(
23498
new PublicKey(programId),
23599
this._mint,
@@ -2375,23 +2239,22 @@ export class MatchingEngineProgram {
23752239
upgradeManagerProgram(): UpgradeManagerProgram {
23762240
return new UpgradeManagerProgram(
23772241
this.program.provider.connection,
2378-
this._addresses.upgradeManager,
2379-
// TODO: matching engine does not require token router
2380-
{ ...this._addresses, tokenRouter: "" },
2242+
this._addresses.upgradeManager!,
2243+
{ ...this._addresses, tokenRouter: this._addresses.tokenRouter! },
23812244
);
23822245
}
23832246

23842247
tokenMessengerMinterProgram(): TokenMessengerMinterProgram {
23852248
return new TokenMessengerMinterProgram(
23862249
this.program.provider.connection,
2387-
this._addresses.tokenMessenger,
2250+
this._addresses.cctp.tokenMessenger,
23882251
);
23892252
}
23902253

23912254
messageTransmitterProgram(): MessageTransmitterProgram {
23922255
return new MessageTransmitterProgram(
23932256
this.program.provider.connection,
2394-
this._addresses.messageTransmitter,
2257+
this._addresses.cctp.messageTransmitter,
23952258
);
23962259
}
23972260

0 commit comments

Comments
 (0)