tx · BaBQKDXvQK6NF1ck56ZWwQRJkkMDr6NoXkNSWRiwbsKe

3PFHNdEPu71QwBAnc2HZPcrbxoseNfUvHEA:  -0.01200000 Waves

2024.01.30 09:38 [4019670] smart account 3PFHNdEPu71QwBAnc2HZPcrbxoseNfUvHEA > SELF 0.00000000 Waves

{ "type": 13, "id": "BaBQKDXvQK6NF1ck56ZWwQRJkkMDr6NoXkNSWRiwbsKe", "fee": 1200000, "feeAssetId": null, "timestamp": 1706596678075, "version": 2, "chainId": 87, "sender": "3PFHNdEPu71QwBAnc2HZPcrbxoseNfUvHEA", "senderPublicKey": "DDDs6X5FCyoVAc24Btjc5pGX7N8P7UcWNBPd9nrhAfUg", "proofs": [ "", "4ERXTTJwPDGKiuzYACS1qGBffeVmXsyjMkjP4bsXWN8CzbYR6x6FqosdvVv8475mojKuDGHV75XQp6aD15VbWiT", "5A1VT43tFgWF4PfL4RBJQi1QZjGWXhYr7PrwesAkTQifDDHzpxt4sjd2J3SCppce6nmDAqtB9DmTTU5EbqA5sP26" ], "script": "base64:BgIOCAISAwoBGBIDCgEYEgAfAARDT05GCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgZjb25maWcADkFYTFlfTUFJTl9BRERSCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQRDT05GAg1tYWluX2NvbnRyYWN0AAxBWExZX0ZBUk1JTkcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBENPTkYCB2Zhcm1pbmcADkFYTFlfVE9LRU5PTUlDCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQRDT05GAgl0b2tlbm9taWMADUFYTFlfVEVBTV9CT1gJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBENPTkYCCHRlYW1fYm94AAxBWExZX1NUQUtJTkcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBENPTkYCB3N0YWtpbmcAB1NGX1BPT0wCAlNGAAdXWF9QT09MAgJXWAAUQU1PVU5UX1dBVkVTX0ZPUl9GRUUAgMLXLwAPUEVSQ0VOVF9UT19URUFNADIACWtBeGx5UG9vbAIIYXhseVBvb2wADGtBWExZVG9rZW5JZAILYXhseVRva2VuSWQACmtTaGFyZVBvb2wCDF9wb29sU2hhcmVJZAAFa1Bvb2wCBXBvb2xfAAxrTGVuZFNlcnZpY2UCEWxlbmRfc2VydmljZV9hZGRyAAlrQWRtaW4xUEsCFWdyb3VwMV9hZG1pbjFfcHViX2tleQAJa0FkbWluMlBLAhVncm91cDFfYWRtaW4yX3B1Yl9rZXkACWtBZG1pbjNQSwIVZ3JvdXAxX2FkbWluM19wdWJfa2V5AA9rT3BlcmF0b3JDYWxsUEsCEmFkbWluX2NhbGxfcHViX2tleQAIYWRtaW4xUEsJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBENPTkYFCWtBZG1pbjFQSwISQ2FuJ3QgZ2V0IGFkbWluMVBLAAhhZG1pbjJQSwkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEQ09ORgUJa0FkbWluMlBLAhJDYW4ndCBnZXQgYWRtaW4yUEsACGFkbWluM1BLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQRDT05GBQlrQWRtaW4zUEsCEkNhbid0IGdldCBhZG1pbjNQSwAKb3BlcmF0b3JQSwkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEQ09ORgUPa09wZXJhdG9yQ2FsbFBLAhRDYW4ndCBnZXQgb3BlcmF0b3JQSwAGYXhseUlkCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ5BWExZX1RPS0VOT01JQwUMa0FYTFlUb2tlbklkAhdDYW4ndCBnZXQgYXhseSB0b2tlbiBpZAAIYXhseVBvb2wJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUMQVhMWV9GQVJNSU5HBQlrQXhseVBvb2wCFkNhbid0IGdldCBheGx5UG9vbCBrZXkCE0Nhbid0IGdldCBheGx5IHBvb2wABGxlbmQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQRDT05GBQxrTGVuZFNlcnZpY2UCG0Nhbid0IGdldCBsZW5kIHNlcnZpY2UgYWRkcgEPdW5rbm93blBvb2xUeXBlAAkAAgECD1dyb25nIHBvb2wgdHlwZQEKaXNTZWxmQ2FsbAEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMFBHVuaXQJAAIBAitPbmx5IGNvbnRyYWN0IGl0c2VsZiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQlsaXN0VG9JbnQCAWEEaXRlbQkAzQgCBQFhCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0BEGRpcmVjdFN3b3BmaUNQTU0BBXJBcmdzBARkQXBwCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBXJBcmdzAAEEA3BtdAQEcG10UAkAtQkCCQCRAwIFBXJBcmdzAAICAXwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQkAkQMCBQRwbXRQAAAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRwbXRQAAEFA25pbAQLbWluVG9SZWNpdmUJAJEDAgUFckFyZ3MAAwkA/AcEBQRkQXBwAgxjYWxsRnVuY3Rpb24JAMwIAgIIZXhjaGFuZ2UJAMwIAgkAzAgCBQttaW5Ub1JlY2l2ZQUDbmlsBQNuaWwFA3BtdAETZGlyZWN0Um91dGluZ1N3b3BmaQEFckFyZ3MEBGRBcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUFckFyZ3MAAQQDcG10BARwbXRQCQC1CQIJAJEDAgUFckFyZ3MAAgIBfAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBCQCRAwIFBHBtdFAAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBHBtdFAAAQUDbmlsBARhcmdzBAVlQXJncwkAtQkCCQCRAwIFBXJBcmdzAAMCAXwECmV4Y2hhbmdlcnMJALUJAgkAkQMCBQVlQXJncwAAAgEsBA5leGNoYW5nZXJzVHlwZQkAtQkCCQCRAwIFBWVBcmdzAAECASwEBWFyZ3MxCgACJGwJALUJAgkAkQMCBQVlQXJncwACAgEsCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlsaXN0VG9JbnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDMJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMEBWFyZ3MyCgACJGwJALUJAgkAkQMCBQVlQXJncwADAgEsCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlsaXN0VG9JbnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDMJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMEEXJvdXRpbmdBc3NldHNLZXlzCQC1CQIJAJEDAgUFZUFyZ3MABAIBLAQLbWluVG9SZWNpdmUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVlQXJncwAFCQDMCAIFCmV4Y2hhbmdlcnMJAMwIAgUOZXhjaGFuZ2Vyc1R5cGUJAMwIAgUFYXJnczEJAMwIAgUFYXJnczIJAMwIAgURcm91dGluZ0Fzc2V0c0tleXMJAMwIAgULbWluVG9SZWNpdmUFA25pbAkA/AcEBQRkQXBwAgxyb3V0aW5nVHJhZGUFBGFyZ3MFA3BtdAMBaQELZXhjaGFuZ2VMcHMBA2xwcwkBC3ZhbHVlT3JFbHNlAgkBCmlzU2VsZkNhbGwBBQFpCgEEZXhMUAIBYQJscAQDbHBCCQDZBAEFAmxwBAdiYWxhbmNlCQDwBwIFBHRoaXMFA2xwQgQEcG9vbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDkFYTFlfTUFJTl9BRERSCQCsAgIFAmxwBQprU2hhcmVQb29sCQCsAgICFUNhbid0IGdldCBwb29sIG9mIGxwOgUCbHAEBXBUeXBlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUOQVhMWV9NQUlOX0FERFIJAKwCAgUFa1Bvb2wFBHBvb2wCElBvb2wgaXMgbm90IGluaXRlZAQIcG9vbEFkZHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQRwb29sAgx1bmtub3duIGFkZHIDCQBmAgUHYmFsYW5jZQAABANpbnYDCQAAAgUFcFR5cGUFB1NGX1BPT0wJAPwHBAUIcG9vbEFkZHICDGNhbGxGdW5jdGlvbgkAzAgCAgh3aXRoZHJhdwkAzAgCCQDMCAICATAFA25pbAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQNscEIFB2JhbGFuY2UFA25pbAMJAAACBQVwVHlwZQUHV1hfUE9PTAkA/AcEBQhwb29sQWRkcgIDZ2V0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFA2xwQgUHYmFsYW5jZQUDbmlsCQEPdW5rbm93blBvb2xUeXBlAAMJAAACBQNpbnYFA2ludgkAzQgCBQFhBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzQgCBQFhBwQDcmVzCgACJGwFA2xwcwoAAiRzCQCQ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AgUId0JhbGFuY2UFFEFNT1VOVF9XQVZFU19GT1JfRkVFBAZ0b1RlYW0JAGsDBQhiQWlyZHJvcAUPUEVSQ0VOVF9UT19URUFNAGQECXRvU3Rha2luZwkAZQIFCGJBaXJkcm9wBQZ0b1RlYW0DCQBnAgAABQhiQWlyZHJvcAkAAgECFE5vIHRva2VucyB0byBhaXJkcm9wAwkAZwIAAAUJdG9TdGFraW5nCQACAQIUTm8gdG9rZW5zIHRvIGFpcmRyb3AEA2ludgkA/AcEBQhheGx5UG9vbAIMY2FsbEZ1bmN0aW9uCQDMCAICCGV4Y2hhbmdlCQDMCAIJAMwIAgIBMQUDbmlsBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFCXRvU3Rha2luZwUDbmlsAwkAAAIFA2ludgUDaW52BAtheGx5QmFsYW5jZQkA8AcCBQR0aGlzBQZheGx5SWQDCQAAAgULYXhseUJhbGFuY2UFC2F4bHlCYWxhbmNlBARpbnZBCQD8BwQFDEFYTFlfU1RBS0lORwIHYWlyZHJvcAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZheGx5SWQFC2F4bHlCYWxhbmNlBQNuaWwDCQAAAgUEaW52QQUEaW52QQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ1BWExZX1RFQU1fQk9YBQZ0b1RlYW0FBHVuaXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDAECmlzUmlnaHRGZWUDCQAAAggFA2ludgNmZWUAoPc2CQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwQKaXNFeExwQ2FsbAkAAAIIBQNpbnYIZnVuY3Rpb24CC2V4Y2hhbmdlTHBzBA5pc0V4VG9rZW5zQ2FsbAkAAAIIBQNpbnYIZnVuY3Rpb24CDmV4Y2hhbmdlVG9rZW5zBBBpc0FpcmRyb3BTdGFraW5nCQAAAggFA2ludghmdW5jdGlvbgIOYWlyZHJvcFN0YWtpbmcED2lzTGlxdWlkYXRlQ2FsbAMJAAACCAUDaW52CGZ1bmN0aW9uAgtsaXF1aWRhdGVWMgkAAAIIBQNpbnYEZEFwcAUEbGVuZAcEDGlzUmV3YXJkQ2FsbAMJAAACCAUDaW52CGZ1bmN0aW9uAg11cGRhdGVSZXdhcmRzCQAAAggFA2ludgRkQXBwBQxBWExZX0ZBUk1JTkcHBAlpc0NhcENhbGwDAwkAAAIIBQNpbnYIZnVuY3Rpb24CDGNhcGl0YWxpemVFeAYJAAACCAUDaW52CGZ1bmN0aW9uAg5jYXBpdGFsaXplTm9FeAkAAAIIBQNpbnYEZEFwcAUOQVhMWV9NQUlOX0FERFIHBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQhhZG1pbjFQSwABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCGFkbWluMlBLAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUIYWRtaW4zUEsAAQAABBVhZG1pblB1YktleUNhbGxTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQpvcGVyYXRvclBLAAEAAAQQc2lnbmVkQnlPbmVBZG1pbgkAZwIJAGQCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQFFWFkbWluUHViS2V5Q2FsbFNpZ25lZAABAwMFCmlzUmlnaHRGZWUDAwMDAwUKaXNFeExwQ2FsbAYFDmlzRXhUb2tlbnNDYWxsBgUQaXNBaXJkcm9wU3Rha2luZwYFD2lzTGlxdWlkYXRlQ2FsbAYFDGlzUmV3YXJkQ2FsbAYFCWlzQ2FwQ2FsbAcFEHNpZ25lZEJ5T25lQWRtaW4HBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQhhZG1pbjFQSwABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCGFkbWluMlBLAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUIYWRtaW4zUEsAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAK2ZIiy", "height": 4019670, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9NbPiHR71jfmbknawFuCjBHPhzpnzi2kKuN1mgR16jpq Next: none Diff:
OldNewDifferences
245245 let isLiquidateCall = if ((inv.function == "liquidateV2"))
246246 then (inv.dApp == lend)
247247 else false
248+ let isRewardCall = if ((inv.function == "updateRewards"))
249+ then (inv.dApp == AXLY_FARMING)
250+ else false
251+ let isCapCall = if (if ((inv.function == "capitalizeEx"))
252+ then true
253+ else (inv.function == "capitalizeNoEx"))
254+ then (inv.dApp == AXLY_MAIN_ADDR)
255+ else false
248256 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin1PK))
249257 then 1
250258 else 0
259267 else 0
260268 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyCallSigned) >= 1)
261269 if (if (isRightFee)
262- then if (if (if (isExLpCall)
270+ then if (if (if (if (if (isExLpCall)
263271 then true
264272 else isExTokensCall)
265273 then true
266274 else isAirdropStaking)
267275 then true
268- else isLiquidateCall
276+ else isLiquidateCall)
277+ then true
278+ else isRewardCall)
279+ then true
280+ else isCapCall
269281 else false)
270282 then signedByOneAdmin
271283 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let CONF = addressFromStringValue(getStringValue(this, "config"))
55
66 let AXLY_MAIN_ADDR = addressFromStringValue(getStringValue(CONF, "main_contract"))
77
88 let AXLY_FARMING = addressFromStringValue(getStringValue(CONF, "farming"))
99
1010 let AXLY_TOKENOMIC = addressFromStringValue(getStringValue(CONF, "tokenomic"))
1111
1212 let AXLY_TEAM_BOX = addressFromStringValue(getStringValue(CONF, "team_box"))
1313
1414 let AXLY_STAKING = addressFromStringValue(getStringValue(CONF, "staking"))
1515
1616 let SF_POOL = "SF"
1717
1818 let WX_POOL = "WX"
1919
2020 let AMOUNT_WAVES_FOR_FEE = 100000000
2121
2222 let PERCENT_TO_TEAM = 50
2323
2424 let kAxlyPool = "axlyPool"
2525
2626 let kAXLYTokenId = "axlyTokenId"
2727
2828 let kSharePool = "_poolShareId"
2929
3030 let kPool = "pool_"
3131
3232 let kLendService = "lend_service_addr"
3333
3434 let kAdmin1PK = "group1_admin1_pub_key"
3535
3636 let kAdmin2PK = "group1_admin2_pub_key"
3737
3838 let kAdmin3PK = "group1_admin3_pub_key"
3939
4040 let kOperatorCallPK = "admin_call_pub_key"
4141
4242 let admin1PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin1PK), "Can't get admin1PK"))
4343
4444 let admin2PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin2PK), "Can't get admin2PK"))
4545
4646 let admin3PK = fromBase58String(valueOrErrorMessage(getString(CONF, kAdmin3PK), "Can't get admin3PK"))
4747
4848 let operatorPK = fromBase58String(valueOrErrorMessage(getString(CONF, kOperatorCallPK), "Can't get operatorPK"))
4949
5050 let axlyId = fromBase58String(valueOrErrorMessage(getString(AXLY_TOKENOMIC, kAXLYTokenId), "Can't get axly token id"))
5151
5252 let axlyPool = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(AXLY_FARMING, kAxlyPool), "Can't get axlyPool key")), "Can't get axly pool")
5353
5454 let lend = addressFromStringValue(valueOrErrorMessage(getString(CONF, kLendService), "Can't get lend service addr"))
5555
5656 func unknownPoolType () = throw("Wrong pool type")
5757
5858
5959 func isSelfCall (i) = if ((i.caller == this))
6060 then unit
6161 else throw("Only contract itself can call this function")
6262
6363
6464 func listToInt (a,item) = (a :+ parseIntValue(item))
6565
6666
6767 func directSwopfiCPMM (rArgs) = {
6868 let dApp = addressFromStringValue(rArgs[1])
6969 let pmt = {
7070 let pmtP = split(rArgs[2], "|")
7171 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
7272 }
7373 let minToRecive = rArgs[3]
7474 invoke(dApp, "callFunction", ["exchange", [minToRecive]], pmt)
7575 }
7676
7777
7878 func directRoutingSwopfi (rArgs) = {
7979 let dApp = addressFromStringValue(rArgs[1])
8080 let pmt = {
8181 let pmtP = split(rArgs[2], "|")
8282 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
8383 }
8484 let args = {
8585 let eArgs = split(rArgs[3], "|")
8686 let exchangers = split(eArgs[0], ",")
8787 let exchangersType = split(eArgs[1], ",")
8888 let args1 = {
8989 let $l = split(eArgs[2], ",")
9090 let $s = size($l)
9191 let $acc0 = nil
9292 func $f0_1 ($a,$i) = if (($i >= $s))
9393 then $a
9494 else listToInt($a, $l[$i])
9595
9696 func $f0_2 ($a,$i) = if (($i >= $s))
9797 then $a
9898 else throw("List size exceeds 3")
9999
100100 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
101101 }
102102 let args2 = {
103103 let $l = split(eArgs[3], ",")
104104 let $s = size($l)
105105 let $acc0 = nil
106106 func $f1_1 ($a,$i) = if (($i >= $s))
107107 then $a
108108 else listToInt($a, $l[$i])
109109
110110 func $f1_2 ($a,$i) = if (($i >= $s))
111111 then $a
112112 else throw("List size exceeds 3")
113113
114114 $f1_2($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3)
115115 }
116116 let routingAssetsKeys = split(eArgs[4], ",")
117117 let minToRecive = parseIntValue(eArgs[5])
118118 [exchangers, exchangersType, args1, args2, routingAssetsKeys, minToRecive]
119119 }
120120 invoke(dApp, "routingTrade", args, pmt)
121121 }
122122
123123
124124 @Callable(i)
125125 func exchangeLps (lps) = valueOrElse(isSelfCall(i), {
126126 func exLP (a,lp) = {
127127 let lpB = fromBase58String(lp)
128128 let balance = assetBalance(this, lpB)
129129 let pool = valueOrErrorMessage(getString(AXLY_MAIN_ADDR, (lp + kSharePool)), ("Can't get pool of lp:" + lp))
130130 let pType = valueOrErrorMessage(getString(AXLY_MAIN_ADDR, (kPool + pool)), "Pool is not inited")
131131 let poolAddr = valueOrErrorMessage(addressFromString(pool), "unknown addr")
132132 if ((balance > 0))
133133 then {
134134 let inv = if ((pType == SF_POOL))
135135 then invoke(poolAddr, "callFunction", ["withdraw", ["0"]], [AttachedPayment(lpB, balance)])
136136 else if ((pType == WX_POOL))
137137 then invoke(poolAddr, "get", nil, [AttachedPayment(lpB, balance)])
138138 else unknownPoolType()
139139 if ((inv == inv))
140140 then (a :+ true)
141141 else throw("Strict value is not equal to itself.")
142142 }
143143 else (a :+ false)
144144 }
145145
146146 let res = {
147147 let $l = lps
148148 let $s = size($l)
149149 let $acc0 = nil
150150 func $f0_1 ($a,$i) = if (($i >= $s))
151151 then $a
152152 else exLP($a, $l[$i])
153153
154154 func $f0_2 ($a,$i) = if (($i >= $s))
155155 then $a
156156 else throw("List size exceeds 50")
157157
158158 $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)
159159 }
160160 $Tuple2(nil, res)
161161 })
162162
163163
164164
165165 @Callable(i)
166166 func exchangeTokens (routes) = valueOrElse(isSelfCall(i), {
167167 func exchangeToken (r,route) = {
168168 let rArgs = split(route, "__")
169169 if ((rArgs[0] == "directSwopfiCPMM"))
170170 then {
171171 let inv = directSwopfiCPMM(rArgs)
172172 if ((inv == inv))
173173 then (r :+ inv)
174174 else throw("Strict value is not equal to itself.")
175175 }
176176 else if ((rArgs[0] == "routingSwopfi"))
177177 then {
178178 let inv = directRoutingSwopfi(rArgs)
179179 if ((inv == inv))
180180 then (r :+ inv)
181181 else throw("Strict value is not equal to itself.")
182182 }
183183 else throw("Unknown route type")
184184 }
185185
186186 let res = {
187187 let $l = routes
188188 let $s = size($l)
189189 let $acc0 = nil
190190 func $f0_1 ($a,$i) = if (($i >= $s))
191191 then $a
192192 else exchangeToken($a, $l[$i])
193193
194194 func $f0_2 ($a,$i) = if (($i >= $s))
195195 then $a
196196 else throw("List size exceeds 30")
197197
198198 $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)
199199 }
200200 if ((res == res))
201201 then nil
202202 else throw("Strict value is not equal to itself.")
203203 })
204204
205205
206206
207207 @Callable(i)
208208 func airdropStaking () = valueOrElse(isSelfCall(i), {
209209 let wBalance = wavesBalance(this).available
210210 let bAirdrop = (wBalance - AMOUNT_WAVES_FOR_FEE)
211211 let toTeam = fraction(bAirdrop, PERCENT_TO_TEAM, 100)
212212 let toStaking = (bAirdrop - toTeam)
213213 if ((0 >= bAirdrop))
214214 then throw("No tokens to airdrop")
215215 else if ((0 >= toStaking))
216216 then throw("No tokens to airdrop")
217217 else {
218218 let inv = invoke(axlyPool, "callFunction", ["exchange", ["1"]], [AttachedPayment(unit, toStaking)])
219219 if ((inv == inv))
220220 then {
221221 let axlyBalance = assetBalance(this, axlyId)
222222 if ((axlyBalance == axlyBalance))
223223 then {
224224 let invA = invoke(AXLY_STAKING, "airdrop", nil, [AttachedPayment(axlyId, axlyBalance)])
225225 if ((invA == invA))
226226 then [ScriptTransfer(AXLY_TEAM_BOX, toTeam, unit)]
227227 else throw("Strict value is not equal to itself.")
228228 }
229229 else throw("Strict value is not equal to itself.")
230230 }
231231 else throw("Strict value is not equal to itself.")
232232 }
233233 })
234234
235235
236236 @Verifier(tx)
237237 func verify () = match tx {
238238 case inv: InvokeScriptTransaction =>
239239 let isRightFee = if ((inv.fee == 900000))
240240 then (inv.feeAssetId == unit)
241241 else false
242242 let isExLpCall = (inv.function == "exchangeLps")
243243 let isExTokensCall = (inv.function == "exchangeTokens")
244244 let isAirdropStaking = (inv.function == "airdropStaking")
245245 let isLiquidateCall = if ((inv.function == "liquidateV2"))
246246 then (inv.dApp == lend)
247247 else false
248+ let isRewardCall = if ((inv.function == "updateRewards"))
249+ then (inv.dApp == AXLY_FARMING)
250+ else false
251+ let isCapCall = if (if ((inv.function == "capitalizeEx"))
252+ then true
253+ else (inv.function == "capitalizeNoEx"))
254+ then (inv.dApp == AXLY_MAIN_ADDR)
255+ else false
248256 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin1PK))
249257 then 1
250258 else 0
251259 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin2PK))
252260 then 1
253261 else 0
254262 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin3PK))
255263 then 1
256264 else 0
257265 let adminPubKeyCallSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], operatorPK))
258266 then 1
259267 else 0
260268 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyCallSigned) >= 1)
261269 if (if (isRightFee)
262- then if (if (if (isExLpCall)
270+ then if (if (if (if (if (isExLpCall)
263271 then true
264272 else isExTokensCall)
265273 then true
266274 else isAirdropStaking)
267275 then true
268- else isLiquidateCall
276+ else isLiquidateCall)
277+ then true
278+ else isRewardCall)
279+ then true
280+ else isCapCall
269281 else false)
270282 then signedByOneAdmin
271283 else false
272284 case _ =>
273285 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], admin1PK))
274286 then 1
275287 else 0
276288 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], admin2PK))
277289 then 1
278290 else 0
279291 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], admin3PK))
280292 then 1
281293 else 0
282294 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
283295 }
284296

github/deemru/w8io/3ef1775 
34.56 ms