tx · 28rFLZUpaFTfsrNinwV1sYCSHdfjkzRJbwFLBgUY5ps8

3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao:  -0.01000000 Waves

2021.12.22 18:17 [1845634] smart account 3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao > SELF 0.00000000 Waves

{ "type": 13, "id": "28rFLZUpaFTfsrNinwV1sYCSHdfjkzRJbwFLBgUY5ps8", "fee": 1000000, "feeAssetId": null, "timestamp": 1640186234670, "version": 1, "sender": "3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao", "senderPublicKey": "HQmnkZjA2Ehwb2iKXAadqRsrXsHGZChU6WfgmHRsMW8t", "proofs": [ "289893Sk8Sp9DZpnB2z4Ak9g21TVSobktdjgS6d9Ei4mRbrYGfoYoLUk9aGtxfsgCwRpWvwwKAAykG947iyv3MbZ" ], "script": "base64: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", "chainId": 84, "height": 1845634, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fx4EaN274qJ7Y6v7kuJArMNcuzi1y1kfouCQeq7MzKCa Next: E5mCvSeSZrZS7Giay7LM2G19PqQdGWpovMSdCzJcbVs8 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let collector = Address(base58'3NAg88thAKj5n9SNE3PkyBj1e8bBM2k8qun')
4+let collector = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "collector"), "")), "")
55
66 let oracle = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "oracle"), "")), "")
77
2121 throw("Match error")
2222 }
2323
24-
25-let feeAssets = {
26- let assets = split(valueOrErrorMessage(getString(this, "fee-assets"), ""), ",")
27- func toAssetIds (acc,assetStr) = (acc :+ getAssetId(assetStr))
28-
29- let $l = assets
30- let $s = size($l)
31- let $acc0 = nil
32- func 1 ($a,$i) = if (($i >= $s))
33- then $a
34- else toAssetIds($a, $l[$i])
35-
36- func 2 ($a,$i) = if (($i >= $s))
37- then $a
38- else throw("List size exceeds 10")
39-
40- 2(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
41- }
4224
4325 func doSwap (pool,payment,assetReceived,minReceived,estReceived) = {
4426 let poolAddress = valueOrErrorMessage(addressFromString(pool), "")
9375 if ((0 >= minReceived))
9476 then throw("")
9577 else {
96- let $t028513056 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
78+ let $t025742779 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
9779 case _ =>
9880 if (if (if ($isInstanceOf($match0._1, "Int"))
9981 then $isInstanceOf($match0._2, "Int")
10789 }
10890 else throw("")
10991 }
110- let balanceBefore = $t028513056._1
111- let received = $t028513056._2
92+ let balanceBefore = $t025742779._1
93+ let received = $t025742779._2
11294 if ((0 >= received))
11395 then throw("")
11496 else {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let collector = Address(base58'3NAg88thAKj5n9SNE3PkyBj1e8bBM2k8qun')
4+let collector = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "collector"), "")), "")
55
66 let oracle = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "oracle"), "")), "")
77
88 let pools = split(valueOrErrorMessage(getString(oracle, "pools"), ""), ",")
99
1010 func getAssetId (asset) = if ((asset == "WAVES"))
1111 then unit
1212 else fromBase58String(asset)
1313
1414
1515 func getBalance (assetId) = match assetId {
1616 case asset: ByteVector =>
1717 assetBalance(this, asset)
1818 case waves: Unit =>
1919 wavesBalance(this).available
2020 case _ =>
2121 throw("Match error")
2222 }
2323
24-
25-let feeAssets = {
26- let assets = split(valueOrErrorMessage(getString(this, "fee-assets"), ""), ",")
27- func toAssetIds (acc,assetStr) = (acc :+ getAssetId(assetStr))
28-
29- let $l = assets
30- let $s = size($l)
31- let $acc0 = nil
32- func 1 ($a,$i) = if (($i >= $s))
33- then $a
34- else toAssetIds($a, $l[$i])
35-
36- func 2 ($a,$i) = if (($i >= $s))
37- then $a
38- else throw("List size exceeds 10")
39-
40- 2(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
41- }
4224
4325 func doSwap (pool,payment,assetReceived,minReceived,estReceived) = {
4426 let poolAddress = valueOrErrorMessage(addressFromString(pool), "")
4527 let assetReceivedId = getAssetId(assetReceived)
4628 if ((0 >= minReceived))
4729 then throw("")
4830 else if ((0 > estReceived))
4931 then throw("")
5032 else {
5133 let balanceBefore = getBalance(assetReceivedId)
5234 if ((balanceBefore == balanceBefore))
5335 then {
5436 let result = if (!(containsElement(pools, pool)))
5537 then throw("")
5638 else {
5739 let poolAssetA = valueOrErrorMessage(getString(poolAddress, "A_asset_id"), "")
5840 let poolAssetB = valueOrErrorMessage(getString(poolAddress, "B_asset_id"), "")
5941 let poolAssetIdA = getAssetId(poolAssetA)
6042 let poolAssetIdB = getAssetId(poolAssetB)
6143 let versionMajor = valueOrErrorMessage(parseInt(split(valueOrErrorMessage(getString(poolAddress, "version"), ""), ".")[0]), "")
6244 let args = if ((versionMajor == 1))
6345 then [minReceived]
6446 else if ((versionMajor == 2))
6547 then if ((0 >= estReceived))
6648 then throw("")
6749 else [estReceived, minReceived]
6850 else throw("")
6951 invoke(poolAddress, "exchange", args, [payment])
7052 }
7153 if ((result == result))
7254 then {
7355 let received = (getBalance(assetReceivedId) - balanceBefore)
7456 if ((received == received))
7557 then $Tuple2(balanceBefore, received)
7658 else throw("Strict value is not equal to itself.")
7759 }
7860 else throw("Strict value is not equal to itself.")
7961 }
8062 else throw("Strict value is not equal to itself.")
8163 }
8264 }
8365
8466
8567 @Callable(inv)
8668 func swap (pool,assetToReceive,minReceived,estReceived) = {
8769 let pmt = if ((size(inv.payments) > 0))
8870 then inv.payments[0]
8971 else throw("")
9072 let assetReceivedId = getAssetId(assetToReceive)
9173 func deductFee (amount) = fraction(amount, 1, 1000)
9274
9375 if ((0 >= minReceived))
9476 then throw("")
9577 else {
96- let $t028513056 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
78+ let $t025742779 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
9779 case _ =>
9880 if (if (if ($isInstanceOf($match0._1, "Int"))
9981 then $isInstanceOf($match0._2, "Int")
10082 else false)
10183 then $isInstanceOf($match0, "(Int, Int)")
10284 else false)
10385 then {
10486 let before = $match0._1
10587 let income = $match0._2
10688 $Tuple2(before, income)
10789 }
10890 else throw("")
10991 }
110- let balanceBefore = $t028513056._1
111- let received = $t028513056._2
92+ let balanceBefore = $t025742779._1
93+ let received = $t025742779._2
11294 if ((0 >= received))
11395 then throw("")
11496 else {
11597 let fee = deductFee(received)
11698 [ScriptTransfer(inv.caller, (received - fee), assetReceivedId), ScriptTransfer(collector, fee, assetReceivedId)]
11799 }
118100 }
119101 }
120102
121103

github/deemru/w8io/873ac7e 
27.71 ms