SDK: Relayer fixes for running tests in Tilt (#3178)
This commit is contained in:
parent
b350918214
commit
8d79fdd287
|
@ -108,11 +108,13 @@ const optionalParams = {
|
|||
environment: network,
|
||||
sourceChainProvider: source.provider,
|
||||
targetChainProviders: myMap,
|
||||
wormholeRelayerAddress: source.wormholeRelayerAddress
|
||||
};
|
||||
const optionalParamsTarget = {
|
||||
environment: network,
|
||||
sourceChainProvider: target.provider,
|
||||
targetChainProviders: myMap,
|
||||
wormholeRelayerAddress: target.wormholeRelayerAddress
|
||||
};
|
||||
|
||||
// for signing wormhole messages
|
||||
|
@ -127,10 +129,15 @@ const REASONABLE_GAS_LIMIT = 500000;
|
|||
const TOO_LOW_GAS_LIMIT = 10000;
|
||||
const REASONABLE_GAS_LIMIT_FORWARDS = 900000;
|
||||
|
||||
const wormholeRelayerAddresses = new Map<ChainName, string>();
|
||||
wormholeRelayerAddresses.set(sourceChain, source.wormholeRelayerAddress);
|
||||
wormholeRelayerAddresses.set(targetChain, target.wormholeRelayerAddress);
|
||||
|
||||
const getStatus = async (
|
||||
txHash: string,
|
||||
_sourceChain?: ChainName
|
||||
): Promise<string> => {
|
||||
|
||||
const info = (await relayer.getWormholeRelayerInfo(
|
||||
_sourceChain || sourceChain,
|
||||
txHash,
|
||||
|
@ -138,6 +145,7 @@ const getStatus = async (
|
|||
environment: network,
|
||||
targetChainProviders: myMap,
|
||||
sourceChainProvider: myMap.get(_sourceChain || sourceChain),
|
||||
wormholeRelayerAddresses
|
||||
}
|
||||
)) as relayer.DeliveryInfo;
|
||||
return info.targetChainStatus.events[0].status;
|
||||
|
@ -420,7 +428,7 @@ describe("Wormhole Relayer Tests", () => {
|
|||
const info = (await relayer.getWormholeRelayerInfo(
|
||||
sourceChain,
|
||||
tx.hash,
|
||||
optionalParams
|
||||
{wormholeRelayerAddresses, ...optionalParams}
|
||||
)) as relayer.DeliveryInfo;
|
||||
|
||||
await waitForRelay();
|
||||
|
@ -492,7 +500,7 @@ describe("Wormhole Relayer Tests", () => {
|
|||
const info = (await relayer.getWormholeRelayerInfo(
|
||||
sourceChain,
|
||||
rx.transactionHash,
|
||||
optionalParams
|
||||
{wormholeRelayerAddresses, ...optionalParams}
|
||||
)) as relayer.DeliveryInfo;
|
||||
|
||||
console.log("Redelivering message");
|
||||
|
@ -516,11 +524,14 @@ describe("Wormhole Relayer Tests", () => {
|
|||
value: value,
|
||||
gasLimit: REASONABLE_GAS_LIMIT,
|
||||
},
|
||||
{ transport: NodeHttpTransport() }
|
||||
{ transport: NodeHttpTransport() },
|
||||
{wormholeRelayerAddress: source.wormholeRelayerAddress}
|
||||
);
|
||||
|
||||
console.log("redelivery tx:", redeliveryReceipt.hash);
|
||||
|
||||
await redeliveryReceipt.wait();
|
||||
|
||||
await waitForRelay();
|
||||
|
||||
console.log("Checking if message was relayed after redelivery");
|
||||
|
|
|
@ -42,6 +42,7 @@ export type InfoRequestParams = {
|
|||
export type GetPriceOptParams = {
|
||||
environment?: Network;
|
||||
receiverValue?: ethers.BigNumberish;
|
||||
wormholeRelayerAddress?: string;
|
||||
deliveryProviderAddress?: string;
|
||||
sourceChainProvider?: ethers.providers.Provider;
|
||||
};
|
||||
|
@ -60,7 +61,7 @@ export async function getPriceAndRefundInfo(
|
|||
throw Error(
|
||||
"No default RPC for this chain; pass in your own provider (as sourceChainProvider)"
|
||||
);
|
||||
const wormholeRelayerAddress = getWormholeRelayerAddress(
|
||||
const wormholeRelayerAddress = optionalParams?.wormholeRelayerAddress || getWormholeRelayerAddress(
|
||||
sourceChain,
|
||||
environment
|
||||
);
|
||||
|
@ -189,7 +190,7 @@ export function stringifyWormholeRelayerInfo(info: DeliveryInfo): string {
|
|||
info.deliveryInstruction.targetAddress.toString("hex") !==
|
||||
"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
) {
|
||||
stringifiedInfo += `Found delivery request in transaction ${info.sourceTransactionHash} on ${info.sourceChain}\n`;
|
||||
stringifiedInfo += `Found delivery request in transaction ${info.sourceTransactionHash} on ${info.sourceChain}\nfrom sender ${info.deliveryInstruction.senderAddress.toString("hex")} from ${info.sourceChain} with delivery sequence number ${info.sourceDeliverySequenceNumber}\n`;
|
||||
const numMsgs = info.deliveryInstruction.vaaKeys.length;
|
||||
|
||||
const payload = info.deliveryInstruction.payload.toString("hex");
|
||||
|
|
|
@ -19,13 +19,14 @@ export async function resendRaw(
|
|||
newGasLimit: BigNumber | number,
|
||||
newReceiverValue: BigNumber | number,
|
||||
deliveryProviderAddress: string,
|
||||
overrides?: ethers.PayableOverrides
|
||||
) {
|
||||
overrides?: ethers.PayableOverrides,
|
||||
wormholeRelayerAddress?: string,
|
||||
): Promise<ethers.providers.TransactionResponse> {
|
||||
const provider = signer.provider;
|
||||
|
||||
if (!provider) throw Error("No provider on signer");
|
||||
|
||||
const wormholeRelayer = getWormholeRelayer(sourceChain, environment, signer);
|
||||
const wormholeRelayer = getWormholeRelayer(sourceChain, environment, signer, wormholeRelayerAddress);
|
||||
|
||||
return wormholeRelayer.resendToEvm(
|
||||
vaaKeyToVaaKeyStruct(vaaKey),
|
||||
|
@ -37,6 +38,10 @@ export async function resendRaw(
|
|||
);
|
||||
}
|
||||
|
||||
type ResendOptionalParams = {
|
||||
wormholeRelayerAddress?: string;
|
||||
}
|
||||
|
||||
export async function resend(
|
||||
signer: ethers.Signer,
|
||||
sourceChain: ChainName,
|
||||
|
@ -48,8 +53,9 @@ export async function resend(
|
|||
deliveryProviderAddress: string,
|
||||
wormholeRPCs: string[],
|
||||
overrides: ethers.PayableOverrides,
|
||||
extraGrpcOpts = {}
|
||||
) {
|
||||
extraGrpcOpts = {},
|
||||
optionalParams?: ResendOptionalParams
|
||||
): Promise<ethers.providers.TransactionResponse> {
|
||||
const targetChainId = CHAINS[targetChain];
|
||||
const originalVAA = await getSignedVAAWithRetry(
|
||||
wormholeRPCs,
|
||||
|
@ -95,11 +101,7 @@ export async function resend(
|
|||
);
|
||||
}
|
||||
|
||||
const wormholeRelayer = getWormholeRelayer(sourceChain, environment, signer);
|
||||
const deliveryProvider = getDeliveryProvider(
|
||||
deliveryProviderAddress,
|
||||
signer.provider!
|
||||
);
|
||||
const wormholeRelayer = getWormholeRelayer(sourceChain, environment, signer, optionalParams?.wormholeRelayerAddress);
|
||||
|
||||
const [deliveryPrice, refundPerUnitGas]: [BigNumber, BigNumber] =
|
||||
await wormholeRelayer[
|
||||
|
@ -132,6 +134,7 @@ export async function resend(
|
|||
newGasLimit,
|
||||
newReceiverValue,
|
||||
deliveryProviderAddress,
|
||||
overrides
|
||||
overrides,
|
||||
optionalParams?.wormholeRelayerAddress
|
||||
);
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ export type SendOptionalParams = {
|
|||
}
|
||||
];
|
||||
deliveryProviderAddress?: string;
|
||||
wormholeRelayerAddress?: string;
|
||||
consistencyLevel?: ethers.BigNumberish;
|
||||
refundChainId?: ChainId;
|
||||
refundAddress?: string;
|
||||
|
@ -42,7 +43,7 @@ export async function sendToEvm(
|
|||
const targetChainId = CHAINS[targetChain];
|
||||
|
||||
const environment = sendOptionalParams?.environment || "MAINNET";
|
||||
const wormholeRelayerAddress = getWormholeRelayerAddress(
|
||||
const wormholeRelayerAddress = sendOptionalParams?.wormholeRelayerAddress || getWormholeRelayerAddress(
|
||||
sourceChain,
|
||||
environment
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue