我需要使用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)发布于 2021-10-22 12:06:39
好吧,如果你事先知道你的费用,为什么不把它包含在参数列表recipient1, recipient2, amount, fee中。所以你可以相应地减去它。或者,如果它始终是2 Ada,并且将始终是2 Ada,那么只需在合同中对其进行硬编码。否则,合同应该如何知道进入你钱包的费用(C)和进入另一个钱包的费用(B)。
https://stackoverflow.com/questions/69538902
复制相似问题