darkfi_money_contract::client::transfer_v1

Function make_transfer_call

Source
pub fn make_transfer_call(
    keypair: Keypair,
    recipient: PublicKey,
    value: u64,
    token_id: TokenId,
    coins: Vec<OwnCoin>,
    tree: MerkleTree,
    output_spend_hook: Option<FuncId>,
    output_user_data: Option<Base>,
    mint_zkbin: ZkBinary,
    mint_pk: ProvingKey,
    burn_zkbin: ZkBinary,
    burn_pk: ProvingKey,
    half_split: bool,
) -> Result<(MoneyTransferParamsV1, TransferCallSecrets, Vec<OwnCoin>)>
Expand description

Make a simple anonymous transfer call.

  • keypair: Caller’s keypair
  • recipient: Recipient’s public key
  • value: Amount that we want to send to the recipient
  • token_id: Token ID that we want to send to the recipient
  • coins: Set of OwnCoin we’re given to use in this builder
  • tree: Merkle tree of coins used to create inclusion proofs
  • `output_spend_hook: Optional contract spend hook to use in the output, not applicable to the change
  • `output_user_data: Optional user data to use in the output, not applicable to the change
  • mint_zkbin: Mint_V1 zkas circuit ZkBinary
  • mint_pk: Proving key for the Mint_V1 zk circuit
  • burn_zkbin: Burn_V1 zkas circuit ZkBinary
  • burn_pk: Proving key for the Burn_V1 zk circuit
  • half_split: Flag indicating to split the output coin into two equal halves.

Returns a tuple of:

  • The actual call data
  • Secret values such as blinds
  • A list of the spent coins