tx · DHWMjwPMfQHyW7eVe6TJReKP7bMv5HRkr3LR3yxUDLAz

3Ms2ssGBpsFccHLtdb5zApeJ51jU3377r1d:  -0.01000000 Waves

2023.10.12 12:26 [2795199] smart account 3Ms2ssGBpsFccHLtdb5zApeJ51jU3377r1d > SELF 0.00000000 Waves

{ "type": 13, "id": "DHWMjwPMfQHyW7eVe6TJReKP7bMv5HRkr3LR3yxUDLAz", "fee": 1000000, "feeAssetId": null, "timestamp": 1697102755661, "version": 2, "chainId": 84, "sender": "3Ms2ssGBpsFccHLtdb5zApeJ51jU3377r1d", "senderPublicKey": "7E4cNcg8gSYTmNbmLG2kvAiePh9KZoAT7W64shHxCc6n", "proofs": [ "4SVwhtVHfa2C85xuAWP5G2bkLQog93GZcipCFgGSqaKemL6pFMyYJEVg5tcUfhxQhuSn9mFJ8wzimSakn8ahCjqf" ], "script": "base64:BgIPCAISBgoEGBERCBIDCgEBBAARbHBfYWRkcmVzc19wdWJrZXkBIHy+XBhI/rhv/LQUflYon8e8q0PT8nBDeExH6jeAesBrACBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwkApwgBBRFscF9hZGRyZXNzX3B1YmtleQALbmV0d29ya19mZWUAwJaxAgERdmFsaWRhdGVBcmd1bWVudHMECnJlY2lwaWVudHMHYW1vdW50cwpwYXltZW50SWR4CHBheW1lbnRzBA5yZWNpcGllbnRzU2l6ZQkAkAMBBQpyZWNpcGllbnRzBAthbW91bnRzU2l6ZQkAkAMBBQdhbW91bnRzBA5wYXltZW50SWR4U2l6ZQkAkAMBBQpwYXltZW50SWR4BAxwYXltZW50c1NpemUJAJADAQUIcGF5bWVudHMECW1pbkFtb3VudAkAlwMBBQdhbW91bnRzBA1taW5QYXltZW50SWR4CQCXAwEFCnBheW1lbnRJZHgEDW1heFBheW1lbnRJZHgJAJYDAQUKcGF5bWVudElkeAoBEXBheW1lbnRzVmFsaWRhdG9yAgxwYXltZW50QWNjdW0LbmV4dFBheW1lbnQECSR0MDc2ODgwNQUMcGF5bWVudEFjY3VtBA12YWxpZFBheW1lbnRzCAUJJHQwNzY4ODA1Al8xBAFqCAUJJHQwNzY4ODA1Al8yAwkAZwIFAWoFDHBheW1lbnRzU2l6ZQkAlAoCBQ12YWxpZFBheW1lbnRzCQBkAgUBagABCgERYW1vdW50c0FnZ3JlZ2F0b3ICC2Ftb3VudEFjY3VtCm5leHRBbW91bnQECSR0MDk2MDk4OQULYW1vdW50QWNjdW0EBmFtb3VudAgFCSR0MDk2MDk4OQJfMQQBawgFCSR0MDk2MDk4OQJfMgMDCQBnAgUBawUOcmVjaXBpZW50c1NpemUGCQECIT0CCQCRAwIFCnBheW1lbnRJZHgFAWsFAWoJAJQKAgUGYW1vdW50CQBkAgUBawABCQCUCgIJAGQCBQZhbW91bnQFCm5leHRBbW91bnQJAGQCBQFrAAEEEGFnZ3JlZ2F0ZWRBbW91bnQKAAIkbAUHYW1vdW50cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAAAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkF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BwkAZgIFCW1pbkFtb3VudAAABwkAAAIFDW1pblBheW1lbnRJZHgAAAcJAAACBQ1tYXhQYXltZW50SWR4CQBlAgUMcGF5bWVudHNTaXplAAEHCQAAAggFEnBheW1lbnRzVmFsaWRhdGlvbgJfMQUMcGF5bWVudHNTaXplBwIBaQEMbWFzc1RyYW5zZmVyBApyZWNpcGllbnRzB2Ftb3VudHMKcGF5bWVudElkeAphdHRhY2htZW50BANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAMJAQIhPQIIBQFpBmNhbGxlcgUgbWFzc3RyYW5zZmVyX3doaXRlbGlzdGVkX2FkZHJlc3MJAAIBCQCsAgIJAKwCAgISTm90IGFuIEFkbWluIG9ubHkgCQClCAEFIG1hc3N0cmFuc2Zlcl93aGl0ZWxpc3RlZF9hZGRyZXNzAg0gY2FuIHNpZ24gaXQuAwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECK09ubHkgV2F2ZXMgaXMgYWxsb3dlZCB0byBBdHRhY2ggYXMgcGF5bWVudC4DCQEBIQEJARF2YWxpZGF0ZUFyZ3VtZW50cwQFCnJlY2lwaWVudHMFB2Ftb3VudHMFCnBheW1lbnRJZHgIBQFpCHBheW1lbnRzCQACAQIRSW52YWxpZCBhcmd1bWVudHMEDnJlY2lwaWVudHNTaXplCQCQAwEFCnJlY2lwaWVudHMKARhzY3JpcHRUcmFuc2ZlcnNHZW5lcmF0b3ICBWFjY3VtBG5leHQECyR0MDIzNDYyMzc4BQVhY2N1bQQPc2NyaXB0VHJhbnNmZXJzCAULJHQwMjM0NjIzNzgCXzEEAWoIBQskdDAyMzQ2MjM3OAJfMgMJAGcCBQFqBQ5yZWNpcGllbnRzU2l6ZQkAlAoCBQ9zY3JpcHRUcmFuc2ZlcnMJAGQCBQFqAAEJAJQKAgkAzQgCBQ9zY3JpcHRUcmFuc2ZlcnMJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUKcmVjaXBpZW50cwUBagUEbmV4dAgJAJEDAggFAWkIcGF5bWVudHMJAJEDAgUKcGF5bWVudElkeAUBagdhc3NldElkCQBkAgUBagABBAZyZXN1bHQKAAIkbAUHYW1vdW50cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBGHNjcmlwdFRyYW5zZmVyc0dlbmVyYXRvcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQJAJQKAggFBnJlc3VsdAJfMQUEdW5pdAFpAQ9VcGRhdGVMUEJhbGFuY2UBFlBhaWRNYXNzVHJhbnNmZXJBbW91bnQEFHJlYWRfYWNjb3VudF9iYWxhbmNlCAkA7wcBBQR0aGlzB3JlZ3VsYXIEGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzAhRUb3RhbF9Qb29sX0xpcXVpZGl0eQIkTm8gSW5pdGlhbCBQb29sIExpcXVpZGl0eSB3YXMgRm91bmQuBBVyZWNlaXZlZF9vcmRlcl9hbW91bnQJAGUCBRRyZWFkX2FjY291bnRfYmFsYW5jZQUZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQQUdXBkYXRlZF9wb29sX2JhbGFuY2UJAGQCCQBlAgUZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQUWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAUVcmVjZWl2ZWRfb3JkZXJfYW1vdW50BBtQcmV2aW91c01hc3NUcmFuc2ZlckNvdW50ZXIEByRtYXRjaDAJAJoIAgUEdGhpcwIVTWFzc19UcmFuc2Zlcl9Db3VudGVyAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBhUb3RhbE1hc3NUcmFuc2ZlckNvdW50ZXIJAGQCBRtQcmV2aW91c01hc3NUcmFuc2ZlckNvdW50ZXIAAQQYUHJldmlvdXNNYXNzVHJhbnNmZXJTZW5kBAckbWF0Y2gwCQCaCAIFBHRoaXMCGFRvdGFsX01hc3NfVHJhbnNmZXJfU2VuZAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQVVG90YWxNYXNzVHJhbnNmZXJTZW5kCQBkAgUYUHJldmlvdXNNYXNzVHJhbnNmZXJTZW5kBRZQYWlkTWFzc1RyYW5zZmVyQW1vdW50AwkBAiE9AggFAWkGY2FsbGVyBSBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwkAAgEJAKwCAgkArAICAiVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQClCAEFIG1hc3N0cmFuc2Zlcl93aGl0ZWxpc3RlZF9hZGRyZXNzAiIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAZgIFFlBhaWRNYXNzVHJhbnNmZXJBbW91bnQFGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkJAAIBAkNQbGFjZWQgTWFzcyBUcmFuc2ZlciBBbW91bnQgU2l6ZSBpcyBtb3JlIHRoYW4gVG90YWwgUG9vbCBMaXF1aWRpdHkuCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhRUb3RhbF9Qb29sX0xpcXVpZGl0eQUUdXBkYXRlZF9wb29sX2JhbGFuY2UJAMwIAgkBDEludGVnZXJFbnRyeQICFU1hc3NfVHJhbnNmZXJfQ291bnRlcgUYVG90YWxNYXNzVHJhbnNmZXJDb3VudGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhhUb3RhbF9NYXNzX1RyYW5zZmVyX1NlbmQFFVRvdGFsTWFzc1RyYW5zZmVyU2VuZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCkAwEFGFRvdGFsTWFzc1RyYW5zZmVyQ291bnRlcgITX01hc3NfVHJhbnNmZXJfU2VuZAUWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQCnCAEFEWxwX2FkZHJlc3NfcHVia2V5BRZQYWlkTWFzc1RyYW5zZmVyQW1vdW50BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAKcIAQURbHBfYWRkcmVzc19wdWJrZXkFC25ldHdvcmtfZmVlBQR1bml0BQNuaWwAVnpKFQ==", "height": 2795199, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4ypGAEhcaZeUnbdPi9qe93M8NZgczVYr4xAsPuAEycR3 Next: 13bW8pmxgJs6KT8zJAJhx13n9hmz4BqwzW4pZc4JemhQ Diff:
OldNewDifferences
44 let lp_address_pubkey = base58'9Pwum3va2xrkVwsGRNiTeGxBBBNFEDaS9sfkZiSpSvdQ'
55
66 let masstransfer_whitelisted_address = addressFromPublicKey(lp_address_pubkey)
7+
8+let network_fee = 5000000
79
810 func validateArguments (recipients,amounts,paymentIdx,payments) = {
911 let recipientsSize = size(recipients)
1416 let minPaymentIdx = min(paymentIdx)
1517 let maxPaymentIdx = max(paymentIdx)
1618 func paymentsValidator (paymentAccum,nextPayment) = {
17- let $t0740777 = paymentAccum
18- let validPayments = $t0740777._1
19- let j = $t0740777._2
19+ let $t0768805 = paymentAccum
20+ let validPayments = $t0768805._1
21+ let j = $t0768805._2
2022 if ((j >= paymentsSize))
2123 then $Tuple2(validPayments, (j + 1))
2224 else {
2325 func amountsAggregator (amountAccum,nextAmount) = {
24- let $t0932961 = amountAccum
25- let amount = $t0932961._1
26- let k = $t0932961._2
26+ let $t0960989 = amountAccum
27+ let amount = $t0960989._1
28+ let k = $t0960989._2
2729 if (if ((k >= recipientsSize))
2830 then true
2931 else (paymentIdx[k] != j))
9799 else {
98100 let recipientsSize = size(recipients)
99101 func scriptTransfersGenerator (accum,next) = {
100- let $t023182350 = accum
101- let scriptTransfers = $t023182350._1
102- let j = $t023182350._2
102+ let $t023462378 = accum
103+ let scriptTransfers = $t023462378._1
104+ let j = $t023462378._2
103105 if ((j >= recipientsSize))
104106 then $Tuple2(scriptTransfers, (j + 1))
105107 else $Tuple2((scriptTransfers :+ ScriptTransfer(addressFromStringValue(recipients[j]), next, i.payments[paymentIdx[j]].assetId)), (j + 1))
149151 then throw((("This Address is not Authorized. Only " + toString(masstransfer_whitelisted_address)) + " is Authorized Address to Sign it."))
150152 else if ((PaidMassTransferAmount > read_total_pool_liquidity))
151153 then throw("Placed Mass Transfer Amount Size is more than Total Pool Liquidity.")
152- else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("Mass_Transfer_Counter", TotalMassTransferCounter), IntegerEntry("Total_Mass_Transfer_Send", TotalMassTransferSend), IntegerEntry((toString(TotalMassTransferCounter) + "_Mass_Transfer_Send"), PaidMassTransferAmount), ScriptTransfer(addressFromPublicKey(lp_address_pubkey), PaidMassTransferAmount, unit)]
154+ else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("Mass_Transfer_Counter", TotalMassTransferCounter), IntegerEntry("Total_Mass_Transfer_Send", TotalMassTransferSend), IntegerEntry((toString(TotalMassTransferCounter) + "_Mass_Transfer_Send"), PaidMassTransferAmount), ScriptTransfer(addressFromPublicKey(lp_address_pubkey), PaidMassTransferAmount, unit), ScriptTransfer(addressFromPublicKey(lp_address_pubkey), network_fee, unit)]
153155 }
154156
155157
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let lp_address_pubkey = base58'9Pwum3va2xrkVwsGRNiTeGxBBBNFEDaS9sfkZiSpSvdQ'
55
66 let masstransfer_whitelisted_address = addressFromPublicKey(lp_address_pubkey)
7+
8+let network_fee = 5000000
79
810 func validateArguments (recipients,amounts,paymentIdx,payments) = {
911 let recipientsSize = size(recipients)
1012 let amountsSize = size(amounts)
1113 let paymentIdxSize = size(paymentIdx)
1214 let paymentsSize = size(payments)
1315 let minAmount = min(amounts)
1416 let minPaymentIdx = min(paymentIdx)
1517 let maxPaymentIdx = max(paymentIdx)
1618 func paymentsValidator (paymentAccum,nextPayment) = {
17- let $t0740777 = paymentAccum
18- let validPayments = $t0740777._1
19- let j = $t0740777._2
19+ let $t0768805 = paymentAccum
20+ let validPayments = $t0768805._1
21+ let j = $t0768805._2
2022 if ((j >= paymentsSize))
2123 then $Tuple2(validPayments, (j + 1))
2224 else {
2325 func amountsAggregator (amountAccum,nextAmount) = {
24- let $t0932961 = amountAccum
25- let amount = $t0932961._1
26- let k = $t0932961._2
26+ let $t0960989 = amountAccum
27+ let amount = $t0960989._1
28+ let k = $t0960989._2
2729 if (if ((k >= recipientsSize))
2830 then true
2931 else (paymentIdx[k] != j))
3032 then $Tuple2(amount, (k + 1))
3133 else $Tuple2((amount + nextAmount), (k + 1))
3234 }
3335
3436 let aggregatedAmount = {
3537 let $l = amounts
3638 let $s = size($l)
3739 let $acc0 = $Tuple2(0, 0)
3840 func $f0_1 ($a,$i) = if (($i >= $s))
3941 then $a
4042 else amountsAggregator($a, $l[$i])
4143
4244 func $f0_2 ($a,$i) = if (($i >= $s))
4345 then $a
4446 else throw("List size exceeds 100")
4547
4648 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
4749 }
4850 if ((aggregatedAmount._1 == nextPayment.amount))
4951 then $Tuple2((validPayments + 1), (j + 1))
5052 else $Tuple2(validPayments, (j + 1))
5153 }
5254 }
5355
5456 let paymentsValidation = {
5557 let $l = payments
5658 let $s = size($l)
5759 let $acc0 = $Tuple2(0, 0)
5860 func $f0_1 ($a,$i) = if (($i >= $s))
5961 then $a
6062 else paymentsValidator($a, $l[$i])
6163
6264 func $f0_2 ($a,$i) = if (($i >= $s))
6365 then $a
6466 else throw("List size exceeds 10")
6567
6668 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
6769 }
6870 if (if (if (if (if (if (if (if ((recipientsSize == amountsSize))
6971 then (recipientsSize == paymentIdxSize)
7072 else false)
7173 then (recipientsSize > 0)
7274 else false)
7375 then (100 >= recipientsSize)
7476 else false)
7577 then (paymentsSize > 0)
7678 else false)
7779 then (minAmount > 0)
7880 else false)
7981 then (minPaymentIdx == 0)
8082 else false)
8183 then (maxPaymentIdx == (paymentsSize - 1))
8284 else false)
8385 then (paymentsValidation._1 == paymentsSize)
8486 else false
8587 }
8688
8789
8890 @Callable(i)
8991 func massTransfer (recipients,amounts,paymentIdx,attachment) = {
9092 let pmt = value(i.payments[0])
9193 if ((i.caller != masstransfer_whitelisted_address))
9294 then throw((("Not an Admin only " + toString(masstransfer_whitelisted_address)) + " can sign it."))
9395 else if (isDefined(pmt.assetId))
9496 then throw("Only Waves is allowed to Attach as payment.")
9597 else if (!(validateArguments(recipients, amounts, paymentIdx, i.payments)))
9698 then throw("Invalid arguments")
9799 else {
98100 let recipientsSize = size(recipients)
99101 func scriptTransfersGenerator (accum,next) = {
100- let $t023182350 = accum
101- let scriptTransfers = $t023182350._1
102- let j = $t023182350._2
102+ let $t023462378 = accum
103+ let scriptTransfers = $t023462378._1
104+ let j = $t023462378._2
103105 if ((j >= recipientsSize))
104106 then $Tuple2(scriptTransfers, (j + 1))
105107 else $Tuple2((scriptTransfers :+ ScriptTransfer(addressFromStringValue(recipients[j]), next, i.payments[paymentIdx[j]].assetId)), (j + 1))
106108 }
107109
108110 let result = {
109111 let $l = amounts
110112 let $s = size($l)
111113 let $acc0 = $Tuple2(nil, 0)
112114 func $f0_1 ($a,$i) = if (($i >= $s))
113115 then $a
114116 else scriptTransfersGenerator($a, $l[$i])
115117
116118 func $f0_2 ($a,$i) = if (($i >= $s))
117119 then $a
118120 else throw("List size exceeds 100")
119121
120122 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
121123 }
122124 $Tuple2(result._1, unit)
123125 }
124126 }
125127
126128
127129
128130 @Callable(i)
129131 func UpdateLPBalance (PaidMassTransferAmount) = {
130132 let read_account_balance = wavesBalance(this).regular
131133 let read_total_pool_liquidity = valueOrErrorMessage(getInteger(this, "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
132134 let received_order_amount = (read_account_balance - read_total_pool_liquidity)
133135 let updated_pool_balance = ((read_total_pool_liquidity - PaidMassTransferAmount) + received_order_amount)
134136 let PreviousMassTransferCounter = match getInteger(this, "Mass_Transfer_Counter") {
135137 case a: Int =>
136138 a
137139 case _ =>
138140 0
139141 }
140142 let TotalMassTransferCounter = (PreviousMassTransferCounter + 1)
141143 let PreviousMassTransferSend = match getInteger(this, "Total_Mass_Transfer_Send") {
142144 case a: Int =>
143145 a
144146 case _ =>
145147 0
146148 }
147149 let TotalMassTransferSend = (PreviousMassTransferSend + PaidMassTransferAmount)
148150 if ((i.caller != masstransfer_whitelisted_address))
149151 then throw((("This Address is not Authorized. Only " + toString(masstransfer_whitelisted_address)) + " is Authorized Address to Sign it."))
150152 else if ((PaidMassTransferAmount > read_total_pool_liquidity))
151153 then throw("Placed Mass Transfer Amount Size is more than Total Pool Liquidity.")
152- else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("Mass_Transfer_Counter", TotalMassTransferCounter), IntegerEntry("Total_Mass_Transfer_Send", TotalMassTransferSend), IntegerEntry((toString(TotalMassTransferCounter) + "_Mass_Transfer_Send"), PaidMassTransferAmount), ScriptTransfer(addressFromPublicKey(lp_address_pubkey), PaidMassTransferAmount, unit)]
154+ else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("Mass_Transfer_Counter", TotalMassTransferCounter), IntegerEntry("Total_Mass_Transfer_Send", TotalMassTransferSend), IntegerEntry((toString(TotalMassTransferCounter) + "_Mass_Transfer_Send"), PaidMassTransferAmount), ScriptTransfer(addressFromPublicKey(lp_address_pubkey), PaidMassTransferAmount, unit), ScriptTransfer(addressFromPublicKey(lp_address_pubkey), network_fee, unit)]
153155 }
154156
155157

github/deemru/w8io/026f985 
40.75 ms