tx · CrTnvWj6YwWvho7A8KJgPcTRmy9YF4MGMYMHh6dhFCVS

3PPXURH3JHTa2y88YNU8MHSxYQxc3r4yNN8:  -0.01000000 Waves

2023.05.22 10:01 [3654354] smart account 3PPXURH3JHTa2y88YNU8MHSxYQxc3r4yNN8 > SELF 0.00000000 Waves

{ "type": 13, "id": "CrTnvWj6YwWvho7A8KJgPcTRmy9YF4MGMYMHh6dhFCVS", "fee": 1000000, "feeAssetId": null, "timestamp": 1684738938716, "version": 2, "chainId": 87, "sender": "3PPXURH3JHTa2y88YNU8MHSxYQxc3r4yNN8", "senderPublicKey": "CrQPazuNEDqUovxEeoF732n56g4jsD98L1LKp8qRsg2U", "proofs": [ "3MafZRyr3EBxftNabxcA8LuXA6yhBNwXnxVshBaADEyhm5b7JUKsS7DjyX19XGw2x7ZW2BK3eCVSrHmpUMumnHY2" ], "script": "base64:BgLkDggCEgAiBlNjYWxlNiIMU2NhbGU2QmlnSW50IgpaZXJvQmlnSW50IgZTY2FsZTgiDFNjYWxlOEJpZ0ludCIDU0VQIgdJblNjYWxlIgpJbkRlY2ltYWxzIg1JblNjYWxlQmlnSW50IgdJbkFzc2V0IgZjYWxsZXIiCHJlY2VpdmVyIg13eFN3YXBBZGRyZXNzIg50aGlzQWRkcmVzc1N0ciIKZ2V0QmFsYW5jZSIFYXNzZXQiD2dldEFzc2V0T3JXYXZlcyIIYXNzZXRTdHIiCWluQmFsYW5jZSIPaW5CYWxhbmNlQmlnSW50IgtnZXRTd29wUG9vbCIEcG9vbCILYXNzZXRJZEFTdHIiC2Fzc2V0SWRCU3RyIghhc3NldElkQSIIYXNzZXRJZEIiCGJhbGFuY2VBIghiYWxhbmNlQiIGb3V0RmVlIhRrZXlBZGRpdGlvbmFsQmFsYW5jZSIHYXNzZXRJZCIWa2V5U3Rha2luZ0Fzc2V0QmFsYW5jZSIaZ2V0QWRkaXRpb25hbEJhbGFuY2VPclplcm8iHGdldFN0YWtpbmdBc3NldEJhbGFuY2VPclplcm8iE2dldFd4QWNjb3VudEJhbGFuY2UiDWJhbGFuY2VPblBvb2wiDHRvdGFsQmFsYW5jZSIJZ2V0V3hQb29sIgtwcm90b2NvbEZlZSIHcG9vbEZlZSIFaW5GZWUiCGNhbGNTd2FwIglwbXRBbW91bnQiCXRva2VuRnJvbSIHdG9rZW5UbyILY2xlYW5BbW91bnQiEGFtb3VudFdpdGhvdXRGZWUiDWFtb3VudFdpdGhGZWUiDGVzdGltYXRlU3dhcCIIcG9vbEluZm8iB2luQXNzZXQiCGluQW1vdW50Iglyb3V0ZUFyZ3MiCGRhcHBBcmdzIg1lc3RpbWF0ZVJvdXRlIgVwb29sMSIFcG9vbDIiBXBvb2wzIgxwb29sMVJldmVyc2UiDHBvb2wyUmV2ZXJzZSIMcG9vbDNSZXZlcnNlIgNhMTIiA2EyMSIDYTIzIgNhMzIiA2EzMSIDYTEzIg1hYURlbm9taW5hdG9yIgRhYTEzIgRhYTMxIgxhRGVub21pbmF0b3IiAWEiAmFhIgVkZWx0YSIFaW5wdXQiBXN3YXAxIgVzd2FwMiIFc3dhcDMiCmludm9rZVN3YXAiBGFyZ3MiDmN1cnJlbnRCYWxhbmNlIg10cmltbWVkQW1vdW50IgxyZXN1bHRBbW91bnQiD3N3b3BfYnRjd3hnX3h0biIOc3dvcF9lZ2dfd2F2ZXMiD3N3b3BfZXRod3hnX3h0biINc3dvcF9uc2J0X3h0biIOc3dvcF9wbHV0b194dG4iDHN3b3BfcHdyX3h0biIPc3dvcF9wdXp6bGVfeHRuIhFzd29wX3B1enpsZV93YXZlcyINc3dvcF9yYWNlX2VnZyINc3dvcF9zdXJmX3h0biINc3dvcF9zd29wX3h0biIPc3dvcF9zd29wX3dhdmVzIg5zd29wX3ZpcmVzX3h0biIRc3dvcF93YXZlc19idGN3eGciDnN3b3Bfd2F2ZXNfeHRuIg9zd29wX3dhdmVzX2V1cm4iEnN3b3Bfd2F2ZXNfdXNkdHBwdCINc3dvcF93ZXN0X3h0biILc3dvcF93eF94dG4iEHN3b3BfeHRuX3VzZHR3eGciDXd4X2J0Y3d4Z194dG4iDHd4X2VnZ193YXZlcyIKd3hfZWdnX3h0biIPd3hfZXRod3hnX3dhdmVzIg13eF9ldGh3eGdfeHRuIgt3eF9ldXJuX3h0biINd3hfbnNidF93YXZlcyILd3hfbnNidF94dG4iDnd4X3BsdXRvX3dhdmVzIgx3eF9wbHV0b194dG4iD3d4X3B1enpsZV93YXZlcyINd3hfcHV6emxlX3h0biIMd3hfcHdyX3dhdmVzIgt3eF9yYWNlX3h0biINd3hfc3VyZl93YXZlcyIPd3hfc3dhdmVzX3dhdmVzIg13eF9zd2F2ZXNfeHRuIg13eF9zd29wX3dhdmVzIgt3eF9zd29wX3h0biIOd3hfdXNkdHBwdF94dG4iDnd4X3ZpcmVzX3dhdmVzIgx3eF92aXJlc194dG4iD3d4X3dhdmVzX2J0Y3d4ZyIMd3hfd2F2ZXNfeHRuIhB3eF93YXZlc191c2R0cHB0IhB3eF93YXZlc191c2R0d3hnIg13eF93ZXN0X3dhdmVzIgt3eF93ZXN0X3h0biINd3hfd3hfdXNkdHd4ZyILd3hfd3hfd2F2ZXMiCXd4X3d4X3h0biIGcm91dGVzIgFpIg1hY2N1bUZ1bmN0aW9uIgVhY2N1bSIEbmV4dCIKZXN0aW1hdGlvbiIEZm9sZCICJGwiAiRzIgUkYWNjMCIFJGYw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ZAJfMgQCYWwDBQJhaAgFAmFlAl8yCAUCYWUCXzEEAmFtAwUCYWgIBQJhZQJfMQgFAmFlAl8yBAJhbgMFAmFpCAUCYWYCXzIIBQJhZgJfMQQCYW8DBQJhaQgFAmFmAl8xCAUCYWYCXzIEAmFwCQC3AgIFAmFsCQC8AgMJALwCAwUCYWsIBQJhZAJfOAUBYggFAmFlAl83BQFiBAJhcQkAvAIDBQJhagUCYWwFAmFwBAJhcgkAvAIDCQC8AgMJALwCAwUCYWsFAmFtBQJhcAgFAmFlAl83BQFiCAUCYWUCXzgFAWIEAmFzCQC3AgIFAmFuCQC8AgMJALwCAwUCYXIIBQJhZAJfNwUBYggFAmFkAl84BQFiBAJhdAkAvAIDBQJhcQUCYW4FAmFzBAJhdQkAvAIDCQC8AgMJALwCAwUCYXIFAmFvBQJhcwgFAmFmAl83BQFiCAUCYWYCXzgFAWIEAmF2CQC8AgMJALgCAgkBCnNxcnRCaWdJbnQECQC8AgMJALwCAwkAvAIDBQJhdQUCYXQFAWkIBQJhZAJfNwUBYggFAmFkAl84BQFiBQFoBQFoBQdDRUlMSU5HBQJhdAUBYggFAmFkAl83AwkAwAICBQFjBQJhdgkAlAoCAAAFA25pbAQCYXcDCQC/AgIFAmF2BQF0BQF0BQJhdgQCYXgJAQFXAwUCYWQFAWoFAmF3BAJheQkBAVcDBQJhZQgFAmF4Al8xCAUCYXgCXzIEAmF6CQEBVwMFAmFmCAUCYXkCXzEIBQJheQJfMgkAlAoCCQCgAwEJALgCAggFAmF6Al8yBQJhdwkAzAgCCQCXCgUIBQJhZAJfOQgFAmF4Al8zCAUCYXgCXzQFAWoJAKADAQUCYXcJAMwIAgkAlwoFCAUCYWUCXzkIBQJheQJfMwgFAmF5Al80CAUCYXgCXzEJAKADAQgFAmF4Al8yCQDMCAIJAJcKBQgFAmFmAl85CAUCYXoCXzMIBQJhegJfNAgFAmF5Al8xCQCgAwEIBQJheQJfMgUDbmlsAQJhQQECYUIEAmFDCQEBbwEIBQJhQgJfNAQCYUQDCQBmAggFAmFCAl81BQJhQwUCYUMIBQJhQgJfNQQCYUUDCQAAAggFAmFCAl80BQFqBQJhRAMJAGYCBQJhQwgFAmFCAl81BQJhQwUCYUQJAPwHBAgFAmFCAl8xCAUCYUICXzII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CQDMCAIJAJgKBgUCYVQFAmJmBQJhSQYGBwkAzAgCCQCYCgYFAmJnBQJiZgUCYVQGBwcJAMwIAgkAmAoGBQJhVAUCYVEFAmJyBgYHCQDMCAIJAJgKBgUCYVAFAmJxBQJhVAYHBwkAzAgCCQCYCgYFAmJrBQJiagUCYVQGBwcJAMwIAgkAmAoGBQJhVAUCYU0FAmFMBgYHCQDMCAIJAJgKBgUCYVQFAmJoBQJiaQYGBwkAzAgCCQCYCgYFAmFKBQJiaAUCYVQGBwcJAMwIAgkAmAoGBQJhWQUCYnkFAmFUBwYHCQDMCAIJAJgKBgUCYkQFAmJCBQJhWQYHBgkAzAgCCQCYCgYFAmJ3BQJiYQUCYmIGBgcJAMwIAgkAmAoGBQJiYgUCYUcFAmJ3BgcHCQDMCAIJAJgKBgUCYm0FAmFOBQJiYgYHBwkAzAgCCQCYCgYFAmJ3BQJiYwUCYUgGBgcJAMwIAgkAmAoGBQJiZAUCYmMFAmJ3BgcHCQDMCAIJAJgKBgUCYmUFAmFVBQJidwYGBwkAzAgCCQCYCgYFAmJ3BQJiegUCYVcGBgcJAMwIAgkAmAoGBQJiQQUCYnoFAmJ3BgcHCQDMCAIJAJgKBgUCYncFAmFTBQJhRgYHBwkAzAgCCQCYCgYFAmJ3BQJidgUCYVoGBwcJAMwIAgkAmAoGBQJhSwUCYmwFAmJ3BgcHCQDMCAIJAJgKBgUCYnMFAmFWBQJidwYGBwkAzAgCCQCYCgYFAmJ3BQJieAUCYnMGBwcJAMwIAgkAmAoGBQJidwUCYmMFAmJkBgYHCQDMCAIJAJgKBgUCYncFAmJ6BQJiQQYGBwkAzAgCCQCYCgYFAmFaBQJidgUCYncGBgcJAMwIAgkAmAoGBQJidwUCYnQFAmJ1BgYHCQDMCAIJAJgKBgUCYncFAmJvBQJicAYGBwkAzAgCCQCYCgYFAmJ3BQJiZgUCYmcGBgcJAMwIAgkAmAoGBQJiZwUCYmYFAmJ3BgcHCQDMCAIJAJgKBgUCYncFAmJxBQJicgYGBwkAzAgCCQCYCgYFAmJyBQJicQUCYncGBwcFA25pbAECYkYBB2RlZmF1bHQAAwkBAiE9AggFAmJGBmNhbGxlcgUBawkAAgECAjpECgECYkcCAmJIAmJJBAJiSgkBAmFjBggFAmJJAl8xCAUCYkkCXzIIBQJiSQJfMwgFAmJJAl80CAUCYkkCXzUIBQJiSQJfNgkAlAoCCQDNCAIIBQJiSAJfMQgFAmJKAl8xCQDNCAIIBQJiSAJfMggFAmJKAl8yBAJiSwoAAmJMBQJiRQoAAmJNCQCQAwEFAmJMCgACYk4JAJQKAgUDbmlsBQNuaWwKAQJiTwICYlACYlEDCQBnAgUCYlEFAmJNBQJiUAkBAmJHAgUCYlAJAJEDAgUCYkwFAmJRCgECYlICAmJQAmJRAwkAZwIFAmJRBQJiTQUCYlAJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA0MAkBAmJSAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgkBAmJPAgUCYk4AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoBAJiUwkAlgMBCAUCYksCXzEDCQBnAgAABQJiUwkAAgECDUVzdGltYXRlIGZhaWwEAmJUCQCRAwIIBQJiSwJfMgkBBXZhbHVlAQkAzwgCCAUCYksCXzEFAmJTBAJiVQkBAmFBAQkAkQMCBQJiVAAAAwkAAAIFAmJVBQJiVQQCYlYJAQJhQQEJAJEDAgUCYlQAAQMJAAACBQJiVgUCYlYEAmJXCQECYUEBCQCRAwIFAmJUAAIDCQAAAgUCYlcFAmJXBAJiWAkAZQIJAQFvAQUBagUBcwQCYlkDCQBmAgkAagIIBQJiRgNmZWUACgAACQBlAgUCYlgAgNrECQkAZQIFAmJYAKDCHgMJAGcCAAAFAmJZCQACAQIMRXhlY3V0ZSBmYWlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAWwFAmJYBQFqBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AwEF2FQ==", "height": 3654354, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AYNdyUb6zw8vQPovojSE9yeTFiia2i5FSey7jQ5KoKfG Next: 9kjnzfHtkZy6UfEdKAxuS8QrcvFdwHa1MHvaSNQSywN5 Diff:
OldNewDifferences
306306 then {
307307 let profit = (getBalance(InAsset) - inBalance)
308308 let pureProfit = if (((i.fee % 10) > 0))
309- then (profit - 30000000)
310- else (profit - 300000)
309+ then (profit - 20000000)
310+ else (profit - 500000)
311311 if ((0 >= pureProfit))
312312 then throw("Execute fail")
313313 else [ScriptTransfer(receiver, profit, InAsset)]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let Scale6 = 1000000
55
66 let Scale6BigInt = toBigInt(Scale6)
77
88 let ZeroBigInt = toBigInt(0)
99
1010 let Scale8 = 100000000
1111
1212 let Scale8BigInt = toBigInt(Scale8)
1313
1414 let SEP = "__"
1515
1616 let InScale = 1000000
1717
1818 let InDecimals = 6
1919
2020 let InScaleBigInt = toBigInt(InScale)
2121
2222 let InAsset = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
2323
2424 let caller = Address(base58'3P5ji1wvrDLQxgK5c3cGbiSwiZfu5x1S3VR')
2525
2626 let receiver = Address(base58'3P5ji1wvrDLQxgK5c3cGbiSwiZfu5x1S3VR')
2727
2828 let wxSwapAddress = Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93')
2929
3030 let thisAddressStr = toString(this)
3131
3232 func getBalance (asset) = if ((asset == unit))
3333 then wavesBalance(this).regular
3434 else assetBalance(this, value(asset))
3535
3636
3737 func getAssetOrWaves (assetStr) = if ((assetStr == "WAVES"))
3838 then unit
3939 else fromBase58String(assetStr)
4040
4141
4242 let inBalance = getBalance(InAsset)
4343
4444 let inBalanceBigInt = toBigInt(inBalance)
4545
4646 func getSwopPool (pool) = {
4747 let assetIdAStr = getStringValue(pool, "A_asset_id")
4848 let assetIdBStr = getStringValue(pool, "B_asset_id")
4949 let assetIdA = getAssetOrWaves(assetIdAStr)
5050 let assetIdB = getAssetOrWaves(assetIdBStr)
5151 let balanceA = getIntegerValue(pool, "A_asset_balance")
5252 let balanceB = getIntegerValue(pool, "B_asset_balance")
5353 let outFee = (Scale6BigInt - toBigInt(getIntegerValue(pool, "commission")))
5454 $Tuple9(toBigInt(balanceA), toBigInt(balanceB), assetIdA, assetIdB, assetIdAStr, assetIdBStr, Scale6BigInt, outFee, pool)
5555 }
5656
5757
5858 func keyAdditionalBalance (assetId) = makeString(["%s%s", "stakedBalance", assetId], SEP)
5959
6060
6161 func keyStakingAssetBalance (assetId) = makeString(["%s%s", "shareAssetBalance", assetId], SEP)
6262
6363
6464 func getAdditionalBalanceOrZero (pool,assetId) = valueOrElse(getInteger(pool, keyAdditionalBalance(assetId)), 0)
6565
6666
6767 func getStakingAssetBalanceOrZero (pool,assetId) = valueOrElse(getInteger(pool, keyStakingAssetBalance(assetId)), 0)
6868
6969
7070 func getWxAccountBalance (pool,assetId) = {
7171 let balanceOnPool = if ((assetId == "WAVES"))
7272 then wavesBalance(pool).available
7373 else assetBalance(pool, fromBase58String(assetId))
7474 let totalBalance = ((balanceOnPool + getAdditionalBalanceOrZero(pool, assetId)) - getStakingAssetBalanceOrZero(pool, assetId))
7575 max([0, totalBalance])
7676 }
7777
7878
7979 func getWxPool (pool) = {
8080 let assetIdAStr = getStringValue(pool, "%s__amountAsset")
8181 let assetIdBStr = getStringValue(pool, "%s__priceAsset")
8282 let assetIdA = getAssetOrWaves(assetIdAStr)
8383 let assetIdB = getAssetOrWaves(assetIdBStr)
8484 let balanceA = getWxAccountBalance(pool, assetIdAStr)
8585 let balanceB = getWxAccountBalance(pool, assetIdBStr)
8686 let protocolFee = getIntegerValue(wxSwapAddress, "%s__protocolFee")
8787 let poolFee = getIntegerValue(wxSwapAddress, "%s__poolFee")
8888 let inFee = (Scale6BigInt - fraction(toBigInt((protocolFee + poolFee)), Scale6BigInt, Scale8BigInt))
8989 $Tuple9(toBigInt(balanceA), toBigInt(balanceB), assetIdA, assetIdB, assetIdAStr, assetIdBStr, inFee, Scale6BigInt, wxSwapAddress)
9090 }
9191
9292
9393 func calcSwap (pmtAmount,tokenFrom,tokenTo,inFee,outFee) = {
9494 let cleanAmount = fraction(pmtAmount, inFee, Scale6BigInt)
9595 let amountWithoutFee = fraction(tokenTo, cleanAmount, (cleanAmount + tokenFrom))
9696 let amountWithFee = fraction(amountWithoutFee, outFee, Scale6BigInt)
9797 amountWithFee
9898 }
9999
100100
101101 func estimateSwap (poolInfo,inAsset,inAmount) = {
102102 let routeArgs = if ((inAsset == poolInfo._3))
103103 then $Tuple3(poolInfo._4, poolInfo._6, calcSwap(inAmount, poolInfo._1, poolInfo._2, poolInfo._7, poolInfo._8))
104104 else $Tuple3(poolInfo._3, poolInfo._5, calcSwap(inAmount, poolInfo._2, poolInfo._1, poolInfo._7, poolInfo._8))
105105 let dappArgs = if ((poolInfo._9 == wxSwapAddress))
106106 then $Tuple2("swap", [0, routeArgs._2, thisAddressStr])
107107 else $Tuple2("exchange", [1])
108108 $Tuple4(routeArgs._1, routeArgs._3, dappArgs._1, dappArgs._2)
109109 }
110110
111111
112112 func estimateRoute (pool1,pool2,pool3,pool1Reverse,pool2Reverse,pool3Reverse) = {
113113 let a12 = if (pool1Reverse)
114114 then pool1._2
115115 else pool1._1
116116 let a21 = if (pool1Reverse)
117117 then pool1._1
118118 else pool1._2
119119 let a23 = if (pool2Reverse)
120120 then pool2._2
121121 else pool2._1
122122 let a32 = if (pool2Reverse)
123123 then pool2._1
124124 else pool2._2
125125 let a31 = if (pool3Reverse)
126126 then pool3._2
127127 else pool3._1
128128 let a13 = if (pool3Reverse)
129129 then pool3._1
130130 else pool3._2
131131 let aaDenominator = (a23 + fraction(fraction(a21, pool1._8, Scale6BigInt), pool2._7, Scale6BigInt))
132132 let aa13 = fraction(a12, a23, aaDenominator)
133133 let aa31 = fraction(fraction(fraction(a21, a32, aaDenominator), pool2._7, Scale6BigInt), pool2._8, Scale6BigInt)
134134 let aDenominator = (a31 + fraction(fraction(aa31, pool1._7, Scale6BigInt), pool1._8, Scale6BigInt))
135135 let a = fraction(aa13, a31, aDenominator)
136136 let aa = fraction(fraction(fraction(aa31, a13, aDenominator), pool3._7, Scale6BigInt), pool3._8, Scale6BigInt)
137137 let delta = fraction((sqrtBigInt(fraction(fraction(fraction(aa, a, InScaleBigInt), pool1._7, Scale6BigInt), pool1._8, Scale6BigInt), InDecimals, InDecimals, CEILING) - a), Scale6BigInt, pool1._7)
138138 if ((ZeroBigInt >= delta))
139139 then $Tuple2(0, nil)
140140 else {
141141 let input = if ((delta > inBalanceBigInt))
142142 then inBalanceBigInt
143143 else delta
144144 let swap1 = estimateSwap(pool1, InAsset, input)
145145 let swap2 = estimateSwap(pool2, swap1._1, swap1._2)
146146 let swap3 = estimateSwap(pool3, swap2._1, swap2._2)
147147 $Tuple2(toInt((swap3._2 - input)), [$Tuple5(pool1._9, swap1._3, swap1._4, InAsset, toInt(input)), $Tuple5(pool2._9, swap2._3, swap2._4, swap1._1, toInt(swap1._2)), $Tuple5(pool3._9, swap3._3, swap3._4, swap2._1, toInt(swap2._2))])
148148 }
149149 }
150150
151151
152152 func invokeSwap (args) = {
153153 let currentBalance = getBalance(args._4)
154154 let trimmedAmount = if ((args._5 > currentBalance))
155155 then currentBalance
156156 else args._5
157157 let resultAmount = if ((args._4 == InAsset))
158158 then trimmedAmount
159159 else if ((currentBalance > args._5))
160160 then currentBalance
161161 else trimmedAmount
162162 invoke(args._1, args._2, args._3, [AttachedPayment(args._4, resultAmount)])
163163 }
164164
165165
166166 let swop_btcwxg_xtn = getSwopPool(Address(base58'3PACj2DLTw3uUhsUmT98zHU5M4hPufbHKav'))
167167
168168 let swop_egg_waves = getSwopPool(Address(base58'3PNVFWopwCD9CgGXkpYWEY94oQ5XCAEXBmQ'))
169169
170170 let swop_ethwxg_xtn = getSwopPool(Address(base58'3PNEC4YKqZiMMytFrYRVtpW2ujvi3aGXRPm'))
171171
172172 let swop_nsbt_xtn = getSwopPool(Address(base58'3P2V63Xd6BviDkeMzxhUw2SJyojByRz8a8m'))
173173
174174 let swop_pluto_xtn = getSwopPool(Address(base58'3PDSXwwA2xAtmxeo2bebDP3AA5ynZ2Krgnw'))
175175
176176 let swop_pwr_xtn = getSwopPool(Address(base58'3P88KDKWHNKNdbZxe8FfAJP8coAhvfDtuzV'))
177177
178178 let swop_puzzle_xtn = getSwopPool(Address(base58'3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee'))
179179
180180 let swop_puzzle_waves = getSwopPool(Address(base58'3PRFKemXs4rAJYGPccNtP63Kw2UzwEdH7sZ'))
181181
182182 let swop_race_egg = getSwopPool(Address(base58'3P3Z8Gn665CJr14bTLv4d5USDBUQCTeeCaT'))
183183
184184 let swop_surf_xtn = getSwopPool(Address(base58'3PLp9KrdrbWAvSFHGJVEaszUubquz3M6mfe'))
185185
186186 let swop_swop_xtn = getSwopPool(Address(base58'3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W'))
187187
188188 let swop_swop_waves = getSwopPool(Address(base58'3PH8Np6jwuoikvkHL2qmdpFEHBR4UV5vwSq'))
189189
190190 let swop_vires_xtn = getSwopPool(Address(base58'3PJ48P3p2wvWUjgQaQiZ2cFbr8qmxMokBGd'))
191191
192192 let swop_waves_btcwxg = getSwopPool(Address(base58'3P8FVZgAJUAq32UEZtTw84qS4zLqEREiEiP'))
193193
194194 let swop_waves_xtn = getSwopPool(Address(base58'3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG'))
195195
196196 let swop_waves_eurn = getSwopPool(Address(base58'3PK7Xe5BiedRyxHLuMQx5ey9riUQqvUths2'))
197197
198198 let swop_waves_usdtppt = getSwopPool(Address(base58'3P2M9btqYdpENh1SkaHFDdc8XSjXHNiAXF5'))
199199
200200 let swop_west_xtn = getSwopPool(Address(base58'3P6DLdJTP2EySq9MFdJu6beUevrQd2sVVBh'))
201201
202202 let swop_wx_xtn = getSwopPool(Address(base58'3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R'))
203203
204204 let swop_xtn_usdtwxg = getSwopPool(Address(base58'3PAunb4Dadc9rQM2VJNQBgQV3vrgF9z8Evq'))
205205
206206 let wx_btcwxg_xtn = getWxPool(Address(base58'3PCBWDTA6jrFswd7gQgaE3Xk7gLM5RKofvp'))
207207
208208 let wx_egg_waves = getWxPool(Address(base58'3PJkUhnAHMaBTjyc7FkBfHantNUy871kBBW'))
209209
210210 let wx_egg_xtn = getWxPool(Address(base58'3P3Y38zymCHoTM6qcE9JcEA8rhaGTQbVMgu'))
211211
212212 let wx_ethwxg_waves = getWxPool(Address(base58'3P3XGTN6s292g9iwYhs3TEqJqHiffQYojuE'))
213213
214214 let wx_ethwxg_xtn = getWxPool(Address(base58'3PEMqetsaJDbYMw1XGovmE37FB8VUhGnX9A'))
215215
216216 let wx_eurn_xtn = getWxPool(Address(base58'3P879DU3ycr2XWorD7rR5gSpn1CpYgHjgFT'))
217217
218218 let wx_nsbt_waves = getWxPool(Address(base58'3PPR4zVfWP4w4rshP541aiFtPNQN2sNJwrY'))
219219
220220 let wx_nsbt_xtn = getWxPool(Address(base58'3P97XQCT9VYMXBxasVpDsE7eZfQ6cR9eS9n'))
221221
222222 let wx_pluto_waves = getWxPool(Address(base58'3P6ZipK8ydb4qHmufCquh98g9KW6EwaeJfk'))
223223
224224 let wx_pluto_xtn = getWxPool(Address(base58'3PEkD5LuHGWhUfgBW1owZFxVydYoWjV6Jia'))
225225
226226 let wx_puzzle_waves = getWxPool(Address(base58'3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz'))
227227
228228 let wx_puzzle_xtn = getWxPool(Address(base58'3P615yXeQ9Qu4qBM1QGimGzixyMS5W4Ktug'))
229229
230230 let wx_pwr_waves = getWxPool(Address(base58'3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t'))
231231
232232 let wx_race_xtn = getWxPool(Address(base58'3P2nHbqMt7hiYKQjYLT3AEDteS4SYGeHTuc'))
233233
234234 let wx_surf_waves = getWxPool(Address(base58'3PNnCngfvAzyvAQ1cEudZ3o6o3tFktsBVz5'))
235235
236236 let wx_swaves_waves = getWxPool(Address(base58'3PDVaJDqCadWeBugf768XeKiXtCCLUrYMge'))
237237
238238 let wx_swaves_xtn = getWxPool(Address(base58'3PEmxUzcCbsAcw6Q3VNLTWdd8bjc8KBUEDz'))
239239
240240 let wx_swop_waves = getWxPool(Address(base58'3PA8nK44sopUpXNcCRTpPSH2F7yjvxzx5cw'))
241241
242242 let wx_swop_xtn = getWxPool(Address(base58'3PCApn7kL3UMdCVYA2Ln2UcQvfnkFRL1qDC'))
243243
244244 let wx_usdtppt_xtn = getWxPool(Address(base58'3P5kfoYW7jPa9zYoTkN6Z6z8xtw8JGhymYB'))
245245
246246 let wx_vires_waves = getWxPool(Address(base58'3P7Z7X5kKXN4TpZ2SmqP2xyLGuotAqht1pU'))
247247
248248 let wx_vires_xtn = getWxPool(Address(base58'3P5HjPowgipiVB3UvXphDiPvKs424WC9xQw'))
249249
250250 let wx_waves_btcwxg = getWxPool(Address(base58'3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C'))
251251
252252 let wx_waves_xtn = getWxPool(Address(base58'3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g'))
253253
254254 let wx_waves_usdtppt = getWxPool(Address(base58'3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM'))
255255
256256 let wx_waves_usdtwxg = getWxPool(Address(base58'3PKMVZ7kQeaREajYi8Yc25Ro6mcNw5D6QSa'))
257257
258258 let wx_west_waves = getWxPool(Address(base58'3PCA7wkovBpAGgm5e6rZMXyXY97jUwVENWe'))
259259
260260 let wx_west_xtn = getWxPool(Address(base58'3PFxchXqKNjgP1CcbgFZjHyrEj9xMbSeLU3'))
261261
262262 let wx_wx_usdtwxg = getWxPool(Address(base58'3PHiXGo7NTRoC2KqkMZ1y9LaA2QSrroGs8y'))
263263
264264 let wx_wx_waves = getWxPool(Address(base58'3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh'))
265265
266266 let wx_wx_xtn = getWxPool(Address(base58'3PCENpEKe8atwELZ7oCSmcdEfcRuKTrUx99'))
267267
268268 let routes = [$Tuple6(wx_waves_xtn, wx_wx_waves, wx_wx_xtn, true, true, false), $Tuple6(swop_waves_xtn, wx_wx_waves, swop_wx_xtn, true, true, false), $Tuple6(wx_wx_xtn, wx_wx_waves, swop_waves_xtn, true, false, false), $Tuple6(wx_wx_xtn, wx_wx_waves, wx_waves_xtn, true, false, false), $Tuple6(swop_surf_xtn, wx_surf_waves, swop_waves_xtn, true, false, false), $Tuple6(wx_vires_xtn, wx_vires_waves, swop_waves_xtn, true, false, false), $Tuple6(wx_waves_xtn, wx_vires_waves, swop_vires_xtn, true, true, false), $Tuple6(wx_swaves_xtn, wx_swaves_waves, swop_waves_xtn, true, false, false), $Tuple6(swop_waves_xtn, wx_nsbt_waves, swop_nsbt_xtn, true, true, false), $Tuple6(wx_nsbt_xtn, wx_nsbt_waves, swop_waves_xtn, true, false, false), $Tuple6(swop_waves_xtn, swop_swop_waves, wx_swop_xtn, true, true, false), $Tuple6(swop_swop_xtn, wx_swop_waves, swop_waves_xtn, true, false, false), $Tuple6(wx_puzzle_xtn, wx_puzzle_waves, swop_waves_xtn, true, false, false), $Tuple6(swop_waves_xtn, swop_puzzle_waves, swop_puzzle_xtn, true, true, false), $Tuple6(swop_waves_xtn, wx_pluto_waves, wx_pluto_xtn, true, true, false), $Tuple6(swop_pluto_xtn, wx_pluto_waves, swop_waves_xtn, true, false, false), $Tuple6(swop_xtn_usdtwxg, wx_waves_usdtwxg, swop_waves_xtn, false, true, false), $Tuple6(wx_wx_xtn, wx_wx_usdtwxg, swop_xtn_usdtwxg, true, false, true), $Tuple6(wx_waves_xtn, wx_egg_waves, wx_egg_xtn, true, true, false), $Tuple6(wx_egg_xtn, swop_egg_waves, wx_waves_xtn, true, false, false), $Tuple6(wx_race_xtn, swop_race_egg, wx_egg_xtn, true, false, false), $Tuple6(wx_waves_xtn, wx_ethwxg_waves, swop_ethwxg_xtn, true, true, false), $Tuple6(wx_ethwxg_xtn, wx_ethwxg_waves, wx_waves_xtn, true, false, false), $Tuple6(wx_eurn_xtn, swop_waves_eurn, wx_waves_xtn, true, true, false), $Tuple6(wx_waves_xtn, wx_west_waves, swop_west_xtn, true, true, false), $Tuple6(wx_west_xtn, wx_west_waves, wx_waves_xtn, true, false, false), $Tuple6(wx_waves_xtn, swop_waves_btcwxg, swop_btcwxg_xtn, true, false, false), $Tuple6(wx_waves_xtn, wx_waves_btcwxg, wx_btcwxg_xtn, true, false, false), $Tuple6(swop_pwr_xtn, wx_pwr_waves, wx_waves_xtn, true, false, false), $Tuple6(wx_usdtppt_xtn, swop_waves_usdtppt, wx_waves_xtn, true, true, false), $Tuple6(wx_waves_xtn, wx_waves_usdtppt, wx_usdtppt_xtn, true, false, false), $Tuple6(wx_waves_xtn, wx_ethwxg_waves, wx_ethwxg_xtn, true, true, false), $Tuple6(wx_waves_xtn, wx_west_waves, wx_west_xtn, true, true, false), $Tuple6(wx_btcwxg_xtn, wx_waves_btcwxg, wx_waves_xtn, true, true, false), $Tuple6(wx_waves_xtn, wx_vires_waves, wx_vires_xtn, true, true, false), $Tuple6(wx_waves_xtn, wx_swaves_waves, wx_swaves_xtn, true, true, false), $Tuple6(wx_waves_xtn, wx_nsbt_waves, wx_nsbt_xtn, true, true, false), $Tuple6(wx_nsbt_xtn, wx_nsbt_waves, wx_waves_xtn, true, false, false), $Tuple6(wx_waves_xtn, wx_swop_waves, wx_swop_xtn, true, true, false), $Tuple6(wx_swop_xtn, wx_swop_waves, wx_waves_xtn, true, false, false)]
269269
270270 @Callable(i)
271271 func default () = if ((i.caller != caller))
272272 then throw(":D")
273273 else {
274274 func accumFunction (accum,next) = {
275275 let estimation = estimateRoute(next._1, next._2, next._3, next._4, next._5, next._6)
276276 $Tuple2((accum._1 :+ estimation._1), (accum._2 :+ estimation._2))
277277 }
278278
279279 let fold = {
280280 let $l = routes
281281 let $s = size($l)
282282 let $acc0 = $Tuple2(nil, nil)
283283 func $f0_1 ($a,$i) = if (($i >= $s))
284284 then $a
285285 else accumFunction($a, $l[$i])
286286
287287 func $f0_2 ($a,$i) = if (($i >= $s))
288288 then $a
289289 else throw("List size exceeds 40")
290290
291291 $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($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)
292292 }
293293 let maxSwapProfit = max(fold._1)
294294 if ((0 >= maxSwapProfit))
295295 then throw("Estimate fail")
296296 else {
297297 let estimatedResult = fold._2[value(indexOf(fold._1, maxSwapProfit))]
298298 let result1 = invokeSwap(estimatedResult[0])
299299 if ((result1 == result1))
300300 then {
301301 let result2 = invokeSwap(estimatedResult[1])
302302 if ((result2 == result2))
303303 then {
304304 let result3 = invokeSwap(estimatedResult[2])
305305 if ((result3 == result3))
306306 then {
307307 let profit = (getBalance(InAsset) - inBalance)
308308 let pureProfit = if (((i.fee % 10) > 0))
309- then (profit - 30000000)
310- else (profit - 300000)
309+ then (profit - 20000000)
310+ else (profit - 500000)
311311 if ((0 >= pureProfit))
312312 then throw("Execute fail")
313313 else [ScriptTransfer(receiver, profit, InAsset)]
314314 }
315315 else throw("Strict value is not equal to itself.")
316316 }
317317 else throw("Strict value is not equal to itself.")
318318 }
319319 else throw("Strict value is not equal to itself.")
320320 }
321321 }
322322
323323

github/deemru/w8io/3ef1775 
50.60 ms