tx · EeYZr3JEPQMVjbjCrts3MtHWWu44bxJ2MN6wstdLHtJN

3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr:  -0.01700000 Waves

2024.12.20 11:09 [3422594] smart account 3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr > SELF 0.00000000 Waves

{ "type": 13, "id": "EeYZr3JEPQMVjbjCrts3MtHWWu44bxJ2MN6wstdLHtJN", "fee": 1700000, "feeAssetId": null, "timestamp": 1734682217753, "version": 2, "chainId": 84, "sender": "3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr", "senderPublicKey": "jXCTQV8PjX2uC9UHBFveupYy9cjhY7stHbzE9cptymw", "proofs": [ "129jCVW6cTDqv7UoWyyA5c2ug15HG61Ud7tJwwUmdo6af7DgXsz4YBSxpvZ875aA3qNDx5mBKRtoSdwJWkqnoEum" ], "script": "base64:BwIrCAISAwoBCBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGDoACXNlcGFyYXRvcgICX18AC3dhdmVzU3RyaW5nAgVXQVZFUwAQY29udHJhY3RGaWxlbmFtZQIXbWVtZV9pbV9jYWxjdWxhdG9yLnJpZGUABW11bHQ4AIDC1y8BB3dyYXBFcnIBAXMJAKwCAgkArAICBRBjb250cmFjdEZpbGVuYW1lAgI6IAUBcwEIdGhyb3dFcnIBAXMJAAIBCQEHd3JhcEVycgEFAXMBD3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwkBCWlzRGVmaW5lZAEJAKYIAQUHYWRkcmVzcwAMU1RBVFVTX0VNUFRZAAAADFNUQVRVU19SRUFEWQABABVTVEFUVVNfVEFSR0VUX1JFQUNIRUQAAgASU1RBVFVTX1RSQU5TRkVSUkVEAAMAC2RlZmF1bHRMb2dvAqYBPHN2ZyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGc+PGNpcmNsZSBjeD0nMTUnIGN5PScxNScgZmlsbD0nI2NjYycgcj0nMTUnLz48dGV4dCB4PScxJyB5PScxOCcgZm9udC1zaXplPScxMCc+aU1lbWU8L3RleHQ+PC9nPjwvc3ZnPgAJa1NodXRkb3duAg5zaHV0ZG93bl9fZmxhZwALa1ByaWNlQXNzZXQCDHByaWNlX19hc3NldAAOa0xpc3RpbmdWb2x1bWUCD2xpc3RpbmdfX3ZvbHVtZQAMa0NyZWF0aW9uRmVlAhJzZXR1cF9fY3JlYXRpb25GZWUADGtDdXJ2ZVRhcmdldAISc2V0dXBfX2N1cnZlVGFyZ2V0ABFrVmlydHVhbExpcXVpZGl0eQIXc2V0dXBfX3ZpcnR1YWxMaXF1aWRpdHkAD2tQb29sVG9rZW5zTGlzdAIPc3RhdGljX3Rva2VuSWRzABFrUG9vbENvbnRyYWN0SGFzaAIUcG9vbF9fY29udHJhY3RfX2hhc2gAE2tMYXN0RW1wdHlQb29sSW5kZXgCF2xhc3RfX2VtcHR5X3Bvb2xfX2luZGV4ABRrRmlyc3RFbXB0eVBvb2xJbmRleAIZZmlyc3RfX2VtcHR5X19wb29sX19pbmRleAEVa1Bvb2xBZGRyZXNzRnJvbUluZGV4AQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgkApAMBBQVpbmRleAUDbmlsBQlzZXBhcmF0b3IBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEHYWRkcmVzcwkAuQkCCQDMCAICBHBvb2wJAMwIAgkApQgBBQdhZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEKa1Bvb2xBc3NldAEHYWRkcmVzcwkAuQkCCQDMCAICBWFzc2V0CQDMCAIJAKUIAQUHYWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBC2tQb29sU3RhdHVzAQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgIGc3RhdHVzCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yAA9rRmFjdG9yeUFkZHJlc3MCEGZhY3RvcnlfX2FkZHJlc3MAFGZhY3RvcnlBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFBHRoaXMFD2tGYWN0b3J5QWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IADmZhY3RvcnlBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIFFGZhY3RvcnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgZmFjdG9yeSBhZGRyZXNzAA5rV3hTd2FwQWRkcmVzcwIPd3hzd2FwX19hZGRyZXNzABN3eFN3YXBBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFDmZhY3RvcnlBZGRyZXNzBQ5rV3hTd2FwQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAANd3hTd2FwQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRN3eFN3YXBBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgd3ggc3dhcCBhZGRyZXNzABRrRmVlQ29sbGVjdG9yQWRkcmVzcwINd3hmZWVfYWRkcmVzcwAZZmVlQ29sbGVjdG9yQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUUa0ZlZUNvbGxlY3RvckFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQAE2ZlZUNvbGxlY3RvckFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUZZmVlQ29sbGVjdG9yQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAh1pbnZhbGlkIGZlZSBjb2xsZWN0b3IgYWRkcmVzcwARa1VzZXJQb29sc0FkZHJlc3MCEXVzZXJwb29sc19hZGRyZXNzABZ1c2VyUG9vbHNBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFDmZhY3RvcnlBZGRyZXNzBRFrVXNlclBvb2xzQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAAQdXNlclBvb2xzQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRZ1c2VyUG9vbHNBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECH2ludmFsaWQgdXNlcl9wb29scyBkYXBwIGFkZHJlc3MAEmtBc3NldFN0b3JlQWRkcmVzcwISYXNzZXRzdG9yZV9hZGRyZXNzABdhc3NldFN0b3JlQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUSa0Fzc2V0U3RvcmVBZGRyZXNzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzBQR1bml0ABFhc3NldFN0b3JlQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRdhc3NldFN0b3JlQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAiBpbnZhbGlkIGFzc2V0X3N0b3JlIGRhcHAgYWRkcmVzcwAIc2h1dGRvd24JAQt2YWx1ZU9yRWxzZQIJAJsIAgUOZmFjdG9yeUFkZHJlc3MFCWtTaHV0ZG93bgcADmxhc3RFbXB0eUluZGV4CQELdmFsdWVPckVsc2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzBRNrTGFzdEVtcHR5UG9vbEluZGV4AAAAD2ZpcnN0RW1wdHlJbmRleAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwUUa0ZpcnN0RW1wdHlQb29sSW5kZXgAAAANbGlzdGluZ1ZvbHVtZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwUOa0xpc3RpbmdWb2x1bWUAAAALY3JlYXRpb25GZWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOZmFjdG9yeUFkZHJlc3MFDGtDcmVhdGlvbkZlZQAAABBwb29sQ29udHJhY3RIYXNoCQCcCAIFDmZhY3RvcnlBZGRyZXNzBRFrUG9vbENvbnRyYWN0SGFzaAEMcGFyc2VBc3NldElkAQVpbnB1dAMJAAACBQVpbnB1dAULd2F2ZXNTdHJpbmcFBHVuaXQJANkEAQUFaW5wdXQBD2Fzc2V0SWRUb1N0cmluZwEFaW5wdXQDCQAAAgUFaW5wdXQFBHVuaXQFC3dhdmVzU3RyaW5nCQDYBAEJAQV2YWx1ZQEFBWlucHV0AQttdXN0QWRkcmVzcwIGY2FsbGVyB2FkZHJlc3MDCQAAAgUGY2FsbGVyBQdhZGRyZXNzBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQBCG11c3RUaGlzAQZjYWxsZXIJAQttdXN0QWRkcmVzcwIFBmNhbGxlcgUEdGhpcwELbXVzdEZhY3RvcnkBBmNhbGxlcgkBC211c3RBZGRyZXNzAgUGY2FsbGVyBQ5mYWN0b3J5QWRkcmVzcwETY2hlY2tDb250cmFjdFNjcmlwdAEHYWRkcmVzcwQHJG1hdGNoMAUQcG9vbENvbnRyYWN0SGFzaAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBARoYXNoBQckbWF0Y2gwCQAAAgkA8QcBBQdhZGRyZXNzBQRoYXNoBgEMaXNQb29sRXhpc3RzAQtwb29sQWRkcmVzcwkBCWlzRGVmaW5lZAEJAJoIAgUOZmFjdG9yeUFkZHJlc3MJARVrUG9vbEluZGV4RnJvbUFkZHJlc3MBBQtwb29sQWRkcmVzcwEJZ2V0UG9vbElkAQtwb29sQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQULcG9vbEFkZHJlc3MCE3Bvb2wgZG9lc24ndCBleGlzdHMBE2lzUG9vbFRhcmdldFJlYWNoZWQBC3Bvb2xBZGRyZXNzCQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwkBC2tQb29sU3RhdHVzAQkBCWdldFBvb2xJZAEFC3Bvb2xBZGRyZXNzAP///////////wEFFVNUQVRVU19UQVJHRVRfUkVBQ0hFRAEKZ2V0QmFsYW5jZQIHYWRkcmVzcwdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCQDwBwIFB2FkZHJlc3MFAmlkCAkA7wcBBQdhZGRyZXNzCWF2YWlsYWJsZQEOaXNXeFN3YXBBY3RpdmUCC2Ftb3VudEFzc2V0CnByaWNlQXNzZXQEEWFtb3VudEFzc2V0U3RyaW5nCQEPYXNzZXRJZFRvU3RyaW5nAQULYW1vdW50QXNzZXQEEHByaWNlQXNzZXRTdHJpbmcJAQ9hc3NldElkVG9TdHJpbmcBBQpwcmljZUFzc2V0BAlzdGF0dXNLZXkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGc3RhdHVzCQDMCAIFEWFtb3VudEFzc2V0U3RyaW5nCQDMCAIFEHByaWNlQXNzZXRTdHJpbmcFA25pbAUJc2VwYXJhdG9yBAZzdGF0dXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUQdXNlclBvb2xzQWRkcmVzcwUJc3RhdHVzS2V5AgAJAAACBQZzdGF0dXMCBmFjdGl2ZQcBaQEEaW5pdAERZmFjdG9yeUFkZHJlc3NTdHIEC2NoZWNrQ2FsbGVyCQEIbXVzdFRoaXMBCAUBaQZjYWxsZXIDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tGYWN0b3J5QWRkcmVzcwURZmFjdG9yeUFkZHJlc3NTdHIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxhZGRFbXB0eVBvb2wCD2NhbGxlclB1YmxpY0tleQRhcmdzBA5uZXdQb29sQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkEDG5ld1Bvb2xJbmRleAkAZAIFDmxhc3RFbXB0eUluZGV4AAEEBmNoZWNrcwkAzAgCAwkBASEBBQhzaHV0ZG93bgYJAQh0aHJvd0VycgECFm5vdCBhbGxvd2VkIChzaHV0ZG93bikJAMwIAgMJARNjaGVja0NvbnRyYWN0U2NyaXB0AQUObmV3UG9vbEFkZHJlc3MGCQEIdGhyb3dFcnIBAhpwb29sIHNjcmlwdCBpcyBub3QgYWxsb3dlZAkAzAgCAwkBASEBCQEMaXNQb29sRXhpc3RzAQUObmV3UG9vbEFkZHJlc3MGCQEIdGhyb3dFcnIBAiJwb29sIGFkZHJlc3MgaXMgYWxyZWFkeSByZWdpc3RlcmVkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCBRNrTGFzdEVtcHR5UG9vbEluZGV4CQDMCAIFDG5ld1Bvb2xJbmRleAUDbmlsBQNuaWwJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwILc3RyaW5nRW50cnkJAMwIAgkBFWtQb29sQWRkcmVzc0Zyb21JbmRleAEFDG5ld1Bvb2xJbmRleAkAzAgCCQClCAEFDm5ld1Bvb2xBZGRyZXNzBQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEFDm5ld1Bvb2xBZGRyZXNzCQDMCAIFDG5ld1Bvb2xJbmRleAUDbmlsBQNuaWwJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIJAQtrUG9vbFN0YXR1cwEFDG5ld1Bvb2xJbmRleAkAzAgCBQxTVEFUVVNfRU1QVFkFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQ5mYWN0b3J5QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjcmVhdGVQb29sAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQKbWluUGF5bWVudAkAZAIFDWxpc3RpbmdWb2x1bWUFC2NyZWF0aW9uRmVlBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhJUZW1wb3Jhcnkgc2h1dGRvd24JAMwIAgkBC211c3RGYWN0b3J5AQgFAWkGY2FsbGVyCQDMCAIDCQBmAgkAZQIFDmxhc3RFbXB0eUluZGV4BQ9maXJzdEVtcHR5SW5kZXgAAAYJAQh0aHJvd0VycgECF05vIGVtcHR5IHBvb2wgYXZhaWxhYmxlCQDMCAIDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0BgkBCHRocm93RXJyAQIaUGF5bWVudCBzaG91bGQgYmUgaW4gV0FWRVMJAMwIAgMJAGcCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUKbWluUGF5bWVudAYJAQh0aHJvd0VycgEJAKwCAgkArAICAiNQYXltZW50IHNob3VsZCBiZSBncmVhdGVyIG9yIGVxdWFsIAkApAMBBQptaW5QYXltZW50AgggV0FWRUxFVAkAzAgCAwkBCWlzRGVmaW5lZAEJAJEDAgUEYXJncwAABgkBCHRocm93RXJyAQIaVG9rZW4gbmFtZSBpcyBub3QgcHJvdmlkZWQJAMwIAgMJAQlpc0RlZmluZWQBCQCRAwIFBGFyZ3MAAQYJAQh0aHJvd0VycgECIVRva2VuIGRlc2NyaXB0aW9uIGlzIG5vdCBwcm92aWRlZAkAzAgCAwkBCWlzRGVmaW5lZAEJAJEDAgUEYXJncwACBgkBCHRocm93RXJyAQIeVG9rZW4gcXVhbnRpdHkgaXMgbm90IHByb3ZpZGVkCQDMCAIDCQECIT0CCQC2CQEJAJEDAgUEYXJncwACBQR1bml0BgkBCHRocm93RXJyAQIhVG9rZW4gcXVhbnRpdHkgc2hvdWxkIGJlIGEgbnVtYmVyBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECXBvb2xJbmRleAkAZAIFD2ZpcnN0RW1wdHlJbmRleAABBBFwb29sQWRkcmVzc1N0cmluZwkBEUBleHRyTmF0aXZlKDEwNTMpAgUOZmFjdG9yeUFkZHJlc3MJARVrUG9vbEFkZHJlc3NGcm9tSW5kZXgBBQlwb29sSW5kZXgEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRFwb29sQWRkcmVzc1N0cmluZwQNY2FsbGVyQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkECnBvb2xEb21haW4JAK8CAgURcG9vbEFkZHJlc3NTdHJpbmcACAQJcG9vbE93bmVyCQClCAEFDWNhbGxlckFkZHJlc3MECXRva2VuTmFtZQkAkQMCBQRhcmdzAAAECXRva2VuRGVzYwkAkQMCBQRhcmdzAAEEDXRva2VuUXVhbnRpdHkJAJEDAgUEYXJncwACBA5pbml0UG9vbEludm9rZQkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIOaW5pdFBvb2xJbnZva2UJAMwIAgURcG9vbEFkZHJlc3NTdHJpbmcJAMwIAgkAzAgCBQpwb29sRG9tYWluCQDMCAIFCXBvb2xPd25lcgkAzAgCBQl0b2tlbk5hbWUJAMwIAgUJdG9rZW5EZXNjCQDMCAIFDXRva2VuUXVhbnRpdHkFA25pbAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQNuaWwDCQAAAgUOaW5pdFBvb2xJbnZva2UFDmluaXRQb29sSW52b2tlBA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgUUa0ZpcnN0RW1wdHlQb29sSW5kZXgJAMwIAgUJcG9vbEluZGV4BQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQUJcG9vbEluZGV4CQDMCAIFDFNUQVRVU19SRUFEWQUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEm5vdGlmeVN0YXR1c1VwZGF0ZQIPY2FsbGVyUHVibGljS2V5BGFyZ3MEC3Bvb2xBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQGY2hlY2tzCQDMCAIDCQEMaXNQb29sRXhpc3RzAQULcG9vbEFkZHJlc3MGCQEIdGhyb3dFcnIBAg5wb29sIG5vdCBmb3VuZAkAzAgCCQELbXVzdEZhY3RvcnkBCAUBaQZjYWxsZXIFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJcG9vbEluZGV4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQ5mYWN0b3J5QWRkcmVzcwkBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEFC3Bvb2xBZGRyZXNzBAluZXdTdGF0dXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRhcmdzAAAEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCCQELa1Bvb2xTdGF0dXMBBQlwb29sSW5kZXgJAMwIAgUJbmV3U3RhdHVzBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMc3dhcFJFQURPTkxZAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEYXJncwAABBNhbW91bnRBc3NldElkU3RyaW5nCQCRAwIFBGFyZ3MAAQQScHJpY2VBc3NldElkU3RyaW5nCQCRAwIFBGFyZ3MAAgQGYW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEYXJncwADBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhJUZW1wb3Jhcnkgc2h1dGRvd24JAMwIAgkBC211c3RGYWN0b3J5AQgFAWkGY2FsbGVyBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MDCQETaXNQb29sVGFyZ2V0UmVhY2hlZAEFC3Bvb2xBZGRyZXNzBAx3eFN3YXBSZXN1bHQKAAFACQD8BwQFDXd4U3dhcEFkZHJlc3MCFXN3YXBDYWxjdWxhdGVSRUFET05MWQkAzAgCBQZhbW91bnQJAMwIAgUTYW1vdW50QXNzZXRJZFN0cmluZwkAzAgCBRJwcmljZUFzc2V0SWRTdHJpbmcFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAkAlAoCBQNuaWwJAJQKAgUMd3hTd2FwUmVzdWx0AgZXeFN3YXAEDnBvb2xTd2FwUmVzdWx0CgABQAkA/AcEBQtwb29sQWRkcmVzcwIMc3dhcFJlYWRPbmx5CQDMCAIFE2Ftb3VudEFzc2V0SWRTdHJpbmcJAMwIAgUScHJpY2VBc3NldElkU3RyaW5nCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQCUCgIFA25pbAkAlAoCBQ5wb29sU3dhcFJlc3VsdAIJaU1lbWVQb29sCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBHN3YXACD2NhbGxlclB1YmxpY0tleQRhcmdzBA1jYWxsZXJBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEYXJncwAABBJwcmljZUFzc2V0SWRTdHJpbmcJAJEDAgUEYXJncwABBAxwcmljZUFzc2V0SWQJAQxwYXJzZUFzc2V0SWQBBRJwcmljZUFzc2V0SWRTdHJpbmcEDW1pbmltdW1BbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRhcmdzAAIEDWFzc2V0SW5BbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BA5hc3NldEluQXNzZXRJZAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhJUZW1wb3Jhcnkgc2h1dGRvd24JAMwIAgkBC211c3RGYWN0b3J5AQgFAWkGY2FsbGVyCQDMCAIDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABBgkBCHRocm93RXJyAQIfZXhhY3RseSBvbmUgcGF5bWVudCBpcyBleHBlY3RlZAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBBVvdXRBc3NldEJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAgUEdGhpcwUMcHJpY2VBc3NldElkAwkAAAIFFW91dEFzc2V0QmFsYW5jZUJlZm9yZQUVb3V0QXNzZXRCYWxhbmNlQmVmb3JlBApzd2FwQWN0aW9uAwkBE2lzUG9vbFRhcmdldFJlYWNoZWQBBQtwb29sQWRkcmVzcwkA/AcEBQ13eFN3YXBBZGRyZXNzAgRzd2FwCQDMCAIFDW1pbmltdW1BbW91bnQJAMwIAgUScHJpY2VBc3NldElkU3RyaW5nCQDMCAIJAKUIAQUEdGhpcwUDbmlsCAUBaQhwYXltZW50cwkA/AcEBQtwb29sQWRkcmVzcwIEc3dhcAkAzAgCBRJwcmljZUFzc2V0SWRTdHJpbmcJAMwIAgUNbWluaW11bUFtb3VudAUDbmlsCAUBaQhwYXltZW50cwMJAAACBQpzd2FwQWN0aW9uBQpzd2FwQWN0aW9uBBRvdXRBc3NldEJhbGFuY2VBZnRlcgkBCmdldEJhbGFuY2UCBQR0aGlzBQxwcmljZUFzc2V0SWQDCQAAAgUUb3V0QXNzZXRCYWxhbmNlQWZ0ZXIFFG91dEFzc2V0QmFsYW5jZUFmdGVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDWNhbGxlckFkZHJlc3MJAGUCBRRvdXRBc3NldEJhbGFuY2VBZnRlcgUVb3V0QXNzZXRCYWxhbmNlQmVmb3JlBQxwcmljZUFzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQx0cmFuc2ZlclBvb2wCD2NhbGxlclB1YmxpY0tleQRhcmdzBA1jYWxsZXJBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEYXJncwAABBRwb29sVG9rZW5zU3RyaW5nTGlzdAkAtQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQtwb29sQWRkcmVzcwUPa1Bvb2xUb2tlbnNMaXN0AgEsBAZhc3NldDEJAQxwYXJzZUFzc2V0SWQBCQCRAwIFFHBvb2xUb2tlbnNTdHJpbmdMaXN0AAAEBmFzc2V0MgkBDHBhcnNlQXNzZXRJZAEJAJEDAgUUcG9vbFRva2Vuc1N0cmluZ0xpc3QAAQQNJHQwMTE0OTIxMTU4NAMJAAACBQZhc3NldDEFBHVuaXQJAJQKAgUGYXNzZXQyBQZhc3NldDEJAJQKAgUGYXNzZXQxBQZhc3NldDIECXBvb2xBc3NldAgFDSR0MDExNDkyMTE1ODQCXzEECndhdmVzQXNzZXQIBQ0kdDAxMTQ5MjExNTg0Al8yBBZwb29sQXNzZXRCYWxhbmNlQmVmb3JlCQEKZ2V0QmFsYW5jZQIFDmZhY3RvcnlBZGRyZXNzBQlwb29sQXNzZXQDCQAAAgUWcG9vbEFzc2V0QmFsYW5jZUJlZm9yZQUWcG9vbEFzc2V0QmFsYW5jZUJlZm9yZQQXd2F2ZXNBc3NldEJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAgUOZmFjdG9yeUFkZHJlc3MFCndhdmVzQXNzZXQDCQAAAgUXd2F2ZXNBc3NldEJhbGFuY2VCZWZvcmUFF3dhdmVzQXNzZXRCYWxhbmNlQmVmb3JlBA53aXRoZHJhd0ludm9rZQkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIZd2l0aGRyYXdMaXF1aWRpdHlGcm9tUG9vbAkAzAgCCAULcG9vbEFkZHJlc3MFYnl0ZXMFA25pbAUDbmlsAwkAAAIFDndpdGhkcmF3SW52b2tlBQ53aXRoZHJhd0ludm9rZQQVcG9vbEFzc2V0QmFsYW5jZUFmdGVyCQEKZ2V0QmFsYW5jZQIFDmZhY3RvcnlBZGRyZXNzBQlwb29sQXNzZXQDCQAAAgUVcG9vbEFzc2V0QmFsYW5jZUFmdGVyBRVwb29sQXNzZXRCYWxhbmNlQWZ0ZXIEFndhdmVzQXNzZXRCYWxhbmNlQWZ0ZXIJAQpnZXRCYWxhbmNlAgUOZmFjdG9yeUFkZHJlc3MFCndhdmVzQXNzZXQDCQAAAgUWd2F2ZXNBc3NldEJhbGFuY2VBZnRlcgUWd2F2ZXNBc3NldEJhbGFuY2VBZnRlcgQPcG9vbEFzc2V0QW1vdW50CQBlAgUVcG9vbEFzc2V0QmFsYW5jZUFmdGVyBRZwb29sQXNzZXRCYWxhbmNlQmVmb3JlBAt3YXZlc0Ftb3VudAkAZQIFFndhdmVzQXNzZXRCYWxhbmNlQWZ0ZXIFF3dhdmVzQXNzZXRCYWxhbmNlQmVmb3JlAwMJAGYCBQ9wb29sQXNzZXRBbW91bnQAAAkAZgIFC3dhdmVzQW1vdW50AAAHBApidXJuQW1vdW50CQBrAwUPcG9vbEFzc2V0QW1vdW50ABQAZAQKYnVybkFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIEYnVybgkAzAgCBQlwb29sQXNzZXQJAMwIAgUKYnVybkFtb3VudAUDbmlsBQNuaWwDCQAAAgUKYnVybkFjdGlvbgUKYnVybkFjdGlvbgQOZmVlV2F2ZXNBbW91bnQJAGsDBQt3YXZlc0Ftb3VudAAUAGQECWZlZUFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwINdHJhbnNmZXJXYXZlcwkAzAgCCAUTZmVlQ29sbGVjdG9yQWRkcmVzcwVieXRlcwkAzAgCBQ5mZWVXYXZlc0Ftb3VudAUDbmlsBQNuaWwDCQAAAgUJZmVlQWN0aW9uBQlmZWVBY3Rpb24EE3JlZ2lzdGVyQXNzZXRBY3Rpb24JAPwHBAUOZmFjdG9yeUFkZHJlc3MCDXJlZ2lzdGVyQXNzZXQJAMwIAggFEWFzc2V0U3RvcmVBZGRyZXNzBWJ5dGVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQlwb29sQXNzZXQJAMwIAgULZGVmYXVsdExvZ28JAMwIAgYFA25pbAUDbmlsAwkAAAIFE3JlZ2lzdGVyQXNzZXRBY3Rpb24FE3JlZ2lzdGVyQXNzZXRBY3Rpb24EEmNyZWF0ZVd4UG9vbEFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMY3JlYXRlV3hQb29sCQDMCAIIBRB1c2VyUG9vbHNBZGRyZXNzBWJ5dGVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQlwb29sQXNzZXQJAMwIAgkAZQIFD3Bvb2xBc3NldEFtb3VudAUKYnVybkFtb3VudAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUKd2F2ZXNBc3NldAkAzAgCCQBlAgULd2F2ZXNBbW91bnQFDmZlZVdhdmVzQW1vdW50BQNuaWwFA25pbAMJAAACBRJjcmVhdGVXeFBvb2xBY3Rpb24FEmNyZWF0ZVd4UG9vbEFjdGlvbgQMY2hhbmdlU3RhdHVzCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQkBCWdldFBvb2xJZAEFC3Bvb2xBZGRyZXNzCQDMCAIFElNUQVRVU19UUkFOU0ZFUlJFRAUDbmlsBQNuaWwDCQAAAgUMY2hhbmdlU3RhdHVzBQxjaGFuZ2VTdGF0dXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkBCHRocm93RXJyAQIld2l0aGRyYXduIGFtb3VudCBmcm9tIHBvb2wgaXMgdG9vIGxvdwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEE2tleUFkbWluQWRkcmVzc0xpc3QCFCVzX19hZG1pbkFkZHJlc3NMaXN0BA5rZXlBbGxvd2VkVHhJZAIIJXNfX3R4SWQECWFkbWluTGlzdAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFDmZhY3RvcnlBZGRyZXNzBRNrZXlBZG1pbkFkZHJlc3NMaXN0AgACAl9fBAdieU93bmVyAwkAZwIJAJADAQUJYWRtaW5MaXN0AAMHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAhieUFkbWlucwkAAAIIBQJ0eAJpZAkA2QQBCQELdmFsdWVPckVsc2UCCQCdCAIFDmZhY3RvcnlBZGRyZXNzBQ5rZXlBbGxvd2VkVHhJZAIAAwUIYnlBZG1pbnMGBQdieU93bmVyTYZzYg==", "height": 3422594, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fu53ceFQTcghzj7mn1L1bYMtpi5GSRrBBRLsCFYzQptE Next: SW4DYDiJS8mTQTHcVvMZCrSmvYkzqn2JJSJTDyCgyVQ Diff:
OldNewDifferences
196196 }
197197
198198
199-@Callable(ap)
200-func init (aq) = {
201- let ar = ae(ap.caller)
202- if ((ar == ar))
203- then [StringEntry(D, aq)]
199+func ap (aq,ar) = {
200+ let as = ab(aq)
201+ let at = ab(ar)
202+ let au = makeString(["%s%s%s", "status", as, at], a)
203+ let av = valueOrElse(getString(P, au), "")
204+ (av == "active")
205+ }
206+
207+
208+@Callable(aw)
209+func init (ax) = {
210+ let ay = ae(aw.caller)
211+ if ((ay == ay))
212+ then [StringEntry(D, ax)]
204213 else throw("Strict value is not equal to itself.")
205214 }
206215
207216
208217
209-@Callable(ap)
210-func addEmptyPool (as,at) = {
211- let au = addressFromPublicKey(as)
212- let av = (U + 1)
213- let aw = [if (!(T))
218+@Callable(aw)
219+func addEmptyPool (az,aA) = {
220+ let aB = addressFromPublicKey(az)
221+ let aC = (U + 1)
222+ let aD = [if (!(T))
214223 then true
215- else g("not allowed (shutdown)"), if (ag(au))
224+ else g("not allowed (shutdown)"), if (ag(aB))
216225 then true
217- else g("pool script is not allowed"), if (!(ai(au)))
226+ else g("pool script is not allowed"), if (!(ai(aB)))
218227 then true
219228 else g("pool address is already registered")]
220- if ((aw == aw))
229+ if ((aD == aD))
221230 then {
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)
231+ let aE = [invoke(G, "integerEntry", [w, aC], nil), invoke(G, "stringEntry", [y(aC), toString(aB)], nil), invoke(G, "integerEntry", [A(aB), aC], nil), invoke(G, "integerEntry", [C(aC), j], nil)]
232+ $Tuple2(nil, aE)
224233 }
225234 else throw("Strict value is not equal to itself.")
226235 }
227236
228237
229238
230-@Callable(ap)
231-func createPool (as,at) = {
232- let ay = (W + X)
233- let aw = [if (!(T))
239+@Callable(aw)
240+func createPool (az,aA) = {
241+ let aF = (W + X)
242+ let aD = [if (!(T))
234243 then true
235- else g("Temporary shutdown"), af(ap.caller), if (((U - V) > 0))
244+ else g("Temporary shutdown"), af(aw.caller), if (((U - V) > 0))
236245 then true
237- else g("No empty pool available"), if ((ap.payments[0].assetId == unit))
246+ else g("No empty pool available"), if ((aw.payments[0].assetId == unit))
238247 then true
239- else g("Payment should be in WAVES"), if ((ap.payments[0].amount >= ay))
248+ else g("Payment should be in WAVES"), if ((aw.payments[0].amount >= aF))
240249 then true
241- else g((("Payment should be greater or equal " + toString(ay)) + " WAVELET")), if (isDefined(at[0]))
250+ else g((("Payment should be greater or equal " + toString(aF)) + " WAVELET")), if (isDefined(aA[0]))
242251 then true
243- else g("Token name is not provided"), if (isDefined(at[1]))
252+ else g("Token name is not provided"), if (isDefined(aA[1]))
244253 then true
245- else g("Token description is not provided"), if (isDefined(at[2]))
254+ else g("Token description is not provided"), if (isDefined(aA[2]))
246255 then true
247- else g("Token quantity is not provided"), if ((parseInt(at[2]) != unit))
256+ else g("Token quantity is not provided"), if ((parseInt(aA[2]) != unit))
248257 then true
249258 else g("Token quantity should be a number")]
250- if ((aw == aw))
259+ if ((aD == aD))
251260 then {
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))
261+ let aG = (V + 1)
262+ let aH = getStringValue(G, y(aG))
263+ let aj = addressFromStringValue(aH)
264+ let aI = addressFromPublicKey(az)
265+ let aJ = take(aH, 8)
266+ let aK = toString(aI)
267+ let aL = aA[0]
268+ let aM = aA[1]
269+ let aN = aA[2]
270+ let aO = invoke(G, "initPoolInvoke", [aH, [aJ, aK, aL, aM, aN]], [AttachedPayment(aw.payments[0].assetId, aw.payments[0].amount)])
271+ if ((aO == aO))
263272 then {
264- let ax = [invoke(G, "integerEntry", [x, az], nil), invoke(G, "integerEntry", [C(az), k], nil)]
265- $Tuple2(nil, ax)
273+ let aE = [invoke(G, "integerEntry", [x, aG], nil), invoke(G, "integerEntry", [C(aG), k], nil)]
274+ $Tuple2(nil, aE)
266275 }
267276 else throw("Strict value is not equal to itself.")
268277 }
271280
272281
273282
274-@Callable(ap)
275-func notifyStatusUpdate (as,at) = {
276- let aj = addressFromPublicKey(as)
277- let aw = [if (ai(aj))
283+@Callable(aw)
284+func notifyStatusUpdate (az,aA) = {
285+ let aj = addressFromPublicKey(az)
286+ let aD = [if (ai(aj))
278287 then true
279- else g("pool not found"), af(ap.caller)]
280- if ((aw == aw))
288+ else g("pool not found"), af(aw.caller)]
289+ if ((aD == aD))
281290 then {
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)
291+ let aG = getIntegerValue(G, A(aj))
292+ let aP = parseIntValue(aA[0])
293+ let aE = [invoke(G, "integerEntry", [C(aG), aP], nil)]
294+ $Tuple2(nil, aE)
286295 }
287296 else throw("Strict value is not equal to itself.")
288297 }
289298
290299
291300
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))
301+@Callable(aw)
302+func swapREADONLY (az,aA) = {
303+ let aj = addressFromStringValue(aA[0])
304+ let aQ = aA[1]
305+ let aR = aA[2]
306+ let aS = parseIntValue(aA[3])
307+ let aD = [if (!(T))
299308 then true
300- else g("Temporary shutdown"), af(ap.caller)]
301- if ((aw == aw))
309+ else g("Temporary shutdown"), af(aw.caller)]
310+ if ((aD == aD))
302311 then if (al(aj))
303312 then {
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"))
313+ let aT = {
314+ let aU = invoke(J, "swapCalculateREADONLY", [aS, aQ, aR], nil)
315+ if ($isInstanceOf(aU, "Int"))
316+ then aU
317+ else throw(($getType(aU) + " couldn't be cast to Int"))
309318 }
310- $Tuple2(nil, $Tuple2(aM, "WxSwap"))
319+ $Tuple2(nil, $Tuple2(aT, "WxSwap"))
311320 }
312321 else {
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"))
322+ let aV = {
323+ let aU = invoke(aj, "swapReadOnly", [aQ, aR, aS], nil)
324+ if ($isInstanceOf(aU, "Int"))
325+ then aU
326+ else throw(($getType(aU) + " couldn't be cast to Int"))
318327 }
319- $Tuple2(nil, $Tuple2(aO, "iMemePool"))
328+ $Tuple2(nil, $Tuple2(aV, "iMemePool"))
320329 }
321330 else throw("Strict value is not equal to itself.")
322331 }
323332
324333
325334
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))
335+@Callable(aw)
336+func swap (az,aA) = {
337+ let aI = addressFromPublicKey(az)
338+ let aj = addressFromStringValue(aA[0])
339+ let aR = aA[1]
340+ let aW = Z(aR)
341+ let aX = parseIntValue(aA[2])
342+ let aY = aw.payments[0].amount
343+ let aZ = aw.payments[0].assetId
344+ let aD = [if (!(T))
336345 then true
337- else g("Temporary shutdown"), af(ap.caller), if ((size(ap.payments) == 1))
346+ else g("Temporary shutdown"), af(aw.caller), if ((size(aw.payments) == 1))
338347 then true
339348 else g("exactly one payment is expected")]
340- if ((aw == aw))
349+ if ((aD == aD))
341350 then {
342- let aT = am(this, aP)
343- if ((aT == aT))
351+ let ba = am(this, aW)
352+ if ((ba == ba))
344353 then {
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))
354+ let bb = if (al(aj))
355+ then invoke(J, "swap", [aX, aR, toString(this)], aw.payments)
356+ else invoke(aj, "swap", [aR, aX], aw.payments)
357+ if ((bb == bb))
349358 then {
350- let aV = am(this, aP)
351- if ((aV == aV))
352- then [ScriptTransfer(aB, (aV - aT), aP)]
359+ let bc = am(this, aW)
360+ if ((bc == bc))
361+ then [ScriptTransfer(aI, (bc - ba), aW)]
353362 else throw("Strict value is not equal to itself.")
354363 }
355364 else throw("Strict value is not equal to itself.")
361370
362371
363372
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))
373+@Callable(aw)
374+func transferPool (az,aA) = {
375+ let aI = addressFromPublicKey(az)
376+ let aj = addressFromStringValue(aA[0])
377+ let bd = split(getStringValue(aj, u), ",")
378+ let be = Z(bd[0])
379+ let bf = Z(bd[1])
380+ let bg = if ((be == unit))
381+ then $Tuple2(bf, be)
382+ else $Tuple2(be, bf)
383+ let bh = bg._1
384+ let bi = bg._2
385+ let bj = am(G, bh)
386+ if ((bj == bj))
378387 then {
379- let bd = am(G, bb)
380- if ((bd == bd))
388+ let bk = am(G, bi)
389+ if ((bk == bk))
381390 then {
382- let be = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
383- if ((be == be))
391+ let bl = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
392+ if ((bl == bl))
384393 then {
385- let bf = am(G, ba)
386- if ((bf == bf))
394+ let bm = am(G, bh)
395+ if ((bm == bm))
387396 then {
388- let bg = am(G, bb)
389- if ((bg == bg))
397+ let bn = am(G, bi)
398+ if ((bn == bn))
390399 then {
391- let bh = (bf - bc)
392- let bi = (bg - bd)
393- if (if ((bh > 0))
394- then (bi > 0)
400+ let bo = (bm - bj)
401+ let bp = (bn - bk)
402+ if (if ((bo > 0))
403+ then (bp > 0)
395404 else false)
396405 then {
397- let bj = fraction(bh, 20, 100)
398- let bk = invoke(G, "burn", [ba, bj], nil)
399- if ((bk == bk))
406+ let bq = fraction(bo, 20, 100)
407+ let br = invoke(G, "burn", [bh, bq], nil)
408+ if ((br == br))
400409 then {
401- let bl = fraction(bi, 20, 100)
402- let bm = invoke(G, "transferWaves", [M.bytes, bl], nil)
403- if ((bm == bm))
410+ let bs = fraction(bp, 20, 100)
411+ let bt = invoke(G, "transferWaves", [M.bytes, bs], nil)
412+ if ((bt == bt))
404413 then {
405- let bn = invoke(G, "registerAsset", [S.bytes, ab(ba), n, true], nil)
406- if ((bn == bn))
414+ let bu = invoke(G, "registerAsset", [S.bytes, ab(bh), n, true], nil)
415+ if ((bu == bu))
407416 then {
408- let bo = invoke(G, "createWxPool", [P.bytes, ab(ba), (bh - bj), ab(bb), (bi - bl)], nil)
409- if ((bo == bo))
417+ let bv = invoke(G, "createWxPool", [P.bytes, ab(bh), (bo - bq), ab(bi), (bp - bs)], nil)
418+ if ((bv == bv))
410419 then {
411- let bp = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
412- if ((bp == bp))
420+ let bw = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
421+ if ((bw == bw))
413422 then nil
414423 else throw("Strict value is not equal to itself.")
415424 }
435444 }
436445
437446
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))
447+@Verifier(bx)
448+func by () = {
449+ let bz = "%s__adminAddressList"
450+ let bA = "%s__txId"
451+ let bB = split(valueOrElse(getString(G, bz), ""), "__")
452+ let bC = if ((size(bB) >= 3))
444453 then false
445- else sigVerify(bq.bodyBytes, bq.proofs[0], bq.senderPublicKey)
446- let bw = (bq.id == fromBase58String(valueOrElse(getString(G, bt), "")))
447- if (bw)
454+ else sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey)
455+ let bD = (bx.id == fromBase58String(valueOrElse(getString(G, bA), "")))
456+ if (bD)
448457 then true
449- else bv
458+ else bC
450459 }
451460
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 = "<svg width='30' height='30' xmlns='http://www.w3.org/2000/svg'><g><circle cx='15' cy='15' fill='#ccc' r='15'/><text x='1' y='18' font-size='10'>iMeme</text></g></svg>"
3030
3131 let o = "shutdown__flag"
3232
3333 let p = "price__asset"
3434
3535 let q = "listing__volume"
3636
3737 let r = "setup__creationFee"
3838
3939 let s = "setup__curveTarget"
4040
4141 let t = "setup__virtualLiquidity"
4242
4343 let u = "static_tokenIds"
4444
4545 let v = "pool__contract__hash"
4646
4747 let w = "last__empty_pool__index"
4848
4949 let x = "first__empty__pool__index"
5050
5151 func y (z) = makeString(["pool", toString(z)], a)
5252
5353
5454 func A (i) = makeString(["pool", toString(i)], a)
5555
5656
5757 func B (i) = makeString(["asset", toString(i)], a)
5858
5959
6060 func C (z) = makeString(["pool", "status", toString(z)], a)
6161
6262
6363 let D = "factory__address"
6464
6565 let E = {
6666 let F = getString(this, D)
6767 if ($isInstanceOf(F, "String"))
6868 then {
6969 let f = F
7070 addressFromString(f)
7171 }
7272 else if ($isInstanceOf(F, "Unit"))
7373 then unit
7474 else throw("Match error")
7575 }
7676
7777 let G = valueOrErrorMessage(E, e("invalid factory address"))
7878
7979 let H = "wxswap__address"
8080
8181 let I = {
8282 let F = getString(G, H)
8383 if ($isInstanceOf(F, "String"))
8484 then {
8585 let f = F
8686 addressFromString(f)
8787 }
8888 else unit
8989 }
9090
9191 let J = valueOrErrorMessage(I, e("invalid wx swap address"))
9292
9393 let K = "wxfee_address"
9494
9595 let L = {
9696 let F = getString(G, K)
9797 if ($isInstanceOf(F, "String"))
9898 then {
9999 let f = F
100100 addressFromString(f)
101101 }
102102 else unit
103103 }
104104
105105 let M = valueOrErrorMessage(L, e("invalid fee collector address"))
106106
107107 let N = "userpools_address"
108108
109109 let O = {
110110 let F = getString(G, N)
111111 if ($isInstanceOf(F, "String"))
112112 then {
113113 let f = F
114114 addressFromString(f)
115115 }
116116 else unit
117117 }
118118
119119 let P = valueOrErrorMessage(O, e("invalid user_pools dapp address"))
120120
121121 let Q = "assetstore_address"
122122
123123 let R = {
124124 let F = getString(G, Q)
125125 if ($isInstanceOf(F, "String"))
126126 then {
127127 let f = F
128128 addressFromString(f)
129129 }
130130 else unit
131131 }
132132
133133 let S = valueOrErrorMessage(R, e("invalid asset_store dapp address"))
134134
135135 let T = valueOrElse(getBoolean(G, o), false)
136136
137137 let U = valueOrElse(getInteger(G, w), 0)
138138
139139 let V = valueOrElse(getInteger(G, x), 0)
140140
141141 let W = valueOrElse(getInteger(G, q), 0)
142142
143143 let X = valueOrElse(getInteger(G, r), 0)
144144
145145 let Y = getBinary(G, v)
146146
147147 func Z (aa) = if ((aa == b))
148148 then unit
149149 else fromBase58String(aa)
150150
151151
152152 func ab (aa) = if ((aa == unit))
153153 then b
154154 else toBase58String(value(aa))
155155
156156
157157 func ac (ad,i) = if ((ad == i))
158158 then true
159159 else g("permission denied")
160160
161161
162162 func ae (ad) = ac(ad, this)
163163
164164
165165 func af (ad) = ac(ad, G)
166166
167167
168168 func ag (i) = {
169169 let F = Y
170170 if ($isInstanceOf(F, "ByteVector"))
171171 then {
172172 let ah = F
173173 (scriptHash(i) == ah)
174174 }
175175 else true
176176 }
177177
178178
179179 func ai (aj) = isDefined(getInteger(G, A(aj)))
180180
181181
182182 func ak (aj) = valueOrErrorMessage(getInteger(G, A(aj)), "pool doesn't exists")
183183
184184
185185 func al (aj) = (valueOrElse(getInteger(G, C(ak(aj))), -1) == l)
186186
187187
188188 func am (i,an) = {
189189 let F = an
190190 if ($isInstanceOf(F, "ByteVector"))
191191 then {
192192 let ao = F
193193 assetBalance(i, ao)
194194 }
195195 else wavesBalance(i).available
196196 }
197197
198198
199-@Callable(ap)
200-func init (aq) = {
201- let ar = ae(ap.caller)
202- if ((ar == ar))
203- then [StringEntry(D, aq)]
199+func ap (aq,ar) = {
200+ let as = ab(aq)
201+ let at = ab(ar)
202+ let au = makeString(["%s%s%s", "status", as, at], a)
203+ let av = valueOrElse(getString(P, au), "")
204+ (av == "active")
205+ }
206+
207+
208+@Callable(aw)
209+func init (ax) = {
210+ let ay = ae(aw.caller)
211+ if ((ay == ay))
212+ then [StringEntry(D, ax)]
204213 else throw("Strict value is not equal to itself.")
205214 }
206215
207216
208217
209-@Callable(ap)
210-func addEmptyPool (as,at) = {
211- let au = addressFromPublicKey(as)
212- let av = (U + 1)
213- let aw = [if (!(T))
218+@Callable(aw)
219+func addEmptyPool (az,aA) = {
220+ let aB = addressFromPublicKey(az)
221+ let aC = (U + 1)
222+ let aD = [if (!(T))
214223 then true
215- else g("not allowed (shutdown)"), if (ag(au))
224+ else g("not allowed (shutdown)"), if (ag(aB))
216225 then true
217- else g("pool script is not allowed"), if (!(ai(au)))
226+ else g("pool script is not allowed"), if (!(ai(aB)))
218227 then true
219228 else g("pool address is already registered")]
220- if ((aw == aw))
229+ if ((aD == aD))
221230 then {
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)
231+ let aE = [invoke(G, "integerEntry", [w, aC], nil), invoke(G, "stringEntry", [y(aC), toString(aB)], nil), invoke(G, "integerEntry", [A(aB), aC], nil), invoke(G, "integerEntry", [C(aC), j], nil)]
232+ $Tuple2(nil, aE)
224233 }
225234 else throw("Strict value is not equal to itself.")
226235 }
227236
228237
229238
230-@Callable(ap)
231-func createPool (as,at) = {
232- let ay = (W + X)
233- let aw = [if (!(T))
239+@Callable(aw)
240+func createPool (az,aA) = {
241+ let aF = (W + X)
242+ let aD = [if (!(T))
234243 then true
235- else g("Temporary shutdown"), af(ap.caller), if (((U - V) > 0))
244+ else g("Temporary shutdown"), af(aw.caller), if (((U - V) > 0))
236245 then true
237- else g("No empty pool available"), if ((ap.payments[0].assetId == unit))
246+ else g("No empty pool available"), if ((aw.payments[0].assetId == unit))
238247 then true
239- else g("Payment should be in WAVES"), if ((ap.payments[0].amount >= ay))
248+ else g("Payment should be in WAVES"), if ((aw.payments[0].amount >= aF))
240249 then true
241- else g((("Payment should be greater or equal " + toString(ay)) + " WAVELET")), if (isDefined(at[0]))
250+ else g((("Payment should be greater or equal " + toString(aF)) + " WAVELET")), if (isDefined(aA[0]))
242251 then true
243- else g("Token name is not provided"), if (isDefined(at[1]))
252+ else g("Token name is not provided"), if (isDefined(aA[1]))
244253 then true
245- else g("Token description is not provided"), if (isDefined(at[2]))
254+ else g("Token description is not provided"), if (isDefined(aA[2]))
246255 then true
247- else g("Token quantity is not provided"), if ((parseInt(at[2]) != unit))
256+ else g("Token quantity is not provided"), if ((parseInt(aA[2]) != unit))
248257 then true
249258 else g("Token quantity should be a number")]
250- if ((aw == aw))
259+ if ((aD == aD))
251260 then {
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))
261+ let aG = (V + 1)
262+ let aH = getStringValue(G, y(aG))
263+ let aj = addressFromStringValue(aH)
264+ let aI = addressFromPublicKey(az)
265+ let aJ = take(aH, 8)
266+ let aK = toString(aI)
267+ let aL = aA[0]
268+ let aM = aA[1]
269+ let aN = aA[2]
270+ let aO = invoke(G, "initPoolInvoke", [aH, [aJ, aK, aL, aM, aN]], [AttachedPayment(aw.payments[0].assetId, aw.payments[0].amount)])
271+ if ((aO == aO))
263272 then {
264- let ax = [invoke(G, "integerEntry", [x, az], nil), invoke(G, "integerEntry", [C(az), k], nil)]
265- $Tuple2(nil, ax)
273+ let aE = [invoke(G, "integerEntry", [x, aG], nil), invoke(G, "integerEntry", [C(aG), k], nil)]
274+ $Tuple2(nil, aE)
266275 }
267276 else throw("Strict value is not equal to itself.")
268277 }
269278 else throw("Strict value is not equal to itself.")
270279 }
271280
272281
273282
274-@Callable(ap)
275-func notifyStatusUpdate (as,at) = {
276- let aj = addressFromPublicKey(as)
277- let aw = [if (ai(aj))
283+@Callable(aw)
284+func notifyStatusUpdate (az,aA) = {
285+ let aj = addressFromPublicKey(az)
286+ let aD = [if (ai(aj))
278287 then true
279- else g("pool not found"), af(ap.caller)]
280- if ((aw == aw))
288+ else g("pool not found"), af(aw.caller)]
289+ if ((aD == aD))
281290 then {
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)
291+ let aG = getIntegerValue(G, A(aj))
292+ let aP = parseIntValue(aA[0])
293+ let aE = [invoke(G, "integerEntry", [C(aG), aP], nil)]
294+ $Tuple2(nil, aE)
286295 }
287296 else throw("Strict value is not equal to itself.")
288297 }
289298
290299
291300
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))
301+@Callable(aw)
302+func swapREADONLY (az,aA) = {
303+ let aj = addressFromStringValue(aA[0])
304+ let aQ = aA[1]
305+ let aR = aA[2]
306+ let aS = parseIntValue(aA[3])
307+ let aD = [if (!(T))
299308 then true
300- else g("Temporary shutdown"), af(ap.caller)]
301- if ((aw == aw))
309+ else g("Temporary shutdown"), af(aw.caller)]
310+ if ((aD == aD))
302311 then if (al(aj))
303312 then {
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"))
313+ let aT = {
314+ let aU = invoke(J, "swapCalculateREADONLY", [aS, aQ, aR], nil)
315+ if ($isInstanceOf(aU, "Int"))
316+ then aU
317+ else throw(($getType(aU) + " couldn't be cast to Int"))
309318 }
310- $Tuple2(nil, $Tuple2(aM, "WxSwap"))
319+ $Tuple2(nil, $Tuple2(aT, "WxSwap"))
311320 }
312321 else {
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"))
322+ let aV = {
323+ let aU = invoke(aj, "swapReadOnly", [aQ, aR, aS], nil)
324+ if ($isInstanceOf(aU, "Int"))
325+ then aU
326+ else throw(($getType(aU) + " couldn't be cast to Int"))
318327 }
319- $Tuple2(nil, $Tuple2(aO, "iMemePool"))
328+ $Tuple2(nil, $Tuple2(aV, "iMemePool"))
320329 }
321330 else throw("Strict value is not equal to itself.")
322331 }
323332
324333
325334
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))
335+@Callable(aw)
336+func swap (az,aA) = {
337+ let aI = addressFromPublicKey(az)
338+ let aj = addressFromStringValue(aA[0])
339+ let aR = aA[1]
340+ let aW = Z(aR)
341+ let aX = parseIntValue(aA[2])
342+ let aY = aw.payments[0].amount
343+ let aZ = aw.payments[0].assetId
344+ let aD = [if (!(T))
336345 then true
337- else g("Temporary shutdown"), af(ap.caller), if ((size(ap.payments) == 1))
346+ else g("Temporary shutdown"), af(aw.caller), if ((size(aw.payments) == 1))
338347 then true
339348 else g("exactly one payment is expected")]
340- if ((aw == aw))
349+ if ((aD == aD))
341350 then {
342- let aT = am(this, aP)
343- if ((aT == aT))
351+ let ba = am(this, aW)
352+ if ((ba == ba))
344353 then {
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))
354+ let bb = if (al(aj))
355+ then invoke(J, "swap", [aX, aR, toString(this)], aw.payments)
356+ else invoke(aj, "swap", [aR, aX], aw.payments)
357+ if ((bb == bb))
349358 then {
350- let aV = am(this, aP)
351- if ((aV == aV))
352- then [ScriptTransfer(aB, (aV - aT), aP)]
359+ let bc = am(this, aW)
360+ if ((bc == bc))
361+ then [ScriptTransfer(aI, (bc - ba), aW)]
353362 else throw("Strict value is not equal to itself.")
354363 }
355364 else throw("Strict value is not equal to itself.")
356365 }
357366 else throw("Strict value is not equal to itself.")
358367 }
359368 else throw("Strict value is not equal to itself.")
360369 }
361370
362371
363372
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))
373+@Callable(aw)
374+func transferPool (az,aA) = {
375+ let aI = addressFromPublicKey(az)
376+ let aj = addressFromStringValue(aA[0])
377+ let bd = split(getStringValue(aj, u), ",")
378+ let be = Z(bd[0])
379+ let bf = Z(bd[1])
380+ let bg = if ((be == unit))
381+ then $Tuple2(bf, be)
382+ else $Tuple2(be, bf)
383+ let bh = bg._1
384+ let bi = bg._2
385+ let bj = am(G, bh)
386+ if ((bj == bj))
378387 then {
379- let bd = am(G, bb)
380- if ((bd == bd))
388+ let bk = am(G, bi)
389+ if ((bk == bk))
381390 then {
382- let be = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
383- if ((be == be))
391+ let bl = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
392+ if ((bl == bl))
384393 then {
385- let bf = am(G, ba)
386- if ((bf == bf))
394+ let bm = am(G, bh)
395+ if ((bm == bm))
387396 then {
388- let bg = am(G, bb)
389- if ((bg == bg))
397+ let bn = am(G, bi)
398+ if ((bn == bn))
390399 then {
391- let bh = (bf - bc)
392- let bi = (bg - bd)
393- if (if ((bh > 0))
394- then (bi > 0)
400+ let bo = (bm - bj)
401+ let bp = (bn - bk)
402+ if (if ((bo > 0))
403+ then (bp > 0)
395404 else false)
396405 then {
397- let bj = fraction(bh, 20, 100)
398- let bk = invoke(G, "burn", [ba, bj], nil)
399- if ((bk == bk))
406+ let bq = fraction(bo, 20, 100)
407+ let br = invoke(G, "burn", [bh, bq], nil)
408+ if ((br == br))
400409 then {
401- let bl = fraction(bi, 20, 100)
402- let bm = invoke(G, "transferWaves", [M.bytes, bl], nil)
403- if ((bm == bm))
410+ let bs = fraction(bp, 20, 100)
411+ let bt = invoke(G, "transferWaves", [M.bytes, bs], nil)
412+ if ((bt == bt))
404413 then {
405- let bn = invoke(G, "registerAsset", [S.bytes, ab(ba), n, true], nil)
406- if ((bn == bn))
414+ let bu = invoke(G, "registerAsset", [S.bytes, ab(bh), n, true], nil)
415+ if ((bu == bu))
407416 then {
408- let bo = invoke(G, "createWxPool", [P.bytes, ab(ba), (bh - bj), ab(bb), (bi - bl)], nil)
409- if ((bo == bo))
417+ let bv = invoke(G, "createWxPool", [P.bytes, ab(bh), (bo - bq), ab(bi), (bp - bs)], nil)
418+ if ((bv == bv))
410419 then {
411- let bp = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
412- if ((bp == bp))
420+ let bw = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
421+ if ((bw == bw))
413422 then nil
414423 else throw("Strict value is not equal to itself.")
415424 }
416425 else throw("Strict value is not equal to itself.")
417426 }
418427 else throw("Strict value is not equal to itself.")
419428 }
420429 else throw("Strict value is not equal to itself.")
421430 }
422431 else throw("Strict value is not equal to itself.")
423432 }
424433 else g("withdrawn amount from pool is too low")
425434 }
426435 else throw("Strict value is not equal to itself.")
427436 }
428437 else throw("Strict value is not equal to itself.")
429438 }
430439 else throw("Strict value is not equal to itself.")
431440 }
432441 else throw("Strict value is not equal to itself.")
433442 }
434443 else throw("Strict value is not equal to itself.")
435444 }
436445
437446
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))
447+@Verifier(bx)
448+func by () = {
449+ let bz = "%s__adminAddressList"
450+ let bA = "%s__txId"
451+ let bB = split(valueOrElse(getString(G, bz), ""), "__")
452+ let bC = if ((size(bB) >= 3))
444453 then false
445- else sigVerify(bq.bodyBytes, bq.proofs[0], bq.senderPublicKey)
446- let bw = (bq.id == fromBase58String(valueOrElse(getString(G, bt), "")))
447- if (bw)
454+ else sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey)
455+ let bD = (bx.id == fromBase58String(valueOrElse(getString(G, bA), "")))
456+ if (bD)
448457 then true
449- else bv
458+ else bC
450459 }
451460

github/deemru/w8io/169f3d6 
110.20 ms