recall_unclaimed_transfer

@mount("ft4.crosschain.recall_unclaimed_transfer") operation recall_unclaimed_transfer(init_transfer_tx: gtx_transaction, init_tx_op_index: integer)(source)

Recalls an unclaimed transfer. A transfer does not generally need to be claimed, unless account registration on crosschain transfers is configured on the target chain.

If it is, when a crosschain transfer is sent to that chain and the recipient account does not exist, the transfer is considered the start of an account registration process. The account is not automatically created, and account registration strategies must be used to claim the transfer and create an account.

If this is not done within the transfer deadline, the transfer can be recalled on the target chain, unapplied on all intermediate chains if any, and reverted on the init chain to move the funds back to the original sender.

Throws "ACCOUNT REGISTRATION DISABLED" if this chain is not configured to allow account registration on crosschain transfers. This means that a transfer can never end up unclaimed.

Throws "WRONG BLOCKCHAIN" if the transfer has a target chain different from this one.

Throws "INVALID TRANSACTION" if the transaction has either:

  • never been applied here

  • already been recalled

Throws if any conditions on the recall of crosschain account registration (defined as extensions to recall_on_crosschain_transfer) are not met

Throws if init_tx_op_index does not point to init_transfer on init_transfer_tx

Throws if the operation preceding the init_transfer on init_transfer_tx is not an auth operation

This operation can be called by anyone after the timeout has expired.

Parameters

init_transfer_tx

the init transaction, which contains init_transfer, as it was submitted to the init chain

init_tx_op_index

the index of the init_transfer operation in init_transfer_tx

See also

core.auth.is_auth_op

for information on auth operations

core.crosschain.applied_transfers

to know more about the crosschain transfer workflow

core.crosschain.recalled_transfers

to know more about transfer recalling

core.crosschain.create_on_crosschain_transfers

for more information on registering accounts with crosschain transfers

core.accounts.strategies.register_account

for more information on register account strategies