@@ -238,182 +238,6 @@ interface IWormholeRelayerSend is IWormholeRelayerBase {
238
238
uint8 consistencyLevel
239
239
) external payable returns (uint64 sequence );
240
240
241
- /**
242
- * @notice Performs the same function as a `send`, except:
243
- * 1) Can only be used during a delivery (i.e. in execution of `receiveWormholeMessages`)
244
- * 2) Is paid for (along with any other calls to forward) by (any msg.value passed in) + (refund leftover from current delivery)
245
- * 3) Only executes after `receiveWormholeMessages` is completed (and thus does not return a sequence number)
246
- *
247
- * The refund from the delivery currently in progress will not be sent to the user; it will instead
248
- * be paid to the delivery provider to perform the instruction specified here
249
- *
250
- * Publishes an instruction for the same delivery provider (or default, if the same one doesn't support the new target chain)
251
- * to relay a payload to the address `targetAddress` on chain `targetChain`
252
- * with gas limit `gasLimit` and with `msg.value` equal to `receiverValue`
253
- *
254
- * The following equation must be satisfied (sum_f indicates summing over all forwards requested in `receiveWormholeMessages`):
255
- * (refund amount from current execution of receiveWormholeMessages) + sum_f [msg.value_f]
256
- * >= sum_f [quoteEVMDeliveryPrice(targetChain_f, receiverValue_f, gasLimit_f)]
257
- *
258
- * The difference between the two sides of the above inequality will be added to `paymentForExtraReceiverValue` of the first forward requested
259
- *
260
- * Any refunds (from leftover gas) from this forward will be paid to the same refundChain and refundAddress specified for the current delivery.
261
- *
262
- * @param targetChain in Wormhole Chain ID format
263
- * @param targetAddress address to call on targetChain (that implements IWormholeReceiver), in Wormhole bytes32 format
264
- * @param payload arbitrary bytes to pass in as parameter in call to `targetAddress`
265
- * @param receiverValue msg.value that delivery provider should pass in for call to `targetAddress` (in targetChain currency units)
266
- * @param gasLimit gas limit with which to call `targetAddress`.
267
- */
268
- function forwardPayloadToEvm (
269
- uint16 targetChain ,
270
- address targetAddress ,
271
- bytes memory payload ,
272
- uint256 receiverValue ,
273
- uint256 gasLimit
274
- ) external payable ;
275
-
276
- /**
277
- * @notice Performs the same function as a `send`, except:
278
- * 1) Can only be used during a delivery (i.e. in execution of `receiveWormholeMessages`)
279
- * 2) Is paid for (along with any other calls to forward) by (any msg.value passed in) + (refund leftover from current delivery)
280
- * 3) Only executes after `receiveWormholeMessages` is completed (and thus does not return a sequence number)
281
- *
282
- * The refund from the delivery currently in progress will not be sent to the user; it will instead
283
- * be paid to the delivery provider to perform the instruction specified here
284
- *
285
- * Publishes an instruction for the same delivery provider (or default, if the same one doesn't support the new target chain)
286
- * to relay a payload and VAAs specified by `vaaKeys` to the address `targetAddress` on chain `targetChain`
287
- * with gas limit `gasLimit` and with `msg.value` equal to `receiverValue`
288
- *
289
- * The following equation must be satisfied (sum_f indicates summing over all forwards requested in `receiveWormholeMessages`):
290
- * (refund amount from current execution of receiveWormholeMessages) + sum_f [msg.value_f]
291
- * >= sum_f [quoteEVMDeliveryPrice(targetChain_f, receiverValue_f, gasLimit_f)]
292
- *
293
- * The difference between the two sides of the above inequality will be added to `paymentForExtraReceiverValue` of the first forward requested
294
- *
295
- * Any refunds (from leftover gas) from this forward will be paid to the same refundChain and refundAddress specified for the current delivery.
296
- *
297
- * @param targetChain in Wormhole Chain ID format
298
- * @param targetAddress address to call on targetChain (that implements IWormholeReceiver), in Wormhole bytes32 format
299
- * @param payload arbitrary bytes to pass in as parameter in call to `targetAddress`
300
- * @param receiverValue msg.value that delivery provider should pass in for call to `targetAddress` (in targetChain currency units)
301
- * @param gasLimit gas limit with which to call `targetAddress`.
302
- * @param vaaKeys Additional VAAs to pass in as parameter in call to `targetAddress`
303
- */
304
- function forwardVaasToEvm (
305
- uint16 targetChain ,
306
- address targetAddress ,
307
- bytes memory payload ,
308
- uint256 receiverValue ,
309
- uint256 gasLimit ,
310
- VaaKey[] memory vaaKeys
311
- ) external payable ;
312
-
313
- /**
314
- * @notice Performs the same function as a `send`, except:
315
- * 1) Can only be used during a delivery (i.e. in execution of `receiveWormholeMessages`)
316
- * 2) Is paid for (along with any other calls to forward) by (any msg.value passed in) + (refund leftover from current delivery)
317
- * 3) Only executes after `receiveWormholeMessages` is completed (and thus does not return a sequence number)
318
- *
319
- * The refund from the delivery currently in progress will not be sent to the user; it will instead
320
- * be paid to the delivery provider to perform the instruction specified here
321
- *
322
- * Publishes an instruction for the delivery provider at `deliveryProviderAddress`
323
- * to relay a payload and VAAs specified by `vaaKeys` to the address `targetAddress` on chain `targetChain`
324
- * with gas limit `gasLimit` and with `msg.value` equal to
325
- * receiverValue + (arbitrary amount that is paid for by paymentForExtraReceiverValue of this chain's wei) in targetChain wei.
326
- *
327
- * Any refunds (from leftover gas) will be sent to `refundAddress` on chain `refundChain`
328
- * `targetAddress` must implement the IWormholeReceiver interface
329
- *
330
- * The following equation must be satisfied (sum_f indicates summing over all forwards requested in `receiveWormholeMessages`):
331
- * (refund amount from current execution of receiveWormholeMessages) + sum_f [msg.value_f]
332
- * >= sum_f [quoteEVMDeliveryPrice(targetChain_f, receiverValue_f, gasLimit_f, deliveryProviderAddress_f) + paymentForExtraReceiverValue_f]
333
- *
334
- * The difference between the two sides of the above inequality will be added to `paymentForExtraReceiverValue` of the first forward requested
335
- *
336
- * @param targetChain in Wormhole Chain ID format
337
- * @param targetAddress address to call on targetChain (that implements IWormholeReceiver), in Wormhole bytes32 format
338
- * @param payload arbitrary bytes to pass in as parameter in call to `targetAddress`
339
- * @param receiverValue msg.value that delivery provider should pass in for call to `targetAddress` (in targetChain currency units)
340
- * @param paymentForExtraReceiverValue amount (in current chain currency units) to spend on extra receiverValue
341
- * (in addition to the `receiverValue` specified)
342
- * @param gasLimit gas limit with which to call `targetAddress`. Any units of gas unused will be refunded according to the
343
- * `targetChainRefundPerGasUnused` rate quoted by the delivery provider
344
- * @param refundChain The chain to deliver any refund to, in Wormhole Chain ID format
345
- * @param refundAddress The address on `refundChain` to deliver any refund to, in Wormhole bytes32 format
346
- * @param deliveryProviderAddress The address of the desired delivery provider's implementation of IDeliveryProvider
347
- * @param vaaKeys Additional VAAs to pass in as parameter in call to `targetAddress`
348
- * @param consistencyLevel Consistency level with which to publish the delivery instructions - see
349
- * https://book.wormhole.com/wormhole/3_coreLayerContracts.html?highlight=consistency#consistency-levels
350
- */
351
- function forwardToEvm (
352
- uint16 targetChain ,
353
- address targetAddress ,
354
- bytes memory payload ,
355
- uint256 receiverValue ,
356
- uint256 paymentForExtraReceiverValue ,
357
- uint256 gasLimit ,
358
- uint16 refundChain ,
359
- address refundAddress ,
360
- address deliveryProviderAddress ,
361
- VaaKey[] memory vaaKeys ,
362
- uint8 consistencyLevel
363
- ) external payable ;
364
-
365
- /**
366
- * @notice Performs the same function as a `send`, except:
367
- * 1) Can only be used during a delivery (i.e. in execution of `receiveWormholeMessages`)
368
- * 2) Is paid for (along with any other calls to forward) by (any msg.value passed in) + (refund leftover from current delivery)
369
- * 3) Only executes after `receiveWormholeMessages` is completed (and thus does not return a sequence number)
370
- *
371
- * The refund from the delivery currently in progress will not be sent to the user; it will instead
372
- * be paid to the delivery provider to perform the instruction specified here
373
- *
374
- * Publishes an instruction for the delivery provider at `deliveryProviderAddress`
375
- * to relay a payload and VAAs specified by `vaaKeys` to the address `targetAddress` on chain `targetChain`
376
- * with `msg.value` equal to
377
- * receiverValue + (arbitrary amount that is paid for by paymentForExtraReceiverValue of this chain's wei) in targetChain wei.
378
- *
379
- * Any refunds (from leftover gas) will be sent to `refundAddress` on chain `refundChain`
380
- * `targetAddress` must implement the IWormholeReceiver interface
381
- *
382
- * The following equation must be satisfied (sum_f indicates summing over all forwards requested in `receiveWormholeMessages`):
383
- * (refund amount from current execution of receiveWormholeMessages) + sum_f [msg.value_f]
384
- * >= sum_f [quoteDeliveryPrice(targetChain_f, receiverValue_f, encodedExecutionParameters_f, deliveryProviderAddress_f) + paymentForExtraReceiverValue_f]
385
- *
386
- * The difference between the two sides of the above inequality will be added to `paymentForExtraReceiverValue` of the first forward requested
387
- *
388
- * @param targetChain in Wormhole Chain ID format
389
- * @param targetAddress address to call on targetChain (that implements IWormholeReceiver), in Wormhole bytes32 format
390
- * @param payload arbitrary bytes to pass in as parameter in call to `targetAddress`
391
- * @param receiverValue msg.value that delivery provider should pass in for call to `targetAddress` (in targetChain currency units)
392
- * @param paymentForExtraReceiverValue amount (in current chain currency units) to spend on extra receiverValue
393
- * (in addition to the `receiverValue` specified)
394
- * @param encodedExecutionParameters encoded information on how to execute delivery that may impact pricing
395
- * e.g. for version EVM_V1, this is a struct that encodes the `gasLimit` with which to call `targetAddress`
396
- * @param refundChain The chain to deliver any refund to, in Wormhole Chain ID format
397
- * @param refundAddress The address on `refundChain` to deliver any refund to, in Wormhole bytes32 format
398
- * @param deliveryProviderAddress The address of the desired delivery provider's implementation of IDeliveryProvider
399
- * @param vaaKeys Additional VAAs to pass in as parameter in call to `targetAddress`
400
- * @param consistencyLevel Consistency level with which to publish the delivery instructions - see
401
- * https://book.wormhole.com/wormhole/3_coreLayerContracts.html?highlight=consistency#consistency-levels
402
- */
403
- function forward (
404
- uint16 targetChain ,
405
- bytes32 targetAddress ,
406
- bytes memory payload ,
407
- uint256 receiverValue ,
408
- uint256 paymentForExtraReceiverValue ,
409
- bytes memory encodedExecutionParameters ,
410
- uint16 refundChain ,
411
- bytes32 refundAddress ,
412
- address deliveryProviderAddress ,
413
- VaaKey[] memory vaaKeys ,
414
- uint8 consistencyLevel
415
- ) external payable ;
416
-
417
241
/**
418
242
* @notice Requests a previously published delivery instruction to be redelivered
419
243
* (e.g. with a different delivery provider)
@@ -561,9 +385,7 @@ interface IWormholeRelayerSend is IWormholeRelayerBase {
561
385
interface IWormholeRelayerDelivery is IWormholeRelayerBase {
562
386
enum DeliveryStatus {
563
387
SUCCESS,
564
- RECEIVER_FAILURE,
565
- FORWARD_REQUEST_FAILURE,
566
- FORWARD_REQUEST_SUCCESS
388
+ RECEIVER_FAILURE
567
389
}
568
390
569
391
enum RefundStatus {
@@ -585,16 +407,11 @@ interface IWormholeRelayerDelivery is IWormholeRelayerBase {
585
407
* @custom:member gasUsed - The amount of gas that was used to call your target contract
586
408
* @custom:member status:
587
409
* - RECEIVER_FAILURE, if the target contract reverts
588
- * - SUCCESS, if the target contract doesn't revert and no forwards were requested
589
- * - FORWARD_REQUEST_FAILURE, if the target contract doesn't revert, forwards were requested,
590
- * but provided/leftover funds were not sufficient to cover them all
591
- * - FORWARD_REQUEST_SUCCESS, if the target contract doesn't revert and all forwards are covered
410
+ * - SUCCESS, if the target contract doesn't revert
592
411
* @custom:member additionalStatusInfo:
593
- * - If status is SUCCESS or FORWARD_REQUEST_SUCCESS , then this is empty.
412
+ * - If status is SUCCESS, then this is empty.
594
413
* - If status is RECEIVER_FAILURE, this is `RETURNDATA_TRUNCATION_THRESHOLD` bytes of the
595
414
* return data (i.e. potentially truncated revert reason information).
596
- * - If status is FORWARD_REQUEST_FAILURE, this is also the revert data - the reason the forward failed.
597
- * This will be either an encoded Cancelled, DeliveryProviderReverted, or DeliveryProviderPaymentFailed error
598
415
* @custom:member refundStatus - Result of the refund. REFUND_SUCCESS or REFUND_FAIL are for
599
416
* refunds where targetChain=refundChain; the others are for targetChain!=refundChain,
600
417
* where a cross chain refund is necessary
@@ -663,13 +480,8 @@ error RequestedGasLimitTooLow();
663
480
error DeliveryProviderDoesNotSupportTargetChain (address relayer , uint16 chainId );
664
481
error DeliveryProviderCannotReceivePayment ();
665
482
666
- //When calling `forward()` on the WormholeRelayer if no delivery is in progress
667
- error NoDeliveryInProgress ();
668
483
//When calling `delivery()` a second time even though a delivery is already in progress
669
484
error ReentrantDelivery (address msgSender , address lockedBy );
670
- //When any other contract but the delivery target calls `forward()` on the WormholeRelayer while a
671
- // delivery is in progress
672
- error ForwardRequestFromWrongAddress (address msgSender , address deliveryTarget );
673
485
674
486
error InvalidPayloadId (uint8 parsed , uint8 expected );
675
487
error InvalidPayloadLength (uint256 received , uint256 expected );
@@ -687,7 +499,6 @@ error RequesterNotWormholeRelayer();
687
499
688
500
//When trying to relay a `DeliveryInstruction` to any other chain but the one it was specified for
689
501
error TargetChainIsNotThisChain (uint16 targetChain );
690
- error ForwardNotSufficientlyFunded (uint256 amountOfFunds , uint256 amountOfFundsNeeded );
691
502
//When a `DeliveryOverride` contains a gas limit that's less than the original
692
503
error InvalidOverrideGasLimit ();
693
504
//When a `DeliveryOverride` contains a receiver value that's less than the original
0 commit comments