tx · H4cjs3n8JTZLZRkYi6Fen5WkDn8g1cQvqXCCtmSZc2PD

3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr:  -0.01700000 Waves

2024.12.19 16:02 [3421446] smart account 3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr > SELF 0.00000000 Waves

{ "type": 13, "id": "H4cjs3n8JTZLZRkYi6Fen5WkDn8g1cQvqXCCtmSZc2PD", "fee": 1700000, "feeAssetId": null, "timestamp": 1734613398459, "version": 2, "chainId": 84, "sender": "3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr", "senderPublicKey": "jXCTQV8PjX2uC9UHBFveupYy9cjhY7stHbzE9cptymw", "proofs": [ "55BCpepB7qy9N1HhU6b3cSWQN6WnRWxqd3TVNLHSQ75RJzHZ1K2yB6D2nyBNBdBgPRqU133LmGc7UUfBVst2Bi6g" ], "script": "base64:BwIrCAISAwoBCBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGDkACXNlcGFyYXRvcgICX18AC3dhdmVzU3RyaW5nAgVXQVZFUwAQY29udHJhY3RGaWxlbmFtZQIXbWVtZV9pbV9jYWxjdWxhdG9yLnJpZGUABW11bHQ4AIDC1y8BB3dyYXBFcnIBAXMJAKwCAgkArAICBRBjb250cmFjdEZpbGVuYW1lAgI6IAUBcwEIdGhyb3dFcnIBAXMJAAIBCQEHd3JhcEVycgEFAXMBD3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwkBCWlzRGVmaW5lZAEJAKYIAQUHYWRkcmVzcwAMU1RBVFVTX0VNUFRZAAAADFNUQVRVU19SRUFEWQABABVTVEFUVVNfVEFSR0VUX1JFQUNIRUQAAgASU1RBVFVTX1RSQU5TRkVSUkVEAAMAC2RlZmF1bHRMb2dvAqABPHN2ZyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGc+PGNpcmNsZSBjeD0nMTUnIGN5PScxNScgZmlsbD0nI2NjYycgcj0nMTUnLz48dGV4dCBzdHJva2U9JyMwJyB4PSc2JyB5PScyMCc+aU08L3RleHQ+PC9nPjwvc3ZnPgAJa1NodXRkb3duAg5zaHV0ZG93bl9fZmxhZwALa1ByaWNlQXNzZXQCDHByaWNlX19hc3NldAAOa0xpc3RpbmdWb2x1bWUCD2xpc3RpbmdfX3ZvbHVtZQAMa0NyZWF0aW9uRmVlAhJzZXR1cF9fY3JlYXRpb25GZWUADGtDdXJ2ZVRhcmdldAISc2V0dXBfX2N1cnZlVGFyZ2V0ABFrVmlydHVhbExpcXVpZGl0eQIXc2V0dXBfX3ZpcnR1YWxMaXF1aWRpdHkAD2tQb29sVG9rZW5zTGlzdAIPc3RhdGljX3Rva2VuSWRzABFrUG9vbENvbnRyYWN0SGFzaAIUcG9vbF9fY29udHJhY3RfX2hhc2gAE2tMYXN0RW1wdHlQb29sSW5kZXgCF2xhc3RfX2VtcHR5X3Bvb2xfX2luZGV4ABRrRmlyc3RFbXB0eVBvb2xJbmRleAIZZmlyc3RfX2VtcHR5X19wb29sX19pbmRleAEVa1Bvb2xBZGRyZXNzRnJvbUluZGV4AQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgkApAMBBQVpbmRleAUDbmlsBQlzZXBhcmF0b3IBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEHYWRkcmVzcwkAuQkCCQDMCAICBHBvb2wJAMwIAgkApQgBBQdhZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEKa1Bvb2xBc3NldAEHYWRkcmVzcwkAuQkCCQDMCAICBWFzc2V0CQDMCAIJAKUIAQUHYWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBC2tQb29sU3RhdHVzAQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgIGc3RhdHVzCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yAA9rRmFjdG9yeUFkZHJlc3MCEGZhY3RvcnlfX2FkZHJlc3MAFGZhY3RvcnlBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFBHRoaXMFD2tGYWN0b3J5QWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IADmZhY3RvcnlBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIFFGZhY3RvcnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgZmFjdG9yeSBhZGRyZXNzAA5rV3hTd2FwQWRkcmVzcwIPd3hzd2FwX19hZGRyZXNzABN3eFN3YXBBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFDmZhY3RvcnlBZGRyZXNzBQ5rV3hTd2FwQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAANd3hTd2FwQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRN3eFN3YXBBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgd3ggc3dhcCBhZGRyZXNzABRrRmVlQ29sbGVjdG9yQWRkcmVzcwINd3hmZWVfYWRkcmVzcwAZZmVlQ29sbGVjdG9yQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUUa0ZlZUNvbGxlY3RvckFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQAE2ZlZUNvbGxlY3RvckFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUZZmVlQ29sbGVjdG9yQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAh1pbnZhbGlkIGZlZSBjb2xsZWN0b3IgYWRkcmVzcwARa1VzZXJQb29sc0FkZHJlc3MCEXVzZXJwb29sc19hZGRyZXNzABZ1c2VyUG9vbHNBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFDmZhY3RvcnlBZGRyZXNzBRFrVXNlclBvb2xzQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAAQdXNlclBvb2xzQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRZ1c2VyUG9vbHNBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECH2ludmFsaWQgdXNlcl9wb29scyBkYXBwIGFkZHJlc3MAEmtBc3NldFN0b3JlQWRkcmVzcwISYXNzZXRzdG9yZV9hZGRyZXNzABdhc3NldFN0b3JlQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUSa0Fzc2V0U3RvcmVBZGRyZXNzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzBQR1bml0ABFhc3NldFN0b3JlQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRdhc3NldFN0b3JlQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAiBpbnZhbGlkIGFzc2V0X3N0b3JlIGRhcHAgYWRkcmVzcwAIc2h1dGRvd24JAQt2YWx1ZU9yRWxzZQIJAJsIAgUOZmFjdG9yeUFkZHJlc3MFCWtTaHV0ZG93bgcADmxhc3RFbXB0eUluZGV4CQELdmFsdWVPckVsc2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzBRNrTGFzdEVtcHR5UG9vbEluZGV4AAAAD2ZpcnN0RW1wdHlJbmRleAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwUUa0ZpcnN0RW1wdHlQb29sSW5kZXgAAAANbGlzdGluZ1ZvbHVtZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwUOa0xpc3RpbmdWb2x1bWUAAAALY3JlYXRpb25GZWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOZmFjdG9yeUFkZHJlc3MFDGtDcmVhdGlvbkZlZQAAABBwb29sQ29udHJhY3RIYXNoCQCcCAIFDmZhY3RvcnlBZGRyZXNzBRFrUG9vbENvbnRyYWN0SGFzaAEMcGFyc2VBc3NldElkAQVpbnB1dAMJAAACBQVpbnB1dAULd2F2ZXNTdHJpbmcFBHVuaXQJANkEAQUFaW5wdXQBD2Fzc2V0SWRUb1N0cmluZwEFaW5wdXQDCQAAAgUFaW5wdXQFBHVuaXQFC3dhdmVzU3RyaW5nCQDYBAEJAQV2YWx1ZQEFBWlucHV0AQttdXN0QWRkcmVzcwIGY2FsbGVyB2FkZHJlc3MDCQAAAgUGY2FsbGVyBQdhZGRyZXNzBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQBCG11c3RUaGlzAQZjYWxsZXIJAQttdXN0QWRkcmVzcwIFBmNhbGxlcgUEdGhpcwELbXVzdEZhY3RvcnkBBmNhbGxlcgkBC211c3RBZGRyZXNzAgUGY2FsbGVyBQ5mYWN0b3J5QWRkcmVzcwETY2hlY2tDb250cmFjdFNjcmlwdAEHYWRkcmVzcwQHJG1hdGNoMAUQcG9vbENvbnRyYWN0SGFzaAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBARoYXNoBQckbWF0Y2gwCQAAAgkA8QcBBQdhZGRyZXNzBQRoYXNoBgEMaXNQb29sRXhpc3RzAQtwb29sQWRkcmVzcwkBCWlzRGVmaW5lZAEJAJoIAgUOZmFjdG9yeUFkZHJlc3MJARVrUG9vbEluZGV4RnJvbUFkZHJlc3MBBQtwb29sQWRkcmVzcwEJZ2V0UG9vbElkAQtwb29sQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQULcG9vbEFkZHJlc3MCE3Bvb2wgZG9lc24ndCBleGlzdHMBE2lzUG9vbFRhcmdldFJlYWNoZWQBC3Bvb2xBZGRyZXNzCQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwkBC2tQb29sU3RhdHVzAQkBCWdldFBvb2xJZAEFC3Bvb2xBZGRyZXNzAP///////////wEFFVNUQVRVU19UQVJHRVRfUkVBQ0hFRAEKZ2V0QmFsYW5jZQIHYWRkcmVzcwdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCQDwBwIFB2FkZHJlc3MFAmlkCAkA7wcBBQdhZGRyZXNzCWF2YWlsYWJsZQcBaQEEaW5pdAERZmFjdG9yeUFkZHJlc3NTdHIEC2NoZWNrQ2FsbGVyCQEIbXVzdFRoaXMBCAUBaQZjYWxsZXIDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tGYWN0b3J5QWRkcmVzcwURZmFjdG9yeUFkZHJlc3NTdHIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxhZGRFbXB0eVBvb2wCD2NhbGxlclB1YmxpY0tleQRhcmdzBA5uZXdQb29sQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkEDG5ld1Bvb2xJbmRleAkAZAIFDmxhc3RFbXB0eUluZGV4AAEEBmNoZWNrcwkAzAgCAwkBASEBBQhzaHV0ZG93bgYJAQh0aHJvd0VycgECFm5vdCBhbGxvd2VkIChzaHV0ZG93bikJAMwIAgMJARNjaGVja0NvbnRyYWN0U2NyaXB0AQUObmV3UG9vbEFkZHJlc3MGCQEIdGhyb3dFcnIBAhpwb29sIHNjcmlwdCBpcyBub3QgYWxsb3dlZAkAzAgCAwkBASEBCQEMaXNQb29sRXhpc3RzAQUObmV3UG9vbEFkZHJlc3MGCQEIdGhyb3dFcnIBAiJwb29sIGFkZHJlc3MgaXMgYWxyZWFkeSByZWdpc3RlcmVkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCBRNrTGFzdEVtcHR5UG9vbEluZGV4CQDMCAIFDG5ld1Bvb2xJbmRleAUDbmlsBQNuaWwJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwILc3RyaW5nRW50cnkJAMwIAgkBFWtQb29sQWRkcmVzc0Zyb21JbmRleAEFDG5ld1Bvb2xJbmRleAkAzAgCCQClCAEFDm5ld1Bvb2xBZGRyZXNzBQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEFDm5ld1Bvb2xBZGRyZXNzCQDMCAIFDG5ld1Bvb2xJbmRleAUDbmlsBQNuaWwJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIJAQtrUG9vbFN0YXR1cwEFDG5ld1Bvb2xJbmRleAkAzAgCBQxTVEFUVVNfRU1QVFkFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQ5mYWN0b3J5QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjcmVhdGVQb29sAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQKbWluUGF5bWVudAkAZAIFDWxpc3RpbmdWb2x1bWUFC2NyZWF0aW9uRmVlBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhJUZW1wb3Jhcnkgc2h1dGRvd24JAMwIAgkBC211c3RGYWN0b3J5AQgFAWkGY2FsbGVyCQDMCAIDCQBmAgkAZQIFDmxhc3RFbXB0eUluZGV4BQ9maXJzdEVtcHR5SW5kZXgAAAYJAQh0aHJvd0VycgECF05vIGVtcHR5IHBvb2wgYXZhaWxhYmxlCQDMCAIDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0BgkBCHRocm93RXJyAQIaUGF5bWVudCBzaG91bGQgYmUgaW4gV0FWRVMJAMwIAgMJAGcCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUKbWluUGF5bWVudAYJAQh0aHJvd0VycgEJAKwCAgkArAICAiNQYXltZW50IHNob3VsZCBiZSBncmVhdGVyIG9yIGVxdWFsIAkApAMBBQptaW5QYXltZW50AgggV0FWRUxFVAkAzAgCAwkBCWlzRGVmaW5lZAEJAJEDAgUEYXJncwAABgkBCHRocm93RXJyAQIaVG9rZW4gbmFtZSBpcyBub3QgcHJvdmlkZWQJAMwIAgMJAQlpc0RlZmluZWQBCQCRAwIFBGFyZ3MAAQYJAQh0aHJvd0VycgECIVRva2VuIGRlc2NyaXB0aW9uIGlzIG5vdCBwcm92aWRlZAkAzAgCAwkBCWlzRGVmaW5lZAEJAJEDAgUEYXJncwACBgkBCHRocm93RXJyAQIeVG9rZW4gcXVhbnRpdHkgaXMgbm90IHByb3ZpZGVkCQDMCAIDCQECIT0CCQC2CQEJAJEDAgUEYXJncwACBQR1bml0BgkBCHRocm93RXJyAQIhVG9rZW4gcXVhbnRpdHkgc2hvdWxkIGJlIGEgbnVtYmVyBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECXBvb2xJbmRleAkAZAIFD2ZpcnN0RW1wdHlJbmRleAABBBFwb29sQWRkcmVzc1N0cmluZwkBEUBleHRyTmF0aXZlKDEwNTMpAgUOZmFjdG9yeUFkZHJlc3MJARVrUG9vbEFkZHJlc3NGcm9tSW5kZXgBBQlwb29sSW5kZXgEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRFwb29sQWRkcmVzc1N0cmluZwQNY2FsbGVyQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkECnBvb2xEb21haW4JAK8CAgURcG9vbEFkZHJlc3NTdHJpbmcACAQJcG9vbE93bmVyCQClCAEFDWNhbGxlckFkZHJlc3MECXRva2VuTmFtZQkAkQMCBQRhcmdzAAAECXRva2VuRGVzYwkAkQMCBQRhcmdzAAEEDXRva2VuUXVhbnRpdHkJAJEDAgUEYXJncwACBA5pbml0UG9vbEludm9rZQkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIOaW5pdFBvb2xJbnZva2UJAMwIAgURcG9vbEFkZHJlc3NTdHJpbmcJAMwIAgkAzAgCBQpwb29sRG9tYWluCQDMCAIFCXBvb2xPd25lcgkAzAgCBQl0b2tlbk5hbWUJAMwIAgUJdG9rZW5EZXNjCQDMCAIFDXRva2VuUXVhbnRpdHkFA25pbAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQNuaWwDCQAAAgUOaW5pdFBvb2xJbnZva2UFDmluaXRQb29sSW52b2tlBA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgUUa0ZpcnN0RW1wdHlQb29sSW5kZXgJAMwIAgUJcG9vbEluZGV4BQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQUJcG9vbEluZGV4CQDMCAIFDFNUQVRVU19SRUFEWQUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEm5vdGlmeVN0YXR1c1VwZGF0ZQIPY2FsbGVyUHVibGljS2V5BGFyZ3MEC3Bvb2xBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQGY2hlY2tzCQDMCAIDCQEMaXNQb29sRXhpc3RzAQULcG9vbEFkZHJlc3MGCQEIdGhyb3dFcnIBAg5wb29sIG5vdCBmb3VuZAkAzAgCCQELbXVzdEZhY3RvcnkBCAUBaQZjYWxsZXIFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJcG9vbEluZGV4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQ5mYWN0b3J5QWRkcmVzcwkBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEFC3Bvb2xBZGRyZXNzBAluZXdTdGF0dXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRhcmdzAAAEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCCQELa1Bvb2xTdGF0dXMBBQlwb29sSW5kZXgJAMwIAgUJbmV3U3RhdHVzBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMc3dhcFJFQURPTkxZAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEYXJncwAABBNhbW91bnRBc3NldElkU3RyaW5nCQCRAwIFBGFyZ3MAAQQScHJpY2VBc3NldElkU3RyaW5nCQCRAwIFBGFyZ3MAAgQGYW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEYXJncwADBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhJUZW1wb3Jhcnkgc2h1dGRvd24JAMwIAgkBC211c3RGYWN0b3J5AQgFAWkGY2FsbGVyBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MDCQETaXNQb29sVGFyZ2V0UmVhY2hlZAEFC3Bvb2xBZGRyZXNzBAx3eFN3YXBSZXN1bHQKAAFACQD8BwQFDXd4U3dhcEFkZHJlc3MCFXN3YXBDYWxjdWxhdGVSRUFET05MWQkAzAgCBQZhbW91bnQJAMwIAgUTYW1vdW50QXNzZXRJZFN0cmluZwkAzAgCBRJwcmljZUFzc2V0SWRTdHJpbmcFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAkAlAoCBQNuaWwJAJQKAgUMd3hTd2FwUmVzdWx0AgZXeFN3YXAEDnBvb2xTd2FwUmVzdWx0CgABQAkA/AcEBQtwb29sQWRkcmVzcwIMc3dhcFJlYWRPbmx5CQDMCAIFE2Ftb3VudEFzc2V0SWRTdHJpbmcJAMwIAgUScHJpY2VBc3NldElkU3RyaW5nCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQCUCgIFA25pbAkAlAoCBQ5wb29sU3dhcFJlc3VsdAIJaU1lbWVQb29sCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBHN3YXACD2NhbGxlclB1YmxpY0tleQRhcmdzBA1jYWxsZXJBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEYXJncwAABBJwcmljZUFzc2V0SWRTdHJpbmcJAJEDAgUEYXJncwABBAxwcmljZUFzc2V0SWQJAQxwYXJzZUFzc2V0SWQBBRJwcmljZUFzc2V0SWRTdHJpbmcEDW1pbmltdW1BbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRhcmdzAAIEDWFzc2V0SW5BbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BA5hc3NldEluQXNzZXRJZAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhJUZW1wb3Jhcnkgc2h1dGRvd24JAMwIAgkBC211c3RGYWN0b3J5AQgFAWkGY2FsbGVyCQDMCAIDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABBgkBCHRocm93RXJyAQIfZXhhY3RseSBvbmUgcGF5bWVudCBpcyBleHBlY3RlZAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBBVvdXRBc3NldEJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAgUEdGhpcwUMcHJpY2VBc3NldElkAwkAAAIFFW91dEFzc2V0QmFsYW5jZUJlZm9yZQUVb3V0QXNzZXRCYWxhbmNlQmVmb3JlBApzd2FwQWN0aW9uAwkBE2lzUG9vbFRhcmdldFJlYWNoZWQBBQtwb29sQWRkcmVzcwkA/AcEBQ13eFN3YXBBZGRyZXNzAgRzd2FwCQDMCAIFDW1pbmltdW1BbW91bnQJAMwIAgUScHJpY2VBc3NldElkU3RyaW5nCQDMCAIJAKUIAQUEdGhpcwUDbmlsCAUBaQhwYXltZW50cwkA/AcEBQtwb29sQWRkcmVzcwIEc3dhcAkAzAgCBRJwcmljZUFzc2V0SWRTdHJpbmcJAMwIAgUNbWluaW11bUFtb3VudAUDbmlsCAUBaQhwYXltZW50cwMJAAACBQpzd2FwQWN0aW9uBQpzd2FwQWN0aW9uBBRvdXRBc3NldEJhbGFuY2VBZnRlcgkBCmdldEJhbGFuY2UCBQR0aGlzBQxwcmljZUFzc2V0SWQDCQAAAgUUb3V0QXNzZXRCYWxhbmNlQWZ0ZXIFFG91dEFzc2V0QmFsYW5jZUFmdGVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDWNhbGxlckFkZHJlc3MJAGUCBRRvdXRBc3NldEJhbGFuY2VBZnRlcgUVb3V0QXNzZXRCYWxhbmNlQmVmb3JlBQxwcmljZUFzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQx0cmFuc2ZlclBvb2wCD2NhbGxlclB1YmxpY0tleQRhcmdzBA1jYWxsZXJBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEYXJncwAABBRwb29sVG9rZW5zU3RyaW5nTGlzdAkAtQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQtwb29sQWRkcmVzcwUPa1Bvb2xUb2tlbnNMaXN0AgEsBAZhc3NldDEJAQxwYXJzZUFzc2V0SWQBCQCRAwIFFHBvb2xUb2tlbnNTdHJpbmdMaXN0AAAEBmFzc2V0MgkBDHBhcnNlQXNzZXRJZAEJAJEDAgUUcG9vbFRva2Vuc1N0cmluZ0xpc3QAAQQNJHQwMTEwODgxMTE4MAMJAAACBQZhc3NldDEFBHVuaXQJAJQKAgUGYXNzZXQyBQZhc3NldDEJAJQKAgUGYXNzZXQxBQZhc3NldDIECXBvb2xBc3NldAgFDSR0MDExMDg4MTExODACXzEECndhdmVzQXNzZXQIBQ0kdDAxMTA4ODExMTgwAl8yBBZwb29sQXNzZXRCYWxhbmNlQmVmb3JlCQEKZ2V0QmFsYW5jZQIFDmZhY3RvcnlBZGRyZXNzBQlwb29sQXNzZXQDCQAAAgUWcG9vbEFzc2V0QmFsYW5jZUJlZm9yZQUWcG9vbEFzc2V0QmFsYW5jZUJlZm9yZQQXd2F2ZXNBc3NldEJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAgUOZmFjdG9yeUFkZHJlc3MFCndhdmVzQXNzZXQDCQAAAgUXd2F2ZXNBc3NldEJhbGFuY2VCZWZvcmUFF3dhdmVzQXNzZXRCYWxhbmNlQmVmb3JlBA53aXRoZHJhd0ludm9rZQkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIZd2l0aGRyYXdMaXF1aWRpdHlGcm9tUG9vbAkAzAgCCAULcG9vbEFkZHJlc3MFYnl0ZXMFA25pbAUDbmlsAwkAAAIFDndpdGhkcmF3SW52b2tlBQ53aXRoZHJhd0ludm9rZQQVcG9vbEFzc2V0QmFsYW5jZUFmdGVyCQEKZ2V0QmFsYW5jZQIFDmZhY3RvcnlBZGRyZXNzBQlwb29sQXNzZXQDCQAAAgUVcG9vbEFzc2V0QmFsYW5jZUFmdGVyBRVwb29sQXNzZXRCYWxhbmNlQWZ0ZXIEFndhdmVzQXNzZXRCYWxhbmNlQWZ0ZXIJAQpnZXRCYWxhbmNlAgUOZmFjdG9yeUFkZHJlc3MFCndhdmVzQXNzZXQDCQAAAgUWd2F2ZXNBc3NldEJhbGFuY2VBZnRlcgUWd2F2ZXNBc3NldEJhbGFuY2VBZnRlcgQPcG9vbEFzc2V0QW1vdW50CQBlAgUVcG9vbEFzc2V0QmFsYW5jZUFmdGVyBRZwb29sQXNzZXRCYWxhbmNlQmVmb3JlBAt3YXZlc0Ftb3VudAkAZQIFFndhdmVzQXNzZXRCYWxhbmNlQWZ0ZXIFF3dhdmVzQXNzZXRCYWxhbmNlQmVmb3JlAwMJAGYCBQ9wb29sQXNzZXRBbW91bnQAAAkAZgIFC3dhdmVzQW1vdW50AAAHBApidXJuQW1vdW50CQBrAwUPcG9vbEFzc2V0QW1vdW50ABQAZAQKYnVybkFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIEYnVybgkAzAgCBQlwb29sQXNzZXQJAMwIAgUKYnVybkFtb3VudAUDbmlsBQNuaWwDCQAAAgUKYnVybkFjdGlvbgUKYnVybkFjdGlvbgQOZmVlV2F2ZXNBbW91bnQJAGsDBQt3YXZlc0Ftb3VudAAUAGQECWZlZUFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwINdHJhbnNmZXJXYXZlcwkAzAgCCAUTZmVlQ29sbGVjdG9yQWRkcmVzcwVieXRlcwkAzAgCBQ5mZWVXYXZlc0Ftb3VudAUDbmlsBQNuaWwDCQAAAgUJZmVlQWN0aW9uBQlmZWVBY3Rpb24EE3JlZ2lzdGVyQXNzZXRBY3Rpb24JAPwHBAUOZmFjdG9yeUFkZHJlc3MCDXJlZ2lzdGVyQXNzZXQJAMwIAggFEWFzc2V0U3RvcmVBZGRyZXNzBWJ5dGVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQlwb29sQXNzZXQJAMwIAgULZGVmYXVsdExvZ28JAMwIAgYFA25pbAUDbmlsAwkAAAIFE3JlZ2lzdGVyQXNzZXRBY3Rpb24FE3JlZ2lzdGVyQXNzZXRBY3Rpb24EEmNyZWF0ZVd4UG9vbEFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMY3JlYXRlV3hQb29sCQDMCAIIBRB1c2VyUG9vbHNBZGRyZXNzBWJ5dGVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQlwb29sQXNzZXQJAMwIAgkAZQIFD3Bvb2xBc3NldEFtb3VudAUKYnVybkFtb3VudAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUKd2F2ZXNBc3NldAkAzAgCCQBlAgULd2F2ZXNBbW91bnQFDmZlZVdhdmVzQW1vdW50BQNuaWwFA25pbAMJAAACBRJjcmVhdGVXeFBvb2xBY3Rpb24FEmNyZWF0ZVd4UG9vbEFjdGlvbgQMY2hhbmdlU3RhdHVzCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQkBCWdldFBvb2xJZAEFC3Bvb2xBZGRyZXNzCQDMCAIFElNUQVRVU19UUkFOU0ZFUlJFRAUDbmlsBQNuaWwDCQAAAgUMY2hhbmdlU3RhdHVzBQxjaGFuZ2VTdGF0dXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkBCHRocm93RXJyAQIld2l0aGRyYXduIGFtb3VudCBmcm9tIHBvb2wgaXMgdG9vIGxvdwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEE2tleUFkbWluQWRkcmVzc0xpc3QCFCVzX19hZG1pbkFkZHJlc3NMaXN0BA5rZXlBbGxvd2VkVHhJZAIIJXNfX3R4SWQECWFkbWluTGlzdAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFDmZhY3RvcnlBZGRyZXNzBRNrZXlBZG1pbkFkZHJlc3NMaXN0AgACAl9fBAdieU93bmVyAwkAZwIJAJADAQUJYWRtaW5MaXN0AAMHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAhieUFkbWlucwkAAAIIBQJ0eAJpZAkA2QQBCQELdmFsdWVPckVsc2UCCQCdCAIFDmZhY3RvcnlBZGRyZXNzBQ5rZXlBbGxvd2VkVHhJZAIAAwUIYnlBZG1pbnMGBQdieU93bmVypmoN+g==", "height": 3421446, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8iJxrm1J7TrHqGtMqTx6KVxQei3cz27NSjEGmNQ7dk86 Next: Fu53ceFQTcghzj7mn1L1bYMtpi5GSRrBBRLsCFYzQptE Diff:
OldNewDifferences
2626
2727 let m = 3
2828
29-let n = "shutdown__flag"
29+let n = "<svg width='30' height='30' xmlns='http://www.w3.org/2000/svg'><g><circle cx='15' cy='15' fill='#ccc' r='15'/><text stroke='#0' x='6' y='20'>iM</text></g></svg>"
3030
31-let o = "price__asset"
31+let o = "shutdown__flag"
3232
33-let p = "listing__volume"
33+let p = "price__asset"
3434
35-let q = "setup__creationFee"
35+let q = "listing__volume"
3636
37-let r = "setup__curveTarget"
37+let r = "setup__creationFee"
3838
39-let s = "setup__virtualLiquidity"
39+let s = "setup__curveTarget"
4040
41-let t = "static_tokenIds"
41+let t = "setup__virtualLiquidity"
4242
43-let u = "pool__contract__hash"
43+let u = "static_tokenIds"
4444
45-let v = "last__empty_pool__index"
45+let v = "pool__contract__hash"
4646
47-let w = "first__empty__pool__index"
47+let w = "last__empty_pool__index"
4848
49-func x (y) = makeString(["pool", toString(y)], a)
49+let x = "first__empty__pool__index"
50+
51+func y (z) = makeString(["pool", toString(z)], a)
5052
5153
52-func z (i) = makeString(["pool", toString(i)], a)
54+func A (i) = makeString(["pool", toString(i)], a)
5355
5456
55-func A (i) = makeString(["asset", toString(i)], a)
57+func B (i) = makeString(["asset", toString(i)], a)
5658
5759
58-func B (y) = makeString(["pool", "status", toString(y)], a)
60+func C (z) = makeString(["pool", "status", toString(z)], a)
5961
6062
61-let C = "factory__address"
63+let D = "factory__address"
6264
63-let D = {
64- let E = getString(this, C)
65- if ($isInstanceOf(E, "String"))
65+let E = {
66+ let F = getString(this, D)
67+ if ($isInstanceOf(F, "String"))
6668 then {
67- let f = E
69+ let f = F
6870 addressFromString(f)
6971 }
70- else if ($isInstanceOf(E, "Unit"))
72+ else if ($isInstanceOf(F, "Unit"))
7173 then unit
7274 else throw("Match error")
7375 }
7476
75-let F = valueOrErrorMessage(D, e("invalid factory address"))
77+let G = valueOrErrorMessage(E, e("invalid factory address"))
7678
77-let G = "wxswap__address"
79+let H = "wxswap__address"
7880
79-let H = {
80- let E = getString(F, G)
81- if ($isInstanceOf(E, "String"))
81+let I = {
82+ let F = getString(G, H)
83+ if ($isInstanceOf(F, "String"))
8284 then {
83- let f = E
85+ let f = F
8486 addressFromString(f)
8587 }
8688 else unit
8789 }
8890
89-let I = valueOrErrorMessage(H, e("invalid wx swap address"))
91+let J = valueOrErrorMessage(I, e("invalid wx swap address"))
9092
91-let J = "wxfee_address"
93+let K = "wxfee_address"
9294
93-let K = {
94- let E = getString(F, J)
95- if ($isInstanceOf(E, "String"))
95+let L = {
96+ let F = getString(G, K)
97+ if ($isInstanceOf(F, "String"))
9698 then {
97- let f = E
99+ let f = F
98100 addressFromString(f)
99101 }
100102 else unit
101103 }
102104
103-let L = valueOrErrorMessage(K, e("invalid fee collector address"))
105+let M = valueOrErrorMessage(L, e("invalid fee collector address"))
104106
105-let M = "userpools_address"
107+let N = "userpools_address"
106108
107-let N = {
108- let E = getString(F, M)
109- if ($isInstanceOf(E, "String"))
109+let O = {
110+ let F = getString(G, N)
111+ if ($isInstanceOf(F, "String"))
110112 then {
111- let f = E
113+ let f = F
112114 addressFromString(f)
113115 }
114116 else unit
115117 }
116118
117-let O = valueOrErrorMessage(N, e("invalid user_pools dapp address"))
119+let P = valueOrErrorMessage(O, e("invalid user_pools dapp address"))
118120
119-let P = valueOrElse(getBoolean(F, n), false)
121+let Q = "assetstore_address"
120122
121-let Q = valueOrElse(getInteger(F, v), 0)
123+let R = {
124+ let F = getString(G, Q)
125+ if ($isInstanceOf(F, "String"))
126+ then {
127+ let f = F
128+ addressFromString(f)
129+ }
130+ else unit
131+ }
122132
123-let R = valueOrElse(getInteger(F, w), 0)
133+let S = valueOrErrorMessage(R, e("invalid asset_store dapp address"))
124134
125-let S = valueOrElse(getInteger(F, p), 0)
135+let T = valueOrElse(getBoolean(G, o), false)
126136
127-let T = valueOrElse(getInteger(F, q), 0)
137+let U = valueOrElse(getInteger(G, w), 0)
128138
129-let U = getBinary(F, u)
139+let V = valueOrElse(getInteger(G, x), 0)
130140
131-func V (W) = if ((W == b))
141+let W = valueOrElse(getInteger(G, q), 0)
142+
143+let X = valueOrElse(getInteger(G, r), 0)
144+
145+let Y = getBinary(G, v)
146+
147+func Z (aa) = if ((aa == b))
132148 then unit
133- else fromBase58String(W)
149+ else fromBase58String(aa)
134150
135151
136-func X (W) = if ((W == unit))
152+func ab (aa) = if ((aa == unit))
137153 then b
138- else toBase58String(value(W))
154+ else toBase58String(value(aa))
139155
140156
141-func Y (Z,i) = if ((Z == i))
157+func ac (ad,i) = if ((ad == i))
142158 then true
143159 else g("permission denied")
144160
145161
146-func aa (Z) = Y(Z, this)
162+func ae (ad) = ac(ad, this)
147163
148164
149-func ab (Z) = Y(Z, F)
165+func af (ad) = ac(ad, G)
150166
151167
152-func ac (i) = {
153- let E = U
154- if ($isInstanceOf(E, "ByteVector"))
168+func ag (i) = {
169+ let F = Y
170+ if ($isInstanceOf(F, "ByteVector"))
155171 then {
156- let ad = E
157- (scriptHash(i) == ad)
172+ let ah = F
173+ (scriptHash(i) == ah)
158174 }
159175 else true
160176 }
161177
162178
163-func ae (af) = isDefined(getInteger(F, z(af)))
179+func ai (aj) = isDefined(getInteger(G, A(aj)))
164180
165181
166-func ag (af) = valueOrErrorMessage(getInteger(F, z(af)), "pool doesn't exists")
182+func ak (aj) = valueOrErrorMessage(getInteger(G, A(aj)), "pool doesn't exists")
167183
168184
169-func ah (af) = (valueOrElse(getInteger(F, B(ag(af))), -1) == l)
185+func al (aj) = (valueOrElse(getInteger(G, C(ak(aj))), -1) == l)
170186
171187
172-func ai (i,aj) = {
173- let E = aj
174- if ($isInstanceOf(E, "ByteVector"))
188+func am (i,an) = {
189+ let F = an
190+ if ($isInstanceOf(F, "ByteVector"))
175191 then {
176- let ak = E
177- assetBalance(i, ak)
192+ let ao = F
193+ assetBalance(i, ao)
178194 }
179195 else wavesBalance(i).available
180196 }
181197
182198
183-@Callable(al)
184-func init (am) = {
185- let an = aa(al.caller)
186- if ((an == an))
187- then [StringEntry(C, am)]
199+@Callable(ap)
200+func init (aq) = {
201+ let ar = ae(ap.caller)
202+ if ((ar == ar))
203+ then [StringEntry(D, aq)]
188204 else throw("Strict value is not equal to itself.")
189205 }
190206
191207
192208
193-@Callable(al)
194-func addEmptyPool (ao,ap) = {
195- let aq = addressFromPublicKey(ao)
196- let ar = (Q + 1)
197- let as = [if (!(P))
209+@Callable(ap)
210+func addEmptyPool (as,at) = {
211+ let au = addressFromPublicKey(as)
212+ let av = (U + 1)
213+ let aw = [if (!(T))
198214 then true
199- else g("not allowed (shutdown)"), if (ac(aq))
215+ else g("not allowed (shutdown)"), if (ag(au))
200216 then true
201- else g("pool script is not allowed"), if (!(ae(aq)))
217+ else g("pool script is not allowed"), if (!(ai(au)))
202218 then true
203219 else g("pool address is already registered")]
204- if ((as == as))
220+ if ((aw == aw))
205221 then {
206- let at = [invoke(F, "integerEntry", [v, ar], nil), invoke(F, "stringEntry", [x(ar), toString(aq)], nil), invoke(F, "integerEntry", [z(aq), ar], nil), invoke(F, "integerEntry", [B(ar), j], nil)]
207- $Tuple2(nil, at)
222+ let ax = [invoke(G, "integerEntry", [w, av], nil), invoke(G, "stringEntry", [y(av), toString(au)], nil), invoke(G, "integerEntry", [A(au), av], nil), invoke(G, "integerEntry", [C(av), j], nil)]
223+ $Tuple2(nil, ax)
208224 }
209225 else throw("Strict value is not equal to itself.")
210226 }
211227
212228
213229
214-@Callable(al)
215-func createPool (ao,ap) = {
216- let au = (S + T)
217- let as = [if (!(P))
230+@Callable(ap)
231+func createPool (as,at) = {
232+ let ay = (W + X)
233+ let aw = [if (!(T))
218234 then true
219- else g("Temporary shutdown"), ab(al.caller), if (((Q - R) > 0))
235+ else g("Temporary shutdown"), af(ap.caller), if (((U - V) > 0))
220236 then true
221- else g("No empty pool available"), if ((al.payments[0].assetId == unit))
237+ else g("No empty pool available"), if ((ap.payments[0].assetId == unit))
222238 then true
223- else g("Payment should be in WAVES"), if ((al.payments[0].amount >= au))
239+ else g("Payment should be in WAVES"), if ((ap.payments[0].amount >= ay))
224240 then true
225- else g((("Payment should be greater or equal " + toString(au)) + " WAVELET")), if (isDefined(ap[0]))
241+ else g((("Payment should be greater or equal " + toString(ay)) + " WAVELET")), if (isDefined(at[0]))
226242 then true
227- else g("Token name is not provided"), if (isDefined(ap[1]))
243+ else g("Token name is not provided"), if (isDefined(at[1]))
228244 then true
229- else g("Token description is not provided"), if (isDefined(ap[2]))
245+ else g("Token description is not provided"), if (isDefined(at[2]))
230246 then true
231- else g("Token quantity is not provided"), if ((parseInt(ap[2]) != unit))
247+ else g("Token quantity is not provided"), if ((parseInt(at[2]) != unit))
232248 then true
233249 else g("Token quantity should be a number")]
234- if ((as == as))
250+ if ((aw == aw))
235251 then {
236- let av = (R + 1)
237- let aw = getStringValue(F, x(av))
238- let af = addressFromStringValue(aw)
239- let ax = addressFromPublicKey(ao)
240- let ay = take(aw, 8)
241- let az = toString(ax)
242- let aA = ap[0]
243- let aB = ap[1]
244- let aC = ap[2]
245- let aD = invoke(F, "initPoolInvoke", [aw, [ay, az, aA, aB, aC]], [AttachedPayment(al.payments[0].assetId, al.payments[0].amount)])
246- if ((aD == aD))
252+ let az = (V + 1)
253+ let aA = getStringValue(G, y(az))
254+ let aj = addressFromStringValue(aA)
255+ let aB = addressFromPublicKey(as)
256+ let aC = take(aA, 8)
257+ let aD = toString(aB)
258+ let aE = at[0]
259+ let aF = at[1]
260+ let aG = at[2]
261+ let aH = invoke(G, "initPoolInvoke", [aA, [aC, aD, aE, aF, aG]], [AttachedPayment(ap.payments[0].assetId, ap.payments[0].amount)])
262+ if ((aH == aH))
247263 then {
248- let at = [invoke(F, "integerEntry", [w, av], nil), invoke(F, "integerEntry", [B(av), k], nil)]
249- $Tuple2(nil, at)
264+ let ax = [invoke(G, "integerEntry", [x, az], nil), invoke(G, "integerEntry", [C(az), k], nil)]
265+ $Tuple2(nil, ax)
250266 }
251267 else throw("Strict value is not equal to itself.")
252268 }
255271
256272
257273
258-@Callable(al)
259-func notifyStatusUpdate (ao,ap) = {
260- let af = addressFromPublicKey(ao)
261- let as = [if (ae(af))
274+@Callable(ap)
275+func notifyStatusUpdate (as,at) = {
276+ let aj = addressFromPublicKey(as)
277+ let aw = [if (ai(aj))
262278 then true
263- else g("pool not found"), ab(al.caller)]
264- if ((as == as))
279+ else g("pool not found"), af(ap.caller)]
280+ if ((aw == aw))
265281 then {
266- let av = getIntegerValue(F, z(af))
267- let aE = parseIntValue(ap[0])
268- let at = [invoke(F, "integerEntry", [B(av), aE], nil)]
269- $Tuple2(nil, at)
282+ let az = getIntegerValue(G, A(aj))
283+ let aI = parseIntValue(at[0])
284+ let ax = [invoke(G, "integerEntry", [C(az), aI], nil)]
285+ $Tuple2(nil, ax)
270286 }
271287 else throw("Strict value is not equal to itself.")
272288 }
273289
274290
275291
276-@Callable(al)
277-func swapREADONLY (ao,ap) = {
278- let af = addressFromStringValue(ap[0])
279- let aF = ap[1]
280- let aG = ap[2]
281- let aH = parseIntValue(ap[3])
282- let as = [if (!(P))
292+@Callable(ap)
293+func swapREADONLY (as,at) = {
294+ let aj = addressFromStringValue(at[0])
295+ let aJ = at[1]
296+ let aK = at[2]
297+ let aL = parseIntValue(at[3])
298+ let aw = [if (!(T))
283299 then true
284- else g("Temporary shutdown"), ab(al.caller)]
285- if ((as == as))
286- then if (ah(af))
300+ else g("Temporary shutdown"), af(ap.caller)]
301+ if ((aw == aw))
302+ then if (al(aj))
287303 then {
288- let aI = {
289- let aJ = invoke(I, "swapCalculateREADONLY", [aH, aF, aG], nil)
290- if ($isInstanceOf(aJ, "Int"))
291- then aJ
292- else throw(($getType(aJ) + " couldn't be cast to Int"))
304+ let aM = {
305+ let aN = invoke(J, "swapCalculateREADONLY", [aL, aJ, aK], nil)
306+ if ($isInstanceOf(aN, "Int"))
307+ then aN
308+ else throw(($getType(aN) + " couldn't be cast to Int"))
293309 }
294- $Tuple2(nil, $Tuple2(aI, "WxSwap"))
310+ $Tuple2(nil, $Tuple2(aM, "WxSwap"))
295311 }
296312 else {
297- let aK = {
298- let aJ = invoke(af, "swapReadOnly", [aF, aG, aH], nil)
299- if ($isInstanceOf(aJ, "Int"))
300- then aJ
301- else throw(($getType(aJ) + " couldn't be cast to Int"))
313+ let aO = {
314+ let aN = invoke(aj, "swapReadOnly", [aJ, aK, aL], nil)
315+ if ($isInstanceOf(aN, "Int"))
316+ then aN
317+ else throw(($getType(aN) + " couldn't be cast to Int"))
302318 }
303- $Tuple2(nil, $Tuple2(aK, "iMemePool"))
319+ $Tuple2(nil, $Tuple2(aO, "iMemePool"))
304320 }
305321 else throw("Strict value is not equal to itself.")
306322 }
307323
308324
309325
310-@Callable(al)
311-func swap (ao,ap) = {
312- let ax = addressFromPublicKey(ao)
313- let af = addressFromStringValue(ap[0])
314- let aG = ap[1]
315- let aL = V(aG)
316- let aM = parseIntValue(ap[2])
317- let aN = al.payments[0].amount
318- let aO = al.payments[0].assetId
319- let as = [if (!(P))
326+@Callable(ap)
327+func swap (as,at) = {
328+ let aB = addressFromPublicKey(as)
329+ let aj = addressFromStringValue(at[0])
330+ let aK = at[1]
331+ let aP = Z(aK)
332+ let aQ = parseIntValue(at[2])
333+ let aR = ap.payments[0].amount
334+ let aS = ap.payments[0].assetId
335+ let aw = [if (!(T))
320336 then true
321- else g("Temporary shutdown"), ab(al.caller), if ((size(al.payments) == 1))
337+ else g("Temporary shutdown"), af(ap.caller), if ((size(ap.payments) == 1))
322338 then true
323339 else g("exactly one payment is expected")]
324- if ((as == as))
340+ if ((aw == aw))
325341 then {
326- let aP = ai(this, aL)
327- if ((aP == aP))
342+ let aT = am(this, aP)
343+ if ((aT == aT))
328344 then {
329- let aQ = if (ah(af))
330- then invoke(I, "swap", [aM, aG, toString(this)], al.payments)
331- else invoke(af, "swap", [aG, aM], al.payments)
332- if ((aQ == aQ))
345+ let aU = if (al(aj))
346+ then invoke(J, "swap", [aQ, aK, toString(this)], ap.payments)
347+ else invoke(aj, "swap", [aK, aQ], ap.payments)
348+ if ((aU == aU))
333349 then {
334- let aR = ai(this, aL)
335- if ((aR == aR))
336- then [ScriptTransfer(ax, (aR - aP), aL)]
350+ let aV = am(this, aP)
351+ if ((aV == aV))
352+ then [ScriptTransfer(aB, (aV - aT), aP)]
337353 else throw("Strict value is not equal to itself.")
338354 }
339355 else throw("Strict value is not equal to itself.")
345361
346362
347363
348-@Callable(al)
349-func transferPool (ao,ap) = {
350- let ax = addressFromPublicKey(ao)
351- let af = addressFromStringValue(ap[0])
352- let aS = split(getStringValue(af, t), ",")
353- let aT = V(aS[0])
354- let aU = V(aS[1])
355- let aV = if ((aT == unit))
356- then $Tuple2(aU, aT)
357- else $Tuple2(aT, aU)
358- let aW = aV._1
359- let aX = aV._2
360- let aY = ai(F, aW)
361- if ((aY == aY))
364+@Callable(ap)
365+func transferPool (as,at) = {
366+ let aB = addressFromPublicKey(as)
367+ let aj = addressFromStringValue(at[0])
368+ let aW = split(getStringValue(aj, u), ",")
369+ let aX = Z(aW[0])
370+ let aY = Z(aW[1])
371+ let aZ = if ((aX == unit))
372+ then $Tuple2(aY, aX)
373+ else $Tuple2(aX, aY)
374+ let ba = aZ._1
375+ let bb = aZ._2
376+ let bc = am(G, ba)
377+ if ((bc == bc))
362378 then {
363- let aZ = ai(F, aX)
364- if ((aZ == aZ))
379+ let bd = am(G, bb)
380+ if ((bd == bd))
365381 then {
366- let ba = invoke(F, "withdrawLiquidityFromPool", [af.bytes], nil)
367- if ((ba == ba))
382+ let be = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
383+ if ((be == be))
368384 then {
369- let bb = ai(F, aW)
370- if ((bb == bb))
385+ let bf = am(G, ba)
386+ if ((bf == bf))
371387 then {
372- let bc = ai(F, aX)
373- if ((bc == bc))
388+ let bg = am(G, bb)
389+ if ((bg == bg))
374390 then {
375- let bd = (bb - aY)
376- let be = (bc - aZ)
377- if (if ((bd > 0))
378- then (be > 0)
391+ let bh = (bf - bc)
392+ let bi = (bg - bd)
393+ if (if ((bh > 0))
394+ then (bi > 0)
379395 else false)
380396 then {
381- let bf = fraction(bd, 20, 100)
382- let bg = invoke(F, "burn", [aW, bf], nil)
383- if ((bg == bg))
397+ let bj = fraction(bh, 20, 100)
398+ let bk = invoke(G, "burn", [ba, bj], nil)
399+ if ((bk == bk))
384400 then {
385- let bh = fraction(be, 20, 100)
386- let bi = invoke(F, "transferWaves", [L.bytes, bh], nil)
387- if ((bi == bi))
401+ let bl = fraction(bi, 20, 100)
402+ let bm = invoke(G, "transferWaves", [M.bytes, bl], nil)
403+ if ((bm == bm))
388404 then {
389- let bj = invoke(F, "createWxPool", [O.bytes, X(aW), (bd - bf), X(aX), (be - bh)], nil)
390- if ((bj == bj))
391- then nil
405+ let bn = invoke(G, "registerAsset", [S.bytes, ab(ba), n, true], nil)
406+ if ((bn == bn))
407+ then {
408+ let bo = invoke(G, "createWxPool", [P.bytes, ab(ba), (bh - bj), ab(bb), (bi - bl)], nil)
409+ if ((bo == bo))
410+ then {
411+ let bp = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
412+ if ((bp == bp))
413+ then nil
414+ else throw("Strict value is not equal to itself.")
415+ }
416+ else throw("Strict value is not equal to itself.")
417+ }
392418 else throw("Strict value is not equal to itself.")
393419 }
394420 else throw("Strict value is not equal to itself.")
409435 }
410436
411437
412-@Verifier(bk)
413-func bl () = {
414- let bm = "%s__adminAddressList"
415- let bn = "%s__txId"
416- let bo = split(valueOrElse(getString(F, bm), ""), "__")
417- let bp = if ((size(bo) >= 3))
438+@Verifier(bq)
439+func br () = {
440+ let bs = "%s__adminAddressList"
441+ let bt = "%s__txId"
442+ let bu = split(valueOrElse(getString(G, bs), ""), "__")
443+ let bv = if ((size(bu) >= 3))
418444 then false
419- else sigVerify(bk.bodyBytes, bk.proofs[0], bk.senderPublicKey)
420- let bq = (bk.id == fromBase58String(valueOrElse(getString(F, bn), "")))
421- if (bq)
445+ else sigVerify(bq.bodyBytes, bq.proofs[0], bq.senderPublicKey)
446+ let bw = (bq.id == fromBase58String(valueOrElse(getString(G, bt), "")))
447+ if (bw)
422448 then true
423- else bp
449+ else bv
424450 }
425451
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
29-let n = "shutdown__flag"
29+let n = "<svg width='30' height='30' xmlns='http://www.w3.org/2000/svg'><g><circle cx='15' cy='15' fill='#ccc' r='15'/><text stroke='#0' x='6' y='20'>iM</text></g></svg>"
3030
31-let o = "price__asset"
31+let o = "shutdown__flag"
3232
33-let p = "listing__volume"
33+let p = "price__asset"
3434
35-let q = "setup__creationFee"
35+let q = "listing__volume"
3636
37-let r = "setup__curveTarget"
37+let r = "setup__creationFee"
3838
39-let s = "setup__virtualLiquidity"
39+let s = "setup__curveTarget"
4040
41-let t = "static_tokenIds"
41+let t = "setup__virtualLiquidity"
4242
43-let u = "pool__contract__hash"
43+let u = "static_tokenIds"
4444
45-let v = "last__empty_pool__index"
45+let v = "pool__contract__hash"
4646
47-let w = "first__empty__pool__index"
47+let w = "last__empty_pool__index"
4848
49-func x (y) = makeString(["pool", toString(y)], a)
49+let x = "first__empty__pool__index"
50+
51+func y (z) = makeString(["pool", toString(z)], a)
5052
5153
52-func z (i) = makeString(["pool", toString(i)], a)
54+func A (i) = makeString(["pool", toString(i)], a)
5355
5456
55-func A (i) = makeString(["asset", toString(i)], a)
57+func B (i) = makeString(["asset", toString(i)], a)
5658
5759
58-func B (y) = makeString(["pool", "status", toString(y)], a)
60+func C (z) = makeString(["pool", "status", toString(z)], a)
5961
6062
61-let C = "factory__address"
63+let D = "factory__address"
6264
63-let D = {
64- let E = getString(this, C)
65- if ($isInstanceOf(E, "String"))
65+let E = {
66+ let F = getString(this, D)
67+ if ($isInstanceOf(F, "String"))
6668 then {
67- let f = E
69+ let f = F
6870 addressFromString(f)
6971 }
70- else if ($isInstanceOf(E, "Unit"))
72+ else if ($isInstanceOf(F, "Unit"))
7173 then unit
7274 else throw("Match error")
7375 }
7476
75-let F = valueOrErrorMessage(D, e("invalid factory address"))
77+let G = valueOrErrorMessage(E, e("invalid factory address"))
7678
77-let G = "wxswap__address"
79+let H = "wxswap__address"
7880
79-let H = {
80- let E = getString(F, G)
81- if ($isInstanceOf(E, "String"))
81+let I = {
82+ let F = getString(G, H)
83+ if ($isInstanceOf(F, "String"))
8284 then {
83- let f = E
85+ let f = F
8486 addressFromString(f)
8587 }
8688 else unit
8789 }
8890
89-let I = valueOrErrorMessage(H, e("invalid wx swap address"))
91+let J = valueOrErrorMessage(I, e("invalid wx swap address"))
9092
91-let J = "wxfee_address"
93+let K = "wxfee_address"
9294
93-let K = {
94- let E = getString(F, J)
95- if ($isInstanceOf(E, "String"))
95+let L = {
96+ let F = getString(G, K)
97+ if ($isInstanceOf(F, "String"))
9698 then {
97- let f = E
99+ let f = F
98100 addressFromString(f)
99101 }
100102 else unit
101103 }
102104
103-let L = valueOrErrorMessage(K, e("invalid fee collector address"))
105+let M = valueOrErrorMessage(L, e("invalid fee collector address"))
104106
105-let M = "userpools_address"
107+let N = "userpools_address"
106108
107-let N = {
108- let E = getString(F, M)
109- if ($isInstanceOf(E, "String"))
109+let O = {
110+ let F = getString(G, N)
111+ if ($isInstanceOf(F, "String"))
110112 then {
111- let f = E
113+ let f = F
112114 addressFromString(f)
113115 }
114116 else unit
115117 }
116118
117-let O = valueOrErrorMessage(N, e("invalid user_pools dapp address"))
119+let P = valueOrErrorMessage(O, e("invalid user_pools dapp address"))
118120
119-let P = valueOrElse(getBoolean(F, n), false)
121+let Q = "assetstore_address"
120122
121-let Q = valueOrElse(getInteger(F, v), 0)
123+let R = {
124+ let F = getString(G, Q)
125+ if ($isInstanceOf(F, "String"))
126+ then {
127+ let f = F
128+ addressFromString(f)
129+ }
130+ else unit
131+ }
122132
123-let R = valueOrElse(getInteger(F, w), 0)
133+let S = valueOrErrorMessage(R, e("invalid asset_store dapp address"))
124134
125-let S = valueOrElse(getInteger(F, p), 0)
135+let T = valueOrElse(getBoolean(G, o), false)
126136
127-let T = valueOrElse(getInteger(F, q), 0)
137+let U = valueOrElse(getInteger(G, w), 0)
128138
129-let U = getBinary(F, u)
139+let V = valueOrElse(getInteger(G, x), 0)
130140
131-func V (W) = if ((W == b))
141+let W = valueOrElse(getInteger(G, q), 0)
142+
143+let X = valueOrElse(getInteger(G, r), 0)
144+
145+let Y = getBinary(G, v)
146+
147+func Z (aa) = if ((aa == b))
132148 then unit
133- else fromBase58String(W)
149+ else fromBase58String(aa)
134150
135151
136-func X (W) = if ((W == unit))
152+func ab (aa) = if ((aa == unit))
137153 then b
138- else toBase58String(value(W))
154+ else toBase58String(value(aa))
139155
140156
141-func Y (Z,i) = if ((Z == i))
157+func ac (ad,i) = if ((ad == i))
142158 then true
143159 else g("permission denied")
144160
145161
146-func aa (Z) = Y(Z, this)
162+func ae (ad) = ac(ad, this)
147163
148164
149-func ab (Z) = Y(Z, F)
165+func af (ad) = ac(ad, G)
150166
151167
152-func ac (i) = {
153- let E = U
154- if ($isInstanceOf(E, "ByteVector"))
168+func ag (i) = {
169+ let F = Y
170+ if ($isInstanceOf(F, "ByteVector"))
155171 then {
156- let ad = E
157- (scriptHash(i) == ad)
172+ let ah = F
173+ (scriptHash(i) == ah)
158174 }
159175 else true
160176 }
161177
162178
163-func ae (af) = isDefined(getInteger(F, z(af)))
179+func ai (aj) = isDefined(getInteger(G, A(aj)))
164180
165181
166-func ag (af) = valueOrErrorMessage(getInteger(F, z(af)), "pool doesn't exists")
182+func ak (aj) = valueOrErrorMessage(getInteger(G, A(aj)), "pool doesn't exists")
167183
168184
169-func ah (af) = (valueOrElse(getInteger(F, B(ag(af))), -1) == l)
185+func al (aj) = (valueOrElse(getInteger(G, C(ak(aj))), -1) == l)
170186
171187
172-func ai (i,aj) = {
173- let E = aj
174- if ($isInstanceOf(E, "ByteVector"))
188+func am (i,an) = {
189+ let F = an
190+ if ($isInstanceOf(F, "ByteVector"))
175191 then {
176- let ak = E
177- assetBalance(i, ak)
192+ let ao = F
193+ assetBalance(i, ao)
178194 }
179195 else wavesBalance(i).available
180196 }
181197
182198
183-@Callable(al)
184-func init (am) = {
185- let an = aa(al.caller)
186- if ((an == an))
187- then [StringEntry(C, am)]
199+@Callable(ap)
200+func init (aq) = {
201+ let ar = ae(ap.caller)
202+ if ((ar == ar))
203+ then [StringEntry(D, aq)]
188204 else throw("Strict value is not equal to itself.")
189205 }
190206
191207
192208
193-@Callable(al)
194-func addEmptyPool (ao,ap) = {
195- let aq = addressFromPublicKey(ao)
196- let ar = (Q + 1)
197- let as = [if (!(P))
209+@Callable(ap)
210+func addEmptyPool (as,at) = {
211+ let au = addressFromPublicKey(as)
212+ let av = (U + 1)
213+ let aw = [if (!(T))
198214 then true
199- else g("not allowed (shutdown)"), if (ac(aq))
215+ else g("not allowed (shutdown)"), if (ag(au))
200216 then true
201- else g("pool script is not allowed"), if (!(ae(aq)))
217+ else g("pool script is not allowed"), if (!(ai(au)))
202218 then true
203219 else g("pool address is already registered")]
204- if ((as == as))
220+ if ((aw == aw))
205221 then {
206- let at = [invoke(F, "integerEntry", [v, ar], nil), invoke(F, "stringEntry", [x(ar), toString(aq)], nil), invoke(F, "integerEntry", [z(aq), ar], nil), invoke(F, "integerEntry", [B(ar), j], nil)]
207- $Tuple2(nil, at)
222+ let ax = [invoke(G, "integerEntry", [w, av], nil), invoke(G, "stringEntry", [y(av), toString(au)], nil), invoke(G, "integerEntry", [A(au), av], nil), invoke(G, "integerEntry", [C(av), j], nil)]
223+ $Tuple2(nil, ax)
208224 }
209225 else throw("Strict value is not equal to itself.")
210226 }
211227
212228
213229
214-@Callable(al)
215-func createPool (ao,ap) = {
216- let au = (S + T)
217- let as = [if (!(P))
230+@Callable(ap)
231+func createPool (as,at) = {
232+ let ay = (W + X)
233+ let aw = [if (!(T))
218234 then true
219- else g("Temporary shutdown"), ab(al.caller), if (((Q - R) > 0))
235+ else g("Temporary shutdown"), af(ap.caller), if (((U - V) > 0))
220236 then true
221- else g("No empty pool available"), if ((al.payments[0].assetId == unit))
237+ else g("No empty pool available"), if ((ap.payments[0].assetId == unit))
222238 then true
223- else g("Payment should be in WAVES"), if ((al.payments[0].amount >= au))
239+ else g("Payment should be in WAVES"), if ((ap.payments[0].amount >= ay))
224240 then true
225- else g((("Payment should be greater or equal " + toString(au)) + " WAVELET")), if (isDefined(ap[0]))
241+ else g((("Payment should be greater or equal " + toString(ay)) + " WAVELET")), if (isDefined(at[0]))
226242 then true
227- else g("Token name is not provided"), if (isDefined(ap[1]))
243+ else g("Token name is not provided"), if (isDefined(at[1]))
228244 then true
229- else g("Token description is not provided"), if (isDefined(ap[2]))
245+ else g("Token description is not provided"), if (isDefined(at[2]))
230246 then true
231- else g("Token quantity is not provided"), if ((parseInt(ap[2]) != unit))
247+ else g("Token quantity is not provided"), if ((parseInt(at[2]) != unit))
232248 then true
233249 else g("Token quantity should be a number")]
234- if ((as == as))
250+ if ((aw == aw))
235251 then {
236- let av = (R + 1)
237- let aw = getStringValue(F, x(av))
238- let af = addressFromStringValue(aw)
239- let ax = addressFromPublicKey(ao)
240- let ay = take(aw, 8)
241- let az = toString(ax)
242- let aA = ap[0]
243- let aB = ap[1]
244- let aC = ap[2]
245- let aD = invoke(F, "initPoolInvoke", [aw, [ay, az, aA, aB, aC]], [AttachedPayment(al.payments[0].assetId, al.payments[0].amount)])
246- if ((aD == aD))
252+ let az = (V + 1)
253+ let aA = getStringValue(G, y(az))
254+ let aj = addressFromStringValue(aA)
255+ let aB = addressFromPublicKey(as)
256+ let aC = take(aA, 8)
257+ let aD = toString(aB)
258+ let aE = at[0]
259+ let aF = at[1]
260+ let aG = at[2]
261+ let aH = invoke(G, "initPoolInvoke", [aA, [aC, aD, aE, aF, aG]], [AttachedPayment(ap.payments[0].assetId, ap.payments[0].amount)])
262+ if ((aH == aH))
247263 then {
248- let at = [invoke(F, "integerEntry", [w, av], nil), invoke(F, "integerEntry", [B(av), k], nil)]
249- $Tuple2(nil, at)
264+ let ax = [invoke(G, "integerEntry", [x, az], nil), invoke(G, "integerEntry", [C(az), k], nil)]
265+ $Tuple2(nil, ax)
250266 }
251267 else throw("Strict value is not equal to itself.")
252268 }
253269 else throw("Strict value is not equal to itself.")
254270 }
255271
256272
257273
258-@Callable(al)
259-func notifyStatusUpdate (ao,ap) = {
260- let af = addressFromPublicKey(ao)
261- let as = [if (ae(af))
274+@Callable(ap)
275+func notifyStatusUpdate (as,at) = {
276+ let aj = addressFromPublicKey(as)
277+ let aw = [if (ai(aj))
262278 then true
263- else g("pool not found"), ab(al.caller)]
264- if ((as == as))
279+ else g("pool not found"), af(ap.caller)]
280+ if ((aw == aw))
265281 then {
266- let av = getIntegerValue(F, z(af))
267- let aE = parseIntValue(ap[0])
268- let at = [invoke(F, "integerEntry", [B(av), aE], nil)]
269- $Tuple2(nil, at)
282+ let az = getIntegerValue(G, A(aj))
283+ let aI = parseIntValue(at[0])
284+ let ax = [invoke(G, "integerEntry", [C(az), aI], nil)]
285+ $Tuple2(nil, ax)
270286 }
271287 else throw("Strict value is not equal to itself.")
272288 }
273289
274290
275291
276-@Callable(al)
277-func swapREADONLY (ao,ap) = {
278- let af = addressFromStringValue(ap[0])
279- let aF = ap[1]
280- let aG = ap[2]
281- let aH = parseIntValue(ap[3])
282- let as = [if (!(P))
292+@Callable(ap)
293+func swapREADONLY (as,at) = {
294+ let aj = addressFromStringValue(at[0])
295+ let aJ = at[1]
296+ let aK = at[2]
297+ let aL = parseIntValue(at[3])
298+ let aw = [if (!(T))
283299 then true
284- else g("Temporary shutdown"), ab(al.caller)]
285- if ((as == as))
286- then if (ah(af))
300+ else g("Temporary shutdown"), af(ap.caller)]
301+ if ((aw == aw))
302+ then if (al(aj))
287303 then {
288- let aI = {
289- let aJ = invoke(I, "swapCalculateREADONLY", [aH, aF, aG], nil)
290- if ($isInstanceOf(aJ, "Int"))
291- then aJ
292- else throw(($getType(aJ) + " couldn't be cast to Int"))
304+ let aM = {
305+ let aN = invoke(J, "swapCalculateREADONLY", [aL, aJ, aK], nil)
306+ if ($isInstanceOf(aN, "Int"))
307+ then aN
308+ else throw(($getType(aN) + " couldn't be cast to Int"))
293309 }
294- $Tuple2(nil, $Tuple2(aI, "WxSwap"))
310+ $Tuple2(nil, $Tuple2(aM, "WxSwap"))
295311 }
296312 else {
297- let aK = {
298- let aJ = invoke(af, "swapReadOnly", [aF, aG, aH], nil)
299- if ($isInstanceOf(aJ, "Int"))
300- then aJ
301- else throw(($getType(aJ) + " couldn't be cast to Int"))
313+ let aO = {
314+ let aN = invoke(aj, "swapReadOnly", [aJ, aK, aL], nil)
315+ if ($isInstanceOf(aN, "Int"))
316+ then aN
317+ else throw(($getType(aN) + " couldn't be cast to Int"))
302318 }
303- $Tuple2(nil, $Tuple2(aK, "iMemePool"))
319+ $Tuple2(nil, $Tuple2(aO, "iMemePool"))
304320 }
305321 else throw("Strict value is not equal to itself.")
306322 }
307323
308324
309325
310-@Callable(al)
311-func swap (ao,ap) = {
312- let ax = addressFromPublicKey(ao)
313- let af = addressFromStringValue(ap[0])
314- let aG = ap[1]
315- let aL = V(aG)
316- let aM = parseIntValue(ap[2])
317- let aN = al.payments[0].amount
318- let aO = al.payments[0].assetId
319- let as = [if (!(P))
326+@Callable(ap)
327+func swap (as,at) = {
328+ let aB = addressFromPublicKey(as)
329+ let aj = addressFromStringValue(at[0])
330+ let aK = at[1]
331+ let aP = Z(aK)
332+ let aQ = parseIntValue(at[2])
333+ let aR = ap.payments[0].amount
334+ let aS = ap.payments[0].assetId
335+ let aw = [if (!(T))
320336 then true
321- else g("Temporary shutdown"), ab(al.caller), if ((size(al.payments) == 1))
337+ else g("Temporary shutdown"), af(ap.caller), if ((size(ap.payments) == 1))
322338 then true
323339 else g("exactly one payment is expected")]
324- if ((as == as))
340+ if ((aw == aw))
325341 then {
326- let aP = ai(this, aL)
327- if ((aP == aP))
342+ let aT = am(this, aP)
343+ if ((aT == aT))
328344 then {
329- let aQ = if (ah(af))
330- then invoke(I, "swap", [aM, aG, toString(this)], al.payments)
331- else invoke(af, "swap", [aG, aM], al.payments)
332- if ((aQ == aQ))
345+ let aU = if (al(aj))
346+ then invoke(J, "swap", [aQ, aK, toString(this)], ap.payments)
347+ else invoke(aj, "swap", [aK, aQ], ap.payments)
348+ if ((aU == aU))
333349 then {
334- let aR = ai(this, aL)
335- if ((aR == aR))
336- then [ScriptTransfer(ax, (aR - aP), aL)]
350+ let aV = am(this, aP)
351+ if ((aV == aV))
352+ then [ScriptTransfer(aB, (aV - aT), aP)]
337353 else throw("Strict value is not equal to itself.")
338354 }
339355 else throw("Strict value is not equal to itself.")
340356 }
341357 else throw("Strict value is not equal to itself.")
342358 }
343359 else throw("Strict value is not equal to itself.")
344360 }
345361
346362
347363
348-@Callable(al)
349-func transferPool (ao,ap) = {
350- let ax = addressFromPublicKey(ao)
351- let af = addressFromStringValue(ap[0])
352- let aS = split(getStringValue(af, t), ",")
353- let aT = V(aS[0])
354- let aU = V(aS[1])
355- let aV = if ((aT == unit))
356- then $Tuple2(aU, aT)
357- else $Tuple2(aT, aU)
358- let aW = aV._1
359- let aX = aV._2
360- let aY = ai(F, aW)
361- if ((aY == aY))
364+@Callable(ap)
365+func transferPool (as,at) = {
366+ let aB = addressFromPublicKey(as)
367+ let aj = addressFromStringValue(at[0])
368+ let aW = split(getStringValue(aj, u), ",")
369+ let aX = Z(aW[0])
370+ let aY = Z(aW[1])
371+ let aZ = if ((aX == unit))
372+ then $Tuple2(aY, aX)
373+ else $Tuple2(aX, aY)
374+ let ba = aZ._1
375+ let bb = aZ._2
376+ let bc = am(G, ba)
377+ if ((bc == bc))
362378 then {
363- let aZ = ai(F, aX)
364- if ((aZ == aZ))
379+ let bd = am(G, bb)
380+ if ((bd == bd))
365381 then {
366- let ba = invoke(F, "withdrawLiquidityFromPool", [af.bytes], nil)
367- if ((ba == ba))
382+ let be = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
383+ if ((be == be))
368384 then {
369- let bb = ai(F, aW)
370- if ((bb == bb))
385+ let bf = am(G, ba)
386+ if ((bf == bf))
371387 then {
372- let bc = ai(F, aX)
373- if ((bc == bc))
388+ let bg = am(G, bb)
389+ if ((bg == bg))
374390 then {
375- let bd = (bb - aY)
376- let be = (bc - aZ)
377- if (if ((bd > 0))
378- then (be > 0)
391+ let bh = (bf - bc)
392+ let bi = (bg - bd)
393+ if (if ((bh > 0))
394+ then (bi > 0)
379395 else false)
380396 then {
381- let bf = fraction(bd, 20, 100)
382- let bg = invoke(F, "burn", [aW, bf], nil)
383- if ((bg == bg))
397+ let bj = fraction(bh, 20, 100)
398+ let bk = invoke(G, "burn", [ba, bj], nil)
399+ if ((bk == bk))
384400 then {
385- let bh = fraction(be, 20, 100)
386- let bi = invoke(F, "transferWaves", [L.bytes, bh], nil)
387- if ((bi == bi))
401+ let bl = fraction(bi, 20, 100)
402+ let bm = invoke(G, "transferWaves", [M.bytes, bl], nil)
403+ if ((bm == bm))
388404 then {
389- let bj = invoke(F, "createWxPool", [O.bytes, X(aW), (bd - bf), X(aX), (be - bh)], nil)
390- if ((bj == bj))
391- then nil
405+ let bn = invoke(G, "registerAsset", [S.bytes, ab(ba), n, true], nil)
406+ if ((bn == bn))
407+ then {
408+ let bo = invoke(G, "createWxPool", [P.bytes, ab(ba), (bh - bj), ab(bb), (bi - bl)], nil)
409+ if ((bo == bo))
410+ then {
411+ let bp = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
412+ if ((bp == bp))
413+ then nil
414+ else throw("Strict value is not equal to itself.")
415+ }
416+ else throw("Strict value is not equal to itself.")
417+ }
392418 else throw("Strict value is not equal to itself.")
393419 }
394420 else throw("Strict value is not equal to itself.")
395421 }
396422 else throw("Strict value is not equal to itself.")
397423 }
398424 else g("withdrawn amount from pool is too low")
399425 }
400426 else throw("Strict value is not equal to itself.")
401427 }
402428 else throw("Strict value is not equal to itself.")
403429 }
404430 else throw("Strict value is not equal to itself.")
405431 }
406432 else throw("Strict value is not equal to itself.")
407433 }
408434 else throw("Strict value is not equal to itself.")
409435 }
410436
411437
412-@Verifier(bk)
413-func bl () = {
414- let bm = "%s__adminAddressList"
415- let bn = "%s__txId"
416- let bo = split(valueOrElse(getString(F, bm), ""), "__")
417- let bp = if ((size(bo) >= 3))
438+@Verifier(bq)
439+func br () = {
440+ let bs = "%s__adminAddressList"
441+ let bt = "%s__txId"
442+ let bu = split(valueOrElse(getString(G, bs), ""), "__")
443+ let bv = if ((size(bu) >= 3))
418444 then false
419- else sigVerify(bk.bodyBytes, bk.proofs[0], bk.senderPublicKey)
420- let bq = (bk.id == fromBase58String(valueOrElse(getString(F, bn), "")))
421- if (bq)
445+ else sigVerify(bq.bodyBytes, bq.proofs[0], bq.senderPublicKey)
446+ let bw = (bq.id == fromBase58String(valueOrElse(getString(G, bt), "")))
447+ if (bw)
422448 then true
423- else bp
449+ else bv
424450 }
425451

github/deemru/w8io/169f3d6 
154.71 ms