tx · 2ME35j5MjhtBTGqU4YK3y2Bd7xiv3ophzcKCcLgp3oLK

3PFmKfhZFCmfbZRqMNz7vPd5dnRZ4tjA65f:  -0.01000000 Waves

2023.01.24 13:01 [3484406] smart account 3PFmKfhZFCmfbZRqMNz7vPd5dnRZ4tjA65f > SELF 0.00000000 Waves

{ "type": 13, "id": "2ME35j5MjhtBTGqU4YK3y2Bd7xiv3ophzcKCcLgp3oLK", "fee": 1000000, "feeAssetId": null, "timestamp": 1674554465998, "version": 2, "chainId": 87, "sender": "3PFmKfhZFCmfbZRqMNz7vPd5dnRZ4tjA65f", "senderPublicKey": "DLNxpTucP8Vt6LakEFjvs9nSPJGWBRRDG9uMboDqf5bf", "proofs": [ "ezXthzwX3kxT93oAER2NLZ9KZanJGuEa1arPzF2HmuaQNw7mjehqrDcWPgTG7xDAfCfsnrGkFNL7V2WVv5gBGUG" ], "script": "base64:BgIYCAISBAoCCAESBAoCCAgSAwoBCBIDCgEIBwAJdXNkbklkU3RyAixERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAAGdXNkbklkASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QEMdHJ5R2V0U3RyaW5nAQNrZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTAQ1nZXRBc3NldEJ5dGVzAQphc3NldElkU3RyAwkAAAIFCmFzc2V0SWRTdHICBVdBVkVTBQR1bml0CQDZBAEFCmFzc2V0SWRTdHIBCmdldEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIEVW5pdAQBeAUHJG1hdGNoMAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkBBXZhbHVlAQUHYXNzZXRJZAEGc3dhcFdYAwZhc3NldDAGYXNzZXQxB2Ftb3VudDAECnByaWNlQXNzZXQDAwkAAAIFBmFzc2V0MAIsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoGCQAAAgUGYXNzZXQxAiwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgIsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoDAwkAAAIFBmFzc2V0MAIsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoGCQAAAgUGYXNzZXQxAiw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgIsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoDAwkAAAIFBmFzc2V0MAUJdXNkbklkU3RyBgkAAAIFBmFzc2V0MQUJdXNkbklkU3RyBQl1c2RuSWRTdHIDAwkAAAIFBmFzc2V0MAIsOExRVzhmN1A1ZDVQWk03R3RaRUJnYXFSUEdTelMzRGZQdWlYclVSSjRBSlMGCQAAAgUGYXNzZXQxAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwIsOExRVzhmN1A1ZDVQWk03R3RaRUJnYXFSUEdTelMzRGZQdWlYclVSSjRBSlMDAwkAAAIFBmFzc2V0MAIFV0FWRVMGCQAAAgUGYXNzZXQxAgVXQVZFUwIFV0FWRVMFCXVzZG5JZFN0cgQOZmFjdG9yeUFkZHJlc3MJAQdBZGRyZXNzAQEaAVd4W96KvlEqrosx6m8TkCW+9Km4orsJAkEECGFzc2V0SW50CQCkAwEJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDmZhY3RvcnlBZGRyZXNzCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18DCQECIT0CBQZhc3NldDEFCnByaWNlQXNzZXQFBmFzc2V0MQUGYXNzZXQwBAd1c2RuSW50CQCkAwEJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDmZhY3RvcnlBZGRyZXNzCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FCnByaWNlQXNzZXQECnBvb2xDb25maWcJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUOZmFjdG9yeUFkZHJlc3MJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FCGFzc2V0SW50AgJfXwUHdXNkbkludAIIX19jb25maWcCAl9fBAtwb29sQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQpwb29sQ29uZmlnAAEEC3Bvb2xBc3NldElkCQCRAwIFCnBvb2xDb25maWcAAwQEaW52MQkA/AcEBQtwb29sQWRkcmVzcwIJcHV0T25lVGtuCQDMCAIAAAkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFBmFzc2V0MAUHYW1vdW50MAUDbmlsAwkAAAIFBGludjEFBGludjEED3Bvb2xUb2tlbkFtb3VudAkBCmdldEJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFC3Bvb2xBc3NldElkAwkAAAIFD3Bvb2xUb2tlbkFtb3VudAUPcG9vbFRva2VuQW1vdW50BBNhc3NldDFCYWxhbmNlQmVmb3JlCQEKZ2V0QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUGYXNzZXQxAwkAAAIFE2Fzc2V0MUJhbGFuY2VCZWZvcmUFE2Fzc2V0MUJhbGFuY2VCZWZvcmUEBGludjIJAPwHBAULcG9vbEFkZHJlc3MCCWdldE9uZVRrbgkAzAgCBQZhc3NldDEJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQULcG9vbEFzc2V0SWQFD3Bvb2xUb2tlbkFtb3VudAUDbmlsAwkAAAIFBGludjIFBGludjIEB2Ftb3VudDEJAGUCCQEKZ2V0QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUGYXNzZXQxBRNhc3NldDFCYWxhbmNlQmVmb3JlAwkAAAIFB2Ftb3VudDEFB2Ftb3VudDEFB2Ftb3VudDEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAWkBBHN3YXACCXJvdXRlc1N0cgxtaW5Ub1JlY2VpdmUEBnJlZktleQIFbm9yZWYKAQZkb1N3YXACBmFtb3VudARzd2FwBAZzd2FwTGkJALUJAgUEc3dhcAIBLAQLJHQwMjc3MTI4NTIJAJYKBAkAkQMCBQZzd2FwTGkAAAkAkQMCBQZzd2FwTGkAAQkAkQMCBQZzd2FwTGkAAgkAkQMCBQZzd2FwTGkAAwQEZEFwcAgFCyR0MDI3NzEyODUyAl8xBAhkQXBwVHlwZQgFCyR0MDI3NzEyODUyAl8yBAV0MFN0cggFCyR0MDI3NzEyODUyAl8zBAV0MVN0cggFCyR0MDI3NzEyODUyAl80BAJ0MAkBDWdldEFzc2V0Qnl0ZXMBBQV0MFN0cgQHYW1vdW50MAMJAQIhPQIFBmFtb3VudAAABQZhbW91bnQJAQpnZXRCYWxhbmNlAQUCdDAEAmkxAwkAAAIFCGRBcHBUeXBlAgZzd29wZmkJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBGRBcHACCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJ0MAUHYW1vdW50MAUDbmlsAwkAAAIFCGRBcHBUeXBlAgZwdXp6bGUJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBGRBcHACBHN3YXAJAMwIAgUFdDFTdHIJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAnQwBQdhbW91bnQwBQNuaWwDCQAAAgUIZEFwcFR5cGUCAnd4CQEGc3dhcFdYAwUFdDBTdHIFBXQxU3RyBQdhbW91bnQwCQACAQIraW50ZXJuYWwgYWdncmVnYXRvciBpc3N1ZTogdW5rbm93IHBvb2wgdHlwZQMJAAACBQJpMQUCaTEAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgoBB2RvUm91dGUCBWFjY3VtBXJvdXRlBAhhbW91bnRJbgkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgUFcm91dGUCAS8AAAQFc3dhcHMJALUJAgkAkQMCCQC1CQIFBXJvdXRlAgEvAAECATsEC3N3YXBzUmVzdWx0CgACJGwFBXN3YXBzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUIYW1vdW50SW4KAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBmRvU3dhcAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwMJAAACBQtzd2Fwc1Jlc3VsdAULc3dhcHNSZXN1bHQJAGQCBQVhY2N1bQULc3dhcHNSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EDXNwbGl0dGVkUm91dGUJALUJAgkAsgICBQlyb3V0ZXNTdHIAMgIBLAQJYXNzZXQxU3RyCQCRAwIFDXNwbGl0dGVkUm91dGUJAGUCCQCQAwEFDXNwbGl0dGVkUm91dGUAAQQGYXNzZXQxCQENZ2V0QXNzZXRCeXRlcwEFCWFzc2V0MVN0cgQHcm91dGVzMQkAtQkCCQCvAgIFCXJvdXRlc1N0cgD0AwIBfAQHcm91dGVzMgkAtQkCCQCwAgIFCXJvdXRlc1N0cgD0AwIBfAQGY29uY2F0CQCsAgIJAJEDAgUHcm91dGVzMQkAZQIJAJADAQUHcm91dGVzMQABCQCRAwIFB3JvdXRlczIAAAQGcm91dGVzCQDOCAIJAM4IAgkA0QgCBQdyb3V0ZXMxCQBlAgkAkAMBBQdyb3V0ZXMxAAEJAMwIAgUGY29uY2F0BQNuaWwJANEIAgUHcm91dGVzMgAAAwkAAAIFBnJvdXRlcwUGcm91dGVzCQACAQkAkQMCBQZyb3V0ZXMAAQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJhZGRUb2tlblB1enpsZVBvb2wCCmFzc2V0SWRTdHIOcG9vbEFkZHJlc3NTdHIDCQECIT0CCAUBaQZjYWxsZXIJAQdBZGRyZXNzAQEaAVdLw2zO+zNYQ1hDURDu7+4hEBdL8njLfDIJAAIBAgphZG1pbiBvbmx5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAg1zdGF0aWNfYXNzZXRfBQphc3NldElkU3RyAgtfcHV6emxlUG9vbAUOcG9vbEFkZHJlc3NTdHIFA25pbAFpAQ5zd2FwV1hFeHRlcm5hbAEGYXNzZXQxBAZhc3NldDAJAQ5nZXRBc3NldFN0cmluZwEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQHYW1vdW50MAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEB2Ftb3VudDEJAQZzd2FwV1gDBQZhc3NldDAFBmFzc2V0MQUHYW1vdW50MAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB2Ftb3VudDEJAQ1nZXRBc3NldEJ5dGVzAQUGYXNzZXQxBQNuaWwBaQEPc3dhcFdYV2l0aFN0YWtlAQZhc3NldDEEBmFzc2V0MAkBDmdldEFzc2V0U3RyaW5nAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAdhbW91bnQwCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQKcHJpY2VBc3NldAMDCQAAAgUGYXNzZXQwAiwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgYJAAACBQZhc3NldDECLDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKAiwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgMDCQAAAgUGYXNzZXQwAiw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgYJAAACBQZhc3NldDECLDZYdEhqcFhiczlSUkpQMlNyOUdVeVZxekFDY2J5OVRrVGhIWG5qVkM1Q0RKAiw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgMDCQAAAgUGYXNzZXQwBQl1c2RuSWRTdHIGCQAAAgUGYXNzZXQxBQl1c2RuSWRTdHIFCXVzZG5JZFN0cgMDCQAAAgUGYXNzZXQwAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwYJAAACBQZhc3NldDECLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwMDCQAAAgUGYXNzZXQwAgVXQVZFUwYJAAACBQZhc3NldDECBVdBVkVTAgVXQVZFUwUJdXNkbklkU3RyBA5mYWN0b3J5QWRkcmVzcwkBB0FkZHJlc3MBARoBV3hb3oq+USquizHqbxOQJb70qbiiuwkCQQQIYXNzZXRJbnQJAKQDAQkBEUBleHRyTmF0aXZlKDEwNTApAgUOZmFjdG9yeUFkZHJlc3MJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwMJAQIhPQIFBmFzc2V0MQUKcHJpY2VBc3NldAUGYXNzZXQxBQZhc3NldDAEB3VzZG5JbnQJAKQDAQkBEUBleHRyTmF0aXZlKDEwNTApAgUOZmFjdG9yeUFkZHJlc3MJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUKcHJpY2VBc3NldAQKcG9vbENvbmZpZwkAtQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQ5mYWN0b3J5QWRkcmVzcwkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUIYXNzZXRJbnQCAl9fBQd1c2RuSW50AghfX2NvbmZpZwICX18EC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFCnBvb2xDb25maWcAAQQLcG9vbEFzc2V0SWQJAJEDAgUKcG9vbENvbmZpZwADBARpbnYxCQD8BwQFC3Bvb2xBZGRyZXNzAglwdXRPbmVUa24JAMwIAgAACQDMCAIGBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUGYXNzZXQwBQdhbW91bnQwBQNuaWwDCQAAAgUEaW52MQUEaW52MQQPcG9vbFRva2VuQW1vdW50CgABQAUEaW52MQMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQDCQAAAgUPcG9vbFRva2VuQW1vdW50BQ9wb29sVG9rZW5BbW91bnQEE2Fzc2V0MUJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQZhc3NldDEDCQAAAgUTYXNzZXQxQmFsYW5jZUJlZm9yZQUTYXNzZXQxQmFsYW5jZUJlZm9yZQQEaW52MgkA/AcEBQtwb29sQWRkcmVzcwITdW5zdGFrZUFuZEdldE9uZVRrbgkAzAgCBQ9wb29sVG9rZW5BbW91bnQJAMwIAgUGYXNzZXQxCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUEaW52MgUEaW52MgQHYW1vdW50MQkAZQIJAQpnZXRCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQZhc3NldDEFE2Fzc2V0MUJhbGFuY2VCZWZvcmUDCQAAAgUHYW1vdW50MQUHYW1vdW50MQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB2Ftb3VudDEJAQ1nZXRBc3NldEJ5dGVzAQUGYXNzZXQxBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5zmyelg==", "height": 3484406, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HTekBURCBJbj91ZALrFrf6G2jRt4mvpMEb75ukjnaM9B Next: HmedP5KnvrBzNygYvq6KnY51QcBM6KKCLU2PA5FSgV1r Diff:
OldNewDifferences
3535
3636
3737 func swapWX (asset0,asset1,amount0) = {
38+ let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
39+ then true
40+ else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
41+ then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
42+ else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
43+ then true
44+ else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
45+ then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
46+ else if (if ((asset0 == usdnIdStr))
47+ then true
48+ else (asset1 == usdnIdStr))
49+ then usdnIdStr
50+ else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
51+ then true
52+ else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
53+ then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
54+ else if (if ((asset0 == "WAVES"))
55+ then true
56+ else (asset1 == "WAVES"))
57+ then "WAVES"
58+ else usdnIdStr
3859 let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
39- let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != usdnIdStr))
60+ let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset))
4061 then asset1
4162 else asset0))))
42- let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + usdnIdStr)))
63+ let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset)))
4364 let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
4465 let poolAddress = addressFromStringValue(poolConfig[1])
4566 let poolAssetId = poolConfig[3]
7596 let refKey = "noref"
7697 func doSwap (amount,swap) = {
7798 let swapLi = split(swap, ",")
78- let $t020712152 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
79- let dApp = $t020712152._1
80- let dAppType = $t020712152._2
81- let t0Str = $t020712152._3
82- let t1Str = $t020712152._4
99+ let $t027712852 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
100+ let dApp = $t027712852._1
101+ let dAppType = $t027712852._2
102+ let t0Str = $t027712852._3
103+ let t1Str = $t027712852._4
83104 let t0 = getAssetBytes(t0Str)
84105 let amount0 = if ((amount != 0))
85106 then amount
143164 func swapWXExternal (asset1) = {
144165 let asset0 = getAssetString(i.payments[0].assetId)
145166 let amount0 = i.payments[0].amount
146- let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
147- then true
148- else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
149- then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
150- else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
151- then true
152- else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
153- then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
154- else if (if ((asset0 == usdnIdStr))
155- then true
156- else (asset1 == usdnIdStr))
157- then usdnIdStr
158- else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
159- then true
160- else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
161- then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
162- else if (if ((asset0 == "WAVES"))
163- then true
164- else (asset1 == "WAVES"))
165- then "WAVES"
166- else usdnIdStr
167- let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
168- let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset))
169- then asset1
170- else asset0))))
171- let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset)))
172- let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
173- let poolAddress = addressFromStringValue(poolConfig[1])
174- let poolAssetId = poolConfig[3]
175- let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)])
176- if ((inv1 == inv1))
177- then {
178- let poolTokenAmount = getBalance(getAssetBytes(poolAssetId))
179- if ((poolTokenAmount == poolTokenAmount))
180- then {
181- let asset1BalanceBefore = getBalance(getAssetBytes(asset1))
182- if ((asset1BalanceBefore == asset1BalanceBefore))
183- then {
184- let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)])
185- if ((inv2 == inv2))
186- then {
187- let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore)
188- if ((amount1 == amount1))
189- then [ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))]
190- else throw("Strict value is not equal to itself.")
191- }
192- else throw("Strict value is not equal to itself.")
193- }
194- else throw("Strict value is not equal to itself.")
195- }
196- else throw("Strict value is not equal to itself.")
197- }
198- else throw("Strict value is not equal to itself.")
167+ let amount1 = swapWX(asset0, asset1, amount0)
168+[ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))]
199169 }
200170
201171
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
55
66 let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 func tryGetString (key) = match getString(this, key) {
99 case b: String =>
1010 b
1111 case _ =>
1212 ""
1313 }
1414
1515
1616 func getAssetString (assetId) = match assetId {
1717 case b: ByteVector =>
1818 toBase58String(b)
1919 case _ =>
2020 "WAVES"
2121 }
2222
2323
2424 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
2525 then unit
2626 else fromBase58String(assetIdStr)
2727
2828
2929 func getBalance (assetId) = match assetId {
3030 case x: Unit =>
3131 wavesBalance(this).available
3232 case _ =>
3333 assetBalance(this, value(assetId))
3434 }
3535
3636
3737 func swapWX (asset0,asset1,amount0) = {
38+ let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
39+ then true
40+ else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
41+ then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
42+ else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
43+ then true
44+ else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
45+ then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
46+ else if (if ((asset0 == usdnIdStr))
47+ then true
48+ else (asset1 == usdnIdStr))
49+ then usdnIdStr
50+ else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
51+ then true
52+ else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
53+ then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
54+ else if (if ((asset0 == "WAVES"))
55+ then true
56+ else (asset1 == "WAVES"))
57+ then "WAVES"
58+ else usdnIdStr
3859 let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
39- let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != usdnIdStr))
60+ let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset))
4061 then asset1
4162 else asset0))))
42- let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + usdnIdStr)))
63+ let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset)))
4364 let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
4465 let poolAddress = addressFromStringValue(poolConfig[1])
4566 let poolAssetId = poolConfig[3]
4667 let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)])
4768 if ((inv1 == inv1))
4869 then {
4970 let poolTokenAmount = getBalance(getAssetBytes(poolAssetId))
5071 if ((poolTokenAmount == poolTokenAmount))
5172 then {
5273 let asset1BalanceBefore = getBalance(getAssetBytes(asset1))
5374 if ((asset1BalanceBefore == asset1BalanceBefore))
5475 then {
5576 let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)])
5677 if ((inv2 == inv2))
5778 then {
5879 let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore)
5980 if ((amount1 == amount1))
6081 then amount1
6182 else throw("Strict value is not equal to itself.")
6283 }
6384 else throw("Strict value is not equal to itself.")
6485 }
6586 else throw("Strict value is not equal to itself.")
6687 }
6788 else throw("Strict value is not equal to itself.")
6889 }
6990 else throw("Strict value is not equal to itself.")
7091 }
7192
7293
7394 @Callable(i)
7495 func swap (routesStr,minToReceive) = {
7596 let refKey = "noref"
7697 func doSwap (amount,swap) = {
7798 let swapLi = split(swap, ",")
78- let $t020712152 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
79- let dApp = $t020712152._1
80- let dAppType = $t020712152._2
81- let t0Str = $t020712152._3
82- let t1Str = $t020712152._4
99+ let $t027712852 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
100+ let dApp = $t027712852._1
101+ let dAppType = $t027712852._2
102+ let t0Str = $t027712852._3
103+ let t1Str = $t027712852._4
83104 let t0 = getAssetBytes(t0Str)
84105 let amount0 = if ((amount != 0))
85106 then amount
86107 else getBalance(t0)
87108 let i1 = if ((dAppType == "swopfi"))
88109 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
89110 else if ((dAppType == "puzzle"))
90111 then invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
91112 else if ((dAppType == "wx"))
92113 then swapWX(t0Str, t1Str, amount0)
93114 else throw("internal aggregator issue: unknow pool type")
94115 if ((i1 == i1))
95116 then 0
96117 else throw("Strict value is not equal to itself.")
97118 }
98119
99120 func doRoute (accum,route) = {
100121 let amountIn = parseIntValue(split(route, "/")[0])
101122 let swaps = split(split(route, "/")[1], ";")
102123 let swapsResult = {
103124 let $l = swaps
104125 let $s = size($l)
105126 let $acc0 = amountIn
106127 func $f0_1 ($a,$i) = if (($i >= $s))
107128 then $a
108129 else doSwap($a, $l[$i])
109130
110131 func $f0_2 ($a,$i) = if (($i >= $s))
111132 then $a
112133 else throw("List size exceeds 3")
113134
114135 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
115136 }
116137 if ((swapsResult == swapsResult))
117138 then (accum + swapsResult)
118139 else throw("Strict value is not equal to itself.")
119140 }
120141
121142 let splittedRoute = split(takeRight(routesStr, 50), ",")
122143 let asset1Str = splittedRoute[(size(splittedRoute) - 1)]
123144 let asset1 = getAssetBytes(asset1Str)
124145 let routes1 = split(take(routesStr, 500), "|")
125146 let routes2 = split(drop(routesStr, 500), "|")
126147 let concat = (routes1[(size(routes1) - 1)] + routes2[0])
127148 let routes = ((removeByIndex(routes1, (size(routes1) - 1)) ++ [concat]) ++ removeByIndex(routes2, 0))
128149 if ((routes == routes))
129150 then throw(routes[1])
130151 else throw("Strict value is not equal to itself.")
131152 }
132153
133154
134155
135156 @Callable(i)
136157 func addTokenPuzzlePool (assetIdStr,poolAddressStr) = if ((i.caller != Address(base58'3P8qVX189qpoTJZQQQdKS9endHK5sxWsvrd')))
137158 then throw("admin only")
138159 else [StringEntry((("static_asset_" + assetIdStr) + "_puzzlePool"), poolAddressStr)]
139160
140161
141162
142163 @Callable(i)
143164 func swapWXExternal (asset1) = {
144165 let asset0 = getAssetString(i.payments[0].assetId)
145166 let amount0 = i.payments[0].amount
146- let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
147- then true
148- else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
149- then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
150- else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
151- then true
152- else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
153- then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
154- else if (if ((asset0 == usdnIdStr))
155- then true
156- else (asset1 == usdnIdStr))
157- then usdnIdStr
158- else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
159- then true
160- else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
161- then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
162- else if (if ((asset0 == "WAVES"))
163- then true
164- else (asset1 == "WAVES"))
165- then "WAVES"
166- else usdnIdStr
167- let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
168- let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset))
169- then asset1
170- else asset0))))
171- let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset)))
172- let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
173- let poolAddress = addressFromStringValue(poolConfig[1])
174- let poolAssetId = poolConfig[3]
175- let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)])
176- if ((inv1 == inv1))
177- then {
178- let poolTokenAmount = getBalance(getAssetBytes(poolAssetId))
179- if ((poolTokenAmount == poolTokenAmount))
180- then {
181- let asset1BalanceBefore = getBalance(getAssetBytes(asset1))
182- if ((asset1BalanceBefore == asset1BalanceBefore))
183- then {
184- let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)])
185- if ((inv2 == inv2))
186- then {
187- let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore)
188- if ((amount1 == amount1))
189- then [ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))]
190- else throw("Strict value is not equal to itself.")
191- }
192- else throw("Strict value is not equal to itself.")
193- }
194- else throw("Strict value is not equal to itself.")
195- }
196- else throw("Strict value is not equal to itself.")
197- }
198- else throw("Strict value is not equal to itself.")
167+ let amount1 = swapWX(asset0, asset1, amount0)
168+[ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))]
199169 }
200170
201171
202172
203173 @Callable(i)
204174 func swapWXWithStake (asset1) = {
205175 let asset0 = getAssetString(i.payments[0].assetId)
206176 let amount0 = i.payments[0].amount
207177 let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
208178 then true
209179 else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
210180 then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
211181 else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
212182 then true
213183 else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
214184 then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
215185 else if (if ((asset0 == usdnIdStr))
216186 then true
217187 else (asset1 == usdnIdStr))
218188 then usdnIdStr
219189 else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
220190 then true
221191 else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
222192 then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
223193 else if (if ((asset0 == "WAVES"))
224194 then true
225195 else (asset1 == "WAVES"))
226196 then "WAVES"
227197 else usdnIdStr
228198 let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
229199 let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset))
230200 then asset1
231201 else asset0))))
232202 let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset)))
233203 let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
234204 let poolAddress = addressFromStringValue(poolConfig[1])
235205 let poolAssetId = poolConfig[3]
236206 let inv1 = invoke(poolAddress, "putOneTkn", [0, true], [AttachedPayment(getAssetBytes(asset0), amount0)])
237207 if ((inv1 == inv1))
238208 then {
239209 let poolTokenAmount = {
240210 let @ = inv1
241211 if ($isInstanceOf(@, "Int"))
242212 then @
243213 else throw(($getType(@) + " couldn't be cast to Int"))
244214 }
245215 if ((poolTokenAmount == poolTokenAmount))
246216 then {
247217 let asset1BalanceBefore = getBalance(getAssetBytes(asset1))
248218 if ((asset1BalanceBefore == asset1BalanceBefore))
249219 then {
250220 let inv2 = invoke(poolAddress, "unstakeAndGetOneTkn", [poolTokenAmount, asset1, 0], nil)
251221 if ((inv2 == inv2))
252222 then {
253223 let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore)
254224 if ((amount1 == amount1))
255225 then [ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))]
256226 else throw("Strict value is not equal to itself.")
257227 }
258228 else throw("Strict value is not equal to itself.")
259229 }
260230 else throw("Strict value is not equal to itself.")
261231 }
262232 else throw("Strict value is not equal to itself.")
263233 }
264234 else throw("Strict value is not equal to itself.")
265235 }
266236
267237
268238 @Verifier(tx)
269239 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
270240

github/deemru/w8io/3ef1775 
51.39 ms