tx · Fx4EaN274qJ7Y6v7kuJArMNcuzi1y1kfouCQeq7MzKCa

3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao:  -0.01000000 Waves

2021.12.22 17:32 [1845593] smart account 3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao > SELF 0.00000000 Waves

{ "type": 13, "id": "Fx4EaN274qJ7Y6v7kuJArMNcuzi1y1kfouCQeq7MzKCa", "fee": 1000000, "feeAssetId": null, "timestamp": 1640183581069, "version": 1, "sender": "3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao", "senderPublicKey": "HQmnkZjA2Ehwb2iKXAadqRsrXsHGZChU6WfgmHRsMW8t", "proofs": [ "5ToybxoyEoiqHURHTj9Dc3oQdcpq2jtRgaAX5Z4F6BnbLncJ3UV88apTcsin8gamwYozDvJv9qeJBKN5qheppLo1" ], "script": "base64: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", "chainId": 84, "height": 1845593, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: hJc2yCLUiTiqXXmM6Yfdxcx3mkVCU52bBFs721pry4S Next: 28rFLZUpaFTfsrNinwV1sYCSHdfjkzRJbwFLBgUY5ps8 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let collector = Address(base58'')
4+let collector = Address(base58'3NAg88thAKj5n9SNE3PkyBj1e8bBM2k8qun')
55
66 let oracle = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "oracle"), "")), "")
77
9393 if ((0 >= minReceived))
9494 then throw("")
9595 else {
96- let $t028163021 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
96+ let $t028513056 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
9797 case _ =>
9898 if (if (if ($isInstanceOf($match0._1, "Int"))
9999 then $isInstanceOf($match0._2, "Int")
107107 }
108108 else throw("")
109109 }
110- let balanceBefore = $t028163021._1
111- let received = $t028163021._2
110+ let balanceBefore = $t028513056._1
111+ let received = $t028513056._2
112112 if ((0 >= received))
113113 then throw("")
114114 else {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let collector = Address(base58'')
4+let collector = Address(base58'3NAg88thAKj5n9SNE3PkyBj1e8bBM2k8qun')
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
2424
2525 let feeAssets = {
2626 let assets = split(valueOrErrorMessage(getString(this, "fee-assets"), ""), ",")
2727 func toAssetIds (acc,assetStr) = (acc :+ getAssetId(assetStr))
2828
2929 let $l = assets
3030 let $s = size($l)
3131 let $acc0 = nil
3232 func 1 ($a,$i) = if (($i >= $s))
3333 then $a
3434 else toAssetIds($a, $l[$i])
3535
3636 func 2 ($a,$i) = if (($i >= $s))
3737 then $a
3838 else throw("List size exceeds 10")
3939
4040 2(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
4141 }
4242
4343 func doSwap (pool,payment,assetReceived,minReceived,estReceived) = {
4444 let poolAddress = valueOrErrorMessage(addressFromString(pool), "")
4545 let assetReceivedId = getAssetId(assetReceived)
4646 if ((0 >= minReceived))
4747 then throw("")
4848 else if ((0 > estReceived))
4949 then throw("")
5050 else {
5151 let balanceBefore = getBalance(assetReceivedId)
5252 if ((balanceBefore == balanceBefore))
5353 then {
5454 let result = if (!(containsElement(pools, pool)))
5555 then throw("")
5656 else {
5757 let poolAssetA = valueOrErrorMessage(getString(poolAddress, "A_asset_id"), "")
5858 let poolAssetB = valueOrErrorMessage(getString(poolAddress, "B_asset_id"), "")
5959 let poolAssetIdA = getAssetId(poolAssetA)
6060 let poolAssetIdB = getAssetId(poolAssetB)
6161 let versionMajor = valueOrErrorMessage(parseInt(split(valueOrErrorMessage(getString(poolAddress, "version"), ""), ".")[0]), "")
6262 let args = if ((versionMajor == 1))
6363 then [minReceived]
6464 else if ((versionMajor == 2))
6565 then if ((0 >= estReceived))
6666 then throw("")
6767 else [estReceived, minReceived]
6868 else throw("")
6969 invoke(poolAddress, "exchange", args, [payment])
7070 }
7171 if ((result == result))
7272 then {
7373 let received = (getBalance(assetReceivedId) - balanceBefore)
7474 if ((received == received))
7575 then $Tuple2(balanceBefore, received)
7676 else throw("Strict value is not equal to itself.")
7777 }
7878 else throw("Strict value is not equal to itself.")
7979 }
8080 else throw("Strict value is not equal to itself.")
8181 }
8282 }
8383
8484
8585 @Callable(inv)
8686 func swap (pool,assetToReceive,minReceived,estReceived) = {
8787 let pmt = if ((size(inv.payments) > 0))
8888 then inv.payments[0]
8989 else throw("")
9090 let assetReceivedId = getAssetId(assetToReceive)
9191 func deductFee (amount) = fraction(amount, 1, 1000)
9292
9393 if ((0 >= minReceived))
9494 then throw("")
9595 else {
96- let $t028163021 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
96+ let $t028513056 = match doSwap(pool, pmt, assetToReceive, minReceived, estReceived) {
9797 case _ =>
9898 if (if (if ($isInstanceOf($match0._1, "Int"))
9999 then $isInstanceOf($match0._2, "Int")
100100 else false)
101101 then $isInstanceOf($match0, "(Int, Int)")
102102 else false)
103103 then {
104104 let before = $match0._1
105105 let income = $match0._2
106106 $Tuple2(before, income)
107107 }
108108 else throw("")
109109 }
110- let balanceBefore = $t028163021._1
111- let received = $t028163021._2
110+ let balanceBefore = $t028513056._1
111+ let received = $t028513056._2
112112 if ((0 >= received))
113113 then throw("")
114114 else {
115115 let fee = deductFee(received)
116116 [ScriptTransfer(inv.caller, (received - fee), assetReceivedId), ScriptTransfer(collector, fee, assetReceivedId)]
117117 }
118118 }
119119 }
120120
121121

github/deemru/w8io/873ac7e 
31.69 ms