tx · AqamNYe7nt9a8Hou2mBJnx9qfbZPTWGzJxvWYMcCpgC5

3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp:  -0.01100000 Waves

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

{ "type": 13, "id": "AqamNYe7nt9a8Hou2mBJnx9qfbZPTWGzJxvWYMcCpgC5", "fee": 1100000, "feeAssetId": null, "timestamp": 1700212410948, "version": 2, "chainId": 87, "sender": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "senderPublicKey": "GTY8yEJ2S4heRompxyvbJoBN1Td5BM5Pp4JgVbj9tmCw", "proofs": [ "", "4bFAqWPyfexf7WVtXf9AroFwQt8XCtLtDpumP8Je7USYF23udNFcRkAPSEr9gZXzRq4Gqt8PvbK79NSaUtxH681Z", "4dDVHxMLGuzv1y6Q8cJSMst5oSbEdar6gcwXMFJeWuwiPDGaXMZkjiEbQ7gFRnaDj4yC5jbiBbhN6XDNyngvGVkH" ], "script": "base64:BgILCAISBwoFGAQICAEcAAZvcmFjbGUJAQdBZGRyZXNzAQEaAVeK/whomjW6QM1hdPISN96mN/D6OM7oHjgADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgALa0dvdkFkZHJlc3MCEmdvdmVybmFuY2VfYWRkcmVzcwAMa0Zhcm1BZGRyZXNzAg9mYXJtaW5nX2FkZHJlc3MAD2tTdXJ2ZXlzQWRkcmVzcwIPc3VydmV5c19hZGRyZXNzAAxrUm91dGluZ0FkZHICD3JvdXRpbmdfYWRkcmVzcwAHa1NXT1BpZAIHU1dPUF9pZAAPa1ByZWZpeFBvb2xOYW1lAgVwb29sXwETZ2V0QmFzZTU4RnJvbU9yYWNsZQEDa2V5BAckbWF0Y2gwCQCdCAIFBm9yYWNsZQUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQDZBAEFBnN0cmluZwQHbm90aGluZwUHJG1hdGNoMAkAAgEJAKwCAgUDa2V5AghpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MwALYWRtaW5JbnZva2UJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUSa0FkbWluSW52b2tlUHViS2V5ABFnb3Zlcm5hbmNlQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFC2tHb3ZBZGRyZXNzAA5mYXJtaW5nQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtGYXJtQWRkcmVzcwAOc3VydmV5c0FkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ9rU3VydmV5c0FkZHJlc3MADnJvdXRpbmdBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa1JvdXRpbmdBZGRyAAZzd29wSWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUOZmFybWluZ0FkZHJlc3MFB2tTV09QaWQBCmlzU2VsZkNhbGwBAWkDCQAAAggFAWkGY2FsbGVyBQR0aGlzBQR1bml0CQACAQIrT25seSBjb250cmFjdCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEJbGlzdFRvSW50AgFhBGl0ZW0JAM0IAgUBYQkBDXBhcnNlSW50VmFsdWUBBQRpdGVtAQ5hc3NldElkRnJvbVN0cgEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwUEdW5pdAkA2QQBBQdhc3NldElkAQ5hY2NvdW50QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkA8AcCBQR0aGlzBQJpZAMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAgtNYXRjaCBlcnJvcgEQZGlyZWN0U3dvcGZpQ1BNTQEFckFyZ3MEBGRBcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUFckFyZ3MAAQQDcG10BARwbXRQCQC1CQIJAJEDAgUFckFyZ3MAAgIBfAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBCQCRAwIFBHBtdFAAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBHBtdFAAAQUDbmlsBAttaW5Ub1JlY2l2ZQkAkQMCBQVyQXJncwADCQD8BwQFBGRBcHACDGNhbGxGdW5jdGlvbgkAzAgCAghleGNoYW5nZQkAzAgCCQDMCAIFC21pblRvUmVjaXZlBQNuaWwFA25pbAUDcG10ARNkaXJlY3RSb3V0aW5nU3dvcGZpAQVyQXJncwQEZEFwcAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQVyQXJncwABBANwbXQEBHBtdFAJALUJAgkAkQMCBQVyQXJncwACAgF8CQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEJAJEDAgUEcG10UAAACQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEcG10UAABBQNuaWwEBGFyZ3MEBWVBcmdzCQC1CQIJAJEDAgUFckFyZ3MAAwIBfAQKZXhjaGFuZ2VycwkAtQkCCQCRAwIFBWVBcmdzAAACASwEDmV4Y2hhbmdlcnNUeXBlCQC1CQIJAJEDAgUFZUFyZ3MAAQIBLAQFYXJnczEKAAIkbAkAtQkCCQCRAwIFBWVBcmdzAAICASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWxpc3RUb0ludAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwQFYXJnczIKAAIkbAkAtQkCCQCRAwIFBWVBcmdzAAMCASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWxpc3RUb0ludAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwQRcm91dGluZ0Fzc2V0c0tleXMJALUJAgkAkQMCBQVlQXJncwAEAgEsBAttaW5Ub1JlY2l2ZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWVBcmdzAAUJAMwIAgUKZXhjaGFuZ2VycwkAzAgCBQ5leGNoYW5nZXJzVHlwZQkAzAgCBQVhcmdzMQkAzAgCBQVhcmdzMgkAzAgCBRFyb3V0aW5nQXNzZXRzS2V5cwkAzAgCBQttaW5Ub1JlY2l2ZQUDbmlsCQD8BwQFBGRBcHACDHJvdXRpbmdUcmFkZQUEYXJncwUDcG10ARFidXlTd29wRm9yQWlyZHJvcAMEcG9vbA90b2tlblRvRXhjaGFuZ2URYW1vdW50VG9MZWZ0Rm9yVHgEB3Rva2VuSWQJAQ5hc3NldElkRnJvbVN0cgEFD3Rva2VuVG9FeGNoYW5nZQQMdG9rZW5CYWxhbmNlCQEOYWNjb3VudEJhbGFuY2UBBQd0b2tlbklkAwkAAAIFDHRva2VuQmFsYW5jZQUMdG9rZW5CYWxhbmNlBBBhbW91bnRUb0V4Y2hhbmdlCQBlAgUMdG9rZW5CYWxhbmNlBRFhbW91bnRUb0xlZnRGb3JUeAMJAGcCAAAFEGFtb3VudFRvRXhjaGFuZ2UJAAIBAh9Ob3RoaW5nIHRvIGV4Y2hhbmdlIGZvciBhaXJkcm9wBAhwb29sQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUEcG9vbAkA/AcEBQhwb29sQWRkcgIMY2FsbEZ1bmN0aW9uCQDMCAICCGV4Y2hhbmdlCQDMCAIJAMwIAgABBQNuaWwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdG9rZW5JZAUQYW1vdW50VG9FeGNoYW5nZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFpAQ5leGNoYW5nZVRva2VucwUGcm91dGVzB2FpcmRyb3AEcG9vbA90b2tlblRvRXhjaGFuZ2URYW1vdW50VG9MZWZ0Rm9yVHgJAQt2YWx1ZU9yRWxzZQIJAQppc1NlbGZDYWxsAQUBaQoBDWV4Y2hhbmdlVG9rZW4CAXIFcm91dGUEBXJBcmdzCQC1CQIFBXJvdXRlAgJfXwMJAAACCQCRAwIFBXJBcmdzAAACEGRpcmVjdFN3b3BmaUNQTU0EA2ludgkBEGRpcmVjdFN3b3BmaUNQTU0BBQVyQXJncwMJAAACBQNpbnYFA2ludgkAzQgCBQFyBQNpbnYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgkAkQMCBQVyQXJncwAAAg1yb3V0aW5nU3dvcGZpBANpbnYJARNkaXJlY3RSb3V0aW5nU3dvcGZpAQUFckFyZ3MDCQAAAgUDaW52BQNpbnYJAM0IAgUBcgUDaW52CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQISVW5rbm93biByb3V0ZSB0eXBlBANyZXMKAAIkbAUGcm91dGVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ1leGNoYW5nZVRva2VuAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAMJAAACBQNyZXMFA3JlcwMJAQEhAQUHYWlyZHJvcAUDbmlsBANpbnYJARFidXlTd29wRm9yQWlyZHJvcAMFBHBvb2wFD3Rva2VuVG9FeGNoYW5nZQURYW1vdW50VG9MZWZ0Rm9yVHgDCQAAAgUDaW52BQNpbnYEC3N3b3BCYWxhbmNlCQEOYWNjb3VudEJhbGFuY2UBBQZzd29wSWQDCQAAAgULc3dvcEJhbGFuY2UFC3N3b3BCYWxhbmNlBARhSW52CQD8BwQFEWdvdmVybmFuY2VBZGRyZXNzAgdhaXJEcm9wBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBnN3b3BJZAULc3dvcEJhbGFuY2UFA25pbAMJAAACBQRhSW52BQRhSW52BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwBAppc1JpZ2h0RmVlAwkAAAIIBQNpbnYDZmVlAKD3NgkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcEDWlzUm91dGluZ0NhbGwDCQAAAggFA2ludgRkQXBwBQ5yb3V0aW5nQWRkcmVzcwkAAAIIBQNpbnYIZnVuY3Rpb24CDHJvdXRpbmdUcmFkZQcEEmlzRXhjaGFuZ2VDYWxsQ1BNTQMDCQEJaXNEZWZpbmVkAQkAnQgCBQZvcmFjbGUJAKwCAgUPa1ByZWZpeFBvb2xOYW1lCQClCAEJAKQIAQgFA2ludgRkQXBwCQAAAggFA2ludghmdW5jdGlvbgIMY2FsbEZ1bmN0aW9uBwkAAAIJAJEDAggFA2ludgRhcmdzAAACCGV4Y2hhbmdlBwQOaXNFeGNoYW5nZUNhbGwDCQEJaXNEZWZpbmVkAQkAnQgCBQZvcmFjbGUJAKwCAgUPa1ByZWZpeFBvb2xOYW1lCQClCAEJAKQIAQgFA2ludgRkQXBwCQAAAggFA2ludghmdW5jdGlvbgIIZXhjaGFuZ2UHBA1pc0FpcmRyb3BDYWxsCQAAAggFA2ludghmdW5jdGlvbgIOZXhjaGFuZ2VUb2tlbnMEE2lzVXBkYXRlV2VpZ2h0c0NhbGwDCQAAAggFA2ludgRkQXBwBRFnb3Zlcm5hbmNlQWRkcmVzcwkAAAIIBQNpbnYIZnVuY3Rpb24CDXVwZGF0ZVdlaWdodHMHBBZpc1Rha2VuSW50b0FjY291bnRDUE1NAwMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQ9rUHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAgxjYWxsRnVuY3Rpb24HCQAAAgkAkQMCCAUDaW52BGFyZ3MAAAIZdGFrZUludG9BY2NvdW50RXh0cmFGdW5kcwcEEmlzVGFrZW5JbnRvQWNjb3VudAMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQ9rUHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAhl0YWtlSW50b0FjY291bnRFeHRyYUZ1bmRzBwQMaXNXcml0ZVRvdGFsAwkAAAIIBQNpbnYEZEFwcAUOc3VydmV5c0FkZHJlc3MJAAACCAUDaW52CGZ1bmN0aW9uAgt3cml0ZVRvdGFscwcEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MwABAAAEF2FkbWluUHViS2V5SW52b2tlU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAULYWRtaW5JbnZva2UAAQAABBBzaWduZWRCeU9uZUFkbWluCQBnAgkAZAIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAUXYWRtaW5QdWJLZXlJbnZva2VTaWduZWQAAQMDAwMDAwMFDmlzRXhjaGFuZ2VDYWxsBgUSaXNFeGNoYW5nZUNhbGxDUE1NBgUNaXNBaXJkcm9wQ2FsbAYFDWlzUm91dGluZ0NhbGwJAAACCQCQAwEIBQNpbnYIcGF5bWVudHMAAQcGAwMDAwUTaXNVcGRhdGVXZWlnaHRzQ2FsbAYFEmlzVGFrZW5JbnRvQWNjb3VudAYFFmlzVGFrZW5JbnRvQWNjb3VudENQTU0GBQxpc1dyaXRlVG90YWwJAAACCQCQAwEIBQNpbnYIcGF5bWVudHMAAAcFEHNpZ25lZEJ5T25lQWRtaW4HBQppc1JpZ2h0RmVlBwQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkxAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUMYWRtaW5QdWJLZXkyAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUMYWRtaW5QdWJLZXkzAAEAAAkAZwIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAACQDLV9g==", "height": 3913005, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GkSJdHJ915cB9pLCyzvuDvK5VocFHKWeHFrrt1zbcYfm Next: 2ZN9D1h4NHKRqURwvjLGJp7w83BWfHxgwVRRMA2X7vhU Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
55
6-func b (c) = {
7- let d = getString(a, c)
8- if ($isInstanceOf(d, "String"))
6+let b = "admin_pub_1"
7+
8+let c = "admin_pub_2"
9+
10+let d = "admin_pub_3"
11+
12+let e = "admin_invoke_pub"
13+
14+let f = "governance_address"
15+
16+let g = "farming_address"
17+
18+let h = "surveys_address"
19+
20+let i = "routing_address"
21+
22+let j = "SWOP_id"
23+
24+let k = "pool_"
25+
26+func l (m) = {
27+ let n = getString(a, m)
28+ if ($isInstanceOf(n, "String"))
929 then {
10- let e = d
11- fromBase58String(e)
30+ let o = n
31+ fromBase58String(o)
1232 }
1333 else {
14- let f = d
15- throw((c + "is empty"))
34+ let p = n
35+ throw((m + "is empty"))
1636 }
1737 }
1838
1939
20-let g = "admin_pub_1"
40+let q = l(b)
2141
22-let h = "admin_pub_2"
42+let r = l(c)
2343
24-let i = "admin_pub_3"
44+let s = l(d)
2545
26-let j = "admin_invoke_pub"
46+let t = l(e)
2747
28-let k = "governance_address"
48+let u = Address(l(f))
2949
30-let l = "farming_address"
50+let v = Address(l(g))
3151
32-let m = "surveys_address"
52+let w = Address(l(h))
3353
34-let n = "routing_address"
54+let x = Address(l(i))
3555
36-let o = b(g)
56+let y = fromBase58String(getStringValue(v, j))
3757
38-let p = b(h)
39-
40-let q = b(i)
41-
42-let r = b(j)
43-
44-let s = Address(b(k))
45-
46-let t = Address(b(l))
47-
48-let u = Address(b(m))
49-
50-let v = Address(b(n))
51-
52-let w = "pool_"
58+func z (A) = if ((A.caller == this))
59+ then unit
60+ else throw("Only contract itself can call this function")
5361
5462
55-@Verifier(x)
56-func y () = {
57- let d = x
58- if ($isInstanceOf(d, "InvokeScriptTransaction"))
63+func B (C,D) = (C :+ parseIntValue(D))
64+
65+
66+func E (F) = if ((F == "WAVES"))
67+ then unit
68+ else fromBase58String(F)
69+
70+
71+func G (F) = {
72+ let n = F
73+ if ($isInstanceOf(n, "ByteVector"))
5974 then {
60- let z = d
61- let A = if ((z.fee == 900000))
62- then (z.feeAssetId == unit)
75+ let H = n
76+ assetBalance(this, H)
77+ }
78+ else if ($isInstanceOf(n, "Unit"))
79+ then {
80+ let I = n
81+ wavesBalance(this).available
82+ }
83+ else throw("Match error")
84+ }
85+
86+
87+func J (K) = {
88+ let L = addressFromStringValue(K[1])
89+ let M = {
90+ let N = split(K[2], "|")
91+[AttachedPayment(fromBase58String(N[0]), parseIntValue(N[1]))]
92+ }
93+ let O = K[3]
94+ invoke(L, "callFunction", ["exchange", [O]], M)
95+ }
96+
97+
98+func P (K) = {
99+ let L = addressFromStringValue(K[1])
100+ let M = {
101+ let N = split(K[2], "|")
102+[AttachedPayment(fromBase58String(N[0]), parseIntValue(N[1]))]
103+ }
104+ let Q = {
105+ let R = split(K[3], "|")
106+ let S = split(R[0], ",")
107+ let T = split(R[1], ",")
108+ let U = {
109+ let V = split(R[2], ",")
110+ let W = size(V)
111+ let X = nil
112+ func Y (Z,aa) = if ((aa >= W))
113+ then Z
114+ else B(Z, V[aa])
115+
116+ func ab (Z,aa) = if ((aa >= W))
117+ then Z
118+ else throw("List size exceeds 3")
119+
120+ ab(Y(Y(Y(X, 0), 1), 2), 3)
121+ }
122+ let ac = {
123+ let V = split(R[3], ",")
124+ let W = size(V)
125+ let X = nil
126+ func ad (Z,aa) = if ((aa >= W))
127+ then Z
128+ else B(Z, V[aa])
129+
130+ func ae (Z,aa) = if ((aa >= W))
131+ then Z
132+ else throw("List size exceeds 3")
133+
134+ ae(ad(ad(ad(X, 0), 1), 2), 3)
135+ }
136+ let af = split(R[4], ",")
137+ let O = parseIntValue(R[5])
138+[S, T, U, ac, af, O]
139+ }
140+ invoke(L, "routingTrade", Q, M)
141+ }
142+
143+
144+func ag (ah,ai,aj) = {
145+ let ak = E(ai)
146+ let al = G(ak)
147+ if ((al == al))
148+ then {
149+ let am = (al - aj)
150+ if ((0 >= am))
151+ then throw("Nothing to exchange for airdrop")
152+ else {
153+ let an = addressFromStringValue(ah)
154+ invoke(an, "callFunction", ["exchange", [1]], [AttachedPayment(ak, am)])
155+ }
156+ }
157+ else throw("Strict value is not equal to itself.")
158+ }
159+
160+
161+@Callable(A)
162+func exchangeTokens (ao,ap,ah,ai,aj) = valueOrElse(z(A), {
163+ func aq (ar,as) = {
164+ let K = split(as, "__")
165+ if ((K[0] == "directSwopfiCPMM"))
166+ then {
167+ let at = J(K)
168+ if ((at == at))
169+ then (ar :+ at)
170+ else throw("Strict value is not equal to itself.")
171+ }
172+ else if ((K[0] == "routingSwopfi"))
173+ then {
174+ let at = P(K)
175+ if ((at == at))
176+ then (ar :+ at)
177+ else throw("Strict value is not equal to itself.")
178+ }
179+ else throw("Unknown route type")
180+ }
181+
182+ let au = {
183+ let V = ao
184+ let W = size(V)
185+ let X = nil
186+ func Y (Z,aa) = if ((aa >= W))
187+ then Z
188+ else aq(Z, V[aa])
189+
190+ func ab (Z,aa) = if ((aa >= W))
191+ then Z
192+ else throw("List size exceeds 12")
193+
194+ ab(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(X, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
195+ }
196+ if ((au == au))
197+ then if (!(ap))
198+ then nil
199+ else {
200+ let at = ag(ah, ai, aj)
201+ if ((at == at))
202+ then {
203+ let av = G(y)
204+ if ((av == av))
205+ then {
206+ let aw = invoke(u, "airDrop", nil, [AttachedPayment(y, av)])
207+ if ((aw == aw))
208+ then nil
209+ else throw("Strict value is not equal to itself.")
210+ }
211+ else throw("Strict value is not equal to itself.")
212+ }
213+ else throw("Strict value is not equal to itself.")
214+ }
215+ else throw("Strict value is not equal to itself.")
216+ })
217+
218+
219+@Verifier(ax)
220+func ay () = {
221+ let n = ax
222+ if ($isInstanceOf(n, "InvokeScriptTransaction"))
223+ then {
224+ let at = n
225+ let az = if ((at.fee == 900000))
226+ then (at.feeAssetId == unit)
63227 else false
64- let B = if ((z.dApp == v))
65- then (z.function == "routingTrade")
228+ let aA = if ((at.dApp == x))
229+ then (at.function == "routingTrade")
66230 else false
67- let C = if (if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
68- then (z.function == "callFunction")
231+ let aB = if (if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
232+ then (at.function == "callFunction")
69233 else false)
70- then (z.args[0] == "exchange")
234+ then (at.args[0] == "exchange")
71235 else false
72- let D = if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
73- then (z.function == "exchange")
236+ let aC = if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
237+ then (at.function == "exchange")
74238 else false
75- let E = if ((z.dApp == s))
76- then (z.function == "airDrop")
239+ let aD = (at.function == "exchangeTokens")
240+ let aE = if ((at.dApp == u))
241+ then (at.function == "updateWeights")
77242 else false
78- let F = if ((z.dApp == s))
79- then (z.function == "updateWeights")
243+ let aF = if (if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
244+ then (at.function == "callFunction")
245+ else false)
246+ then (at.args[0] == "takeIntoAccountExtraFunds")
80247 else false
81- let G = if (if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
82- then (z.function == "callFunction")
83- else false)
84- then (z.args[0] == "takeIntoAccountExtraFunds")
248+ let aG = if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
249+ then (at.function == "takeIntoAccountExtraFunds")
85250 else false
86- let H = if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
87- then (z.function == "takeIntoAccountExtraFunds")
251+ let aH = if ((at.dApp == w))
252+ then (at.function == "writeTotals")
88253 else false
89- let I = if ((z.dApp == u))
90- then (z.function == "writeTotals")
91- else false
92- let J = if (sigVerify(x.bodyBytes, x.proofs[0], o))
254+ let aI = if (sigVerify(ax.bodyBytes, ax.proofs[0], q))
93255 then 1
94256 else 0
95- let K = if (sigVerify(x.bodyBytes, x.proofs[0], p))
257+ let aJ = if (sigVerify(ax.bodyBytes, ax.proofs[0], r))
96258 then 1
97259 else 0
98- let L = if (sigVerify(x.bodyBytes, x.proofs[0], q))
260+ let aK = if (sigVerify(ax.bodyBytes, ax.proofs[0], s))
99261 then 1
100262 else 0
101- let M = if (sigVerify(x.bodyBytes, x.proofs[0], r))
263+ let aL = if (sigVerify(ax.bodyBytes, ax.proofs[0], t))
102264 then 1
103265 else 0
104- let N = ((((J + K) + L) + M) >= 1)
105- if (if (if (if (if (if (if (D)
266+ let aM = ((((aI + aJ) + aK) + aL) >= 1)
267+ if (if (if (if (if (if (if (aC)
106268 then true
107- else C)
269+ else aB)
108270 then true
109- else E)
271+ else aD)
110272 then true
111- else B)
112- then (size(z.payments) == 1)
273+ else aA)
274+ then (size(at.payments) == 1)
113275 else false)
114276 then true
115- else if (if (if (if (F)
277+ else if (if (if (if (aE)
116278 then true
117- else H)
279+ else aG)
118280 then true
119- else G)
281+ else aF)
120282 then true
121- else I)
122- then (size(z.payments) == 0)
283+ else aH)
284+ then (size(at.payments) == 0)
123285 else false)
124- then N
286+ then aM
125287 else false)
126- then A
288+ then az
127289 else false
128290 }
129291 else {
130- let J = if (sigVerify(x.bodyBytes, x.proofs[0], o))
292+ let aI = if (sigVerify(ax.bodyBytes, ax.proofs[0], q))
131293 then 1
132294 else 0
133- let K = if (sigVerify(x.bodyBytes, x.proofs[1], p))
295+ let aJ = if (sigVerify(ax.bodyBytes, ax.proofs[1], r))
134296 then 1
135297 else 0
136- let L = if (sigVerify(x.bodyBytes, x.proofs[2], q))
298+ let aK = if (sigVerify(ax.bodyBytes, ax.proofs[2], s))
137299 then 1
138300 else 0
139- (((J + K) + L) >= 2)
301+ (((aI + aJ) + aK) >= 2)
140302 }
141303 }
142304
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
55
6-func b (c) = {
7- let d = getString(a, c)
8- if ($isInstanceOf(d, "String"))
6+let b = "admin_pub_1"
7+
8+let c = "admin_pub_2"
9+
10+let d = "admin_pub_3"
11+
12+let e = "admin_invoke_pub"
13+
14+let f = "governance_address"
15+
16+let g = "farming_address"
17+
18+let h = "surveys_address"
19+
20+let i = "routing_address"
21+
22+let j = "SWOP_id"
23+
24+let k = "pool_"
25+
26+func l (m) = {
27+ let n = getString(a, m)
28+ if ($isInstanceOf(n, "String"))
929 then {
10- let e = d
11- fromBase58String(e)
30+ let o = n
31+ fromBase58String(o)
1232 }
1333 else {
14- let f = d
15- throw((c + "is empty"))
34+ let p = n
35+ throw((m + "is empty"))
1636 }
1737 }
1838
1939
20-let g = "admin_pub_1"
40+let q = l(b)
2141
22-let h = "admin_pub_2"
42+let r = l(c)
2343
24-let i = "admin_pub_3"
44+let s = l(d)
2545
26-let j = "admin_invoke_pub"
46+let t = l(e)
2747
28-let k = "governance_address"
48+let u = Address(l(f))
2949
30-let l = "farming_address"
50+let v = Address(l(g))
3151
32-let m = "surveys_address"
52+let w = Address(l(h))
3353
34-let n = "routing_address"
54+let x = Address(l(i))
3555
36-let o = b(g)
56+let y = fromBase58String(getStringValue(v, j))
3757
38-let p = b(h)
39-
40-let q = b(i)
41-
42-let r = b(j)
43-
44-let s = Address(b(k))
45-
46-let t = Address(b(l))
47-
48-let u = Address(b(m))
49-
50-let v = Address(b(n))
51-
52-let w = "pool_"
58+func z (A) = if ((A.caller == this))
59+ then unit
60+ else throw("Only contract itself can call this function")
5361
5462
55-@Verifier(x)
56-func y () = {
57- let d = x
58- if ($isInstanceOf(d, "InvokeScriptTransaction"))
63+func B (C,D) = (C :+ parseIntValue(D))
64+
65+
66+func E (F) = if ((F == "WAVES"))
67+ then unit
68+ else fromBase58String(F)
69+
70+
71+func G (F) = {
72+ let n = F
73+ if ($isInstanceOf(n, "ByteVector"))
5974 then {
60- let z = d
61- let A = if ((z.fee == 900000))
62- then (z.feeAssetId == unit)
75+ let H = n
76+ assetBalance(this, H)
77+ }
78+ else if ($isInstanceOf(n, "Unit"))
79+ then {
80+ let I = n
81+ wavesBalance(this).available
82+ }
83+ else throw("Match error")
84+ }
85+
86+
87+func J (K) = {
88+ let L = addressFromStringValue(K[1])
89+ let M = {
90+ let N = split(K[2], "|")
91+[AttachedPayment(fromBase58String(N[0]), parseIntValue(N[1]))]
92+ }
93+ let O = K[3]
94+ invoke(L, "callFunction", ["exchange", [O]], M)
95+ }
96+
97+
98+func P (K) = {
99+ let L = addressFromStringValue(K[1])
100+ let M = {
101+ let N = split(K[2], "|")
102+[AttachedPayment(fromBase58String(N[0]), parseIntValue(N[1]))]
103+ }
104+ let Q = {
105+ let R = split(K[3], "|")
106+ let S = split(R[0], ",")
107+ let T = split(R[1], ",")
108+ let U = {
109+ let V = split(R[2], ",")
110+ let W = size(V)
111+ let X = nil
112+ func Y (Z,aa) = if ((aa >= W))
113+ then Z
114+ else B(Z, V[aa])
115+
116+ func ab (Z,aa) = if ((aa >= W))
117+ then Z
118+ else throw("List size exceeds 3")
119+
120+ ab(Y(Y(Y(X, 0), 1), 2), 3)
121+ }
122+ let ac = {
123+ let V = split(R[3], ",")
124+ let W = size(V)
125+ let X = nil
126+ func ad (Z,aa) = if ((aa >= W))
127+ then Z
128+ else B(Z, V[aa])
129+
130+ func ae (Z,aa) = if ((aa >= W))
131+ then Z
132+ else throw("List size exceeds 3")
133+
134+ ae(ad(ad(ad(X, 0), 1), 2), 3)
135+ }
136+ let af = split(R[4], ",")
137+ let O = parseIntValue(R[5])
138+[S, T, U, ac, af, O]
139+ }
140+ invoke(L, "routingTrade", Q, M)
141+ }
142+
143+
144+func ag (ah,ai,aj) = {
145+ let ak = E(ai)
146+ let al = G(ak)
147+ if ((al == al))
148+ then {
149+ let am = (al - aj)
150+ if ((0 >= am))
151+ then throw("Nothing to exchange for airdrop")
152+ else {
153+ let an = addressFromStringValue(ah)
154+ invoke(an, "callFunction", ["exchange", [1]], [AttachedPayment(ak, am)])
155+ }
156+ }
157+ else throw("Strict value is not equal to itself.")
158+ }
159+
160+
161+@Callable(A)
162+func exchangeTokens (ao,ap,ah,ai,aj) = valueOrElse(z(A), {
163+ func aq (ar,as) = {
164+ let K = split(as, "__")
165+ if ((K[0] == "directSwopfiCPMM"))
166+ then {
167+ let at = J(K)
168+ if ((at == at))
169+ then (ar :+ at)
170+ else throw("Strict value is not equal to itself.")
171+ }
172+ else if ((K[0] == "routingSwopfi"))
173+ then {
174+ let at = P(K)
175+ if ((at == at))
176+ then (ar :+ at)
177+ else throw("Strict value is not equal to itself.")
178+ }
179+ else throw("Unknown route type")
180+ }
181+
182+ let au = {
183+ let V = ao
184+ let W = size(V)
185+ let X = nil
186+ func Y (Z,aa) = if ((aa >= W))
187+ then Z
188+ else aq(Z, V[aa])
189+
190+ func ab (Z,aa) = if ((aa >= W))
191+ then Z
192+ else throw("List size exceeds 12")
193+
194+ ab(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(Y(X, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
195+ }
196+ if ((au == au))
197+ then if (!(ap))
198+ then nil
199+ else {
200+ let at = ag(ah, ai, aj)
201+ if ((at == at))
202+ then {
203+ let av = G(y)
204+ if ((av == av))
205+ then {
206+ let aw = invoke(u, "airDrop", nil, [AttachedPayment(y, av)])
207+ if ((aw == aw))
208+ then nil
209+ else throw("Strict value is not equal to itself.")
210+ }
211+ else throw("Strict value is not equal to itself.")
212+ }
213+ else throw("Strict value is not equal to itself.")
214+ }
215+ else throw("Strict value is not equal to itself.")
216+ })
217+
218+
219+@Verifier(ax)
220+func ay () = {
221+ let n = ax
222+ if ($isInstanceOf(n, "InvokeScriptTransaction"))
223+ then {
224+ let at = n
225+ let az = if ((at.fee == 900000))
226+ then (at.feeAssetId == unit)
63227 else false
64- let B = if ((z.dApp == v))
65- then (z.function == "routingTrade")
228+ let aA = if ((at.dApp == x))
229+ then (at.function == "routingTrade")
66230 else false
67- let C = if (if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
68- then (z.function == "callFunction")
231+ let aB = if (if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
232+ then (at.function == "callFunction")
69233 else false)
70- then (z.args[0] == "exchange")
234+ then (at.args[0] == "exchange")
71235 else false
72- let D = if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
73- then (z.function == "exchange")
236+ let aC = if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
237+ then (at.function == "exchange")
74238 else false
75- let E = if ((z.dApp == s))
76- then (z.function == "airDrop")
239+ let aD = (at.function == "exchangeTokens")
240+ let aE = if ((at.dApp == u))
241+ then (at.function == "updateWeights")
77242 else false
78- let F = if ((z.dApp == s))
79- then (z.function == "updateWeights")
243+ let aF = if (if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
244+ then (at.function == "callFunction")
245+ else false)
246+ then (at.args[0] == "takeIntoAccountExtraFunds")
80247 else false
81- let G = if (if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
82- then (z.function == "callFunction")
83- else false)
84- then (z.args[0] == "takeIntoAccountExtraFunds")
248+ let aG = if (isDefined(getString(a, (k + toString(addressFromRecipient(at.dApp))))))
249+ then (at.function == "takeIntoAccountExtraFunds")
85250 else false
86- let H = if (isDefined(getString(a, (w + toString(addressFromRecipient(z.dApp))))))
87- then (z.function == "takeIntoAccountExtraFunds")
251+ let aH = if ((at.dApp == w))
252+ then (at.function == "writeTotals")
88253 else false
89- let I = if ((z.dApp == u))
90- then (z.function == "writeTotals")
91- else false
92- let J = if (sigVerify(x.bodyBytes, x.proofs[0], o))
254+ let aI = if (sigVerify(ax.bodyBytes, ax.proofs[0], q))
93255 then 1
94256 else 0
95- let K = if (sigVerify(x.bodyBytes, x.proofs[0], p))
257+ let aJ = if (sigVerify(ax.bodyBytes, ax.proofs[0], r))
96258 then 1
97259 else 0
98- let L = if (sigVerify(x.bodyBytes, x.proofs[0], q))
260+ let aK = if (sigVerify(ax.bodyBytes, ax.proofs[0], s))
99261 then 1
100262 else 0
101- let M = if (sigVerify(x.bodyBytes, x.proofs[0], r))
263+ let aL = if (sigVerify(ax.bodyBytes, ax.proofs[0], t))
102264 then 1
103265 else 0
104- let N = ((((J + K) + L) + M) >= 1)
105- if (if (if (if (if (if (if (D)
266+ let aM = ((((aI + aJ) + aK) + aL) >= 1)
267+ if (if (if (if (if (if (if (aC)
106268 then true
107- else C)
269+ else aB)
108270 then true
109- else E)
271+ else aD)
110272 then true
111- else B)
112- then (size(z.payments) == 1)
273+ else aA)
274+ then (size(at.payments) == 1)
113275 else false)
114276 then true
115- else if (if (if (if (F)
277+ else if (if (if (if (aE)
116278 then true
117- else H)
279+ else aG)
118280 then true
119- else G)
281+ else aF)
120282 then true
121- else I)
122- then (size(z.payments) == 0)
283+ else aH)
284+ then (size(at.payments) == 0)
123285 else false)
124- then N
286+ then aM
125287 else false)
126- then A
288+ then az
127289 else false
128290 }
129291 else {
130- let J = if (sigVerify(x.bodyBytes, x.proofs[0], o))
292+ let aI = if (sigVerify(ax.bodyBytes, ax.proofs[0], q))
131293 then 1
132294 else 0
133- let K = if (sigVerify(x.bodyBytes, x.proofs[1], p))
295+ let aJ = if (sigVerify(ax.bodyBytes, ax.proofs[1], r))
134296 then 1
135297 else 0
136- let L = if (sigVerify(x.bodyBytes, x.proofs[2], q))
298+ let aK = if (sigVerify(ax.bodyBytes, ax.proofs[2], s))
137299 then 1
138300 else 0
139- (((J + K) + L) >= 2)
301+ (((aI + aJ) + aK) >= 2)
140302 }
141303 }
142304

github/deemru/w8io/6500d08 
54.57 ms