tx · 7vd7uAYCni4sqmubcULm1FaF8rUdHedG693J7CQrEu1R

3N6qtbZbSPVcvJ1pk87e9ahdsZTjHN8e5mL:  -0.01000000 Waves

2021.08.18 11:54 [1663563] smart account 3N6qtbZbSPVcvJ1pk87e9ahdsZTjHN8e5mL > SELF 0.00000000 Waves

{ "type": 13, "id": "7vd7uAYCni4sqmubcULm1FaF8rUdHedG693J7CQrEu1R", "fee": 1000000, "feeAssetId": null, "timestamp": 1629276915749, "version": 2, "chainId": 84, "sender": "3N6qtbZbSPVcvJ1pk87e9ahdsZTjHN8e5mL", "senderPublicKey": "EYAKsFBespqQveBrfmX29rsehBJrSwQ3B6yN4ADyw8Kx", "proofs": [ "3XbqpXhxYWKLqb3Z9bZtPMETaU2V7wWpjh72RitDwz7R4BMAwkt3iiPPTToymvGFDAEFvnjJYfFzfkGirVVDTMNb" ], "script": "base64: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", "height": 1663563, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 56fSfBoxrmwNmy3ibacNyMP5KRwLQMVgPVKfcZw4ykur Next: 7PBgbC1b53QzfyYZWAt9xrKrmbfxW54qmCay3kqZKRER Diff:
OldNewDifferences
7171 }
7272 }
7373 }
74- if ((routing == routingSize))
75- then {
76- let ammountToRecieve = assetBalance(this, assetToUserSend)
77-[ScriptTransfer(i.caller, ammountToRecieve, assetToUserSend)]
78- }
79- else nil
74+ let amountToRecieve = assetBalance(this, assetToUserSend)
75+ if (if ((routing == routingSize))
76+ then (amountToRecieve >= minAmountToReceive)
77+ else false)
78+ then [ScriptTransfer(i.caller, amountToRecieve, assetToUserSend)]
79+ else throw("routing != routingSize or amountToRecieve < minAmountToReceive")
8080 }
8181
8282
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func routingTrade (exchangers,args,assetsToPay,assetToUserSend,minAmountToReceive) = {
88 let routingSize = size(exchangers)
99 func exchangeFold (accumulated,exchanger) = if ((accumulated == 0))
1010 then {
1111 let exchangerAddress = addressFromStringValue(exchanger)
1212 let $t09321006 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
1313 let pmtAmount = $t09321006._1
1414 let pmtAssetId = $t09321006._2
1515 if ((assetsToPay[0] != pmtAssetId))
1616 then throw("Incorrect payment and assetsToPay array")
1717 else {
1818 let inv = invoke(exchangerAddress, "exchange", [args[accumulated]], [AttachedPayment(pmtAssetId, pmtAmount)])
1919 if ((inv == inv))
2020 then (accumulated + 1)
2121 else throw("Strict value is not equal to itself.")
2222 }
2323 }
2424 else if (if ((accumulated > 0))
2525 then (routingSize > accumulated)
2626 else false)
2727 then {
2828 let exchangerAddress = addressFromStringValue(exchanger)
2929 let pmtAssetId = assetsToPay[accumulated]
3030 let pmtAmount = assetBalance(this, pmtAssetId)
3131 let inv = invoke(exchangerAddress, "exchange", [args[accumulated]], [AttachedPayment(pmtAssetId, pmtAmount)])
3232 if ((inv == inv))
3333 then (accumulated + 1)
3434 else throw("Strict value is not equal to itself.")
3535 }
3636 else accumulated
3737
3838 let routing = {
3939 let $list17551791 = exchangers
4040 let $size17551791 = size($list17551791)
4141 let $acc017551791 = 0
4242 if (($size17551791 == 0))
4343 then $acc017551791
4444 else {
4545 let $acc117551791 = exchangeFold($acc017551791, $list17551791[0])
4646 if (($size17551791 == 1))
4747 then $acc117551791
4848 else {
4949 let $acc217551791 = exchangeFold($acc117551791, $list17551791[1])
5050 if (($size17551791 == 2))
5151 then $acc217551791
5252 else {
5353 let $acc317551791 = exchangeFold($acc217551791, $list17551791[2])
5454 if (($size17551791 == 3))
5555 then $acc317551791
5656 else {
5757 let $acc417551791 = exchangeFold($acc317551791, $list17551791[3])
5858 if (($size17551791 == 4))
5959 then $acc417551791
6060 else {
6161 let $acc517551791 = exchangeFold($acc417551791, $list17551791[4])
6262 if (($size17551791 == 5))
6363 then $acc517551791
6464 else {
6565 let $acc617551791 = exchangeFold($acc517551791, $list17551791[5])
6666 throw("List size exceed 5")
6767 }
6868 }
6969 }
7070 }
7171 }
7272 }
7373 }
74- if ((routing == routingSize))
75- then {
76- let ammountToRecieve = assetBalance(this, assetToUserSend)
77-[ScriptTransfer(i.caller, ammountToRecieve, assetToUserSend)]
78- }
79- else nil
74+ let amountToRecieve = assetBalance(this, assetToUserSend)
75+ if (if ((routing == routingSize))
76+ then (amountToRecieve >= minAmountToReceive)
77+ else false)
78+ then [ScriptTransfer(i.caller, amountToRecieve, assetToUserSend)]
79+ else throw("routing != routingSize or amountToRecieve < minAmountToReceive")
8080 }
8181
8282

github/deemru/w8io/c3f4982 
26.26 ms