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:
Old | New | Differences | |
---|---|---|---|
35 | 35 | ||
36 | 36 | ||
37 | 37 | 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 | |
38 | 59 | let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv') | |
39 | - | let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != | |
60 | + | let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset)) | |
40 | 61 | then asset1 | |
41 | 62 | else asset0)))) | |
42 | - | let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + | |
63 | + | let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset))) | |
43 | 64 | let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__") | |
44 | 65 | let poolAddress = addressFromStringValue(poolConfig[1]) | |
45 | 66 | let poolAssetId = poolConfig[3] | |
75 | 96 | let refKey = "noref" | |
76 | 97 | func doSwap (amount,swap) = { | |
77 | 98 | let swapLi = split(swap, ",") | |
78 | - | let $ | |
79 | - | let dApp = $ | |
80 | - | let dAppType = $ | |
81 | - | let t0Str = $ | |
82 | - | let t1Str = $ | |
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 | |
83 | 104 | let t0 = getAssetBytes(t0Str) | |
84 | 105 | let amount0 = if ((amount != 0)) | |
85 | 106 | then amount | |
143 | 164 | func swapWXExternal (asset1) = { | |
144 | 165 | let asset0 = getAssetString(i.payments[0].assetId) | |
145 | 166 | 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))] | |
199 | 169 | } | |
200 | 170 | ||
201 | 171 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" | |
5 | 5 | ||
6 | 6 | let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
7 | 7 | ||
8 | 8 | func tryGetString (key) = match getString(this, key) { | |
9 | 9 | case b: String => | |
10 | 10 | b | |
11 | 11 | case _ => | |
12 | 12 | "" | |
13 | 13 | } | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | func getAssetString (assetId) = match assetId { | |
17 | 17 | case b: ByteVector => | |
18 | 18 | toBase58String(b) | |
19 | 19 | case _ => | |
20 | 20 | "WAVES" | |
21 | 21 | } | |
22 | 22 | ||
23 | 23 | ||
24 | 24 | func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES")) | |
25 | 25 | then unit | |
26 | 26 | else fromBase58String(assetIdStr) | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | func getBalance (assetId) = match assetId { | |
30 | 30 | case x: Unit => | |
31 | 31 | wavesBalance(this).available | |
32 | 32 | case _ => | |
33 | 33 | assetBalance(this, value(assetId)) | |
34 | 34 | } | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | 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 | |
38 | 59 | let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv') | |
39 | - | let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != | |
60 | + | let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset)) | |
40 | 61 | then asset1 | |
41 | 62 | else asset0)))) | |
42 | - | let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + | |
63 | + | let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset))) | |
43 | 64 | let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__") | |
44 | 65 | let poolAddress = addressFromStringValue(poolConfig[1]) | |
45 | 66 | let poolAssetId = poolConfig[3] | |
46 | 67 | let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)]) | |
47 | 68 | if ((inv1 == inv1)) | |
48 | 69 | then { | |
49 | 70 | let poolTokenAmount = getBalance(getAssetBytes(poolAssetId)) | |
50 | 71 | if ((poolTokenAmount == poolTokenAmount)) | |
51 | 72 | then { | |
52 | 73 | let asset1BalanceBefore = getBalance(getAssetBytes(asset1)) | |
53 | 74 | if ((asset1BalanceBefore == asset1BalanceBefore)) | |
54 | 75 | then { | |
55 | 76 | let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)]) | |
56 | 77 | if ((inv2 == inv2)) | |
57 | 78 | then { | |
58 | 79 | let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore) | |
59 | 80 | if ((amount1 == amount1)) | |
60 | 81 | then amount1 | |
61 | 82 | else throw("Strict value is not equal to itself.") | |
62 | 83 | } | |
63 | 84 | else throw("Strict value is not equal to itself.") | |
64 | 85 | } | |
65 | 86 | else throw("Strict value is not equal to itself.") | |
66 | 87 | } | |
67 | 88 | else throw("Strict value is not equal to itself.") | |
68 | 89 | } | |
69 | 90 | else throw("Strict value is not equal to itself.") | |
70 | 91 | } | |
71 | 92 | ||
72 | 93 | ||
73 | 94 | @Callable(i) | |
74 | 95 | func swap (routesStr,minToReceive) = { | |
75 | 96 | let refKey = "noref" | |
76 | 97 | func doSwap (amount,swap) = { | |
77 | 98 | let swapLi = split(swap, ",") | |
78 | - | let $ | |
79 | - | let dApp = $ | |
80 | - | let dAppType = $ | |
81 | - | let t0Str = $ | |
82 | - | let t1Str = $ | |
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 | |
83 | 104 | let t0 = getAssetBytes(t0Str) | |
84 | 105 | let amount0 = if ((amount != 0)) | |
85 | 106 | then amount | |
86 | 107 | else getBalance(t0) | |
87 | 108 | let i1 = if ((dAppType == "swopfi")) | |
88 | 109 | then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)]) | |
89 | 110 | else if ((dAppType == "puzzle")) | |
90 | 111 | then invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)]) | |
91 | 112 | else if ((dAppType == "wx")) | |
92 | 113 | then swapWX(t0Str, t1Str, amount0) | |
93 | 114 | else throw("internal aggregator issue: unknow pool type") | |
94 | 115 | if ((i1 == i1)) | |
95 | 116 | then 0 | |
96 | 117 | else throw("Strict value is not equal to itself.") | |
97 | 118 | } | |
98 | 119 | ||
99 | 120 | func doRoute (accum,route) = { | |
100 | 121 | let amountIn = parseIntValue(split(route, "/")[0]) | |
101 | 122 | let swaps = split(split(route, "/")[1], ";") | |
102 | 123 | let swapsResult = { | |
103 | 124 | let $l = swaps | |
104 | 125 | let $s = size($l) | |
105 | 126 | let $acc0 = amountIn | |
106 | 127 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
107 | 128 | then $a | |
108 | 129 | else doSwap($a, $l[$i]) | |
109 | 130 | ||
110 | 131 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
111 | 132 | then $a | |
112 | 133 | else throw("List size exceeds 3") | |
113 | 134 | ||
114 | 135 | $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3) | |
115 | 136 | } | |
116 | 137 | if ((swapsResult == swapsResult)) | |
117 | 138 | then (accum + swapsResult) | |
118 | 139 | else throw("Strict value is not equal to itself.") | |
119 | 140 | } | |
120 | 141 | ||
121 | 142 | let splittedRoute = split(takeRight(routesStr, 50), ",") | |
122 | 143 | let asset1Str = splittedRoute[(size(splittedRoute) - 1)] | |
123 | 144 | let asset1 = getAssetBytes(asset1Str) | |
124 | 145 | let routes1 = split(take(routesStr, 500), "|") | |
125 | 146 | let routes2 = split(drop(routesStr, 500), "|") | |
126 | 147 | let concat = (routes1[(size(routes1) - 1)] + routes2[0]) | |
127 | 148 | let routes = ((removeByIndex(routes1, (size(routes1) - 1)) ++ [concat]) ++ removeByIndex(routes2, 0)) | |
128 | 149 | if ((routes == routes)) | |
129 | 150 | then throw(routes[1]) | |
130 | 151 | else throw("Strict value is not equal to itself.") | |
131 | 152 | } | |
132 | 153 | ||
133 | 154 | ||
134 | 155 | ||
135 | 156 | @Callable(i) | |
136 | 157 | func addTokenPuzzlePool (assetIdStr,poolAddressStr) = if ((i.caller != Address(base58'3P8qVX189qpoTJZQQQdKS9endHK5sxWsvrd'))) | |
137 | 158 | then throw("admin only") | |
138 | 159 | else [StringEntry((("static_asset_" + assetIdStr) + "_puzzlePool"), poolAddressStr)] | |
139 | 160 | ||
140 | 161 | ||
141 | 162 | ||
142 | 163 | @Callable(i) | |
143 | 164 | func swapWXExternal (asset1) = { | |
144 | 165 | let asset0 = getAssetString(i.payments[0].assetId) | |
145 | 166 | 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))] | |
199 | 169 | } | |
200 | 170 | ||
201 | 171 | ||
202 | 172 | ||
203 | 173 | @Callable(i) | |
204 | 174 | func swapWXWithStake (asset1) = { | |
205 | 175 | let asset0 = getAssetString(i.payments[0].assetId) | |
206 | 176 | let amount0 = i.payments[0].amount | |
207 | 177 | let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ")) | |
208 | 178 | then true | |
209 | 179 | else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ")) | |
210 | 180 | then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ" | |
211 | 181 | else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ")) | |
212 | 182 | then true | |
213 | 183 | else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ")) | |
214 | 184 | then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ" | |
215 | 185 | else if (if ((asset0 == usdnIdStr)) | |
216 | 186 | then true | |
217 | 187 | else (asset1 == usdnIdStr)) | |
218 | 188 | then usdnIdStr | |
219 | 189 | else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS")) | |
220 | 190 | then true | |
221 | 191 | else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS")) | |
222 | 192 | then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS" | |
223 | 193 | else if (if ((asset0 == "WAVES")) | |
224 | 194 | then true | |
225 | 195 | else (asset1 == "WAVES")) | |
226 | 196 | then "WAVES" | |
227 | 197 | else usdnIdStr | |
228 | 198 | let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv') | |
229 | 199 | let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset)) | |
230 | 200 | then asset1 | |
231 | 201 | else asset0)))) | |
232 | 202 | let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset))) | |
233 | 203 | let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__") | |
234 | 204 | let poolAddress = addressFromStringValue(poolConfig[1]) | |
235 | 205 | let poolAssetId = poolConfig[3] | |
236 | 206 | let inv1 = invoke(poolAddress, "putOneTkn", [0, true], [AttachedPayment(getAssetBytes(asset0), amount0)]) | |
237 | 207 | if ((inv1 == inv1)) | |
238 | 208 | then { | |
239 | 209 | let poolTokenAmount = { | |
240 | 210 | let @ = inv1 | |
241 | 211 | if ($isInstanceOf(@, "Int")) | |
242 | 212 | then @ | |
243 | 213 | else throw(($getType(@) + " couldn't be cast to Int")) | |
244 | 214 | } | |
245 | 215 | if ((poolTokenAmount == poolTokenAmount)) | |
246 | 216 | then { | |
247 | 217 | let asset1BalanceBefore = getBalance(getAssetBytes(asset1)) | |
248 | 218 | if ((asset1BalanceBefore == asset1BalanceBefore)) | |
249 | 219 | then { | |
250 | 220 | let inv2 = invoke(poolAddress, "unstakeAndGetOneTkn", [poolTokenAmount, asset1, 0], nil) | |
251 | 221 | if ((inv2 == inv2)) | |
252 | 222 | then { | |
253 | 223 | let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore) | |
254 | 224 | if ((amount1 == amount1)) | |
255 | 225 | then [ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))] | |
256 | 226 | else throw("Strict value is not equal to itself.") | |
257 | 227 | } | |
258 | 228 | else throw("Strict value is not equal to itself.") | |
259 | 229 | } | |
260 | 230 | else throw("Strict value is not equal to itself.") | |
261 | 231 | } | |
262 | 232 | else throw("Strict value is not equal to itself.") | |
263 | 233 | } | |
264 | 234 | else throw("Strict value is not equal to itself.") | |
265 | 235 | } | |
266 | 236 | ||
267 | 237 | ||
268 | 238 | @Verifier(tx) | |
269 | 239 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
270 | 240 |
github/deemru/w8io/3ef1775 51.39 ms ◑