【问题标题】:How to divide amount unequally in Plutus Smart Contracts如何在 Plutus 智能合约中分配不均等的金额
【发布时间】:2021-11-30 22:53:28
【问题描述】:

我需要使用 Plutus 制作智能合约,将金额不均等地分配给 2 个钱包,以便我可以为每笔交易定义自定义费用。我正在使用this documentation。我需要的是,我想将金额分成两个不相等的金额,并将每个金额发送到一个单独的钱包。假设用户想从他的钱包 A 向钱包 B 发送 7 美元。我之前为每笔交易定义的额外费用是 2 美元。使用下面的代码块,我如何将 9$ 分成 7$ 和 2$,然后将它们发送到钱包 B 和 C(C 是我的钱包)。

validateSplit :: SplitData -> () -> ScriptContext -> Bool
validateSplit SplitData{recipient1, recipient2, amount} _ ScriptContext{scriptContextTxInfo} =
    let half = Ada.divide amount 2 in
    Ada.fromValue (valuePaidTo scriptContextTxInfo recipient1) >= half &&
    Ada.fromValue (valuePaidTo scriptContextTxInfo recipient2) >= (amount - half)

【问题讨论】:

    标签: smartcontracts fee plutus


    【解决方案1】:

    如果您事先知道您的费用,为什么不将其包含在参数列表中recipient1, recipient2, amount, fee。那么你可以相应地减去它。或者,如果它总是 2 Ada 并且永远是 2 Ada,那么只需在合约中硬编码即可。合约应该如何知道您的钱包(C)的费用是多少,另一个钱包(B)应该有多少。

    【讨论】:

      猜你喜欢
      • 2022-01-08
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 2022-01-18
      • 2021-04-26
      • 2023-03-15
      相关资源
      最近更新 更多