.. _module-splice-amulet-twosteptransfer-66725: Splice.Amulet.TwoStepTransfer ============================= Generic code for a two\-step transfer of amulet\. The first step is to lock the amulet, the second step is to transfer it\. Data Types ---------- .. _type-splice-amulet-twosteptransfer-twosteptransfer-31697: **data** `TwoStepTransfer `_ .. _constr-splice-amulet-twosteptransfer-twosteptransfer-922: `TwoStepTransfer `_ .. list-table:: :widths: 15 10 30 :header-rows: 1 * - Field - Type - Description * - dso - `Party `_ - * - sender - `Party `_ - * - receiver - `Party `_ - * - amount - `Decimal `_ - * - lockContext - `Text `_ - Context description of the lock\. This is used to display the reason for the lock in wallets\. * - transferBefore - `Time `_ - * - transferBeforeDeadline - `Text `_ - Name of the deadline for the transfer * - provider - `Party `_ - Provider that should be marked as the app provider on the second step\. * - allowFeaturing - `Bool `_ - Whether the second step can be featured\. **instance** `GetField `_ \"allowFeaturing\" `TwoStepTransfer `_ `Bool `_ **instance** `GetField `_ \"amount\" `TwoStepTransfer `_ `Decimal `_ **instance** `GetField `_ \"dso\" `TwoStepTransfer `_ `Party `_ **instance** `GetField `_ \"lockContext\" `TwoStepTransfer `_ `Text `_ **instance** `GetField `_ \"provider\" `TwoStepTransfer `_ `Party `_ **instance** `GetField `_ \"receiver\" `TwoStepTransfer `_ `Party `_ **instance** `GetField `_ \"sender\" `TwoStepTransfer `_ `Party `_ **instance** `GetField `_ \"transferBefore\" `TwoStepTransfer `_ `Time `_ **instance** `GetField `_ \"transferBeforeDeadline\" `TwoStepTransfer `_ `Text `_ **instance** `SetField `_ \"allowFeaturing\" `TwoStepTransfer `_ `Bool `_ **instance** `SetField `_ \"amount\" `TwoStepTransfer `_ `Decimal `_ **instance** `SetField `_ \"dso\" `TwoStepTransfer `_ `Party `_ **instance** `SetField `_ \"lockContext\" `TwoStepTransfer `_ `Text `_ **instance** `SetField `_ \"provider\" `TwoStepTransfer `_ `Party `_ **instance** `SetField `_ \"receiver\" `TwoStepTransfer `_ `Party `_ **instance** `SetField `_ \"sender\" `TwoStepTransfer `_ `Party `_ **instance** `SetField `_ \"transferBefore\" `TwoStepTransfer `_ `Time `_ **instance** `SetField `_ \"transferBeforeDeadline\" `TwoStepTransfer `_ `Text `_ Functions --------- .. _function-splice-amulet-twosteptransfer-holdingtotransferinputs-13824: `holdingToTransferInputs `_ \: :ref:`ForOwner ` \-\> :ref:`PaymentTransferContext ` \-\> \[`ContractId `_ Holding\] \-\> `Update `_ \[:ref:`TransferInput `\] Converting a set of holding inputs to inputs for an amulet transfer, unlocking any expired LockedAmulet holdings on the fly\. .. _function-splice-amulet-twosteptransfer-preparetwosteptransfer-60675: `prepareTwoStepTransfer `_ \: `TwoStepTransfer `_ \-\> `Time `_ \-\> \[`ContractId `_ Holding\] \-\> :ref:`PaymentTransferContext ` \-\> `Update `_ (`ContractId `_ :ref:`LockedAmulet `, \[`ContractId `_ Holding\], Metadata) Prepare a two\-step transfer of amulet by locking the funds\. .. _function-splice-amulet-twosteptransfer-executetwosteptransfer-18767: `executeTwoStepTransfer `_ \: `TwoStepTransfer `_ \-\> `ContractId `_ :ref:`LockedAmulet ` \-\> ExtraArgs \-\> `Update `_ (\[`ContractId `_ Holding\], \[`ContractId `_ Holding\], Metadata) .. _function-splice-amulet-twosteptransfer-aborttwosteptransfer-11048: `abortTwoStepTransfer `_ \: `TwoStepTransfer `_ \-\> `ContractId `_ :ref:`LockedAmulet ` \-\> ExtraArgs \-\> `Update `_ \[`ContractId `_ Holding\] .. _function-splice-amulet-twosteptransfer-holdingfeesforduration-17830: `holdingFeesForDuration `_ \: `RelTime `_ \-\> :ref:`OpenMiningRound ` \-\> `Decimal `_