tx · 5MxnbHDZTkoZwnYKVcgHZmCfYSSYMFXZqcNrChgrkidE

3PMqKakbsELgTxiAHNzm4ryEJBLKJcLetyj:  -0.01100000 Waves

2023.10.13 13:45 [3862588] smart account 3PMqKakbsELgTxiAHNzm4ryEJBLKJcLetyj > SELF 0.00000000 Waves

{ "type": 13, "id": "5MxnbHDZTkoZwnYKVcgHZmCfYSSYMFXZqcNrChgrkidE", "fee": 1100000, "feeAssetId": null, "timestamp": 1697193969815, "version": 2, "chainId": 87, "sender": "3PMqKakbsELgTxiAHNzm4ryEJBLKJcLetyj", "senderPublicKey": "y6K4a5SRZdvLzRWHrhjBuh5BQqujMD5sLnAocMyZ3P3", "proofs": [ "2sQ5cNqkjFdZhpRiPmU2tZyhwvqBg41stApLRcweyX14N897dg4tmn8ntgLzMML5J4Exj1z9yx3cKGQzbTU9tomz" ], "script": "base64:BgIfCAISABIICgYBAQgIGBgSBAoCCAgSBAoCCAESAwoBCBIADGFkbWluQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzAgVhZG1pbgIAAAphcmJDb3VudGVyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCmFyYkNvdW50ZXIAAAANd3hTd2FwQWRkcmVzcwIjM1A2OHpOaXVmc3UxdmlacHUxYVkzY2RhaFJSS2N2VjVOOTMBC3dyaXRlU3RyaW5nAgNrZXkLc3RyaW5nVmFsdWUJAQtTdHJpbmdFbnRyeQIFA2tleQULc3RyaW5nVmFsdWUBDHdyaXRlSW50ZWdlcgIDa2V5DGludGVnZXJWYWx1ZQkBDEludGVnZXJFbnRyeQIFA2tleQUMaW50ZWdlclZhbHVlAQdpc0FkbWluAQ1jYWxsZXJBZGRyZXNzAwkAAAIFDWNhbGxlckFkZHJlc3MJANkEAQUMYWRtaW5BZGRyZXNzBgcBDXNwbGl0Q2ZtbUpzb24BBWVudHJ5CQC1CQIFBWVudHJ5AgEvAQppbnZva2VTd29wAwtwb29sQWRkcmVzcwd0b2tlbklkC2lucHV0QW1vdW50BA50b2tlbklkQ2hlY2tlZAMJAAACBQd0b2tlbklkAgVXQVZFUwUEdW5pdAkA2QQBBQd0b2tlbklkBAZyZXN1bHQJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQULcG9vbEFkZHJlc3MCCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQ50b2tlbklkQ2hlY2tlZAULaW5wdXRBbW91bnQFA25pbAMJAAACBQZyZXN1bHQFBnJlc3VsdAQHJG1hdGNoMAUGcmVzdWx0AwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQGcmVzdWx0BQckbWF0Y2gwBAckbWF0Y2gxCQCRAwIFBnJlc3VsdAAAAwkAAQIFByRtYXRjaDECA0ludAQBYQUHJG1hdGNoMQUBYQkAAgECGExpc3QgaXRlbSBpcyBub3QgYW4gaW50IQkAAgECKVJlc3VsdCBvZiBzd29wIGludm9rYXRpb24gZG9lcyBub3QgbWF0Y2ghCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQhpbnZva2VXeAMJdG9rZW5JZEluCnRva2VuSWRPdXQLaW5wdXRBbW91bnQEEHRva2VuSWRJbkNoZWNrZWQDCQAAAgUJdG9rZW5JZEluAgVXQVZFUwUEdW5pdAkA2QQBBQl0b2tlbklkSW4EEXRva2VuSWRPdXRDaGVja2VkAwkAAAIFCnRva2VuSWRPdXQCBVdBVkVTAgAFCnRva2VuSWRPdXQEAXIJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUNd3hTd2FwQWRkcmVzcwIEc3dhcAkAzAgCAAEJAMwIAgURdG9rZW5JZE91dENoZWNrZWQJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFEHRva2VuSWRJbkNoZWNrZWQFC2lucHV0QW1vdW50BQNuaWwDCQAAAgUBcgUBcgQHJG1hdGNoMAUBcgMJAAECBQckbWF0Y2gwAgNJbnQEAXIFByRtYXRjaDAFAXIJAAIBAilSZXN1bHQgb2Ygc3dvcCBpbnZva2F0aW9uIGRvZXMgbm90IG1hdGNoIQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEMaW52b2tlUHV6emxlBAtwb29sQWRkcmVzcwl0b2tlbklkSW4KdG9rZW5JZE91dAtpbnB1dEFtb3VudAQQdG9rZW5JZEluQ2hlY2tlZAMJAAACBQl0b2tlbklkSW4CBVdBVkVTBQR1bml0CQDZBAEFCXRva2VuSWRJbgQGcmVzdWx0CQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3Bvb2xBZGRyZXNzAgRzd2FwCQDMCAIFCnRva2VuSWRPdXQJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFEHRva2VuSWRJbkNoZWNrZWQFC2lucHV0QW1vdW50BQNuaWwDCQAAAgUGcmVzdWx0BQZyZXN1bHQEByRtYXRjaDAFBnJlc3VsdAMJAAECBQckbWF0Y2gwAgNJbnQEBnJlc3VsdAUHJG1hdGNoMAUGcmVzdWx0CQACAQIpUmVzdWx0IG9mIHN3b3AgaW52b2thdGlvbiBkb2VzIG5vdCBtYXRjaCEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEWRldGVybWluZVBsYXRmb3JtAwRjZm1tCXRva2VuSWRJbgp0b2tlbklkT3V0BARpdGVtCQENc3BsaXRDZm1tSnNvbgEFBGNmbW0EC2lucHV0QW1vdW50CQC2CQEJAJEDAgUEaXRlbQACBAVpbnB1dAQHJG1hdGNoMAULaW5wdXRBbW91bnQDCQABAgUHJG1hdGNoMAIDSW50BAtpbnB1dEFtb3VudAUHJG1hdGNoMAULaW5wdXRBbW91bnQJAAIBAihEYXRhdHlwZSBvZiBpbnB1dCBhbW91bnQgZG9lcyBub3QgbWF0Y2ghBAZyZXN1bHQDCQAAAgkAkQMCBQRpdGVtAAACBFNXT1AJAQppbnZva2VTd29wAwkAkQMCBQRpdGVtAAEFCXRva2VuSWRJbgUFaW5wdXQDCQAAAgkAkQMCBQRpdGVtAAACDldhdmVzIEV4Y2hhbmdlCQEIaW52b2tlV3gDBQl0b2tlbklkSW4FCnRva2VuSWRPdXQFBWlucHV0AwkAAAIJAJEDAgUEaXRlbQAAAgtQdXp6bGUgU3dhcAkBDGludm9rZVB1enpsZQQJAJEDAgUEaXRlbQABBQl0b2tlbklkSW4FCnRva2VuSWRPdXQFBWlucHV0CQACAQIbUGxhdGZvcm0gaWQgZG9lcyBub3QgbWF0Y2ghBQZyZXN1bHQBDHByb2Nlc3NDZm1tcwMFc3dhcHMJdG9rZW5JZEluCnRva2VuSWRPdXQKAQppbnZva2VTd2FwAgVhY2N1bQRuZXh0BAskdDA2OTU5Njk4NgUFYWNjdW0EBnJlc3VsdAgFCyR0MDY5NTk2OTg2Al8xBAVpbmRleAgFCyR0MDY5NTk2OTg2Al8yAwkAZgIJAJADAQUFc3dhcHMFBWluZGV4CQCUCgIJAGQCBQZyZXN1bHQJARFkZXRlcm1pbmVQbGF0Zm9ybQMFBG5leHQFCXRva2VuSWRJbgUKdG9rZW5JZE91dAkAZAIFBWluZGV4AAEJAJQKAgUGcmVzdWx0BQVpbmRleAQLcmVzdWx0VHVwbGUKAAIkbAUFc3dhcHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIAAAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQppbnZva2VTd2FwAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA0MAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoCAULcmVzdWx0VHVwbGUCXzEBH2NhbGNFeGNlc3NBbW91bnRQZXJDZm1tUG9zaXRpdmUCCmRpZmZlcmVuY2ULbnVtYmVyQ2ZtbXMECHF1b3RpZW50CQBuBAUKZGlmZmVyZW5jZQABBQtudW1iZXJDZm1tcwUERE9XTgQWdG90YWxEaXN0cmlidXRlZEFtb3VudAkAaAIFCHF1b3RpZW50BQtudW1iZXJDZm1tcwQPcmVtYWluaW5nQW1vdW50CQBlAgUKZGlmZmVyZW5jZQUWdG90YWxEaXN0cmlidXRlZEFtb3VudAMJAGYCBQ9yZW1haW5pbmdBbW91bnQAAAkAlAoCBQhxdW90aWVudAUPcmVtYWluaW5nQW1vdW50CQCUCgIFCHF1b3RpZW50AAABH2NhbGNFeGNlc3NBbW91bnRQZXJDZm1tTmVnYXRpdmUCCmRpZmZlcmVuY2ULbnVtYmVyQ2ZtbXMECHF1b3RpZW50CQBuBAUKZGlmZmVyZW5jZQABBQtudW1iZXJDZm1tcwUERE9XTgQWdG90YWxEaXN0cmlidXRlZEFtb3VudAkAaAIFCHF1b3RpZW50BQtudW1iZXJDZm1tcwQPcmVtYWluaW5nQW1vdW50CQBlAgUKZGlmZmVyZW5jZQUWdG90YWxEaXN0cmlidXRlZEFtb3VudAMJAGYCAAAFD3JlbWFpbmluZ0Ftb3VudAkAlAoCBQhxdW90aWVudAUPcmVtYWluaW5nQW1vdW50CQCUCgIFCHF1b3RpZW50AAABGmRpc3RyaWJ1dGVBZGRpdGlvbmFsVG9rZW5zAgVzd2FwcwRkaWZmBAp0b3RhbFN3YXBzCQCQAwEFBXN3YXBzBAskdDA3OTk3ODA4MAkBH2NhbGNFeGNlc3NBbW91bnRQZXJDZm1tUG9zaXRpdmUCBQRkaWZmBQp0b3RhbFN3YXBzBAhxdW90aWVudAgFCyR0MDc5OTc4MDgwAl8xBA9yZW1haW5pbmdBbW91bnQIBQskdDA3OTk3ODA4MAJfMgoBDWFkanVzdEFtb3VudHMCBWFjY3VtBG5leHQECyR0MDgxNTM4MTk1BQVhY2N1bQQNYWRqdXN0ZWRTd2FwcwgFCyR0MDgxNTM4MTk1Al8xBA1yZW1haW5pbmdEaWZmCAULJHQwODE1MzgxOTUCXzIEBGl0ZW0JAQ1zcGxpdENmbW1Kc29uAQUEbmV4dAQLaW5wdXRBbW91bnQJALYJAQkAkQMCBQRpdGVtAAIEByRtYXRjaDAFC2lucHV0QW1vdW50AwkAAQIFByRtYXRjaDACA0ludAQFaW5wdXQFByRtYXRjaDAEDmFtb3VudFRvQWRqdXN0AwkAZgIFDXJlbWFpbmluZ0RpZmYAAAkAZAIJAGQCBQVpbnB1dAUIcXVvdGllbnQAAQkAZAIFBWlucHV0BQhxdW90aWVudAQHbmV3SXRlbQkArAICCQCsAgIJAKwCAgkArAICCQCRAwIFBGl0ZW0AAAIBLwkAkQMCBQRpdGVtAAECAS8JAKQDAQUOYW1vdW50VG9BZGp1c3QEEG5ld1JlbWFpbmluZ0RpZmYDCQBmAgUNcmVtYWluaW5nRGlmZgAACQBlAgUNcmVtYWluaW5nRGlmZgABBQ1yZW1haW5pbmdEaWZmCQCUCgIJAM0IAgUNYWRqdXN0ZWRTd2FwcwUHbmV3SXRlbQUQbmV3UmVtYWluaW5nRGlmZgkAAgECGUlucHV0IGhhcyB3cm9uZyBkYXRhdHlwZSEEBnJlc3VsdAoAAiRsBQVzd2FwcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsBQ9yZW1haW5pbmdBbW91bnQKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDWFkanVzdEFtb3VudHMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDQwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgIBQZyZXN1bHQCXzEBGGRpc3RyaWJ1dGVSZW1haW5pbmdEaWZmcwINcmVtYWluaW5nRGlmZgVzd2FwcwoBFmRpc3RyaWJ1dGVQcm9wb3J0aW9uYWwCBWFjY3VtBG5leHQECyR0MDkwNzE5MTEwBQVhY2N1bQQNYWRqdXN0ZWRTd2FwcwgFCyR0MDkwNzE5MTEwAl8xBApyZW1haW5EaWZmCAULJHQwOTA3MTkxMTACXzIEBGl0ZW0JAQ1zcGxpdENmbW1Kc29uAQUEbmV4dAQLaW5wdXRBbW91bnQJALYJAQkAkQMCBQRpdGVtAAIEEGlucHV0QW1vdW50Q2hlY2sEByRtYXRjaDAFC2lucHV0QW1vdW50AwkAAQIFByRtYXRjaDACA0ludAQFaW5wdXQFByRtYXRjaDAFBWlucHV0CQACAQIkSW5wdXQgYW1vdW50IGhhcyB0aGUgd3JvbmcgZGF0YSB0eXBlBA9tYXhTdWJ0cmFjdGFibGUDCQBmAgUQaW5wdXRBbW91bnRDaGVjawAECQBrAwUQaW5wdXRBbW91bnRDaGVjawADAAQAAAQMJHQwOTUwODEwMTIyAwMJAAACBQpyZW1haW5EaWZmAAAGCQAAAgUPbWF4U3VidHJhY3RhYmxlAAAJAJQKAgUKcmVtYWluRGlmZgAAAwkAZgIJAGQCBQpyZW1haW5EaWZmBQ9tYXhTdWJ0cmFjdGFibGUAAAQVcmVtYWluaW5nU3VidHJhY3RhYmxlCQBkAgUKcmVtYWluRGlmZgUPbWF4U3VidHJhY3RhYmxlCQCUCgIAAAkAZQIFD21heFN1YnRyYWN0YWJsZQUVcmVtYWluaW5nU3VidHJhY3RhYmxlAwkAZgIAAAkAZAIFCnJlbWFpbkRpZmYFD21heFN1YnRyYWN0YWJsZQkAlAoCCQBkAgUKcmVtYWluRGlmZgUPbWF4U3VidHJhY3RhYmxlBQ9tYXhTdWJ0cmFjdGFibGUJAJQKAgAABQ9tYXhTdWJ0cmFjdGFibGUEEG5ld1JlbWFpbmluZ0RpZmYIBQwkdDA5NTA4MTAxMjICXzEEEnN1YnRyYWN0YWJsZUFtb3VudAgFDCR0MDk1MDgxMDEyMgJfMgQOYW1vdW50VG9BZGp1c3QJAGUCBRBpbnB1dEFtb3VudENoZWNrBRJzdWJ0cmFjdGFibGVBbW91bnQEB25ld0l0ZW0JAKwCAgkArAICCQCsAgIJAKwCAgkAkQMCBQRpdGVtAAACAS8JAJEDAgUEaXRlbQABAgEvCQCkAwEFDmFtb3VudFRvQWRqdXN0CQCUCgIJAM0IAgUNYWRqdXN0ZWRTd2FwcwUHbmV3SXRlbQUQbmV3UmVtYWluaW5nRGlmZgoAAiRsBQVzd2FwcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsBQ1yZW1haW5pbmdEaWZmCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARZkaXN0cmlidXRlUHJvcG9ydGlvbmFsAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA0MAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoARhkaXN0cmlidXRlTmVnYXRpdmVUb2tlbnMCBXN3YXBzBGRpZmYECnRvdGFsU3dhcHMJAJADAQUFc3dhcHMEDSR0MDEwNDg3MTA1NzAJAR9jYWxjRXhjZXNzQW1vdW50UGVyQ2ZtbU5lZ2F0aXZlAgUEZGlmZgUKdG90YWxTd2FwcwQIcXVvdGllbnQIBQ0kdDAxMDQ4NzEwNTcwAl8xBA9yZW1haW5pbmdBbW91bnQIBQ0kdDAxMDQ4NzEwNTcwAl8yCgENYWRqdXN0QW1vdW50cwIFYWNjdW0EbmV4dAQNJHQwMTA2NDMxMDY4NQUFYWNjdW0EDWFkanVzdGVkU3dhcHMIBQ0kdDAxMDY0MzEwNjg1Al8xBA1yZW1haW5pbmdEaWZmCAUNJHQwMTA2NDMxMDY4NQJfMgQEaXRlbQkBDXNwbGl0Q2ZtbUpzb24BBQRuZXh0BAtpbnB1dEFtb3VudAkAtgkBCQCRAwIFBGl0ZW0AAgQHJG1hdGNoMAULaW5wdXRBbW91bnQDCQABAgUHJG1hdGNoMAIDSW50BAVpbnB1dAUHJG1hdGNoMAQNJHQwMTA4MjIxMTE3MgMJAGcCCQBkAgUFaW5wdXQFCHF1b3RpZW50AAEDAwkAZgIFDXJlbWFpbmluZ0RpZmYAAAkAZwIJAGUCCQBkAgUFaW5wdXQFCHF1b3RpZW50AAEAAQcJAJQKAgkAZQIJAGQCBQVpbnB1dAUIcXVvdGllbnQAAQkAZQIFDXJlbWFpbmluZ0RpZmYAAQkAlAoCCQBkAgUFaW5wdXQFCHF1b3RpZW50BQ1yZW1haW5pbmdEaWZmCQCUCgIFBWlucHV0CQBkAgUNcmVtYWluaW5nRGlmZgUIcXVvdGllbnQEDmFtb3VudFRvQWRqdXN0CAUNJHQwMTA4MjIxMTE3MgJfMQQQbmV3UmVtYWluaW5nRGlmZggFDSR0MDEwODIyMTExNzICXzIEB25ld0l0ZW0JAKwCAgkArAICCQCsAgIJAKwCAgkAkQMCBQRpdGVtAAACAS8JAJEDAgUEaXRlbQABAgEvCQCkAwEFDmFtb3VudFRvQWRqdXN0CQCUCgIJAM0IAgUNYWRqdXN0ZWRTd2FwcwUHbmV3SXRlbQUQbmV3UmVtYWluaW5nRGlmZgkAAgECGUlucHV0IGhhcyB3cm9uZyBkYXRhdHlwZSEEDSR0MDExMzcxMTE0NjIKAAIkbAUFc3dhcHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAUPcmVtYWluaW5nQW1vdW50CgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ1hZGp1c3RBbW91bnRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA0MAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoBA1hZGp1c3RlZFN3YXBzCAUNJHQwMTEzNzExMTQ2MgJfMQQOcmVtYWluaW5nRGlmZnMIBQ0kdDAxMTM3MTExNDYyAl8yBA0kdDAxMTQ2NjExNTQ2CQEYZGlzdHJpYnV0ZVJlbWFpbmluZ0RpZmZzAgUOcmVtYWluaW5nRGlmZnMFDWFkanVzdGVkU3dhcHMECmZpbmFsU3dhcHMIBQ0kdDAxMTQ2NjExNTQ2Al8xBAVkaWZmcwgFDSR0MDExNDY2MTE1NDYCXzIFCmZpbmFsU3dhcHMBF2hhbmRsZVNlY29uZElucHV0QW1vdW50AxNwcmVkZXRlcm1pbmVkQW1vdW50D2F2YWlsYWJsZUFtb3VudAVzd2FwcwQEZGlmZgkAZQIFD2F2YWlsYWJsZUFtb3VudAUTcHJlZGV0ZXJtaW5lZEFtb3VudAQNYWRqdXN0ZWRTd2FwcwMJAGYCBQRkaWZmAAAJARpkaXN0cmlidXRlQWRkaXRpb25hbFRva2VucwIFBXN3YXBzBQRkaWZmAwkAZgIAAAUEZGlmZgkBGGRpc3RyaWJ1dGVOZWdhdGl2ZVRva2VucwIFBXN3YXBzBQRkaWZmBQVzd2FwcwUNYWRqdXN0ZWRTd2FwcwUBaQEFc2V0dXAAAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzAgVhZG1pbgkAzAgCCQELd3JpdGVTdHJpbmcCAgVhZG1pbgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBQNuaWwJAAIBAhNEYXBwIGFscmVhZHkgc2V0dXAhAWkBCGJhc2ljQXJiBgtzdGFydEFtb3VudA5zZWNvbmRBbW91bnRJbgpmaXJzdFRva2VuC3NlY29uZFRva2VuCWZpcnN0U3dhcApzZWNvbmRTd2FwAwkBB2lzQWRtaW4BCAgFAWkGY2FsbGVyBWJ5dGVzBBlhdmFpbGFibGVBbW91bnRGaXJzdFRva2VuAwkAAAIFCmZpcnN0VG9rZW4CBVdBVkVTBAdiYWxhbmNlCQDvBwEFBHRoaXMIBQdiYWxhbmNlCWF2YWlsYWJsZQQMZmlyc3RUb2tlbklkBAN0SWQJANkEAQUKZmlyc3RUb2tlbgQHJG1hdGNoMAUDdElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEA3RJZAUHJG1hdGNoMAUDdElkCQACAQIQSW52YWxpZCBkYXRhdHlwZQkA8AcCBQR0aGlzBQxmaXJzdFRva2VuSWQDCQBnAgUZYXZhaWxhYmxlQW1vdW50Rmlyc3RUb2tlbgULc3RhcnRBbW91bnQEC2ZpcnN0UmVzdWx0CQEMcHJvY2Vzc0NmbW1zAwUJZmlyc3RTd2FwBQpmaXJzdFRva2VuBQtzZWNvbmRUb2tlbgQLc2Vjb25kU3dhcHMDCQAAAgULZmlyc3RSZXN1bHQFDnNlY29uZEFtb3VudEluBQpzZWNvbmRTd2FwCQEXaGFuZGxlU2Vjb25kSW5wdXRBbW91bnQDBQ5zZWNvbmRBbW91bnRJbgULZmlyc3RSZXN1bHQFCnNlY29uZFN3YXAEDHNlY29uZFJlc3VsdAkBDHByb2Nlc3NDZm1tcwMFC3NlY29uZFN3YXBzBQtzZWNvbmRUb2tlbgUKZmlyc3RUb2tlbgMJAGYCBQxzZWNvbmRSZXN1bHQFC3N0YXJ0QW1vdW50CQCUCgIJAMwIAgkBDHdyaXRlSW50ZWdlcgIJAKwCAgIKQXJiUmVzdWx0XwkApAMBBQphcmJDb3VudGVyCQBlAgUMc2Vjb25kUmVzdWx0BQtzdGFydEFtb3VudAkAzAgCCQELd3JpdGVTdHJpbmcCCQCsAgICEEFyYlJlc3VsdCBUb2tlbl8JAKQDAQUKYXJiQ291bnRlcgUKZmlyc3RUb2tlbgkAzAgCCQEMd3JpdGVJbnRlZ2VyAgIKYXJiQ291bnRlcgkAZAIFCmFyYkNvdW50ZXIAAQUDbmlsCQBlAgUMc2Vjb25kUmVzdWx0BQtzdGFydEFtb3VudAkAAgEJAKwCAgkArAICCQCsAgICKFRyYWRlIHdhcyBub3QgcHJvZml0YWJsZSEgSW5wdXQgYW1vdW50OiAJAKQDAQULc3RhcnRBbW91bnQCECBPdXRwdXQgYW1vdW50OiAJAKQDAQUMc2Vjb25kUmVzdWx0CQACAQIpQXZhaWxhYmxlIGlucHV0IGFtb3VudCBpcyBub3Qgc3VmZmljaWVudCEJAAIBAipBZGRyZXNzIGRvZXMgbm90IG1hdGNoIHdpdGggYWRtaW4gYWRkcmVzcyEBaQERdXBkYXRlU3RyaW5nRW50cnkCA2tleQtzdHJpbmdWYWx1ZQMJAQdpc0FkbWluAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELd3JpdGVTdHJpbmcCBQNrZXkFC3N0cmluZ1ZhbHVlBQNuaWwJAAIBAipBZGRyZXNzIGRvZXMgbm90IG1hdGNoIHdpdGggYWRtaW4gYWRkcmVzcyEBaQESdXBkYXRlSW50ZWdlckVudHJ5AgNrZXkMaW50ZWdlclZhbHVlAwkBB2lzQWRtaW4BCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQx3cml0ZUludGVnZXICBQNrZXkFDGludGVnZXJWYWx1ZQUDbmlsCQACAQIqQWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB3aXRoIGFkbWluIGFkZHJlc3MhAWkBEmRlbGV0ZVN0b3JhZ2VFbnRyeQEDa2V5AwkBB2lzQWRtaW4BCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtEZWxldGVFbnRyeQEFA2tleQUDbmlsCQACAQIqQWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB3aXRoIGFkbWluIGFkZHJlc3MhAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleXaEJSc=", "height": 3862588, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FQaEmXf6Cx8tvCBGzLqkMMu8ou4zS5FmRu5NF7hNBjpX Next: DqgaCDsr1fvNLHXxejT8bpgZwsPHyABFuZSGGg4tPdBw Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = valueOrElse(getString(this, "admin"), "")
55
6-let b = "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"
6+let b = valueOrElse(getInteger(this, "arbCounter"), 0)
77
8-func c (d,e) = StringEntry(d, e)
8+let c = "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"
9+
10+func d (e,f) = StringEntry(e, f)
911
1012
11-func f (d,g) = IntegerEntry(d, g)
13+func g (e,h) = IntegerEntry(e, h)
1214
1315
14-func h (i) = if ((i == fromBase58String(a)))
16+func i (j) = if ((j == fromBase58String(a)))
1517 then true
1618 else false
1719
1820
19-func j (k) = split(k, "/")
21+func k (l) = split(l, "/")
2022
2123
22-func l (m,n,o) = {
23- let p = if ((n == "WAVES"))
24+func m (n,o,p) = {
25+ let q = if ((o == "WAVES"))
2426 then unit
25- else fromBase58String(n)
26- let q = invoke(addressFromStringValue(m), "exchange", [1], [AttachedPayment(p, o)])
27- if ((q == q))
27+ else fromBase58String(o)
28+ let r = invoke(addressFromStringValue(n), "exchange", [1], [AttachedPayment(q, p)])
29+ if ((r == r))
2830 then {
29- let r = q
30- if ($isInstanceOf(r, "List[Any]"))
31+ let s = r
32+ if ($isInstanceOf(s, "List[Any]"))
3133 then {
32- let q = r
33- let s = q[0]
34- if ($isInstanceOf(s, "Int"))
34+ let r = s
35+ let t = r[0]
36+ if ($isInstanceOf(t, "Int"))
3537 then {
36- let t = s
37- t
38+ let u = t
39+ u
3840 }
3941 else throw("List item is not an int!")
4042 }
4446 }
4547
4648
47-func u (v,w,o) = {
48- let x = if ((v == "WAVES"))
49+func v (w,x,p) = {
50+ let y = if ((w == "WAVES"))
4951 then unit
50- else fromBase58String(v)
51- let y = if ((w == "WAVES"))
52+ else fromBase58String(w)
53+ let z = if ((x == "WAVES"))
5254 then ""
53- else w
54- let z = invoke(addressFromStringValue(b), "swap", [1, y, toString(this)], [AttachedPayment(x, o)])
55- if ((z == z))
55+ else x
56+ let A = invoke(addressFromStringValue(c), "swap", [1, z, toString(this)], [AttachedPayment(y, p)])
57+ if ((A == A))
5658 then {
57- let r = z
58- if ($isInstanceOf(r, "Int"))
59+ let s = A
60+ if ($isInstanceOf(s, "Int"))
5961 then {
60- let z = r
61- z
62+ let A = s
63+ A
6264 }
6365 else throw("Result of swop invokation does not match!")
6466 }
6668 }
6769
6870
69-func A (m,v,w,o) = {
70- let x = if ((v == "WAVES"))
71+func B (n,w,x,p) = {
72+ let y = if ((w == "WAVES"))
7173 then unit
72- else fromBase58String(v)
73- let q = invoke(addressFromStringValue(m), "swap", [w, 1], [AttachedPayment(x, o)])
74- if ((q == q))
74+ else fromBase58String(w)
75+ let r = invoke(addressFromStringValue(n), "swap", [x, 1], [AttachedPayment(y, p)])
76+ if ((r == r))
7577 then {
76- let r = q
77- if ($isInstanceOf(r, "Int"))
78+ let s = r
79+ if ($isInstanceOf(s, "Int"))
7880 then {
79- let q = r
80- q
81+ let r = s
82+ r
8183 }
8284 else throw("Result of swop invokation does not match!")
8385 }
8587 }
8688
8789
88-func B (C,v,w) = {
89- let D = j(C)
90- let o = parseInt(D[2])
91- let E = {
92- let r = o
93- if ($isInstanceOf(r, "Int"))
90+func C (D,w,x) = {
91+ let E = k(D)
92+ let p = parseInt(E[2])
93+ let F = {
94+ let s = p
95+ if ($isInstanceOf(s, "Int"))
9496 then {
95- let o = r
96- o
97+ let p = s
98+ p
9799 }
98100 else throw("Datatype of input amount does not match!")
99101 }
100- let q = if ((D[0] == "SWOP"))
101- then l(D[1], v, E)
102- else if ((D[0] == "Waves Exchange"))
103- then u(v, w, E)
104- else if ((D[0] == "Puzzle Swap"))
105- then A(D[1], v, w, E)
102+ let r = if ((E[0] == "SWOP"))
103+ then m(E[1], w, F)
104+ else if ((E[0] == "Waves Exchange"))
105+ then v(w, x, F)
106+ else if ((E[0] == "Puzzle Swap"))
107+ then B(E[1], w, x, F)
106108 else throw("Platform id does not match!")
107- q
109+ r
108110 }
109111
110112
111-func F (G,v,w) = {
112- func H (I,J) = {
113- let K = I
114- let q = K._1
115- let L = K._2
116- if ((size(G) > L))
117- then $Tuple2((q + B(J, v, w)), (L + 1))
118- else $Tuple2(q, L)
113+func G (H,w,x) = {
114+ func I (J,K) = {
115+ let L = J
116+ let r = L._1
117+ let M = L._2
118+ if ((size(H) > M))
119+ then $Tuple2((r + C(K, w, x)), (M + 1))
120+ else $Tuple2(r, M)
119121 }
120122
121- let M = {
122- let N = G
123- let O = size(N)
124- let P = $Tuple2(0, 0)
125- func Q (R,S) = if ((S >= O))
126- then R
127- else H(R, N[S])
123+ let N = {
124+ let O = H
125+ let P = size(O)
126+ let Q = $Tuple2(0, 0)
127+ func R (S,T) = if ((T >= P))
128+ then S
129+ else I(S, O[T])
128130
129- func T (R,S) = if ((S >= O))
130- then R
131+ func U (S,T) = if ((T >= P))
132+ then S
131133 else throw("List size exceeds 40")
132134
133- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
135+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
134136 }
135- M._1
137+ N._1
136138 }
137139
138140
139-func U (V,W) = {
140- let X = fraction(V, 1, W, DOWN)
141- let Y = (X * W)
142- let Z = (V - Y)
143- if ((Z > 0))
144- then $Tuple2(X, Z)
145- else $Tuple2(X, 0)
141+func V (W,X) = {
142+ let Y = fraction(W, 1, X, DOWN)
143+ let Z = (Y * X)
144+ let aa = (W - Z)
145+ if ((aa > 0))
146+ then $Tuple2(Y, aa)
147+ else $Tuple2(Y, 0)
146148 }
147149
148150
149-func aa (V,W) = {
150- let X = fraction(V, 1, W, DOWN)
151- let Y = (X * W)
152- let Z = (V - Y)
153- if ((0 > Z))
154- then $Tuple2(X, Z)
155- else $Tuple2(X, 0)
151+func ab (W,X) = {
152+ let Y = fraction(W, 1, X, DOWN)
153+ let Z = (Y * X)
154+ let aa = (W - Z)
155+ if ((0 > aa))
156+ then $Tuple2(Y, aa)
157+ else $Tuple2(Y, 0)
156158 }
157159
158160
159-func ab (G,ac) = {
160- let ad = size(G)
161- let ae = U(ac, ad)
162- let X = ae._1
163- let Z = ae._2
164- func af (I,J) = {
165- let ag = I
166- let ah = ag._1
167- let ai = ag._2
168- let D = j(J)
169- let o = parseInt(D[2])
170- let r = o
171- if ($isInstanceOf(r, "Int"))
161+func ac (H,ad) = {
162+ let ae = size(H)
163+ let af = V(ad, ae)
164+ let Y = af._1
165+ let aa = af._2
166+ func ag (J,K) = {
167+ let ah = J
168+ let ai = ah._1
169+ let aj = ah._2
170+ let E = k(K)
171+ let p = parseInt(E[2])
172+ let s = p
173+ if ($isInstanceOf(s, "Int"))
172174 then {
173- let E = r
174- let aj = if ((ai > 0))
175- then ((E + X) + 1)
176- else (E + X)
177- let ak = ((((D[0] + "/") + D[1]) + "/") + toString(aj))
178- let al = if ((ai > 0))
179- then (ai - 1)
180- else ai
181- $Tuple2((ah :+ ak), al)
175+ let F = s
176+ let ak = if ((aj > 0))
177+ then ((F + Y) + 1)
178+ else (F + Y)
179+ let al = ((((E[0] + "/") + E[1]) + "/") + toString(ak))
180+ let am = if ((aj > 0))
181+ then (aj - 1)
182+ else aj
183+ $Tuple2((ai :+ al), am)
182184 }
183185 else throw("Input has wrong datatype!")
184186 }
185187
186- let q = {
187- let N = G
188- let O = size(N)
189- let P = $Tuple2(nil, Z)
190- func Q (R,S) = if ((S >= O))
191- then R
192- else af(R, N[S])
188+ let r = {
189+ let O = H
190+ let P = size(O)
191+ let Q = $Tuple2(nil, aa)
192+ func R (S,T) = if ((T >= P))
193+ then S
194+ else ag(S, O[T])
193195
194- func T (R,S) = if ((S >= O))
195- then R
196+ func U (S,T) = if ((T >= P))
197+ then S
196198 else throw("List size exceeds 40")
197199
198- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
200+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
199201 }
200- q._1
202+ r._1
201203 }
202204
203205
204-func am (ai,G) = {
205- func an (I,J) = {
206- let ao = I
207- let ah = ao._1
208- let ap = ao._2
209- let D = j(J)
210- let o = parseInt(D[2])
211- let aq = {
212- let r = o
213- if ($isInstanceOf(r, "Int"))
206+func an (aj,H) = {
207+ func ao (J,K) = {
208+ let ap = J
209+ let ai = ap._1
210+ let aq = ap._2
211+ let E = k(K)
212+ let p = parseInt(E[2])
213+ let ar = {
214+ let s = p
215+ if ($isInstanceOf(s, "Int"))
214216 then {
215- let E = r
216- E
217+ let F = s
218+ F
217219 }
218220 else throw("Input amount has the wrong data type")
219221 }
220- let ar = if ((aq > 4))
221- then fraction(aq, 3, 4)
222+ let as = if ((ar > 4))
223+ then fraction(ar, 3, 4)
222224 else 0
223- let as = if (if ((ap == 0))
225+ let at = if (if ((aq == 0))
224226 then true
225- else (ar == 0))
226- then $Tuple2(ap, 0)
227- else if (((ap + ar) > 0))
227+ else (as == 0))
228+ then $Tuple2(aq, 0)
229+ else if (((aq + as) > 0))
228230 then {
229- let at = (ap + ar)
230- $Tuple2(0, (ar - at))
231+ let au = (aq + as)
232+ $Tuple2(0, (as - au))
231233 }
232- else if ((0 > (ap + ar)))
233- then $Tuple2((ap + ar), ar)
234- else $Tuple2(0, ar)
235- let al = as._1
236- let au = as._2
237- let aj = (aq - au)
238- let ak = ((((D[0] + "/") + D[1]) + "/") + toString(aj))
239- $Tuple2((ah :+ ak), al)
234+ else if ((0 > (aq + as)))
235+ then $Tuple2((aq + as), as)
236+ else $Tuple2(0, as)
237+ let am = at._1
238+ let av = at._2
239+ let ak = (ar - av)
240+ let al = ((((E[0] + "/") + E[1]) + "/") + toString(ak))
241+ $Tuple2((ai :+ al), am)
240242 }
241243
242- let N = G
243- let O = size(N)
244- let P = $Tuple2(nil, ai)
245- func Q (R,S) = if ((S >= O))
246- then R
247- else an(R, N[S])
244+ let O = H
245+ let P = size(O)
246+ let Q = $Tuple2(nil, aj)
247+ func R (S,T) = if ((T >= P))
248+ then S
249+ else ao(S, O[T])
248250
249- func T (R,S) = if ((S >= O))
250- then R
251+ func U (S,T) = if ((T >= P))
252+ then S
251253 else throw("List size exceeds 40")
252254
253- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
255+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
254256 }
255257
256258
257-func av (G,ac) = {
258- let ad = size(G)
259- let aw = aa(ac, ad)
260- let X = aw._1
261- let Z = aw._2
262- func af (I,J) = {
263- let ax = I
264- let ah = ax._1
265- let ai = ax._2
266- let D = j(J)
267- let o = parseInt(D[2])
268- let r = o
269- if ($isInstanceOf(r, "Int"))
259+func aw (H,ad) = {
260+ let ae = size(H)
261+ let ax = ab(ad, ae)
262+ let Y = ax._1
263+ let aa = ax._2
264+ func ag (J,K) = {
265+ let ay = J
266+ let ai = ay._1
267+ let aj = ay._2
268+ let E = k(K)
269+ let p = parseInt(E[2])
270+ let s = p
271+ if ($isInstanceOf(s, "Int"))
270272 then {
271- let E = r
272- let ay = if (((E + X) >= 1))
273- then if (if ((ai > 0))
274- then (((E + X) - 1) >= 1)
273+ let F = s
274+ let az = if (((F + Y) >= 1))
275+ then if (if ((aj > 0))
276+ then (((F + Y) - 1) >= 1)
275277 else false)
276- then $Tuple2(((E + X) - 1), (ai - 1))
277- else $Tuple2((E + X), ai)
278- else $Tuple2(E, (ai + X))
279- let aj = ay._1
280- let al = ay._2
281- let ak = ((((D[0] + "/") + D[1]) + "/") + toString(aj))
282- $Tuple2((ah :+ ak), al)
278+ then $Tuple2(((F + Y) - 1), (aj - 1))
279+ else $Tuple2((F + Y), aj)
280+ else $Tuple2(F, (aj + Y))
281+ let ak = az._1
282+ let am = az._2
283+ let al = ((((E[0] + "/") + E[1]) + "/") + toString(ak))
284+ $Tuple2((ai :+ al), am)
283285 }
284286 else throw("Input has wrong datatype!")
285287 }
286288
287- let az = {
288- let N = G
289- let O = size(N)
290- let P = $Tuple2(nil, Z)
291- func Q (R,S) = if ((S >= O))
292- then R
293- else af(R, N[S])
289+ let aA = {
290+ let O = H
291+ let P = size(O)
292+ let Q = $Tuple2(nil, aa)
293+ func R (S,T) = if ((T >= P))
294+ then S
295+ else ag(S, O[T])
294296
295- func T (R,S) = if ((S >= O))
296- then R
297+ func U (S,T) = if ((T >= P))
298+ then S
297299 else throw("List size exceeds 40")
298300
299- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
301+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
300302 }
301- let ah = az._1
302- let aA = az._2
303- let aB = am(aA, ah)
304- let aC = aB._1
305- let aD = aB._2
306- aC
303+ let ai = aA._1
304+ let aB = aA._2
305+ let aC = an(aB, ai)
306+ let aD = aC._1
307+ let aE = aC._2
308+ aD
307309 }
308310
309311
310-func aE (aF,aG,G) = {
311- let ac = (aG - aF)
312- let ah = if ((ac > 0))
313- then ab(G, ac)
314- else if ((0 > ac))
315- then av(G, ac)
316- else G
317- ah
312+func aF (aG,aH,H) = {
313+ let ad = (aH - aG)
314+ let ai = if ((ad > 0))
315+ then ac(H, ad)
316+ else if ((0 > ad))
317+ then aw(H, ad)
318+ else H
319+ ai
318320 }
319321
320322
321-@Callable(aH)
323+@Callable(aI)
322324 func setup () = if (!(isDefined(getString(this, "admin"))))
323- then [c("admin", toBase58String(aH.caller.bytes))]
325+ then [d("admin", toBase58String(aI.caller.bytes))]
324326 else throw("Dapp already setup!")
325327
326328
327329
328-@Callable(aH)
329-func basicArb (aI,aJ,aK,aL,aM,aN) = if (h(aH.caller.bytes))
330+@Callable(aI)
331+func basicArb (aJ,aK,aL,aM,aN,aO) = if (i(aI.caller.bytes))
330332 then {
331- let aO = if ((aK == "WAVES"))
333+ let aP = if ((aL == "WAVES"))
332334 then {
333- let aP = wavesBalance(this)
334- aP.available
335+ let aQ = wavesBalance(this)
336+ aQ.available
335337 }
336338 else {
337- let aQ = {
338- let aR = fromBase58String(aK)
339- let r = aR
340- if ($isInstanceOf(r, "ByteVector"))
339+ let aR = {
340+ let aS = fromBase58String(aL)
341+ let s = aS
342+ if ($isInstanceOf(s, "ByteVector"))
341343 then {
342- let aR = r
343- aR
344+ let aS = s
345+ aS
344346 }
345347 else throw("Invalid datatype")
346348 }
347- assetBalance(this, aQ)
349+ assetBalance(this, aR)
348350 }
349- if ((aO >= aI))
351+ if ((aP >= aJ))
350352 then {
351- let aS = F(aM, aK, aL)
352- let aT = if ((aS == aJ))
353- then aN
354- else aE(aJ, aS, aN)
355- let aU = F(aT, aL, aK)
356- if ((aU > aI))
357- then $Tuple2(nil, (aU - aI))
358- else throw(((("Trade was not profitable! Input amount: " + toString(aI)) + " Output amount: ") + toString(aU)))
353+ let aT = G(aN, aL, aM)
354+ let aU = if ((aT == aK))
355+ then aO
356+ else aF(aK, aT, aO)
357+ let aV = G(aU, aM, aL)
358+ if ((aV > aJ))
359+ then $Tuple2([g(("ArbResult_" + toString(b)), (aV - aJ)), d(("ArbResult Token_" + toString(b)), aL), g("arbCounter", (b + 1))], (aV - aJ))
360+ else throw(((("Trade was not profitable! Input amount: " + toString(aJ)) + " Output amount: ") + toString(aV)))
359361 }
360362 else throw("Available input amount is not sufficient!")
361363 }
363365
364366
365367
366-@Callable(aH)
367-func updateStringEntry (d,e) = if (h(aH.caller.bytes))
368- then [c(d, e)]
368+@Callable(aI)
369+func updateStringEntry (e,f) = if (i(aI.caller.bytes))
370+ then [d(e, f)]
369371 else throw("Address does not match with admin address!")
370372
371373
372374
373-@Callable(aH)
374-func updateIntegerEntry (d,g) = if (h(aH.caller.bytes))
375- then [f(d, g)]
375+@Callable(aI)
376+func updateIntegerEntry (e,h) = if (i(aI.caller.bytes))
377+ then [g(e, h)]
376378 else throw("Address does not match with admin address!")
377379
378380
379381
380-@Callable(aH)
381-func deleteStorageEntry (d) = if (h(aH.caller.bytes))
382- then [DeleteEntry(d)]
382+@Callable(aI)
383+func deleteStorageEntry (e) = if (i(aI.caller.bytes))
384+ then [DeleteEntry(e)]
383385 else throw("Address does not match with admin address!")
384386
385387
386-@Verifier(aV)
387-func aW () = sigVerify(aV.bodyBytes, aV.proofs[0], aV.senderPublicKey)
388+@Verifier(aW)
389+func aX () = sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
388390
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = valueOrElse(getString(this, "admin"), "")
55
6-let b = "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"
6+let b = valueOrElse(getInteger(this, "arbCounter"), 0)
77
8-func c (d,e) = StringEntry(d, e)
8+let c = "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"
9+
10+func d (e,f) = StringEntry(e, f)
911
1012
11-func f (d,g) = IntegerEntry(d, g)
13+func g (e,h) = IntegerEntry(e, h)
1214
1315
14-func h (i) = if ((i == fromBase58String(a)))
16+func i (j) = if ((j == fromBase58String(a)))
1517 then true
1618 else false
1719
1820
19-func j (k) = split(k, "/")
21+func k (l) = split(l, "/")
2022
2123
22-func l (m,n,o) = {
23- let p = if ((n == "WAVES"))
24+func m (n,o,p) = {
25+ let q = if ((o == "WAVES"))
2426 then unit
25- else fromBase58String(n)
26- let q = invoke(addressFromStringValue(m), "exchange", [1], [AttachedPayment(p, o)])
27- if ((q == q))
27+ else fromBase58String(o)
28+ let r = invoke(addressFromStringValue(n), "exchange", [1], [AttachedPayment(q, p)])
29+ if ((r == r))
2830 then {
29- let r = q
30- if ($isInstanceOf(r, "List[Any]"))
31+ let s = r
32+ if ($isInstanceOf(s, "List[Any]"))
3133 then {
32- let q = r
33- let s = q[0]
34- if ($isInstanceOf(s, "Int"))
34+ let r = s
35+ let t = r[0]
36+ if ($isInstanceOf(t, "Int"))
3537 then {
36- let t = s
37- t
38+ let u = t
39+ u
3840 }
3941 else throw("List item is not an int!")
4042 }
4143 else throw("Result of swop invokation does not match!")
4244 }
4345 else throw("Strict value is not equal to itself.")
4446 }
4547
4648
47-func u (v,w,o) = {
48- let x = if ((v == "WAVES"))
49+func v (w,x,p) = {
50+ let y = if ((w == "WAVES"))
4951 then unit
50- else fromBase58String(v)
51- let y = if ((w == "WAVES"))
52+ else fromBase58String(w)
53+ let z = if ((x == "WAVES"))
5254 then ""
53- else w
54- let z = invoke(addressFromStringValue(b), "swap", [1, y, toString(this)], [AttachedPayment(x, o)])
55- if ((z == z))
55+ else x
56+ let A = invoke(addressFromStringValue(c), "swap", [1, z, toString(this)], [AttachedPayment(y, p)])
57+ if ((A == A))
5658 then {
57- let r = z
58- if ($isInstanceOf(r, "Int"))
59+ let s = A
60+ if ($isInstanceOf(s, "Int"))
5961 then {
60- let z = r
61- z
62+ let A = s
63+ A
6264 }
6365 else throw("Result of swop invokation does not match!")
6466 }
6567 else throw("Strict value is not equal to itself.")
6668 }
6769
6870
69-func A (m,v,w,o) = {
70- let x = if ((v == "WAVES"))
71+func B (n,w,x,p) = {
72+ let y = if ((w == "WAVES"))
7173 then unit
72- else fromBase58String(v)
73- let q = invoke(addressFromStringValue(m), "swap", [w, 1], [AttachedPayment(x, o)])
74- if ((q == q))
74+ else fromBase58String(w)
75+ let r = invoke(addressFromStringValue(n), "swap", [x, 1], [AttachedPayment(y, p)])
76+ if ((r == r))
7577 then {
76- let r = q
77- if ($isInstanceOf(r, "Int"))
78+ let s = r
79+ if ($isInstanceOf(s, "Int"))
7880 then {
79- let q = r
80- q
81+ let r = s
82+ r
8183 }
8284 else throw("Result of swop invokation does not match!")
8385 }
8486 else throw("Strict value is not equal to itself.")
8587 }
8688
8789
88-func B (C,v,w) = {
89- let D = j(C)
90- let o = parseInt(D[2])
91- let E = {
92- let r = o
93- if ($isInstanceOf(r, "Int"))
90+func C (D,w,x) = {
91+ let E = k(D)
92+ let p = parseInt(E[2])
93+ let F = {
94+ let s = p
95+ if ($isInstanceOf(s, "Int"))
9496 then {
95- let o = r
96- o
97+ let p = s
98+ p
9799 }
98100 else throw("Datatype of input amount does not match!")
99101 }
100- let q = if ((D[0] == "SWOP"))
101- then l(D[1], v, E)
102- else if ((D[0] == "Waves Exchange"))
103- then u(v, w, E)
104- else if ((D[0] == "Puzzle Swap"))
105- then A(D[1], v, w, E)
102+ let r = if ((E[0] == "SWOP"))
103+ then m(E[1], w, F)
104+ else if ((E[0] == "Waves Exchange"))
105+ then v(w, x, F)
106+ else if ((E[0] == "Puzzle Swap"))
107+ then B(E[1], w, x, F)
106108 else throw("Platform id does not match!")
107- q
109+ r
108110 }
109111
110112
111-func F (G,v,w) = {
112- func H (I,J) = {
113- let K = I
114- let q = K._1
115- let L = K._2
116- if ((size(G) > L))
117- then $Tuple2((q + B(J, v, w)), (L + 1))
118- else $Tuple2(q, L)
113+func G (H,w,x) = {
114+ func I (J,K) = {
115+ let L = J
116+ let r = L._1
117+ let M = L._2
118+ if ((size(H) > M))
119+ then $Tuple2((r + C(K, w, x)), (M + 1))
120+ else $Tuple2(r, M)
119121 }
120122
121- let M = {
122- let N = G
123- let O = size(N)
124- let P = $Tuple2(0, 0)
125- func Q (R,S) = if ((S >= O))
126- then R
127- else H(R, N[S])
123+ let N = {
124+ let O = H
125+ let P = size(O)
126+ let Q = $Tuple2(0, 0)
127+ func R (S,T) = if ((T >= P))
128+ then S
129+ else I(S, O[T])
128130
129- func T (R,S) = if ((S >= O))
130- then R
131+ func U (S,T) = if ((T >= P))
132+ then S
131133 else throw("List size exceeds 40")
132134
133- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
135+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
134136 }
135- M._1
137+ N._1
136138 }
137139
138140
139-func U (V,W) = {
140- let X = fraction(V, 1, W, DOWN)
141- let Y = (X * W)
142- let Z = (V - Y)
143- if ((Z > 0))
144- then $Tuple2(X, Z)
145- else $Tuple2(X, 0)
141+func V (W,X) = {
142+ let Y = fraction(W, 1, X, DOWN)
143+ let Z = (Y * X)
144+ let aa = (W - Z)
145+ if ((aa > 0))
146+ then $Tuple2(Y, aa)
147+ else $Tuple2(Y, 0)
146148 }
147149
148150
149-func aa (V,W) = {
150- let X = fraction(V, 1, W, DOWN)
151- let Y = (X * W)
152- let Z = (V - Y)
153- if ((0 > Z))
154- then $Tuple2(X, Z)
155- else $Tuple2(X, 0)
151+func ab (W,X) = {
152+ let Y = fraction(W, 1, X, DOWN)
153+ let Z = (Y * X)
154+ let aa = (W - Z)
155+ if ((0 > aa))
156+ then $Tuple2(Y, aa)
157+ else $Tuple2(Y, 0)
156158 }
157159
158160
159-func ab (G,ac) = {
160- let ad = size(G)
161- let ae = U(ac, ad)
162- let X = ae._1
163- let Z = ae._2
164- func af (I,J) = {
165- let ag = I
166- let ah = ag._1
167- let ai = ag._2
168- let D = j(J)
169- let o = parseInt(D[2])
170- let r = o
171- if ($isInstanceOf(r, "Int"))
161+func ac (H,ad) = {
162+ let ae = size(H)
163+ let af = V(ad, ae)
164+ let Y = af._1
165+ let aa = af._2
166+ func ag (J,K) = {
167+ let ah = J
168+ let ai = ah._1
169+ let aj = ah._2
170+ let E = k(K)
171+ let p = parseInt(E[2])
172+ let s = p
173+ if ($isInstanceOf(s, "Int"))
172174 then {
173- let E = r
174- let aj = if ((ai > 0))
175- then ((E + X) + 1)
176- else (E + X)
177- let ak = ((((D[0] + "/") + D[1]) + "/") + toString(aj))
178- let al = if ((ai > 0))
179- then (ai - 1)
180- else ai
181- $Tuple2((ah :+ ak), al)
175+ let F = s
176+ let ak = if ((aj > 0))
177+ then ((F + Y) + 1)
178+ else (F + Y)
179+ let al = ((((E[0] + "/") + E[1]) + "/") + toString(ak))
180+ let am = if ((aj > 0))
181+ then (aj - 1)
182+ else aj
183+ $Tuple2((ai :+ al), am)
182184 }
183185 else throw("Input has wrong datatype!")
184186 }
185187
186- let q = {
187- let N = G
188- let O = size(N)
189- let P = $Tuple2(nil, Z)
190- func Q (R,S) = if ((S >= O))
191- then R
192- else af(R, N[S])
188+ let r = {
189+ let O = H
190+ let P = size(O)
191+ let Q = $Tuple2(nil, aa)
192+ func R (S,T) = if ((T >= P))
193+ then S
194+ else ag(S, O[T])
193195
194- func T (R,S) = if ((S >= O))
195- then R
196+ func U (S,T) = if ((T >= P))
197+ then S
196198 else throw("List size exceeds 40")
197199
198- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
200+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
199201 }
200- q._1
202+ r._1
201203 }
202204
203205
204-func am (ai,G) = {
205- func an (I,J) = {
206- let ao = I
207- let ah = ao._1
208- let ap = ao._2
209- let D = j(J)
210- let o = parseInt(D[2])
211- let aq = {
212- let r = o
213- if ($isInstanceOf(r, "Int"))
206+func an (aj,H) = {
207+ func ao (J,K) = {
208+ let ap = J
209+ let ai = ap._1
210+ let aq = ap._2
211+ let E = k(K)
212+ let p = parseInt(E[2])
213+ let ar = {
214+ let s = p
215+ if ($isInstanceOf(s, "Int"))
214216 then {
215- let E = r
216- E
217+ let F = s
218+ F
217219 }
218220 else throw("Input amount has the wrong data type")
219221 }
220- let ar = if ((aq > 4))
221- then fraction(aq, 3, 4)
222+ let as = if ((ar > 4))
223+ then fraction(ar, 3, 4)
222224 else 0
223- let as = if (if ((ap == 0))
225+ let at = if (if ((aq == 0))
224226 then true
225- else (ar == 0))
226- then $Tuple2(ap, 0)
227- else if (((ap + ar) > 0))
227+ else (as == 0))
228+ then $Tuple2(aq, 0)
229+ else if (((aq + as) > 0))
228230 then {
229- let at = (ap + ar)
230- $Tuple2(0, (ar - at))
231+ let au = (aq + as)
232+ $Tuple2(0, (as - au))
231233 }
232- else if ((0 > (ap + ar)))
233- then $Tuple2((ap + ar), ar)
234- else $Tuple2(0, ar)
235- let al = as._1
236- let au = as._2
237- let aj = (aq - au)
238- let ak = ((((D[0] + "/") + D[1]) + "/") + toString(aj))
239- $Tuple2((ah :+ ak), al)
234+ else if ((0 > (aq + as)))
235+ then $Tuple2((aq + as), as)
236+ else $Tuple2(0, as)
237+ let am = at._1
238+ let av = at._2
239+ let ak = (ar - av)
240+ let al = ((((E[0] + "/") + E[1]) + "/") + toString(ak))
241+ $Tuple2((ai :+ al), am)
240242 }
241243
242- let N = G
243- let O = size(N)
244- let P = $Tuple2(nil, ai)
245- func Q (R,S) = if ((S >= O))
246- then R
247- else an(R, N[S])
244+ let O = H
245+ let P = size(O)
246+ let Q = $Tuple2(nil, aj)
247+ func R (S,T) = if ((T >= P))
248+ then S
249+ else ao(S, O[T])
248250
249- func T (R,S) = if ((S >= O))
250- then R
251+ func U (S,T) = if ((T >= P))
252+ then S
251253 else throw("List size exceeds 40")
252254
253- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
255+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
254256 }
255257
256258
257-func av (G,ac) = {
258- let ad = size(G)
259- let aw = aa(ac, ad)
260- let X = aw._1
261- let Z = aw._2
262- func af (I,J) = {
263- let ax = I
264- let ah = ax._1
265- let ai = ax._2
266- let D = j(J)
267- let o = parseInt(D[2])
268- let r = o
269- if ($isInstanceOf(r, "Int"))
259+func aw (H,ad) = {
260+ let ae = size(H)
261+ let ax = ab(ad, ae)
262+ let Y = ax._1
263+ let aa = ax._2
264+ func ag (J,K) = {
265+ let ay = J
266+ let ai = ay._1
267+ let aj = ay._2
268+ let E = k(K)
269+ let p = parseInt(E[2])
270+ let s = p
271+ if ($isInstanceOf(s, "Int"))
270272 then {
271- let E = r
272- let ay = if (((E + X) >= 1))
273- then if (if ((ai > 0))
274- then (((E + X) - 1) >= 1)
273+ let F = s
274+ let az = if (((F + Y) >= 1))
275+ then if (if ((aj > 0))
276+ then (((F + Y) - 1) >= 1)
275277 else false)
276- then $Tuple2(((E + X) - 1), (ai - 1))
277- else $Tuple2((E + X), ai)
278- else $Tuple2(E, (ai + X))
279- let aj = ay._1
280- let al = ay._2
281- let ak = ((((D[0] + "/") + D[1]) + "/") + toString(aj))
282- $Tuple2((ah :+ ak), al)
278+ then $Tuple2(((F + Y) - 1), (aj - 1))
279+ else $Tuple2((F + Y), aj)
280+ else $Tuple2(F, (aj + Y))
281+ let ak = az._1
282+ let am = az._2
283+ let al = ((((E[0] + "/") + E[1]) + "/") + toString(ak))
284+ $Tuple2((ai :+ al), am)
283285 }
284286 else throw("Input has wrong datatype!")
285287 }
286288
287- let az = {
288- let N = G
289- let O = size(N)
290- let P = $Tuple2(nil, Z)
291- func Q (R,S) = if ((S >= O))
292- then R
293- else af(R, N[S])
289+ let aA = {
290+ let O = H
291+ let P = size(O)
292+ let Q = $Tuple2(nil, aa)
293+ func R (S,T) = if ((T >= P))
294+ then S
295+ else ag(S, O[T])
294296
295- func T (R,S) = if ((S >= O))
296- then R
297+ func U (S,T) = if ((T >= P))
298+ then S
297299 else throw("List size exceeds 40")
298300
299- T(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(P, 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)
301+ U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 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)
300302 }
301- let ah = az._1
302- let aA = az._2
303- let aB = am(aA, ah)
304- let aC = aB._1
305- let aD = aB._2
306- aC
303+ let ai = aA._1
304+ let aB = aA._2
305+ let aC = an(aB, ai)
306+ let aD = aC._1
307+ let aE = aC._2
308+ aD
307309 }
308310
309311
310-func aE (aF,aG,G) = {
311- let ac = (aG - aF)
312- let ah = if ((ac > 0))
313- then ab(G, ac)
314- else if ((0 > ac))
315- then av(G, ac)
316- else G
317- ah
312+func aF (aG,aH,H) = {
313+ let ad = (aH - aG)
314+ let ai = if ((ad > 0))
315+ then ac(H, ad)
316+ else if ((0 > ad))
317+ then aw(H, ad)
318+ else H
319+ ai
318320 }
319321
320322
321-@Callable(aH)
323+@Callable(aI)
322324 func setup () = if (!(isDefined(getString(this, "admin"))))
323- then [c("admin", toBase58String(aH.caller.bytes))]
325+ then [d("admin", toBase58String(aI.caller.bytes))]
324326 else throw("Dapp already setup!")
325327
326328
327329
328-@Callable(aH)
329-func basicArb (aI,aJ,aK,aL,aM,aN) = if (h(aH.caller.bytes))
330+@Callable(aI)
331+func basicArb (aJ,aK,aL,aM,aN,aO) = if (i(aI.caller.bytes))
330332 then {
331- let aO = if ((aK == "WAVES"))
333+ let aP = if ((aL == "WAVES"))
332334 then {
333- let aP = wavesBalance(this)
334- aP.available
335+ let aQ = wavesBalance(this)
336+ aQ.available
335337 }
336338 else {
337- let aQ = {
338- let aR = fromBase58String(aK)
339- let r = aR
340- if ($isInstanceOf(r, "ByteVector"))
339+ let aR = {
340+ let aS = fromBase58String(aL)
341+ let s = aS
342+ if ($isInstanceOf(s, "ByteVector"))
341343 then {
342- let aR = r
343- aR
344+ let aS = s
345+ aS
344346 }
345347 else throw("Invalid datatype")
346348 }
347- assetBalance(this, aQ)
349+ assetBalance(this, aR)
348350 }
349- if ((aO >= aI))
351+ if ((aP >= aJ))
350352 then {
351- let aS = F(aM, aK, aL)
352- let aT = if ((aS == aJ))
353- then aN
354- else aE(aJ, aS, aN)
355- let aU = F(aT, aL, aK)
356- if ((aU > aI))
357- then $Tuple2(nil, (aU - aI))
358- else throw(((("Trade was not profitable! Input amount: " + toString(aI)) + " Output amount: ") + toString(aU)))
353+ let aT = G(aN, aL, aM)
354+ let aU = if ((aT == aK))
355+ then aO
356+ else aF(aK, aT, aO)
357+ let aV = G(aU, aM, aL)
358+ if ((aV > aJ))
359+ then $Tuple2([g(("ArbResult_" + toString(b)), (aV - aJ)), d(("ArbResult Token_" + toString(b)), aL), g("arbCounter", (b + 1))], (aV - aJ))
360+ else throw(((("Trade was not profitable! Input amount: " + toString(aJ)) + " Output amount: ") + toString(aV)))
359361 }
360362 else throw("Available input amount is not sufficient!")
361363 }
362364 else throw("Address does not match with admin address!")
363365
364366
365367
366-@Callable(aH)
367-func updateStringEntry (d,e) = if (h(aH.caller.bytes))
368- then [c(d, e)]
368+@Callable(aI)
369+func updateStringEntry (e,f) = if (i(aI.caller.bytes))
370+ then [d(e, f)]
369371 else throw("Address does not match with admin address!")
370372
371373
372374
373-@Callable(aH)
374-func updateIntegerEntry (d,g) = if (h(aH.caller.bytes))
375- then [f(d, g)]
375+@Callable(aI)
376+func updateIntegerEntry (e,h) = if (i(aI.caller.bytes))
377+ then [g(e, h)]
376378 else throw("Address does not match with admin address!")
377379
378380
379381
380-@Callable(aH)
381-func deleteStorageEntry (d) = if (h(aH.caller.bytes))
382- then [DeleteEntry(d)]
382+@Callable(aI)
383+func deleteStorageEntry (e) = if (i(aI.caller.bytes))
384+ then [DeleteEntry(e)]
383385 else throw("Address does not match with admin address!")
384386
385387
386-@Verifier(aV)
387-func aW () = sigVerify(aV.bodyBytes, aV.proofs[0], aV.senderPublicKey)
388+@Verifier(aW)
389+func aX () = sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
388390

github/deemru/w8io/873ac7e 
161.62 ms