Skip to content

Commit b0ddb26

Browse files
committed
solana sdk refactor
1 parent 78fb12e commit b0ddb26

File tree

7 files changed

+512
-913
lines changed

7 files changed

+512
-913
lines changed

wormhole-connect/src/hooks/useDeliveryStatus.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { useDispatch, useSelector } from 'react-redux';
66
import { RootState } from 'store';
77
import { setRedeemTx, setDeliveryStatus } from 'store/redeem';
88
import { sleep } from 'utils';
9+
import { isEvmChain } from 'utils/sdk';
910
import { getEmitterAndSequence } from 'utils/vaa';
1011

1112
const BASE_URL = `https://api.${
@@ -22,7 +23,12 @@ const useDeliveryStatus = () => {
2223
(state: RootState) => state.redeem.signedMessage,
2324
);
2425
useEffect(() => {
25-
if (!signedMessage || route !== Route.NttRelay) return;
26+
if (
27+
!signedMessage ||
28+
route !== Route.NttRelay ||
29+
!isEvmChain(signedMessage.toChain) // Currently, only EVM chains support standard relayer
30+
)
31+
return;
2632
const { emitterChain, emitterAddress, sequence } =
2733
getEmitterAndSequence(signedMessage);
2834
let active = true;

wormhole-connect/src/routes/ntt/payloads/common.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ export class TransceiverMessage<A> {
1010
constructor(
1111
sourceNttManager: Buffer,
1212
recipientNttManager: Buffer,
13-
ntt_managerPayload: NttManagerMessage<A>,
13+
nttManagerPayload: NttManagerMessage<A>,
1414
transceiverPayload: Buffer,
1515
) {
1616
this.sourceNttManager = sourceNttManager;
1717
this.recipientNttManager = recipientNttManager;
18-
this.nttManagerPayload = ntt_managerPayload;
18+
this.nttManagerPayload = nttManagerPayload;
1919
this.transceiverPayload = transceiverPayload;
2020
}
2121

@@ -32,19 +32,19 @@ export class TransceiverMessage<A> {
3232
}
3333
const sourceNttManager = data.subarray(4, 36);
3434
const recipientNttManager = data.subarray(36, 68);
35-
const ntt_managerPayloadLen = data.readUInt16BE(68);
36-
const ntt_managerPayload = deserializer(
37-
data.subarray(70, 70 + ntt_managerPayloadLen),
35+
const nttManagerPayloadLen = data.readUInt16BE(68);
36+
const nttManagerPayload = deserializer(
37+
data.subarray(70, 70 + nttManagerPayloadLen),
3838
);
39-
const transceiverPayloadLen = data.readUInt16BE(70 + ntt_managerPayloadLen);
39+
const transceiverPayloadLen = data.readUInt16BE(70 + nttManagerPayloadLen);
4040
const transceiverPayload = data.subarray(
41-
72 + ntt_managerPayloadLen,
42-
72 + ntt_managerPayloadLen + transceiverPayloadLen,
41+
72 + nttManagerPayloadLen,
42+
72 + nttManagerPayloadLen + transceiverPayloadLen,
4343
);
4444
return new TransceiverMessage(
4545
sourceNttManager,
4646
recipientNttManager,
47-
ntt_managerPayload,
47+
nttManagerPayload,
4848
transceiverPayload,
4949
);
5050
}

wormhole-connect/src/routes/ntt/platforms/evm/getMessage.ts

+15
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,21 @@ export const getMessageEvm = async (
3939
const wormholeLog = await getWormholeLogEvm(fromChain, receipt);
4040
const parsedWormholeLog =
4141
Implementation__factory.createInterface().parseLog(wormholeLog);
42+
43+
//const relayingInfoEvent = receipt.logs.find((log) => log.topics[0] === '');
44+
//if (!relayingInfoEvent) {
45+
// throw new Error('RelayingInfo event not found');
46+
//}
47+
//const relayingInfoIface = new ethers.utils.Interface([
48+
// 'event RelayingInfo(uint8 relayingType, uint256 deliveryPayment)',
49+
//]);
50+
//const parsedRelayingInfo = relayingInfoIface.parseLog(relayingInfoEvent);
51+
//const { relayingType, deliveryPayment } = parsedRelayingInfo.args;
52+
//if (relayingType !== RelayingType.Standard {
53+
//} else if (relayingType === relayingType.Manual || relayingType === relayingType.Special) {
54+
//} else {
55+
// throw new Error(`Unexpected relaying type ${relayingType}`);
56+
//}
4257
let payload: Buffer;
4358
let relayerFee = '';
4459
if (parsedWormholeLog.args.sender === token.ntt?.wormholeTransceiver) {

wormhole-connect/src/routes/ntt/platforms/evm/nttManager.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,9 @@ export class NttManagerEvm {
142142

143143
async getInboundQueuedTransfer(
144144
emitterChain: ChainName | ChainId,
145-
nttManagerMessage: NttManagerMessage<NativeTokenTransfer>,
145+
message: NttManagerMessage<NativeTokenTransfer>,
146146
): Promise<InboundQueuedTransfer | undefined> {
147-
const digest = getNttManagerMessageDigest(emitterChain, nttManagerMessage);
147+
const digest = getNttManagerMessageDigest(emitterChain, message);
148148
const queuedTransfer = await this.nttManager.getInboundQueuedTransfer(
149149
digest,
150150
);
@@ -162,9 +162,9 @@ export class NttManagerEvm {
162162

163163
async completeInboundQueuedTransfer(
164164
emitterChain: ChainName | ChainId,
165-
nttManagerMessage: NttManagerMessage<NativeTokenTransfer>,
165+
message: NttManagerMessage<NativeTokenTransfer>,
166166
): Promise<string> {
167-
const digest = getNttManagerMessageDigest(emitterChain, nttManagerMessage);
167+
const digest = getNttManagerMessageDigest(emitterChain, message);
168168
try {
169169
const tx =
170170
await this.nttManager.populateTransaction.completeInboundQueuedTransfer(
@@ -178,9 +178,9 @@ export class NttManagerEvm {
178178

179179
async isMessageExecuted(
180180
emitterChain: ChainName | ChainId,
181-
nttManagerMessage: NttManagerMessage<NativeTokenTransfer>,
181+
message: NttManagerMessage<NativeTokenTransfer>,
182182
): Promise<boolean> {
183-
const digest = getNttManagerMessageDigest(emitterChain, nttManagerMessage);
183+
const digest = getNttManagerMessageDigest(emitterChain, message);
184184
return this.nttManager.isMessageExecuted(digest);
185185
}
186186

@@ -190,15 +190,15 @@ export class NttManagerEvm {
190190

191191
async fetchRedeemTx(
192192
emitterChain: ChainName | ChainId,
193-
nttManagerMessage: NttManagerMessage<NativeTokenTransfer>,
193+
message: NttManagerMessage<NativeTokenTransfer>,
194194
): Promise<string | undefined> {
195-
const digest = getNttManagerMessageDigest(emitterChain, nttManagerMessage);
195+
const digest = getNttManagerMessageDigest(emitterChain, message);
196196
// @ts-ignore
197197
// TODO: why does the abi expect null for the digest?
198198
const eventFilter = this.nttManager.filters.TransferRedeemed(digest);
199199
const provider = wh.mustGetProvider(this.chain);
200200
const currentBlock = await provider.getBlockNumber();
201-
const chainName = wh.toChainName(nttManagerMessage.payload.recipientChain);
201+
const chainName = wh.toChainName(message.payload.recipientChain);
202202
const chainConfig = CHAINS[chainName]!;
203203
const events = await this.nttManager.queryFilter(
204204
eventFilter,

wormhole-connect/src/routes/ntt/platforms/solana/abis/example_native_token_transfers.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// NOTE: The generics have been removed from the IDL to prevent
2+
// runtime errors when the IDL is used in the browser.
13
export type ExampleNativeTokenTransfers = {
24
version: '0.1.0';
35
name: 'example_native_token_transfers';

0 commit comments

Comments
 (0)