tx · ALZKUyddDKRobCPxTP4i9YR6x5H38DarJhEm6UNJnXrA

3MxiR4vDPzVeaEPgznfS4zi4uLd2nnQuGy9:  -0.01100000 Waves

2023.10.06 14:18 [2786690] smart account 3MxiR4vDPzVeaEPgznfS4zi4uLd2nnQuGy9 > SELF 0.00000000 Waves

{ "type": 13, "id": "ALZKUyddDKRobCPxTP4i9YR6x5H38DarJhEm6UNJnXrA", "fee": 1100000, "feeAssetId": null, "timestamp": 1696591153377, "version": 2, "chainId": 84, "sender": "3MxiR4vDPzVeaEPgznfS4zi4uLd2nnQuGy9", "senderPublicKey": "4AVkL2DQJ8sngCNyArYueNuPS7cvygnakPJhU65LfPfu", "proofs": [ "2cFasZkTRycTNWXn2wbqgcx1magdrF6kE2QzH4tyTUDCTyBr6Sxb6qfCB4emXeaBSZrjLmAuHsSZH3ajWUxV9G8t", "2sVa6RmCpAebNtzg7aMN9oFgCbK6oC2wycLGSwdAyA1nkj6LsciWD3w3FUKFvtfN423fyBwARBbCsHeBtQYmRemz" ], "script": "base64:BgIOCAISAwoBGBIDCgEYEgAdAARDT05GCQEHQWRkcmVzcwEBGgFUtvlTa/SIRVc7Ch4e3W3rNY9xKC2vG4jXAA5BWExZX01BSU5fQUREUgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEQ09ORgINbWFpbl9jb250cmFjdAAMQVhMWV9GQVJNSU5HCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQRDT05GAgdmYXJtaW5nAA5BWExZX1RPS0VOT01JQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEQ09ORgIJdG9rZW5vbWljAA1BWExZX1RFQU1fQk9YCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQRDT05GAgh0ZWFtX2JveAAMQVhMWV9TVEFLSU5HCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQRDT05GAgdzdGFraW5nAAdTRl9QT09MAgJTRgAHV1hfUE9PTAICV1gAFEFNT1VOVF9XQVZFU19GT1JfRkVFAIDC1y8AD1BFUkNFTlRfVE9fVEVBTQAyAAlrQXhseVBvb2wCCGF4bHlQb29sAAxrQVhMWVRva2VuSWQCC2F4bHlUb2tlbklkAAprU2hhcmVQb29sAgxfcG9vbFNoYXJlSWQABWtQb29sAgVwb29sXwAJa0FkbWluMVBLAhVncm91cDFfYWRtaW4xX3B1Yl9rZXkACWtBZG1pbjJQSwIVZ3JvdXAxX2FkbWluMl9wdWJfa2V5AAlrQWRtaW4zUEsCFWdyb3VwMV9hZG1pbjNfcHViX2tleQAPa09wZXJhdG9yQ2FsbFBLAhJhZG1pbl9jYWxsX3B1Yl9rZXkACGFkbWluMVBLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQRDT05GBQlrQWRtaW4xUEsCEkNhbid0IGdldCBhZG1pbjFQSwAIYWRtaW4yUEsJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBENPTkYFCWtBZG1pbjJQSwISQ2FuJ3QgZ2V0IGFkbWluMlBLAAhhZG1pbjNQSwkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEQ09ORgUJa0FkbWluM1BLAhJDYW4ndCBnZXQgYWRtaW4zUEsACm9wZXJhdG9yUEsJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBENPTkYFD2tPcGVyYXRvckNhbGxQSwIUQ2FuJ3QgZ2V0IG9wZXJhdG9yUEsABmF4bHlJZAkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUOQVhMWV9UT0tFTk9NSUMFDGtBWExZVG9rZW5JZAIXQ2FuJ3QgZ2V0IGF4bHkgdG9rZW4gaWQACGF4bHlQb29sCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDEFYTFlfRkFSTUlORwUJa0F4bHlQb29sAhZDYW4ndCBnZXQgYXhseVBvb2wga2V5AhNDYW4ndCBnZXQgYXhseSBwb29sAQ91bmtub3duUG9vbFR5cGUACQACAQIPV3JvbmcgcG9vbCB0eXBlAQppc1NlbGZDYWxsAQFpAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwUEdW5pdAkAAgECK09ubHkgY29udHJhY3QgaXRzZWxmIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BCWxpc3RUb0ludAIBYQRpdGVtCQDNCAIFAWEJAQ1wYXJzZUludFZhbHVlAQUEaXRlbQEQZGlyZWN0U3dvcGZpQ1BNTQEFckFyZ3MEBGRBcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUFckFyZ3MAAQQDcG10BARwbXRQCQC1CQIJAJEDAgUFckFyZ3MAAgIBfAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBCQCRAwIFBHBtdFAAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBHBtdFAAAQUDbmlsBAttaW5Ub1JlY2l2ZQkAkQMCBQVyQXJncwADCQD8BwQFBGRBcHACDGNhbGxGdW5jdGlvbgkAzAgCAghleGNoYW5nZQkAzAgCCQDMCAIFC21pblRvUmVjaXZlBQNuaWwFA25pbAUDcG10ARNkaXJlY3RSb3V0aW5nU3dvcGZpAQVyQXJncwQEZEFwcAkBEUBleHRyTmF0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AgAABQl0b1N0YWtpbmcJAAIBAhRObyB0b2tlbnMgdG8gYWlyZHJvcAQDaW52CQD8BwQFCGF4bHlQb29sAgxjYWxsRnVuY3Rpb24JAMwIAgIIZXhjaGFuZ2UJAMwIAgkAzAgCAgExBQNuaWwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUJdG9TdGFraW5nBQNuaWwDCQAAAgUDaW52BQNpbnYEC2F4bHlCYWxhbmNlCQDwBwIFBHRoaXMFBmF4bHlJZAMJAAACBQtheGx5QmFsYW5jZQULYXhseUJhbGFuY2UEBGludkEJAPwHBAUMQVhMWV9TVEFLSU5HAgdhaXJkcm9wBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBmF4bHlJZAULYXhseUJhbGFuY2UFA25pbAMJAAACBQRpbnZBBQRpbnZBCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDUFYTFlfVEVBTV9CT1gFBnRvVGVhbQUEdW5pdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EA2ludgUHJG1hdGNoMAQKaXNSaWdodEZlZQMJAAACCAUDaW52A2ZlZQCg9zYJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHBAppc0V4THBDYWxsCQAAAggFA2ludghmdW5jdGlvbgILZXhjaGFuZ2VMcHMEDmlzRXhUb2tlbnNDYWxsCQAAAggFA2ludghmdW5jdGlvbgIOZXhjaGFuZ2VUb2tlbnMEEGlzQWlyZHJvcFN0YWtpbmcJAAACCAUDaW52CGZ1bmN0aW9uAg5haXJkcm9wU3Rha2luZwQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUIYWRtaW4xUEsAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQhhZG1pbjJQSwABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCGFkbWluM1BLAAEAAAQVYWRtaW5QdWJLZXlDYWxsU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUKb3BlcmF0b3JQSwABAAAEEHNpZ25lZEJ5T25lQWRtaW4JAGcCCQBkAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkBRVhZG1pblB1YktleUNhbGxTaWduZWQAAQMDBQppc1JpZ2h0RmVlAwMFCmlzRXhMcENhbGwGBQ5pc0V4VG9rZW5zQ2FsbAYFEGlzQWlyZHJvcFN0YWtpbmcHBRBzaWduZWRCeU9uZUFkbWluBwQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUIYWRtaW4xUEsAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQhhZG1pbjJQSwABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCGFkbWluM1BLAAEAAAkAZwIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAACnTDb/g==", "height": 2786690, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8gFnpGLG8kyBB79WmacHiX6EWmBBh3aAFHFvVCrShpLB Next: EQz5S3wdxrnZDf4FkTRubUiMe3eYwix5hBBpxwz7SvWM Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let AXLY_MAIN_ADDR = Address(base58'3MvRWw2FPEimFCTGtK7qY9uAJbM7XJ4ZfJS')
4+let CONF = Address(base58'3N6bZSJGaH3UjnmswdVw1JZHCv6aQNebJii')
55
6-let AXLY_FARMING = Address(base58'3N2M4PztorHwrfENp7D6LhYGgGodjiD1fjn')
6+let AXLY_MAIN_ADDR = addressFromStringValue(getStringValue(CONF, "main_contract"))
77
8-let AXLY_TOKENOMIC = addressFromStringValue(valueOrErrorMessage(getString(AXLY_FARMING, "tokenomicContract"), "Can't get tokenomic addr"))
8+let AXLY_FARMING = addressFromStringValue(getStringValue(CONF, "farming"))
99
10-let AXLY_TEAM_BOX = Address(base58'3NBAqyU7HpCjXtX7ymiEGiUkrw7qe9bSdxm')
10+let AXLY_TOKENOMIC = addressFromStringValue(getStringValue(CONF, "tokenomic"))
1111
12-let AXLY_STAKING = Address(base58'3N4erM2YbPHzpzNT31KQbgHxQoRdiJdFFTY')
12+let AXLY_TEAM_BOX = addressFromStringValue(getStringValue(CONF, "team_box"))
13+
14+let AXLY_STAKING = addressFromStringValue(getStringValue(CONF, "staking"))
1315
1416 let SF_POOL = "SF"
1517
3537
3638 let kOperatorCallPK = "admin_call_pub_key"
3739
38-let admin1PK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kAdmin1PK), "Can't get admin1PK"))
40+let admin1PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin1PK), "Can't get admin1PK"))
3941
40-let admin2PK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kAdmin2PK), "Can't get admin2PK"))
42+let admin2PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin2PK), "Can't get admin2PK"))
4143
42-let admin3PK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kAdmin3PK), "Can't get admin3PK"))
44+let admin3PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin3PK), "Can't get admin3PK"))
4345
44-let operatorPK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kOperatorCallPK), "Can't get operatorPK"))
46+let operatorPK = fromBase58String(valueOrErrorMessage(getString(CONF, kOperatorCallPK), "Can't get operatorPK"))
4547
4648 let axlyId = fromBase58String(valueOrErrorMessage(getString(AXLY_TOKENOMIC, kAXLYTokenId), "Can't get axly token id"))
4749
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let AXLY_MAIN_ADDR = Address(base58'3MvRWw2FPEimFCTGtK7qY9uAJbM7XJ4ZfJS')
4+let CONF = Address(base58'3N6bZSJGaH3UjnmswdVw1JZHCv6aQNebJii')
55
6-let AXLY_FARMING = Address(base58'3N2M4PztorHwrfENp7D6LhYGgGodjiD1fjn')
6+let AXLY_MAIN_ADDR = addressFromStringValue(getStringValue(CONF, "main_contract"))
77
8-let AXLY_TOKENOMIC = addressFromStringValue(valueOrErrorMessage(getString(AXLY_FARMING, "tokenomicContract"), "Can't get tokenomic addr"))
8+let AXLY_FARMING = addressFromStringValue(getStringValue(CONF, "farming"))
99
10-let AXLY_TEAM_BOX = Address(base58'3NBAqyU7HpCjXtX7ymiEGiUkrw7qe9bSdxm')
10+let AXLY_TOKENOMIC = addressFromStringValue(getStringValue(CONF, "tokenomic"))
1111
12-let AXLY_STAKING = Address(base58'3N4erM2YbPHzpzNT31KQbgHxQoRdiJdFFTY')
12+let AXLY_TEAM_BOX = addressFromStringValue(getStringValue(CONF, "team_box"))
13+
14+let AXLY_STAKING = addressFromStringValue(getStringValue(CONF, "staking"))
1315
1416 let SF_POOL = "SF"
1517
1618 let WX_POOL = "WX"
1719
1820 let AMOUNT_WAVES_FOR_FEE = 100000000
1921
2022 let PERCENT_TO_TEAM = 50
2123
2224 let kAxlyPool = "axlyPool"
2325
2426 let kAXLYTokenId = "axlyTokenId"
2527
2628 let kSharePool = "_poolShareId"
2729
2830 let kPool = "pool_"
2931
3032 let kAdmin1PK = "group1_admin1_pub_key"
3133
3234 let kAdmin2PK = "group1_admin2_pub_key"
3335
3436 let kAdmin3PK = "group1_admin3_pub_key"
3537
3638 let kOperatorCallPK = "admin_call_pub_key"
3739
38-let admin1PK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kAdmin1PK), "Can't get admin1PK"))
40+let admin1PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin1PK), "Can't get admin1PK"))
3941
40-let admin2PK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kAdmin2PK), "Can't get admin2PK"))
42+let admin2PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin2PK), "Can't get admin2PK"))
4143
42-let admin3PK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kAdmin3PK), "Can't get admin3PK"))
44+let admin3PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin3PK), "Can't get admin3PK"))
4345
44-let operatorPK = fromBase58String(valueOrErrorMessage(getString(AXLY_MAIN_ADDR, kOperatorCallPK), "Can't get operatorPK"))
46+let operatorPK = fromBase58String(valueOrErrorMessage(getString(CONF, kOperatorCallPK), "Can't get operatorPK"))
4547
4648 let axlyId = fromBase58String(valueOrErrorMessage(getString(AXLY_TOKENOMIC, kAXLYTokenId), "Can't get axly token id"))
4749
4850 let axlyPool = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(AXLY_FARMING, kAxlyPool), "Can't get axlyPool key")), "Can't get axly pool")
4951
5052 func unknownPoolType () = throw("Wrong pool type")
5153
5254
5355 func isSelfCall (i) = if ((i.caller == this))
5456 then unit
5557 else throw("Only contract itself can call this function")
5658
5759
5860 func listToInt (a,item) = (a :+ parseIntValue(item))
5961
6062
6163 func directSwopfiCPMM (rArgs) = {
6264 let dApp = addressFromStringValue(rArgs[1])
6365 let pmt = {
6466 let pmtP = split(rArgs[2], "|")
6567 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
6668 }
6769 let minToRecive = rArgs[3]
6870 invoke(dApp, "callFunction", ["exchange", [minToRecive]], pmt)
6971 }
7072
7173
7274 func directRoutingSwopfi (rArgs) = {
7375 let dApp = addressFromStringValue(rArgs[1])
7476 let pmt = {
7577 let pmtP = split(rArgs[2], "|")
7678 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
7779 }
7880 let args = {
7981 let eArgs = split(rArgs[3], "|")
8082 let exchangers = split(eArgs[0], ",")
8183 let exchangersType = split(eArgs[1], ",")
8284 let args1 = {
8385 let $l = split(eArgs[2], ",")
8486 let $s = size($l)
8587 let $acc0 = nil
8688 func $f0_1 ($a,$i) = if (($i >= $s))
8789 then $a
8890 else listToInt($a, $l[$i])
8991
9092 func $f0_2 ($a,$i) = if (($i >= $s))
9193 then $a
9294 else throw("List size exceeds 3")
9395
9496 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
9597 }
9698 let args2 = {
9799 let $l = split(eArgs[3], ",")
98100 let $s = size($l)
99101 let $acc0 = nil
100102 func $f1_1 ($a,$i) = if (($i >= $s))
101103 then $a
102104 else listToInt($a, $l[$i])
103105
104106 func $f1_2 ($a,$i) = if (($i >= $s))
105107 then $a
106108 else throw("List size exceeds 3")
107109
108110 $f1_2($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3)
109111 }
110112 let routingAssetsKeys = split(eArgs[4], ",")
111113 let minToRecive = parseIntValue(eArgs[5])
112114 [exchangers, exchangersType, args1, args2, routingAssetsKeys, minToRecive]
113115 }
114116 invoke(dApp, "routingTrade", args, pmt)
115117 }
116118
117119
118120 @Callable(i)
119121 func exchangeLps (lps) = valueOrElse(isSelfCall(i), {
120122 func exLP (a,lp) = {
121123 let lpB = fromBase58String(lp)
122124 let balance = assetBalance(this, lpB)
123125 let pool = valueOrErrorMessage(getString(AXLY_MAIN_ADDR, (lp + kSharePool)), ("Can't get pool of lp:" + lp))
124126 let pType = valueOrErrorMessage(getString(AXLY_MAIN_ADDR, (kPool + pool)), "Pool is not inited")
125127 let poolAddr = valueOrErrorMessage(addressFromString(pool), "unknown addr")
126128 if ((balance > 0))
127129 then {
128130 let inv = if ((pType == SF_POOL))
129131 then invoke(poolAddr, "callFunction", ["withdraw", ["0"]], [AttachedPayment(lpB, balance)])
130132 else if ((pType == WX_POOL))
131133 then invoke(poolAddr, "get", nil, [AttachedPayment(lpB, balance)])
132134 else unknownPoolType()
133135 if ((inv == inv))
134136 then (a :+ true)
135137 else throw("Strict value is not equal to itself.")
136138 }
137139 else (a :+ false)
138140 }
139141
140142 let res = {
141143 let $l = lps
142144 let $s = size($l)
143145 let $acc0 = nil
144146 func $f0_1 ($a,$i) = if (($i >= $s))
145147 then $a
146148 else exLP($a, $l[$i])
147149
148150 func $f0_2 ($a,$i) = if (($i >= $s))
149151 then $a
150152 else throw("List size exceeds 50")
151153
152154 $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($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)
153155 }
154156 $Tuple2(nil, res)
155157 })
156158
157159
158160
159161 @Callable(i)
160162 func exchangeTokens (routes) = valueOrElse(isSelfCall(i), {
161163 func exchangeToken (r,route) = {
162164 let rArgs = split(route, "__")
163165 if ((rArgs[0] == "directSwopfiCPMM"))
164166 then {
165167 let inv = directSwopfiCPMM(rArgs)
166168 if ((inv == inv))
167169 then (r :+ inv)
168170 else throw("Strict value is not equal to itself.")
169171 }
170172 else if ((rArgs[0] == "routingSwopfi"))
171173 then {
172174 let inv = directRoutingSwopfi(rArgs)
173175 if ((inv == inv))
174176 then (r :+ inv)
175177 else throw("Strict value is not equal to itself.")
176178 }
177179 else throw("Unknown route type")
178180 }
179181
180182 let res = {
181183 let $l = routes
182184 let $s = size($l)
183185 let $acc0 = nil
184186 func $f0_1 ($a,$i) = if (($i >= $s))
185187 then $a
186188 else exchangeToken($a, $l[$i])
187189
188190 func $f0_2 ($a,$i) = if (($i >= $s))
189191 then $a
190192 else throw("List size exceeds 30")
191193
192194 $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($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)
193195 }
194196 if ((res == res))
195197 then nil
196198 else throw("Strict value is not equal to itself.")
197199 })
198200
199201
200202
201203 @Callable(i)
202204 func airdropStaking () = valueOrElse(isSelfCall(i), {
203205 let wBalance = wavesBalance(this).available
204206 let bAirdrop = (wBalance - AMOUNT_WAVES_FOR_FEE)
205207 let toTeam = fraction(bAirdrop, PERCENT_TO_TEAM, 100)
206208 let toStaking = (bAirdrop - toTeam)
207209 if ((0 >= bAirdrop))
208210 then throw("No tokens to airdrop")
209211 else if ((0 >= toStaking))
210212 then throw("No tokens to airdrop")
211213 else {
212214 let inv = invoke(axlyPool, "callFunction", ["exchange", ["1"]], [AttachedPayment(unit, toStaking)])
213215 if ((inv == inv))
214216 then {
215217 let axlyBalance = assetBalance(this, axlyId)
216218 if ((axlyBalance == axlyBalance))
217219 then {
218220 let invA = invoke(AXLY_STAKING, "airdrop", nil, [AttachedPayment(axlyId, axlyBalance)])
219221 if ((invA == invA))
220222 then [ScriptTransfer(AXLY_TEAM_BOX, toTeam, unit)]
221223 else throw("Strict value is not equal to itself.")
222224 }
223225 else throw("Strict value is not equal to itself.")
224226 }
225227 else throw("Strict value is not equal to itself.")
226228 }
227229 })
228230
229231
230232 @Verifier(tx)
231233 func verify () = match tx {
232234 case inv: InvokeScriptTransaction =>
233235 let isRightFee = if ((inv.fee == 900000))
234236 then (inv.feeAssetId == unit)
235237 else false
236238 let isExLpCall = (inv.function == "exchangeLps")
237239 let isExTokensCall = (inv.function == "exchangeTokens")
238240 let isAirdropStaking = (inv.function == "airdropStaking")
239241 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin1PK))
240242 then 1
241243 else 0
242244 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin2PK))
243245 then 1
244246 else 0
245247 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin3PK))
246248 then 1
247249 else 0
248250 let adminPubKeyCallSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], operatorPK))
249251 then 1
250252 else 0
251253 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyCallSigned) >= 1)
252254 if (if (isRightFee)
253255 then if (if (isExLpCall)
254256 then true
255257 else isExTokensCall)
256258 then true
257259 else isAirdropStaking
258260 else false)
259261 then signedByOneAdmin
260262 else false
261263 case _ =>
262264 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin1PK))
263265 then 1
264266 else 0
265267 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], admin2PK))
266268 then 1
267269 else 0
268270 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], admin3PK))
269271 then 1
270272 else 0
271273 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
272274 }
273275

github/deemru/w8io/169f3d6 
44.54 ms