2023.11.17 12:52 [3913048] smart account 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp > SELF 0.00000000 Waves

{ "type": 13, "id": "2ZN9D1h4NHKRqURwvjLGJp7w83BWfHxgwVRRMA2X7vhU", "fee": 1100000, "feeAssetId": null, "timestamp": 1700214782239, "version": 2, "chainId": 87, "sender": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "senderPublicKey": "GTY8yEJ2S4heRompxyvbJoBN1Td5BM5Pp4JgVbj9tmCw", "proofs": [ "", "2eqKLiGX7HPTpCEViwSdeLMUYv17HLECmCEiCkdHPPvXsmN4xXF6vcojBWkL2ezW5bxN5w7Vx2iRR4BjRvqoTt1j", "Py1b98qLaMTqDBhRWbzhQyNPQFgMXWSJ411QHk4DddaGg2fsQ3JEaaDX3Qb1gPmTnW21X1vY5wBzqDogRZem4JS" ], "script": "base64:BgILCAISBwoFGAQICAEcAAZvcmFjbGUJAQdBZGRyZXNzAQEaAVeK/whomjW6QM1hdPISN96mN/D6OM7oHjgADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgALa0dvdkFkZHJlc3MCEmdvdmVybmFuY2VfYWRkcmVzcwAMa0Zhcm1BZGRyZXNzAg9mYXJtaW5nX2FkZHJlc3MAD2tTdXJ2ZXlzQWRkcmVzcwIPc3VydmV5c19hZGRyZXNzAAxrUm91dGluZ0FkZHICD3JvdXRpbmdfYWRkcmVzcwAHa1NXT1BpZAIHU1dPUF9pZAAPa1ByZWZpeFBvb2xOYW1lAgVwb29sXwETZ2V0QmFzZTU4RnJvbU9yYWNsZQEDa2V5BAckbWF0Y2gwCQCdCAIFBm9yYWNsZQUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQDZBAEFBnN0cmluZwQHbm90aGluZwUHJG1hdGNoMAkAAgEJAKwCAgUDa2V5AghpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MwALYWRtaW5JbnZva2UJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUSa0FkbWluSW52b2tlUHViS2V5ABFnb3Zlcm5hbmNlQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFC2tHb3ZBZGRyZXNzAA5mYXJtaW5nQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtGYXJtQWRkcmVzcwAOc3VydmV5c0FkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ9rU3VydmV5c0FkZHJlc3MADnJvdXRpbmdBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa1JvdXRpbmdBZGRyAAZzd29wSWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUOZmFybWluZ0FkZHJlc3MFB2tTV09QaWQBCmlzU2VsZkNhbGwBAWkDCQAAAggFAWkGY2FsbGVyBQR0aGlzBQR1bml0CQACAQIrT25seSBjb250cmFjdCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEJbGlzdFRvSW50AgFhBGl0ZW0JAM0IAgUBYQkBDXBhcnNlSW50VmFsdWUBBQRpdGVtAQ5hc3NldElkRnJvbVN0cgEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwUEdW5pdAkA2QQBBQdhc3NldElkAQ5hY2NvdW50QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkA8AcCBQR0aGlzBQJpZAMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAgtNYXRjaCBlcnJvcgEQZGlyZWN0U3dvcGZpQ1BNTQEFckFyZ3MEBGRBcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUFckFyZ3MAAQQDcG10BARwbXRQCQC1CQIJAJEDAgUFckFyZ3MAAgIBfAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBCQCRAwIFBHBtdFAAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBHBtdFAAAQUDbmlsBAttaW5Ub1JlY2l2ZQkAkQMCBQVyQXJncwADCQD8BwQFBGRBcHACDGNhbGxGdW5jdGlvbgkAzAgCAghleGNoYW5nZQkAzAgCCQDMCAIFC21pblRvUmVjaXZlBQNuaWwFA25pbAUDcG10ARNkaXJlY3RSb3V0aW5nU3dvcGZpAQVyQXJncwQEZEFwcAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQVyQXJncwABBANwbXQEBHBtdFAJALUJAgkAkQMCBQVyQXJncwACAgF8CQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEJAJEDAgUEcG10UAAACQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEcG10UAABBQNuaWwEBGFyZ3MEBWVBcmdzCQC1CQIJAJEDAgUFckFyZ3MAAwIBfAQKZXhjaGFuZ2VycwkAtQkCCQCRAwIFBWVBcmdzAAACASwEDmV4Y2hhbmdlcnNUeXBlCQC1CQIJAJEDAgUFZUFyZ3MAAQIBLAQFYXJnczEKAAIkbAkAtQkCCQCRAwIFBWVBcmdzAAICASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWxpc3RUb0ludAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwQFYXJnczIKAAIkbAkAtQkCCQCRAwIFBWVBcmdzAAMCASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWxpc3RUb0ludAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwQRcm91dGluZ0Fzc2V0c0tleXMJALUJAgkAkQMCBQVlQXJncwAEAgEsBAttaW5Ub1JlY2l2ZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWVBcmdzAAUJAMwIAgUKZXhjaGFuZ2VycwkAzAgCBQ5leGNoYW5nZXJzVHlwZQkAzAgCBQVhcmdzMQkAzAgCBQVhcmdzMgkAzAgCBRFyb3V0aW5nQXNzZXRzS2V5cwkAzAgCBQttaW5Ub1JlY2l2ZQUDbmlsCQD8BwQFBGRBcHACDHJvdXRpbmdUcmFkZQUEYXJncwUDcG10ARFidXlTd29wRm9yQWlyZHJvcAMEcG9vbA90b2tlblRvRXhjaGFuZ2URYW1vdW50VG9MZWZ0Rm9yVHgEB3Rva2VuSWQJAQ5hc3NldElkRnJvbVN0cgEFD3Rva2VuVG9FeGNoYW5nZQQMdG9rZW5CYWxhbmNlCQEOYWNjb3VudEJhbGFuY2UBBQd0b2tlbklkAwkAAAIFDHRva2VuQmFsYW5jZQUMdG9rZW5CYWxhbmNlBBBhbW91bnRUb0V4Y2hhbmdlCQBlAgUMdG9rZW5CYWxhbmNlBRFhbW91bnRUb0xlZnRGb3JUeAMJAGcCAAAFEGFtb3VudFRvRXhjaGFuZ2UJAAIBAh9Ob3RoaW5nIHRvIGV4Y2hhbmdlIGZvciBhaXJkcm9wBAhwb29sQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUEcG9vbAkA/AcEBQhwb29sQWRkcgIMY2FsbEZ1bmN0aW9uCQDMCAICCGV4Y2hhbmdlCQDMCAIJAMwIAgABBQNuaWwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdG9rZW5JZAUQYW1vdW50VG9FeGNoYW5nZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFpAQ5leGNoYW5nZVRva2VucwUGcm91dGVzB2FpcmRyb3AEcG9vbA90b2tlblRvRXhjaGFuZ2URYW1vdW50VG9MZWZ0Rm9yVHgJAQt2YWx1ZU9yRWxzZQIJAQppc1NlbGZDYWxsAQUBaQoBDWV4Y2hhbmdlVG9rZW4CAXIFcm91dGUEBXJBcmdzCQC1CQIFBXJvdXRlAgJfXwMJAAACCQCRAwIFBXJBcmdzAAACEGRpcmVjdFN3b3BmaUNQTU0EA2ludgkBEGRpcmVjdFN3b3BmaUNQTU0BBQVyQXJncwMJAAACBQNpbnYFA2ludgkAzQgCBQFyBQNpbnYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgkAkQMCBQVyQXJncwAAAg1yb3V0aW5nU3dvcGZpBANpbnYJARNkaXJlY3RSb3V0aW5nU3dvcGZpAQUFckFyZ3MDCQAAAgUDaW52BQNpbnYJAM0IAgUBcgUDaW52CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQISVW5rbm93biByb3V0ZSB0eXBlBANyZXMKAAIkbAUGcm91dGVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ1leGNoYW5nZVRva2VuAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIFA3JlcwUDcmVzAwkBASEBBQdhaXJkcm9wBQNuaWwEA2ludgkBEWJ1eVN3b3BGb3JBaXJkcm9wAwUEcG9vbAUPdG9rZW5Ub0V4Y2hhbmdlBRFhbW91bnRUb0xlZnRGb3JUeAMJAAACBQNpbnYFA2ludgQLc3dvcEJhbGFuY2UJAQ5hY2NvdW50QmFsYW5jZQEFBnN3b3BJZAMJAAACBQtzd29wQmFsYW5jZQULc3dvcEJhbGFuY2UEBGFJbnYJAPwHBAURZ292ZXJuYW5jZUFkZHJlc3MCB2FpckRyb3AFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGc3dvcElkBQtzd29wQmFsYW5jZQUDbmlsAwkAAAIFBGFJbnYFBGFJbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDAECmlzUmlnaHRGZWUDCQAAAggFA2ludgNmZWUAoPc2CQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwQNaXNSb3V0aW5nQ2FsbAMJAAACCAUDaW52BGRBcHAFDnJvdXRpbmdBZGRyZXNzCQAAAggFA2ludghmdW5jdGlvbgIMcm91dGluZ1RyYWRlBwQSaXNFeGNoYW5nZUNhbGxDUE1NAwMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQ9rUHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAgxjYWxsRnVuY3Rpb24HCQAAAgkAkQMCCAUDaW52BGFyZ3MAAAIIZXhjaGFuZ2UHBA5pc0V4Y2hhbmdlQ2FsbAMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQ9rUHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAghleGNoYW5nZQcEDWlzQWlyZHJvcENhbGwJAAACCAUDaW52CGZ1bmN0aW9uAg5leGNoYW5nZVRva2VucwQTaXNVcGRhdGVXZWlnaHRzQ2FsbAMJAAACCAUDaW52BGRBcHAFEWdvdmVybmFuY2VBZGRyZXNzCQAAAggFA2ludghmdW5jdGlvbgINdXBkYXRlV2VpZ2h0cwcEFmlzVGFrZW5JbnRvQWNjb3VudENQTU0DAwkBCWlzRGVmaW5lZAEJAJ0IAgUGb3JhY2xlCQCsAgIFD2tQcmVmaXhQb29sTmFtZQkApQgBCQCkCAEIBQNpbnYEZEFwcAkAAAIIBQNpbnYIZnVuY3Rpb24CDGNhbGxGdW5jdGlvbgcJAAACCQCRAwIIBQNpbnYEYXJncwAAAhl0YWtlSW50b0FjY291bnRFeHRyYUZ1bmRzBwQSaXNUYWtlbkludG9BY2NvdW50AwkBCWlzRGVmaW5lZAEJAJ0IAgUGb3JhY2xlCQCsAgIFD2tQcmVmaXhQb29sTmFtZQkApQgBCQCkCAEIBQNpbnYEZEFwcAkAAAIIBQNpbnYIZnVuY3Rpb24CGXRha2VJbnRvQWNjb3VudEV4dHJhRnVuZHMHBAxpc1dyaXRlVG90YWwDCQAAAggFA2ludgRkQXBwBQ5zdXJ2ZXlzQWRkcmVzcwkAAAIIBQNpbnYIZnVuY3Rpb24CC3dyaXRlVG90YWxzBwQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkxAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkyAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkzAAEAAAQXYWRtaW5QdWJLZXlJbnZva2VTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQthZG1pbkludm9rZQABAAAEEHNpZ25lZEJ5T25lQWRtaW4JAGcCCQBkAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkBRdhZG1pblB1YktleUludm9rZVNpZ25lZAABAwMDAwMDBQ5pc0V4Y2hhbmdlQ2FsbAYFEmlzRXhjaGFuZ2VDYWxsQ1BNTQYFDWlzUm91dGluZ0NhbGwJAAACCQCQAwEIBQNpbnYIcGF5bWVudHMAAQcGAwMDAwMFE2lzVXBkYXRlV2VpZ2h0c0NhbGwGBRJpc1Rha2VuSW50b0FjY291bnQGBRZpc1Rha2VuSW50b0FjY291bnRDUE1NBgUMaXNXcml0ZVRvdGFsBgUNaXNBaXJkcm9wQ2FsbAkAAAIJAJADAQgFA2ludghwYXltZW50cwAABwUQc2lnbmVkQnlPbmVBZG1pbgcFCmlzUmlnaHRGZWUHBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAK3pQHq", "height": 3913048, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AqamNYe7nt9a8Hou2mBJnx9qfbZPTWGzJxvWYMcCpgC5 Next: 8eM56QNm2yyZ6Gk7HCPPYKK2YiyjLtHQuQ7u9Ve19G93 Diff:
OldNewDifferences
177177
178178 func $f0_2 ($a,$i) = if (($i >= $s))
179179 then $a
180- else throw("List size exceeds 12")
180+ else throw("List size exceeds 10")
181181
182- $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($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
182+ $f0_2($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)
183183 }
184184 if ((res == res))
185185 then if (!(airdrop))
249249 then 1
250250 else 0
251251 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyInvokeSigned) >= 1)
252- if (if (if (if (if (if (if (isExchangeCall)
252+ if (if (if (if (if (if (isExchangeCall)
253253 then true
254254 else isExchangeCallCPMM)
255- then true
256- else isAirdropCall)
257255 then true
258256 else isRoutingCall)
259257 then (size(inv.payments) == 1)
260258 else false)
261259 then true
262- else if (if (if (if (isUpdateWeightsCall)
260+ else if (if (if (if (if (isUpdateWeightsCall)
263261 then true
264262 else isTakenIntoAccount)
265263 then true
266264 else isTakenIntoAccountCPMM)
267265 then true
268266 else isWriteTotal)
267+ then true
268+ else isAirdropCall)
269269 then (size(inv.payments) == 0)
270270 else false)
271271 then signedByOneAdmin
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let oracle = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
55
66 let kAdminPubKey1 = "admin_pub_1"
77
88 let kAdminPubKey2 = "admin_pub_2"
99
1010 let kAdminPubKey3 = "admin_pub_3"
1111
1212 let kAdminInvokePubKey = "admin_invoke_pub"
1313
1414 let kGovAddress = "governance_address"
1515
1616 let kFarmAddress = "farming_address"
1717
1818 let kSurveysAddress = "surveys_address"
1919
2020 let kRoutingAddr = "routing_address"
2121
2222 let kSWOPid = "SWOP_id"
2323
2424 let kPrefixPoolName = "pool_"
2525
2626 func getBase58FromOracle (key) = match getString(oracle, key) {
2727 case string: String =>
2828 fromBase58String(string)
2929 case nothing =>
3030 throw((key + "is empty"))
3131 }
3232
3333
3434 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
3535
3636 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
3737
3838 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
3939
4040 let adminInvoke = getBase58FromOracle(kAdminInvokePubKey)
4141
4242 let governanceAddress = Address(getBase58FromOracle(kGovAddress))
4343
4444 let farmingAddress = Address(getBase58FromOracle(kFarmAddress))
4545
4646 let surveysAddress = Address(getBase58FromOracle(kSurveysAddress))
4747
4848 let routingAddress = Address(getBase58FromOracle(kRoutingAddr))
4949
5050 let swopId = fromBase58String(getStringValue(farmingAddress, kSWOPid))
5151
5252 func isSelfCall (i) = if ((i.caller == this))
5353 then unit
5454 else throw("Only contract itself can call this function")
5555
5656
5757 func listToInt (a,item) = (a :+ parseIntValue(item))
5858
5959
6060 func assetIdFromStr (assetId) = if ((assetId == "WAVES"))
6161 then unit
6262 else fromBase58String(assetId)
6363
6464
6565 func accountBalance (assetId) = match assetId {
6666 case id: ByteVector =>
6767 assetBalance(this, id)
6868 case waves: Unit =>
6969 wavesBalance(this).available
7070 case _ =>
7171 throw("Match error")
7272 }
7373
7474
7575 func directSwopfiCPMM (rArgs) = {
7676 let dApp = addressFromStringValue(rArgs[1])
7777 let pmt = {
7878 let pmtP = split(rArgs[2], "|")
7979 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
8080 }
8181 let minToRecive = rArgs[3]
8282 invoke(dApp, "callFunction", ["exchange", [minToRecive]], pmt)
8383 }
8484
8585
8686 func directRoutingSwopfi (rArgs) = {
8787 let dApp = addressFromStringValue(rArgs[1])
8888 let pmt = {
8989 let pmtP = split(rArgs[2], "|")
9090 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
9191 }
9292 let args = {
9393 let eArgs = split(rArgs[3], "|")
9494 let exchangers = split(eArgs[0], ",")
9595 let exchangersType = split(eArgs[1], ",")
9696 let args1 = {
9797 let $l = split(eArgs[2], ",")
9898 let $s = size($l)
9999 let $acc0 = nil
100100 func $f0_1 ($a,$i) = if (($i >= $s))
101101 then $a
102102 else listToInt($a, $l[$i])
103103
104104 func $f0_2 ($a,$i) = if (($i >= $s))
105105 then $a
106106 else throw("List size exceeds 3")
107107
108108 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
109109 }
110110 let args2 = {
111111 let $l = split(eArgs[3], ",")
112112 let $s = size($l)
113113 let $acc0 = nil
114114 func $f1_1 ($a,$i) = if (($i >= $s))
115115 then $a
116116 else listToInt($a, $l[$i])
117117
118118 func $f1_2 ($a,$i) = if (($i >= $s))
119119 then $a
120120 else throw("List size exceeds 3")
121121
122122 $f1_2($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3)
123123 }
124124 let routingAssetsKeys = split(eArgs[4], ",")
125125 let minToRecive = parseIntValue(eArgs[5])
126126 [exchangers, exchangersType, args1, args2, routingAssetsKeys, minToRecive]
127127 }
128128 invoke(dApp, "routingTrade", args, pmt)
129129 }
130130
131131
132132 func buySwopForAirdrop (pool,tokenToExchange,amountToLeftForTx) = {
133133 let tokenId = assetIdFromStr(tokenToExchange)
134134 let tokenBalance = accountBalance(tokenId)
135135 if ((tokenBalance == tokenBalance))
136136 then {
137137 let amountToExchange = (tokenBalance - amountToLeftForTx)
138138 if ((0 >= amountToExchange))
139139 then throw("Nothing to exchange for airdrop")
140140 else {
141141 let poolAddr = addressFromStringValue(pool)
142142 invoke(poolAddr, "callFunction", ["exchange", [1]], [AttachedPayment(tokenId, amountToExchange)])
143143 }
144144 }
145145 else throw("Strict value is not equal to itself.")
146146 }
147147
148148
149149 @Callable(i)
150150 func exchangeTokens (routes,airdrop,pool,tokenToExchange,amountToLeftForTx) = valueOrElse(isSelfCall(i), {
151151 func exchangeToken (r,route) = {
152152 let rArgs = split(route, "__")
153153 if ((rArgs[0] == "directSwopfiCPMM"))
154154 then {
155155 let inv = directSwopfiCPMM(rArgs)
156156 if ((inv == inv))
157157 then (r :+ inv)
158158 else throw("Strict value is not equal to itself.")
159159 }
160160 else if ((rArgs[0] == "routingSwopfi"))
161161 then {
162162 let inv = directRoutingSwopfi(rArgs)
163163 if ((inv == inv))
164164 then (r :+ inv)
165165 else throw("Strict value is not equal to itself.")
166166 }
167167 else throw("Unknown route type")
168168 }
169169
170170 let res = {
171171 let $l = routes
172172 let $s = size($l)
173173 let $acc0 = nil
174174 func $f0_1 ($a,$i) = if (($i >= $s))
175175 then $a
176176 else exchangeToken($a, $l[$i])
177177
178178 func $f0_2 ($a,$i) = if (($i >= $s))
179179 then $a
180- else throw("List size exceeds 12")
180+ else throw("List size exceeds 10")
181181
182- $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($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
182+ $f0_2($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)
183183 }
184184 if ((res == res))
185185 then if (!(airdrop))
186186 then nil
187187 else {
188188 let inv = buySwopForAirdrop(pool, tokenToExchange, amountToLeftForTx)
189189 if ((inv == inv))
190190 then {
191191 let swopBalance = accountBalance(swopId)
192192 if ((swopBalance == swopBalance))
193193 then {
194194 let aInv = invoke(governanceAddress, "airDrop", nil, [AttachedPayment(swopId, swopBalance)])
195195 if ((aInv == aInv))
196196 then nil
197197 else throw("Strict value is not equal to itself.")
198198 }
199199 else throw("Strict value is not equal to itself.")
200200 }
201201 else throw("Strict value is not equal to itself.")
202202 }
203203 else throw("Strict value is not equal to itself.")
204204 })
205205
206206
207207 @Verifier(tx)
208208 func verify () = match tx {
209209 case inv: InvokeScriptTransaction =>
210210 let isRightFee = if ((inv.fee == 900000))
211211 then (inv.feeAssetId == unit)
212212 else false
213213 let isRoutingCall = if ((inv.dApp == routingAddress))
214214 then (inv.function == "routingTrade")
215215 else false
216216 let isExchangeCallCPMM = if (if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
217217 then (inv.function == "callFunction")
218218 else false)
219219 then (inv.args[0] == "exchange")
220220 else false
221221 let isExchangeCall = if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
222222 then (inv.function == "exchange")
223223 else false
224224 let isAirdropCall = (inv.function == "exchangeTokens")
225225 let isUpdateWeightsCall = if ((inv.dApp == governanceAddress))
226226 then (inv.function == "updateWeights")
227227 else false
228228 let isTakenIntoAccountCPMM = if (if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
229229 then (inv.function == "callFunction")
230230 else false)
231231 then (inv.args[0] == "takeIntoAccountExtraFunds")
232232 else false
233233 let isTakenIntoAccount = if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
234234 then (inv.function == "takeIntoAccountExtraFunds")
235235 else false
236236 let isWriteTotal = if ((inv.dApp == surveysAddress))
237237 then (inv.function == "writeTotals")
238238 else false
239239 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
240240 then 1
241241 else 0
242242 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey2))
243243 then 1
244244 else 0
245245 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey3))
246246 then 1
247247 else 0
248248 let adminPubKeyInvokeSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke))
249249 then 1
250250 else 0
251251 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyInvokeSigned) >= 1)
252- if (if (if (if (if (if (if (isExchangeCall)
252+ if (if (if (if (if (if (isExchangeCall)
253253 then true
254254 else isExchangeCallCPMM)
255- then true
256- else isAirdropCall)
257255 then true
258256 else isRoutingCall)
259257 then (size(inv.payments) == 1)
260258 else false)
261259 then true
262- else if (if (if (if (isUpdateWeightsCall)
260+ else if (if (if (if (if (isUpdateWeightsCall)
263261 then true
264262 else isTakenIntoAccount)
265263 then true
266264 else isTakenIntoAccountCPMM)
267265 then true
268266 else isWriteTotal)
267+ then true
268+ else isAirdropCall)
269269 then (size(inv.payments) == 0)
270270 else false)
271271 then signedByOneAdmin
272272 else false)
273273 then isRightFee
274274 else false
275275 case _ =>
276276 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
277277 then 1
278278 else 0
279279 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
280280 then 1
281281 else 0
282282 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
283283 then 1
284284 else 0
285285 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
286286 }
287287

github/deemru/w8io/786bc32 
36.00 ms