tx · H2D2SbUK3rsR8ETyRjr8fQjtER3zkwArQAsr2AsGMnnb

3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr:  -0.01800000 Waves

2024.12.23 10:34 [3426875] smart account 3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr > SELF 0.00000000 Waves

{ "type": 13, "id": "H2D2SbUK3rsR8ETyRjr8fQjtER3zkwArQAsr2AsGMnnb", "fee": 1800000, "feeAssetId": null, "timestamp": 1734939299915, "version": 2, "chainId": 84, "sender": "3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr", "senderPublicKey": "jXCTQV8PjX2uC9UHBFveupYy9cjhY7stHbzE9cptymw", "proofs": [ "2xYpZC9iLGkxs8437ing5NDJo4c3QaqyiQ4pwF1B9MVaxGizXTZ9kjYR2uEMKUDNkVQYPUedp7gDCTYYFiMgzH8X" ], "script": "base64:BwIxCAISAwoBCBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGDoACXNlcGFyYXRvcgICX18AC3dhdmVzU3RyaW5nAgVXQVZFUwAQY29udHJhY3RGaWxlbmFtZQIXbWVtZV9pbV9jYWxjdWxhdG9yLnJpZGUABW11bHQ4AIDC1y8BB3dyYXBFcnIBAXMJAKwCAgkArAICBRBjb250cmFjdEZpbGVuYW1lAgI6IAUBcwEIdGhyb3dFcnIBAXMJAAIBCQEHd3JhcEVycgEFAXMBD3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwkBCWlzRGVmaW5lZAEJAKYIAQUHYWRkcmVzcwAMU1RBVFVTX0VNUFRZAAAADFNUQVRVU19SRUFEWQABABVTVEFUVVNfVEFSR0VUX1JFQUNIRUQAAgASU1RBVFVTX1RSQU5TRkVSUkVEAAMACWtTaHV0ZG93bgIOc2h1dGRvd25fX2ZsYWcAC2tQcmljZUFzc2V0AgxwcmljZV9fYXNzZXQADmtMaXN0aW5nVm9sdW1lAg9saXN0aW5nX192b2x1bWUADGtDcmVhdGlvbkZlZQISc2V0dXBfX2NyZWF0aW9uRmVlAAxrQ3VydmVUYXJnZXQCEnNldHVwX19jdXJ2ZVRhcmdldAARa1ZpcnR1YWxMaXF1aWRpdHkCF3NldHVwX192aXJ0dWFsTGlxdWlkaXR5AA9rUG9vbFRva2Vuc0xpc3QCD3N0YXRpY190b2tlbklkcwARa1Bvb2xDb250cmFjdEhhc2gCFHBvb2xfX2NvbnRyYWN0X19oYXNoABNrTGFzdEVtcHR5UG9vbEluZGV4AhdsYXN0X19lbXB0eV9wb29sX19pbmRleAAUa0ZpcnN0RW1wdHlQb29sSW5kZXgCGWZpcnN0X19lbXB0eV9fcG9vbF9faW5kZXgBFWtQb29sQWRkcmVzc0Zyb21JbmRleAEFaW5kZXgJALkJAgkAzAgCAgRwb29sCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yARVrUG9vbEluZGV4RnJvbUFkZHJlc3MBB2FkZHJlc3MJALkJAgkAzAgCAgRwb29sCQDMCAIJAKUIAQUHYWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBCmtQb29sQXNzZXQBB2FkZHJlc3MJALkJAgkAzAgCAgVhc3NldAkAzAgCCQClCAEFB2FkZHJlc3MFA25pbAUJc2VwYXJhdG9yAQtrUG9vbFN0YXR1cwEFaW5kZXgJALkJAgkAzAgCAgRwb29sCQDMCAICBnN0YXR1cwkAzAgCCQCkAwEFBWluZGV4BQNuaWwFCXNlcGFyYXRvcgAPa0ZhY3RvcnlBZGRyZXNzAhBmYWN0b3J5X19hZGRyZXNzABRmYWN0b3J5QWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQR0aGlzBQ9rRmFjdG9yeUFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAA5mYWN0b3J5QWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRRmYWN0b3J5QWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAhdpbnZhbGlkIGZhY3RvcnkgYWRkcmVzcwAOa1d4U3dhcEFkZHJlc3MCD3d4c3dhcF9fYWRkcmVzcwATd3hTd2FwQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUOa1d4U3dhcEFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQADXd4U3dhcEFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUTd3hTd2FwQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAhdpbnZhbGlkIHd4IHN3YXAgYWRkcmVzcwAUa0ZlZUNvbGxlY3RvckFkZHJlc3MCDXd4ZmVlX2FkZHJlc3MAGWZlZUNvbGxlY3RvckFkZHJlc3NPcHRpb24EByRtYXRjaDAJAJ0IAgUOZmFjdG9yeUFkZHJlc3MFFGtGZWVDb2xsZWN0b3JBZGRyZXNzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzBQR1bml0ABNmZWVDb2xsZWN0b3JBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIFGWZlZUNvbGxlY3RvckFkZHJlc3NPcHRpb24JAQd3cmFwRXJyAQIdaW52YWxpZCBmZWUgY29sbGVjdG9yIGFkZHJlc3MAEWtVc2VyUG9vbHNBZGRyZXNzAhF1c2VycG9vbHNfYWRkcmVzcwAWdXNlclBvb2xzQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwURa1VzZXJQb29sc0FkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQAEHVzZXJQb29sc0FkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUWdXNlclBvb2xzQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAh9pbnZhbGlkIHVzZXJfcG9vbHMgZGFwcCBhZGRyZXNzABJrQXNzZXRTdG9yZUFkZHJlc3MCEmFzc2V0c3RvcmVfYWRkcmVzcwAXYXNzZXRTdG9yZUFkZHJlc3NPcHRpb24EByRtYXRjaDAJAJ0IAgUOZmFjdG9yeUFkZHJlc3MFEmtBc3NldFN0b3JlQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAARYXNzZXRTdG9yZUFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUXYXNzZXRTdG9yZUFkZHJlc3NPcHRpb24JAQd3cmFwRXJyAQIgaW52YWxpZCBhc3NldF9zdG9yZSBkYXBwIGFkZHJlc3MACHNodXRkb3duCQELdmFsdWVPckVsc2UCCQCbCAIFDmZhY3RvcnlBZGRyZXNzBQlrU2h1dGRvd24HAA5sYXN0RW1wdHlJbmRleAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwUTa0xhc3RFbXB0eVBvb2xJbmRleAAAAA9maXJzdEVtcHR5SW5kZXgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOZmFjdG9yeUFkZHJlc3MFFGtGaXJzdEVtcHR5UG9vbEluZGV4AAAADWxpc3RpbmdWb2x1bWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOZmFjdG9yeUFkZHJlc3MFDmtMaXN0aW5nVm9sdW1lAAAAC2NyZWF0aW9uRmVlCQELdmFsdWVPckVsc2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzBQxrQ3JlYXRpb25GZWUAAAAQcG9vbENvbnRyYWN0SGFzaAkAnAgCBQ5mYWN0b3J5QWRkcmVzcwURa1Bvb2xDb250cmFjdEhhc2gBDHBhcnNlQXNzZXRJZAEFaW5wdXQDCQAAAgUFaW5wdXQFC3dhdmVzU3RyaW5nBQR1bml0CQDZBAEFBWlucHV0AQ9hc3NldElkVG9TdHJpbmcBBWlucHV0AwkAAAIFBWlucHV0BQR1bml0BQt3YXZlc1N0cmluZwkA2AQBCQEFdmFsdWUBBQVpbnB1dAELbXVzdEFkZHJlc3MCBmNhbGxlcgdhZGRyZXNzAwkAAAIFBmNhbGxlcgUHYWRkcmVzcwYJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkAQhtdXN0VGhpcwEGY2FsbGVyCQELbXVzdEFkZHJlc3MCBQZjYWxsZXIFBHRoaXMBC211c3RGYWN0b3J5AQZjYWxsZXIJAQttdXN0QWRkcmVzcwIFBmNhbGxlcgUOZmFjdG9yeUFkZHJlc3MBE2NoZWNrQ29udHJhY3RTY3JpcHQBB2FkZHJlc3MEByRtYXRjaDAFEHBvb2xDb250cmFjdEhhc2gDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQEaGFzaAUHJG1hdGNoMAkAAAIJAPEHAQUHYWRkcmVzcwUEaGFzaAYBDGlzUG9vbEV4aXN0cwELcG9vbEFkZHJlc3MJAQlpc0RlZmluZWQBCQCaCAIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQULcG9vbEFkZHJlc3MBCWdldFBvb2xJZAELcG9vbEFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwkBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEFC3Bvb2xBZGRyZXNzAhNwb29sIGRvZXNuJ3QgZXhpc3RzARNpc1Bvb2xUYXJnZXRSZWFjaGVkAQtwb29sQWRkcmVzcwQKcG9vbFN0YXR1cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwkBC2tQb29sU3RhdHVzAQkBCWdldFBvb2xJZAEFC3Bvb2xBZGRyZXNzAP///////////wEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFFVNUQVRVU19UQVJHRVRfUkVBQ0hFRAkAzAgCBRJTVEFUVVNfVFJBTlNGRVJSRUQFA25pbAUKcG9vbFN0YXR1cwEKZ2V0QmFsYW5jZQIHYWRkcmVzcwdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCQDwBwIFB2FkZHJlc3MFAmlkCAkA7wcBBQdhZGRyZXNzCWF2YWlsYWJsZQEOaXNXeFN3YXBBY3RpdmUCEWFtb3VudEFzc2V0U3RyaW5nEHByaWNlQXNzZXRTdHJpbmcECXN0YXR1c0tleQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGF0dXMJAMwIAgURYW1vdW50QXNzZXRTdHJpbmcJAMwIAgUQcHJpY2VBc3NldFN0cmluZwUDbmlsBQlzZXBhcmF0b3IEEHN0YXR1c0tleVJldmVyc2UJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGc3RhdHVzCQDMCAIFEHByaWNlQXNzZXRTdHJpbmcJAMwIAgURYW1vdW50QXNzZXRTdHJpbmcFA25pbAUJc2VwYXJhdG9yBApwYWlyU3RhdHVzCQELdmFsdWVPckVsc2UCCQCdCAIFEHVzZXJQb29sc0FkZHJlc3MFCXN0YXR1c0tleQIABBFyZXZlcnNlUGFpclN0YXR1cwkBC3ZhbHVlT3JFbHNlAgkAnQgCBRB1c2VyUG9vbHNBZGRyZXNzBRBzdGF0dXNLZXlSZXZlcnNlAgADCQAAAgUKcGFpclN0YXR1cwIGYWN0aXZlBgkAAAIFEXJldmVyc2VQYWlyU3RhdHVzAgZhY3RpdmUBB2dlbkxvZ28BB2Fzc2V0SWQECyR0MDU0Mjk1NzEyBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAEBG5hbWUEByRtYXRjaDEJAOwHAQUBYgMJAAECBQckbWF0Y2gxAgVBc3NldAQBYQUHJG1hdGNoMQgFAWEEbmFtZQIBJQkAlAoCCQCkAwEJAGoCCQCxCQEFAWIA6AIFBG5hbWUJAJQKAgIDMjAwAgVXQVZFUwQFY29sb3IIBQskdDA1NDI5NTcxMgJfMQQJYXNzZXROYW1lCAULJHQwNTQyOTU3MTICXzIEBGxvZ28JAKwCAgkArAICCQCsAgIJAKwCAgJhPHN2ZyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGNpcmNsZSBjeD0nMTUnIGN5PScxNScgZmlsbD0naHNsKAUFY29sb3ICaiwgNzAlLCA3MCUpJyByPScxNScvPjx0ZXh0IHg9JzUwJScgeT0nNTAlJyB0ZXh0LWFuY2hvcj0nbWlkZGxlJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmb250LXNpemU9JzE4Jz4JAK8CAgUJYXNzZXROYW1lAAECDTwvdGV4dD48L3N2Zz4FBGxvZ28IAWkBBGluaXQBEWZhY3RvcnlBZGRyZXNzU3RyBAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQgFAWkGY2FsbGVyAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCBQ9rRmFjdG9yeUFkZHJlc3MFEWZhY3RvcnlBZGRyZXNzU3RyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMYWRkRW1wdHlQb29sAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQObmV3UG9vbEFkZHJlc3MJAKcIAQUPY2FsbGVyUHVibGljS2V5BAxuZXdQb29sSW5kZXgJAGQCBQ5sYXN0RW1wdHlJbmRleAABBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhZub3QgYWxsb3dlZCAoc2h1dGRvd24pCQDMCAIDCQETY2hlY2tDb250cmFjdFNjcmlwdAEFDm5ld1Bvb2xBZGRyZXNzBgkBCHRocm93RXJyAQIacG9vbCBzY3JpcHQgaXMgbm90IGFsbG93ZWQJAMwIAgMJAQEhAQkBDGlzUG9vbEV4aXN0cwEFDm5ld1Bvb2xBZGRyZXNzBgkBCHRocm93RXJyAQIicG9vbCBhZGRyZXNzIGlzIGFscmVhZHkgcmVnaXN0ZXJlZAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgUTa0xhc3RFbXB0eVBvb2xJbmRleAkAzAgCBQxuZXdQb29sSW5kZXgFA25pbAUDbmlsCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCC3N0cmluZ0VudHJ5CQDMCAIJARVrUG9vbEFkZHJlc3NGcm9tSW5kZXgBBQxuZXdQb29sSW5kZXgJAMwIAgkApQgBBQ5uZXdQb29sQWRkcmVzcwUDbmlsBQNuaWwJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIJARVrUG9vbEluZGV4RnJvbUFkZHJlc3MBBQ5uZXdQb29sQWRkcmVzcwkAzAgCBQxuZXdQb29sSW5kZXgFA25pbAUDbmlsCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCCQELa1Bvb2xTdGF0dXMBBQxuZXdQb29sSW5kZXgJAMwIAgUMU1RBVFVTX0VNUFRZBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKY3JlYXRlUG9vbAIPY2FsbGVyUHVibGljS2V5BGFyZ3MECm1pblBheW1lbnQJAGQCBQ1saXN0aW5nVm9sdW1lBQtjcmVhdGlvbkZlZQQGY2hlY2tzCQDMCAIDCQEBIQEFCHNodXRkb3duBgkBCHRocm93RXJyAQISVGVtcG9yYXJ5IHNodXRkb3duCQDMCAIJAQttdXN0RmFjdG9yeQEIBQFpBmNhbGxlcgkAzAgCAwkAZgIJAGUCBQ5sYXN0RW1wdHlJbmRleAUPZmlyc3RFbXB0eUluZGV4AAAGCQEIdGhyb3dFcnIBAhdObyBlbXB0eSBwb29sIGF2YWlsYWJsZQkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAYJAQh0aHJvd0VycgECGlBheW1lbnQgc2hvdWxkIGJlIGluIFdBVkVTCQDMCAIDCQBnAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFCm1pblBheW1lbnQGCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIjUGF5bWVudCBzaG91bGQgYmUgZ3JlYXRlciBvciBlcXVhbCAJAKQDAQUKbWluUGF5bWVudAIIIFdBVkVMRVQJAMwIAgMJAQlpc0RlZmluZWQBCQCRAwIFBGFyZ3MAAAYJAQh0aHJvd0VycgECGlRva2VuIG5hbWUgaXMgbm90IHByb3ZpZGVkCQDMCAIDCQEJaXNEZWZpbmVkAQkAkQMCBQRhcmdzAAEGCQEIdGhyb3dFcnIBAiFUb2tlbiBkZXNjcmlwdGlvbiBpcyBub3QgcHJvdmlkZWQJAMwIAgMJAQlpc0RlZmluZWQBCQCRAwIFBGFyZ3MAAgYJAQh0aHJvd0VycgECHlRva2VuIHF1YW50aXR5IGlzIG5vdCBwcm92aWRlZAkAzAgCAwkBAiE9AgkAtgkBCQCRAwIFBGFyZ3MAAgUEdW5pdAYJAQh0aHJvd0VycgECIVRva2VuIHF1YW50aXR5IHNob3VsZCBiZSBhIG51bWJlcgUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlwb29sSW5kZXgJAGQCBQ9maXJzdEVtcHR5SW5kZXgAAQQRcG9vbEFkZHJlc3NTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xBZGRyZXNzRnJvbUluZGV4AQUJcG9vbEluZGV4BAtwb29sQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQURcG9vbEFkZHJlc3NTdHJpbmcEDWNhbGxlckFkZHJlc3MJAKcIAQUPY2FsbGVyUHVibGljS2V5BApwb29sRG9tYWluCQCvAgIFEXBvb2xBZGRyZXNzU3RyaW5nAAgECXBvb2xPd25lcgkApQgBBQ1jYWxsZXJBZGRyZXNzBAl0b2tlbk5hbWUJAJEDAgUEYXJncwAABAl0b2tlbkRlc2MJAJEDAgUEYXJncwABBA10b2tlblF1YW50aXR5CQCRAwIFBGFyZ3MAAgQOaW5pdFBvb2xJbnZva2UJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDmluaXRQb29sSW52b2tlCQDMCAIFEXBvb2xBZGRyZXNzU3RyaW5nCQDMCAIJAMwIAgUKcG9vbERvbWFpbgkAzAgCBQlwb29sT3duZXIJAMwIAgUJdG9rZW5OYW1lCQDMCAIFCXRva2VuRGVzYwkAzAgCBQ10b2tlblF1YW50aXR5BQNuaWwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUDbmlsAwkAAAIFDmluaXRQb29sSW52b2tlBQ5pbml0UG9vbEludm9rZQQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIFFGtGaXJzdEVtcHR5UG9vbEluZGV4CQDMCAIFCXBvb2xJbmRleAUDbmlsBQNuaWwJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIJAQtrUG9vbFN0YXR1cwEFCXBvb2xJbmRleAkAzAgCBQxTVEFUVVNfUkVBRFkFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQ5mYWN0b3J5QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJub3RpZnlTdGF0dXNVcGRhdGUCD2NhbGxlclB1YmxpY0tleQRhcmdzBAtwb29sQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkEBmNoZWNrcwkAzAgCAwkBDGlzUG9vbEV4aXN0cwEFC3Bvb2xBZGRyZXNzBgkBCHRocm93RXJyAQIOcG9vbCBub3QgZm91bmQJAMwIAgkBC211c3RGYWN0b3J5AQgFAWkGY2FsbGVyBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECXBvb2xJbmRleAkBEUBleHRyTmF0aXZlKDEwNTApAgUOZmFjdG9yeUFkZHJlc3MJARVrUG9vbEluZGV4RnJvbUFkZHJlc3MBBQtwb29sQWRkcmVzcwQJbmV3U3RhdHVzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEYXJncwAABA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQUJcG9vbEluZGV4CQDMCAIFCW5ld1N0YXR1cwUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFmlzV3hTd2FwQWN0aXZlUkVBRE9OTFkCD2NhbGxlclB1YmxpY0tleQRhcmdzBBNhbW91bnRBc3NldElkU3RyaW5nCQCRAwIFBGFyZ3MAAAQScHJpY2VBc3NldElkU3RyaW5nCQCRAwIFBGFyZ3MAAQQGY2hlY2tzCQDMCAIJAQttdXN0RmFjdG9yeQEIBQFpBmNhbGxlcgUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQCUCgIFA25pbAkBDmlzV3hTd2FwQWN0aXZlAgUTYW1vdW50QXNzZXRJZFN0cmluZwUScHJpY2VBc3NldElkU3RyaW5nCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDHN3YXBSRUFET05MWQIPY2FsbGVyUHVibGljS2V5BGFyZ3MEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBGFyZ3MAAAQTYW1vdW50QXNzZXRJZFN0cmluZwkAkQMCBQRhcmdzAAEEEnByaWNlQXNzZXRJZFN0cmluZwkAkQMCBQRhcmdzAAIEBmFtb3VudAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGFyZ3MAAwQGY2hlY2tzCQDMCAIDCQEBIQEFCHNodXRkb3duBgkBCHRocm93RXJyAQISVGVtcG9yYXJ5IHNodXRkb3duCQDMCAIJAQttdXN0RmFjdG9yeQEIBQFpBmNhbGxlcgUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzAwkBE2lzUG9vbFRhcmdldFJlYWNoZWQBBQtwb29sQWRkcmVzcwQMd3hTd2FwUmVzdWx0CgABQAkA/AcEBQ13eFN3YXBBZGRyZXNzAhVzd2FwQ2FsY3VsYXRlUkVBRE9OTFkJAMwIAgUGYW1vdW50CQDMCAIFE2Ftb3VudEFzc2V0SWRTdHJpbmcJAMwIAgUScHJpY2VBc3NldElkU3RyaW5nBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAJQKAgUDbmlsCQCUCgIFDHd4U3dhcFJlc3VsdAIGV3hTd2FwBA5wb29sU3dhcFJlc3VsdAoAAUAJAPwHBAULcG9vbEFkZHJlc3MCDHN3YXBSZWFkT25seQkAzAgCBRNhbW91bnRBc3NldElkU3RyaW5nCQDMCAIFEnByaWNlQXNzZXRJZFN0cmluZwkAzAgCBQZhbW91bnQFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAkAlAoCBQNuaWwJAJQKAgUOcG9vbFN3YXBSZXN1bHQCCWlNZW1lUG9vbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRzd2FwAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQNY2FsbGVyQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBGFyZ3MAAAQScHJpY2VBc3NldElkU3RyaW5nCQCRAwIFBGFyZ3MAAQQMcHJpY2VBc3NldElkCQEMcGFyc2VBc3NldElkAQUScHJpY2VBc3NldElkU3RyaW5nBA1taW5pbXVtQW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEYXJncwACBA1hc3NldEluQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQOYXNzZXRJbkFzc2V0SWQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQGY2hlY2tzCQDMCAIDCQEBIQEFCHNodXRkb3duBgkBCHRocm93RXJyAQISVGVtcG9yYXJ5IHNodXRkb3duCQDMCAIJAQttdXN0RmFjdG9yeQEIBQFpBmNhbGxlcgkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECH2V4YWN0bHkgb25lIHBheW1lbnQgaXMgZXhwZWN0ZWQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQVb3V0QXNzZXRCYWxhbmNlQmVmb3JlCQEKZ2V0QmFsYW5jZQIFBHRoaXMFDHByaWNlQXNzZXRJZAMJAAACBRVvdXRBc3NldEJhbGFuY2VCZWZvcmUFFW91dEFzc2V0QmFsYW5jZUJlZm9yZQQKc3dhcEFjdGlvbgMDCQETaXNQb29sVGFyZ2V0UmVhY2hlZAEFC3Bvb2xBZGRyZXNzCQEOaXNXeFN3YXBBY3RpdmUCCQEPYXNzZXRJZFRvU3RyaW5nAQUOYXNzZXRJbkFzc2V0SWQFEnByaWNlQXNzZXRJZFN0cmluZwcJAPwHBAUNd3hTd2FwQWRkcmVzcwIEc3dhcAkAzAgCBQ1taW5pbXVtQW1vdW50CQDMCAIFEnByaWNlQXNzZXRJZFN0cmluZwkAzAgCCQClCAEFBHRoaXMFA25pbAgFAWkIcGF5bWVudHMJAPwHBAULcG9vbEFkZHJlc3MCBHN3YXAJAMwIAgUScHJpY2VBc3NldElkU3RyaW5nCQDMCAIFDW1pbmltdW1BbW91bnQFA25pbAgFAWkIcGF5bWVudHMDCQAAAgUKc3dhcEFjdGlvbgUKc3dhcEFjdGlvbgQUb3V0QXNzZXRCYWxhbmNlQWZ0ZXIJAQpnZXRCYWxhbmNlAgUEdGhpcwUMcHJpY2VBc3NldElkAwkAAAIFFG91dEFzc2V0QmFsYW5jZUFmdGVyBRRvdXRBc3NldEJhbGFuY2VBZnRlcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ1jYWxsZXJBZGRyZXNzCQBlAgUUb3V0QXNzZXRCYWxhbmNlQWZ0ZXIFFW91dEFzc2V0QmFsYW5jZUJlZm9yZQUMcHJpY2VBc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMdHJhbnNmZXJQb29sAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQNY2FsbGVyQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBGFyZ3MAAAQUcG9vbFRva2Vuc1N0cmluZ0xpc3QJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgULcG9vbEFkZHJlc3MFD2tQb29sVG9rZW5zTGlzdAIBLAQGYXNzZXQxCQEMcGFyc2VBc3NldElkAQkAkQMCBRRwb29sVG9rZW5zU3RyaW5nTGlzdAAABAZhc3NldDIJAQxwYXJzZUFzc2V0SWQBCQCRAwIFFHBvb2xUb2tlbnNTdHJpbmdMaXN0AAEEDSR0MDEyNTQ4MTI2NDADCQAAAgUGYXNzZXQxBQR1bml0CQCUCgIFBmFzc2V0MgUGYXNzZXQxCQCUCgIFBmFzc2V0MQUGYXNzZXQyBAlwb29sQXNzZXQIBQ0kdDAxMjU0ODEyNjQwAl8xBAp3YXZlc0Fzc2V0CAUNJHQwMTI1NDgxMjY0MAJfMgQWcG9vbEFzc2V0QmFsYW5jZUJlZm9yZQkBCmdldEJhbGFuY2UCBQ5mYWN0b3J5QWRkcmVzcwUJcG9vbEFzc2V0AwkAAAIFFnBvb2xBc3NldEJhbGFuY2VCZWZvcmUFFnBvb2xBc3NldEJhbGFuY2VCZWZvcmUEF3dhdmVzQXNzZXRCYWxhbmNlQmVmb3JlCQEKZ2V0QmFsYW5jZQIFDmZhY3RvcnlBZGRyZXNzBQp3YXZlc0Fzc2V0AwkAAAIFF3dhdmVzQXNzZXRCYWxhbmNlQmVmb3JlBRd3YXZlc0Fzc2V0QmFsYW5jZUJlZm9yZQQOd2l0aGRyYXdJbnZva2UJAPwHBAUOZmFjdG9yeUFkZHJlc3MCGXdpdGhkcmF3TGlxdWlkaXR5RnJvbVBvb2wJAMwIAggFC3Bvb2xBZGRyZXNzBWJ5dGVzBQNuaWwFA25pbAMJAAACBQ53aXRoZHJhd0ludm9rZQUOd2l0aGRyYXdJbnZva2UEFXBvb2xBc3NldEJhbGFuY2VBZnRlcgkBCmdldEJhbGFuY2UCBQ5mYWN0b3J5QWRkcmVzcwUJcG9vbEFzc2V0AwkAAAIFFXBvb2xBc3NldEJhbGFuY2VBZnRlcgUVcG9vbEFzc2V0QmFsYW5jZUFmdGVyBBZ3YXZlc0Fzc2V0QmFsYW5jZUFmdGVyCQEKZ2V0QmFsYW5jZQIFDmZhY3RvcnlBZGRyZXNzBQp3YXZlc0Fzc2V0AwkAAAIFFndhdmVzQXNzZXRCYWxhbmNlQWZ0ZXIFFndhdmVzQXNzZXRCYWxhbmNlQWZ0ZXIED3Bvb2xBc3NldEFtb3VudAkAZQIFFXBvb2xBc3NldEJhbGFuY2VBZnRlcgUWcG9vbEFzc2V0QmFsYW5jZUJlZm9yZQQLd2F2ZXNBbW91bnQJAGUCBRZ3YXZlc0Fzc2V0QmFsYW5jZUFmdGVyBRd3YXZlc0Fzc2V0QmFsYW5jZUJlZm9yZQQEbG9nbwkBB2dlbkxvZ28BBQlwb29sQXNzZXQDAwkAZgIFD3Bvb2xBc3NldEFtb3VudAAACQBmAgULd2F2ZXNBbW91bnQAAAcECmJ1cm5BbW91bnQJAGsDBQ9wb29sQXNzZXRBbW91bnQAFABkBApidXJuQWN0aW9uCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgRidXJuCQDMCAIFCXBvb2xBc3NldAkAzAgCBQpidXJuQW1vdW50BQNuaWwFA25pbAMJAAACBQpidXJuQWN0aW9uBQpidXJuQWN0aW9uBA5mZWVXYXZlc0Ftb3VudAkAawMFC3dhdmVzQW1vdW50ABQAZAQJZmVlQWN0aW9uCQD8BwQFDmZhY3RvcnlBZGRyZXNzAg10cmFuc2ZlcldhdmVzCQDMCAIIBRNmZWVDb2xsZWN0b3JBZGRyZXNzBWJ5dGVzCQDMCAIFDmZlZVdhdmVzQW1vdW50BQNuaWwFA25pbAMJAAACBQlmZWVBY3Rpb24FCWZlZUFjdGlvbgQTcmVnaXN0ZXJBc3NldEFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwINcmVnaXN0ZXJBc3NldAkAzAgCCAURYXNzZXRTdG9yZUFkZHJlc3MFYnl0ZXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFCXBvb2xBc3NldAkAzAgCBQRsb2dvCQDMCAIGBQNuaWwFA25pbAMJAAACBRNyZWdpc3RlckFzc2V0QWN0aW9uBRNyZWdpc3RlckFzc2V0QWN0aW9uBBJjcmVhdGVXeFBvb2xBY3Rpb24JAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGNyZWF0ZVd4UG9vbAkAzAgCCAUQdXNlclBvb2xzQWRkcmVzcwVieXRlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUJcG9vbEFzc2V0CQDMCAIJAGUCBQ9wb29sQXNzZXRBbW91bnQFCmJ1cm5BbW91bnQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFCndhdmVzQXNzZXQJAMwIAgkAZQIFC3dhdmVzQW1vdW50BQ5mZWVXYXZlc0Ftb3VudAUDbmlsBQNuaWwDCQAAAgUSY3JlYXRlV3hQb29sQWN0aW9uBRJjcmVhdGVXeFBvb2xBY3Rpb24EDGNoYW5nZVN0YXR1cwkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIJAQtrUG9vbFN0YXR1cwEJAQlnZXRQb29sSWQBBQtwb29sQWRkcmVzcwkAzAgCBRJTVEFUVVNfVFJBTlNGRVJSRUQFA25pbAUDbmlsAwkAAAIFDGNoYW5nZVN0YXR1cwUMY2hhbmdlU3RhdHVzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAQh0aHJvd0VycgECJXdpdGhkcmF3biBhbW91bnQgZnJvbSBwb29sIGlzIHRvbyBsb3cJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABBNrZXlBZG1pbkFkZHJlc3NMaXN0AhQlc19fYWRtaW5BZGRyZXNzTGlzdAQOa2V5QWxsb3dlZFR4SWQCCCVzX190eElkBAlhZG1pbkxpc3QJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUTa2V5QWRtaW5BZGRyZXNzTGlzdAIAAgJfXwQHYnlPd25lcgMJAGcCCQCQAwEFCWFkbWluTGlzdAADBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQQIYnlBZG1pbnMJAAACCAUCdHgCaWQJANkEAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUOa2V5QWxsb3dlZFR4SWQCAAMFCGJ5QWRtaW5zBgUHYnlPd25lcq1ir9A=", "height": 3426875, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 26dqsQpg4RhkjTnXtGtZecoQnrZUCUbEptTbU7XpMvUa Next: none Diff:
OldNewDifferences
392392 let bj = am(this, bf)
393393 if ((bj == bj))
394394 then {
395- let bk = if (ak(ai))
396- then reentrantInvoke(I, "swap", [bg, ba, toString(this)], aF.payments)
395+ let bk = if (if (ak(ai))
396+ then ap(aa(bi), ba)
397+ else false)
398+ then invoke(I, "swap", [bg, ba, toString(this)], aF.payments)
397399 else invoke(ai, "swap", [ba, bg], aF.payments)
398400 if ((bk == bk))
399401 then {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "WAVES"
77
88 let c = "meme_im_calculator.ride"
99
1010 let d = 100000000
1111
1212 func e (f) = ((c + ": ") + f)
1313
1414
1515 func g (f) = throw(e(f))
1616
1717
1818 func h (i) = isDefined(addressFromString(i))
1919
2020
2121 let j = 0
2222
2323 let k = 1
2424
2525 let l = 2
2626
2727 let m = 3
2828
2929 let n = "shutdown__flag"
3030
3131 let o = "price__asset"
3232
3333 let p = "listing__volume"
3434
3535 let q = "setup__creationFee"
3636
3737 let r = "setup__curveTarget"
3838
3939 let s = "setup__virtualLiquidity"
4040
4141 let t = "static_tokenIds"
4242
4343 let u = "pool__contract__hash"
4444
4545 let v = "last__empty_pool__index"
4646
4747 let w = "first__empty__pool__index"
4848
4949 func x (y) = makeString(["pool", toString(y)], a)
5050
5151
5252 func z (i) = makeString(["pool", toString(i)], a)
5353
5454
5555 func A (i) = makeString(["asset", toString(i)], a)
5656
5757
5858 func B (y) = makeString(["pool", "status", toString(y)], a)
5959
6060
6161 let C = "factory__address"
6262
6363 let D = {
6464 let E = getString(this, C)
6565 if ($isInstanceOf(E, "String"))
6666 then {
6767 let f = E
6868 addressFromString(f)
6969 }
7070 else if ($isInstanceOf(E, "Unit"))
7171 then unit
7272 else throw("Match error")
7373 }
7474
7575 let F = valueOrErrorMessage(D, e("invalid factory address"))
7676
7777 let G = "wxswap__address"
7878
7979 let H = {
8080 let E = getString(F, G)
8181 if ($isInstanceOf(E, "String"))
8282 then {
8383 let f = E
8484 addressFromString(f)
8585 }
8686 else unit
8787 }
8888
8989 let I = valueOrErrorMessage(H, e("invalid wx swap address"))
9090
9191 let J = "wxfee_address"
9292
9393 let K = {
9494 let E = getString(F, J)
9595 if ($isInstanceOf(E, "String"))
9696 then {
9797 let f = E
9898 addressFromString(f)
9999 }
100100 else unit
101101 }
102102
103103 let L = valueOrErrorMessage(K, e("invalid fee collector address"))
104104
105105 let M = "userpools_address"
106106
107107 let N = {
108108 let E = getString(F, M)
109109 if ($isInstanceOf(E, "String"))
110110 then {
111111 let f = E
112112 addressFromString(f)
113113 }
114114 else unit
115115 }
116116
117117 let O = valueOrErrorMessage(N, e("invalid user_pools dapp address"))
118118
119119 let P = "assetstore_address"
120120
121121 let Q = {
122122 let E = getString(F, P)
123123 if ($isInstanceOf(E, "String"))
124124 then {
125125 let f = E
126126 addressFromString(f)
127127 }
128128 else unit
129129 }
130130
131131 let R = valueOrErrorMessage(Q, e("invalid asset_store dapp address"))
132132
133133 let S = valueOrElse(getBoolean(F, n), false)
134134
135135 let T = valueOrElse(getInteger(F, v), 0)
136136
137137 let U = valueOrElse(getInteger(F, w), 0)
138138
139139 let V = valueOrElse(getInteger(F, p), 0)
140140
141141 let W = valueOrElse(getInteger(F, q), 0)
142142
143143 let X = getBinary(F, u)
144144
145145 func Y (Z) = if ((Z == b))
146146 then unit
147147 else fromBase58String(Z)
148148
149149
150150 func aa (Z) = if ((Z == unit))
151151 then b
152152 else toBase58String(value(Z))
153153
154154
155155 func ab (ac,i) = if ((ac == i))
156156 then true
157157 else g("permission denied")
158158
159159
160160 func ad (ac) = ab(ac, this)
161161
162162
163163 func ae (ac) = ab(ac, F)
164164
165165
166166 func af (i) = {
167167 let E = X
168168 if ($isInstanceOf(E, "ByteVector"))
169169 then {
170170 let ag = E
171171 (scriptHash(i) == ag)
172172 }
173173 else true
174174 }
175175
176176
177177 func ah (ai) = isDefined(getInteger(F, z(ai)))
178178
179179
180180 func aj (ai) = valueOrErrorMessage(getInteger(F, z(ai)), "pool doesn't exists")
181181
182182
183183 func ak (ai) = {
184184 let al = valueOrElse(getInteger(F, B(aj(ai))), -1)
185185 containsElement([l, m], al)
186186 }
187187
188188
189189 func am (i,an) = {
190190 let E = an
191191 if ($isInstanceOf(E, "ByteVector"))
192192 then {
193193 let ao = E
194194 assetBalance(i, ao)
195195 }
196196 else wavesBalance(i).available
197197 }
198198
199199
200200 func ap (aq,ar) = {
201201 let as = makeString(["%s%s%s", "status", aq, ar], a)
202202 let at = makeString(["%s%s%s", "status", ar, aq], a)
203203 let au = valueOrElse(getString(O, as), "")
204204 let av = valueOrElse(getString(O, at), "")
205205 if ((au == "active"))
206206 then true
207207 else (av == "active")
208208 }
209209
210210
211211 func aw (an) = {
212212 let ax = {
213213 let E = an
214214 if ($isInstanceOf(E, "ByteVector"))
215215 then {
216216 let ay = E
217217 let az = {
218218 let aA = assetInfo(ay)
219219 if ($isInstanceOf(aA, "Asset"))
220220 then {
221221 let aB = aA
222222 aB.name
223223 }
224224 else "%"
225225 }
226226 $Tuple2(toString((toInt(ay) % 360)), az)
227227 }
228228 else $Tuple2("200", "WAVES")
229229 }
230230 let aC = ax._1
231231 let aD = ax._2
232232 let aE = (((("<svg width='30' height='30' xmlns='http://www.w3.org/2000/svg'><circle cx='15' cy='15' fill='hsl(" + aC) + ", 70%, 70%)' r='15'/><text x='50%' y='50%' text-anchor='middle' dominant-baseline='middle' font-size='18'>") + take(aD, 1)) + "</text></svg>")
233233 aE
234234 }
235235
236236
237237 @Callable(aF)
238238 func init (aG) = {
239239 let aH = ad(aF.caller)
240240 if ((aH == aH))
241241 then [StringEntry(C, aG)]
242242 else throw("Strict value is not equal to itself.")
243243 }
244244
245245
246246
247247 @Callable(aF)
248248 func addEmptyPool (aI,aJ) = {
249249 let aK = addressFromPublicKey(aI)
250250 let aL = (T + 1)
251251 let aM = [if (!(S))
252252 then true
253253 else g("not allowed (shutdown)"), if (af(aK))
254254 then true
255255 else g("pool script is not allowed"), if (!(ah(aK)))
256256 then true
257257 else g("pool address is already registered")]
258258 if ((aM == aM))
259259 then {
260260 let aN = [invoke(F, "integerEntry", [v, aL], nil), invoke(F, "stringEntry", [x(aL), toString(aK)], nil), invoke(F, "integerEntry", [z(aK), aL], nil), invoke(F, "integerEntry", [B(aL), j], nil)]
261261 $Tuple2(nil, aN)
262262 }
263263 else throw("Strict value is not equal to itself.")
264264 }
265265
266266
267267
268268 @Callable(aF)
269269 func createPool (aI,aJ) = {
270270 let aO = (V + W)
271271 let aM = [if (!(S))
272272 then true
273273 else g("Temporary shutdown"), ae(aF.caller), if (((T - U) > 0))
274274 then true
275275 else g("No empty pool available"), if ((aF.payments[0].assetId == unit))
276276 then true
277277 else g("Payment should be in WAVES"), if ((aF.payments[0].amount >= aO))
278278 then true
279279 else g((("Payment should be greater or equal " + toString(aO)) + " WAVELET")), if (isDefined(aJ[0]))
280280 then true
281281 else g("Token name is not provided"), if (isDefined(aJ[1]))
282282 then true
283283 else g("Token description is not provided"), if (isDefined(aJ[2]))
284284 then true
285285 else g("Token quantity is not provided"), if ((parseInt(aJ[2]) != unit))
286286 then true
287287 else g("Token quantity should be a number")]
288288 if ((aM == aM))
289289 then {
290290 let aP = (U + 1)
291291 let aQ = getStringValue(F, x(aP))
292292 let ai = addressFromStringValue(aQ)
293293 let aR = addressFromPublicKey(aI)
294294 let aS = take(aQ, 8)
295295 let aT = toString(aR)
296296 let aU = aJ[0]
297297 let aV = aJ[1]
298298 let aW = aJ[2]
299299 let aX = invoke(F, "initPoolInvoke", [aQ, [aS, aT, aU, aV, aW]], [AttachedPayment(aF.payments[0].assetId, aF.payments[0].amount)])
300300 if ((aX == aX))
301301 then {
302302 let aN = [invoke(F, "integerEntry", [w, aP], nil), invoke(F, "integerEntry", [B(aP), k], nil)]
303303 $Tuple2(nil, aN)
304304 }
305305 else throw("Strict value is not equal to itself.")
306306 }
307307 else throw("Strict value is not equal to itself.")
308308 }
309309
310310
311311
312312 @Callable(aF)
313313 func notifyStatusUpdate (aI,aJ) = {
314314 let ai = addressFromPublicKey(aI)
315315 let aM = [if (ah(ai))
316316 then true
317317 else g("pool not found"), ae(aF.caller)]
318318 if ((aM == aM))
319319 then {
320320 let aP = getIntegerValue(F, z(ai))
321321 let aY = parseIntValue(aJ[0])
322322 let aN = [invoke(F, "integerEntry", [B(aP), aY], nil)]
323323 $Tuple2(nil, aN)
324324 }
325325 else throw("Strict value is not equal to itself.")
326326 }
327327
328328
329329
330330 @Callable(aF)
331331 func isWxSwapActiveREADONLY (aI,aJ) = {
332332 let aZ = aJ[0]
333333 let ba = aJ[1]
334334 let aM = [ae(aF.caller)]
335335 if ((aM == aM))
336336 then $Tuple2(nil, ap(aZ, ba))
337337 else throw("Strict value is not equal to itself.")
338338 }
339339
340340
341341
342342 @Callable(aF)
343343 func swapREADONLY (aI,aJ) = {
344344 let ai = addressFromStringValue(aJ[0])
345345 let aZ = aJ[1]
346346 let ba = aJ[2]
347347 let bb = parseIntValue(aJ[3])
348348 let aM = [if (!(S))
349349 then true
350350 else g("Temporary shutdown"), ae(aF.caller)]
351351 if ((aM == aM))
352352 then if (ak(ai))
353353 then {
354354 let bc = {
355355 let bd = invoke(I, "swapCalculateREADONLY", [bb, aZ, ba], nil)
356356 if ($isInstanceOf(bd, "Int"))
357357 then bd
358358 else throw(($getType(bd) + " couldn't be cast to Int"))
359359 }
360360 $Tuple2(nil, $Tuple2(bc, "WxSwap"))
361361 }
362362 else {
363363 let be = {
364364 let bd = invoke(ai, "swapReadOnly", [aZ, ba, bb], nil)
365365 if ($isInstanceOf(bd, "Int"))
366366 then bd
367367 else throw(($getType(bd) + " couldn't be cast to Int"))
368368 }
369369 $Tuple2(nil, $Tuple2(be, "iMemePool"))
370370 }
371371 else throw("Strict value is not equal to itself.")
372372 }
373373
374374
375375
376376 @Callable(aF)
377377 func swap (aI,aJ) = {
378378 let aR = addressFromPublicKey(aI)
379379 let ai = addressFromStringValue(aJ[0])
380380 let ba = aJ[1]
381381 let bf = Y(ba)
382382 let bg = parseIntValue(aJ[2])
383383 let bh = aF.payments[0].amount
384384 let bi = aF.payments[0].assetId
385385 let aM = [if (!(S))
386386 then true
387387 else g("Temporary shutdown"), ae(aF.caller), if ((size(aF.payments) == 1))
388388 then true
389389 else g("exactly one payment is expected")]
390390 if ((aM == aM))
391391 then {
392392 let bj = am(this, bf)
393393 if ((bj == bj))
394394 then {
395- let bk = if (ak(ai))
396- then reentrantInvoke(I, "swap", [bg, ba, toString(this)], aF.payments)
395+ let bk = if (if (ak(ai))
396+ then ap(aa(bi), ba)
397+ else false)
398+ then invoke(I, "swap", [bg, ba, toString(this)], aF.payments)
397399 else invoke(ai, "swap", [ba, bg], aF.payments)
398400 if ((bk == bk))
399401 then {
400402 let bl = am(this, bf)
401403 if ((bl == bl))
402404 then [ScriptTransfer(aR, (bl - bj), bf)]
403405 else throw("Strict value is not equal to itself.")
404406 }
405407 else throw("Strict value is not equal to itself.")
406408 }
407409 else throw("Strict value is not equal to itself.")
408410 }
409411 else throw("Strict value is not equal to itself.")
410412 }
411413
412414
413415
414416 @Callable(aF)
415417 func transferPool (aI,aJ) = {
416418 let aR = addressFromPublicKey(aI)
417419 let ai = addressFromStringValue(aJ[0])
418420 let bm = split(getStringValue(ai, t), ",")
419421 let bn = Y(bm[0])
420422 let bo = Y(bm[1])
421423 let bp = if ((bn == unit))
422424 then $Tuple2(bo, bn)
423425 else $Tuple2(bn, bo)
424426 let bq = bp._1
425427 let br = bp._2
426428 let bs = am(F, bq)
427429 if ((bs == bs))
428430 then {
429431 let bt = am(F, br)
430432 if ((bt == bt))
431433 then {
432434 let bu = invoke(F, "withdrawLiquidityFromPool", [ai.bytes], nil)
433435 if ((bu == bu))
434436 then {
435437 let bv = am(F, bq)
436438 if ((bv == bv))
437439 then {
438440 let bw = am(F, br)
439441 if ((bw == bw))
440442 then {
441443 let bx = (bv - bs)
442444 let by = (bw - bt)
443445 let aE = aw(bq)
444446 if (if ((bx > 0))
445447 then (by > 0)
446448 else false)
447449 then {
448450 let bz = fraction(bx, 20, 100)
449451 let bA = invoke(F, "burn", [bq, bz], nil)
450452 if ((bA == bA))
451453 then {
452454 let bB = fraction(by, 20, 100)
453455 let bC = invoke(F, "transferWaves", [L.bytes, bB], nil)
454456 if ((bC == bC))
455457 then {
456458 let bD = invoke(F, "registerAsset", [R.bytes, aa(bq), aE, true], nil)
457459 if ((bD == bD))
458460 then {
459461 let bE = invoke(F, "createWxPool", [O.bytes, aa(bq), (bx - bz), aa(br), (by - bB)], nil)
460462 if ((bE == bE))
461463 then {
462464 let bF = invoke(F, "integerEntry", [B(aj(ai)), m], nil)
463465 if ((bF == bF))
464466 then nil
465467 else throw("Strict value is not equal to itself.")
466468 }
467469 else throw("Strict value is not equal to itself.")
468470 }
469471 else throw("Strict value is not equal to itself.")
470472 }
471473 else throw("Strict value is not equal to itself.")
472474 }
473475 else throw("Strict value is not equal to itself.")
474476 }
475477 else g("withdrawn amount from pool is too low")
476478 }
477479 else throw("Strict value is not equal to itself.")
478480 }
479481 else throw("Strict value is not equal to itself.")
480482 }
481483 else throw("Strict value is not equal to itself.")
482484 }
483485 else throw("Strict value is not equal to itself.")
484486 }
485487 else throw("Strict value is not equal to itself.")
486488 }
487489
488490
489491 @Verifier(bG)
490492 func bH () = {
491493 let bI = "%s__adminAddressList"
492494 let bJ = "%s__txId"
493495 let bK = split(valueOrElse(getString(F, bI), ""), "__")
494496 let bL = if ((size(bK) >= 3))
495497 then false
496498 else sigVerify(bG.bodyBytes, bG.proofs[0], bG.senderPublicKey)
497499 let bM = (bG.id == fromBase58String(valueOrElse(getString(F, bJ), "")))
498500 if (bM)
499501 then true
500502 else bL
501503 }
502504

github/deemru/w8io/169f3d6 
56.33 ms