我需要使用 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)