0

我需要使用 Plutus 制定智能合约,将金额不均等地分配给 2 个钱包,以便我可以为每笔交易定义自定义费用。我正在使用这个文档。我需要的是,我想将金额分成两个不相等的金额,并将每个金额发送到一个单独的钱包。假设用户想从他的钱包 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)
4

1 回答 1

0

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

于 2021-10-22T12:06:39.350 回答