tx · SW4DYDiJS8mTQTHcVvMZCrSmvYkzqn2JJSJTDyCgyVQ

3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr:  -0.01700000 Waves

2024.12.20 11:19 [3422603] smart account 3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr > SELF 0.00000000 Waves

{ "type": 13, "id": "SW4DYDiJS8mTQTHcVvMZCrSmvYkzqn2JJSJTDyCgyVQ", "fee": 1700000, "feeAssetId": null, "timestamp": 1734682740129, "version": 2, "chainId": 84, "sender": "3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr", "senderPublicKey": "jXCTQV8PjX2uC9UHBFveupYy9cjhY7stHbzE9cptymw", "proofs": [ "4f5KnLPemK7U1Pk7D4YoGVqW4Zbuk1rK3MoG7oycFVp5v3PonmohVtUG2bynkx1ERoBF9HiwJGKXG6JYGWH9XMnK" ], "script": "base64:BwIxCAISAwoBCBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGBIECgICGDoACXNlcGFyYXRvcgICX18AC3dhdmVzU3RyaW5nAgVXQVZFUwAQY29udHJhY3RGaWxlbmFtZQIXbWVtZV9pbV9jYWxjdWxhdG9yLnJpZGUABW11bHQ4AIDC1y8BB3dyYXBFcnIBAXMJAKwCAgkArAICBRBjb250cmFjdEZpbGVuYW1lAgI6IAUBcwEIdGhyb3dFcnIBAXMJAAIBCQEHd3JhcEVycgEFAXMBD3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwkBCWlzRGVmaW5lZAEJAKYIAQUHYWRkcmVzcwAMU1RBVFVTX0VNUFRZAAAADFNUQVRVU19SRUFEWQABABVTVEFUVVNfVEFSR0VUX1JFQUNIRUQAAgASU1RBVFVTX1RSQU5TRkVSUkVEAAMAC2RlZmF1bHRMb2dvAqYBPHN2ZyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGc+PGNpcmNsZSBjeD0nMTUnIGN5PScxNScgZmlsbD0nI2NjYycgcj0nMTUnLz48dGV4dCB4PScxJyB5PScxOCcgZm9udC1zaXplPScxMCc+aU1lbWU8L3RleHQ+PC9nPjwvc3ZnPgAJa1NodXRkb3duAg5zaHV0ZG93bl9fZmxhZwALa1ByaWNlQXNzZXQCDHByaWNlX19hc3NldAAOa0xpc3RpbmdWb2x1bWUCD2xpc3RpbmdfX3ZvbHVtZQAMa0NyZWF0aW9uRmVlAhJzZXR1cF9fY3JlYXRpb25GZWUADGtDdXJ2ZVRhcmdldAISc2V0dXBfX2N1cnZlVGFyZ2V0ABFrVmlydHVhbExpcXVpZGl0eQIXc2V0dXBfX3ZpcnR1YWxMaXF1aWRpdHkAD2tQb29sVG9rZW5zTGlzdAIPc3RhdGljX3Rva2VuSWRzABFrUG9vbENvbnRyYWN0SGFzaAIUcG9vbF9fY29udHJhY3RfX2hhc2gAE2tMYXN0RW1wdHlQb29sSW5kZXgCF2xhc3RfX2VtcHR5X3Bvb2xfX2luZGV4ABRrRmlyc3RFbXB0eVBvb2xJbmRleAIZZmlyc3RfX2VtcHR5X19wb29sX19pbmRleAEVa1Bvb2xBZGRyZXNzRnJvbUluZGV4AQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgkApAMBBQVpbmRleAUDbmlsBQlzZXBhcmF0b3IBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEHYWRkcmVzcwkAuQkCCQDMCAICBHBvb2wJAMwIAgkApQgBBQdhZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEKa1Bvb2xBc3NldAEHYWRkcmVzcwkAuQkCCQDMCAICBWFzc2V0CQDMCAIJAKUIAQUHYWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBC2tQb29sU3RhdHVzAQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgIGc3RhdHVzCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yAA9rRmFjdG9yeUFkZHJlc3MCEGZhY3RvcnlfX2FkZHJlc3MAFGZhY3RvcnlBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFBHRoaXMFD2tGYWN0b3J5QWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IADmZhY3RvcnlBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIFFGZhY3RvcnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgZmFjdG9yeSBhZGRyZXNzAA5rV3hTd2FwQWRkcmVzcwIPd3hzd2FwX19hZGRyZXNzABN3eFN3YXBBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFDmZhY3RvcnlBZGRyZXNzBQ5rV3hTd2FwQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAANd3hTd2FwQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRN3eFN3YXBBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgd3ggc3dhcCBhZGRyZXNzABRrRmVlQ29sbGVjdG9yQWRkcmVzcwINd3hmZWVfYWRkcmVzcwAZZmVlQ29sbGVjdG9yQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUUa0ZlZUNvbGxlY3RvckFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQAE2ZlZUNvbGxlY3RvckFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUZZmVlQ29sbGVjdG9yQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAh1pbnZhbGlkIGZlZSBjb2xsZWN0b3IgYWRkcmVzcwARa1VzZXJQb29sc0FkZHJlc3MCEXVzZXJwb29sc19hZGRyZXNzABZ1c2VyUG9vbHNBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFDmZhY3RvcnlBZGRyZXNzBRFrVXNlclBvb2xzQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAAQdXNlclBvb2xzQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRZ1c2VyUG9vbHNBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECH2ludmFsaWQgdXNlcl9wb29scyBkYXBwIGFkZHJlc3MAEmtBc3NldFN0b3JlQWRkcmVzcwISYXNzZXRzdG9yZV9hZGRyZXNzABdhc3NldFN0b3JlQWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQ5mYWN0b3J5QWRkcmVzcwUSa0Fzc2V0U3RvcmVBZGRyZXNzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzBQR1bml0ABFhc3NldFN0b3JlQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRdhc3NldFN0b3JlQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAiBpbnZhbGlkIGFzc2V0X3N0b3JlIGRhcHAgYWRkcmVzcwAIc2h1dGRvd24JAQt2YWx1ZU9yRWxzZQIJAJsIAgUOZmFjdG9yeUFkZHJlc3MFCWtTaHV0ZG93bgcADmxhc3RFbXB0eUluZGV4CQELdmFsdWVPckVsc2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzBRNrTGFzdEVtcHR5UG9vbEluZGV4AAAAD2ZpcnN0RW1wdHlJbmRleAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwUUa0ZpcnN0RW1wdHlQb29sSW5kZXgAAAANbGlzdGluZ1ZvbHVtZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwUOa0xpc3RpbmdWb2x1bWUAAAALY3JlYXRpb25GZWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOZmFjdG9yeUFkZHJlc3MFDGtDcmVhdGlvbkZlZQAAABBwb29sQ29udHJhY3RIYXNoCQCcCAIFDmZhY3RvcnlBZGRyZXNzBRFrUG9vbENvbnRyYWN0SGFzaAEMcGFyc2VBc3NldElkAQVpbnB1dAMJAAACBQVpbnB1dAULd2F2ZXNTdHJpbmcFBHVuaXQJANkEAQUFaW5wdXQBD2Fzc2V0SWRUb1N0cmluZwEFaW5wdXQDCQAAAgUFaW5wdXQFBHVuaXQFC3dhdmVzU3RyaW5nCQDYBAEJAQV2YWx1ZQEFBWlucHV0AQttdXN0QWRkcmVzcwIGY2FsbGVyB2FkZHJlc3MDCQAAAgUGY2FsbGVyBQdhZGRyZXNzBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQBCG11c3RUaGlzAQZjYWxsZXIJAQttdXN0QWRkcmVzcwIFBmNhbGxlcgUEdGhpcwELbXVzdEZhY3RvcnkBBmNhbGxlcgkBC211c3RBZGRyZXNzAgUGY2FsbGVyBQ5mYWN0b3J5QWRkcmVzcwETY2hlY2tDb250cmFjdFNjcmlwdAEHYWRkcmVzcwQHJG1hdGNoMAUQcG9vbENvbnRyYWN0SGFzaAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBARoYXNoBQckbWF0Y2gwCQAAAgkA8QcBBQdhZGRyZXNzBQRoYXNoBgEMaXNQb29sRXhpc3RzAQtwb29sQWRkcmVzcwkBCWlzRGVmaW5lZAEJAJoIAgUOZmFjdG9yeUFkZHJlc3MJARVrUG9vbEluZGV4RnJvbUFkZHJlc3MBBQtwb29sQWRkcmVzcwEJZ2V0UG9vbElkAQtwb29sQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQULcG9vbEFkZHJlc3MCE3Bvb2wgZG9lc24ndCBleGlzdHMBE2lzUG9vbFRhcmdldFJlYWNoZWQBC3Bvb2xBZGRyZXNzCQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5mYWN0b3J5QWRkcmVzcwkBC2tQb29sU3RhdHVzAQkBCWdldFBvb2xJZAEFC3Bvb2xBZGRyZXNzAP///////////wEFFVNUQVRVU19UQVJHRVRfUkVBQ0hFRAEKZ2V0QmFsYW5jZQIHYWRkcmVzcwdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCQDwBwIFB2FkZHJlc3MFAmlkCAkA7wcBBQdhZGRyZXNzCWF2YWlsYWJsZQEOaXNXeFN3YXBBY3RpdmUCEWFtb3VudEFzc2V0U3RyaW5nEHByaWNlQXNzZXRTdHJpbmcECXN0YXR1c0tleQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGF0dXMJAMwIAgURYW1vdW50QXNzZXRTdHJpbmcJAMwIAgUQcHJpY2VBc3NldFN0cmluZwUDbmlsBQlzZXBhcmF0b3IEBnN0YXR1cwkBC3ZhbHVlT3JFbHNlAgkAnQgCBRB1c2VyUG9vbHNBZGRyZXNzBQlzdGF0dXNLZXkCAAkAAAIFBnN0YXR1cwIGYWN0aXZlCAFpAQRpbml0ARFmYWN0b3J5QWRkcmVzc1N0cgQLY2hlY2tDYWxsZXIJAQhtdXN0VGhpcwEIBQFpBmNhbGxlcgMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUPa0ZhY3RvcnlBZGRyZXNzBRFmYWN0b3J5QWRkcmVzc1N0cgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDGFkZEVtcHR5UG9vbAIPY2FsbGVyUHVibGljS2V5BGFyZ3MEDm5ld1Bvb2xBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQMbmV3UG9vbEluZGV4CQBkAgUObGFzdEVtcHR5SW5kZXgAAQQGY2hlY2tzCQDMCAIDCQEBIQEFCHNodXRkb3duBgkBCHRocm93RXJyAQIWbm90IGFsbG93ZWQgKHNodXRkb3duKQkAzAgCAwkBE2NoZWNrQ29udHJhY3RTY3JpcHQBBQ5uZXdQb29sQWRkcmVzcwYJAQh0aHJvd0VycgECGnBvb2wgc2NyaXB0IGlzIG5vdCBhbGxvd2VkCQDMCAIDCQEBIQEJAQxpc1Bvb2xFeGlzdHMBBQ5uZXdQb29sQWRkcmVzcwYJAQh0aHJvd0VycgECInBvb2wgYWRkcmVzcyBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIFE2tMYXN0RW1wdHlQb29sSW5kZXgJAMwIAgUMbmV3UG9vbEluZGV4BQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgtzdHJpbmdFbnRyeQkAzAgCCQEVa1Bvb2xBZGRyZXNzRnJvbUluZGV4AQUMbmV3UG9vbEluZGV4CQDMCAIJAKUIAQUObmV3UG9vbEFkZHJlc3MFA25pbAUDbmlsCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQUObmV3UG9vbEFkZHJlc3MJAMwIAgUMbmV3UG9vbEluZGV4BQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQUMbmV3UG9vbEluZGV4CQDMCAIFDFNUQVRVU19FTVBUWQUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNyZWF0ZVBvb2wCD2NhbGxlclB1YmxpY0tleQRhcmdzBAptaW5QYXltZW50CQBkAgUNbGlzdGluZ1ZvbHVtZQULY3JlYXRpb25GZWUEBmNoZWNrcwkAzAgCAwkBASEBBQhzaHV0ZG93bgYJAQh0aHJvd0VycgECElRlbXBvcmFyeSBzaHV0ZG93bgkAzAgCCQELbXVzdEZhY3RvcnkBCAUBaQZjYWxsZXIJAMwIAgMJAGYCCQBlAgUObGFzdEVtcHR5SW5kZXgFD2ZpcnN0RW1wdHlJbmRleAAABgkBCHRocm93RXJyAQIXTm8gZW1wdHkgcG9vbCBhdmFpbGFibGUJAMwIAgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQGCQEIdGhyb3dFcnIBAhpQYXltZW50IHNob3VsZCBiZSBpbiBXQVZFUwkAzAgCAwkAZwIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQptaW5QYXltZW50BgkBCHRocm93RXJyAQkArAICCQCsAgICI1BheW1lbnQgc2hvdWxkIGJlIGdyZWF0ZXIgb3IgZXF1YWwgCQCkAwEFCm1pblBheW1lbnQCCCBXQVZFTEVUCQDMCAIDCQEJaXNEZWZpbmVkAQkAkQMCBQRhcmdzAAAGCQEIdGhyb3dFcnIBAhpUb2tlbiBuYW1lIGlzIG5vdCBwcm92aWRlZAkAzAgCAwkBCWlzRGVmaW5lZAEJAJEDAgUEYXJncwABBgkBCHRocm93RXJyAQIhVG9rZW4gZGVzY3JpcHRpb24gaXMgbm90IHByb3ZpZGVkCQDMCAIDCQEJaXNEZWZpbmVkAQkAkQMCBQRhcmdzAAIGCQEIdGhyb3dFcnIBAh5Ub2tlbiBxdWFudGl0eSBpcyBub3QgcHJvdmlkZWQJAMwIAgMJAQIhPQIJALYJAQkAkQMCBQRhcmdzAAIFBHVuaXQGCQEIdGhyb3dFcnIBAiFUb2tlbiBxdWFudGl0eSBzaG91bGQgYmUgYSBudW1iZXIFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJcG9vbEluZGV4CQBkAgUPZmlyc3RFbXB0eUluZGV4AAEEEXBvb2xBZGRyZXNzU3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQ5mYWN0b3J5QWRkcmVzcwkBFWtQb29sQWRkcmVzc0Zyb21JbmRleAEFCXBvb2xJbmRleAQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEXBvb2xBZGRyZXNzU3RyaW5nBA1jYWxsZXJBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQKcG9vbERvbWFpbgkArwICBRFwb29sQWRkcmVzc1N0cmluZwAIBAlwb29sT3duZXIJAKUIAQUNY2FsbGVyQWRkcmVzcwQJdG9rZW5OYW1lCQCRAwIFBGFyZ3MAAAQJdG9rZW5EZXNjCQCRAwIFBGFyZ3MAAQQNdG9rZW5RdWFudGl0eQkAkQMCBQRhcmdzAAIEDmluaXRQb29sSW52b2tlCQD8BwQFDmZhY3RvcnlBZGRyZXNzAg5pbml0UG9vbEludm9rZQkAzAgCBRFwb29sQWRkcmVzc1N0cmluZwkAzAgCCQDMCAIFCnBvb2xEb21haW4JAMwIAgUJcG9vbE93bmVyCQDMCAIFCXRva2VuTmFtZQkAzAgCBQl0b2tlbkRlc2MJAMwIAgUNdG9rZW5RdWFudGl0eQUDbmlsBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFA25pbAMJAAACBQ5pbml0UG9vbEludm9rZQUOaW5pdFBvb2xJbnZva2UEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCBRRrRmlyc3RFbXB0eVBvb2xJbmRleAkAzAgCBQlwb29sSW5kZXgFA25pbAUDbmlsCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCCQELa1Bvb2xTdGF0dXMBBQlwb29sSW5kZXgJAMwIAgUMU1RBVFVTX1JFQURZBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESbm90aWZ5U3RhdHVzVXBkYXRlAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQLcG9vbEFkZHJlc3MJAKcIAQUPY2FsbGVyUHVibGljS2V5BAZjaGVja3MJAMwIAgMJAQxpc1Bvb2xFeGlzdHMBBQtwb29sQWRkcmVzcwYJAQh0aHJvd0VycgECDnBvb2wgbm90IGZvdW5kCQDMCAIJAQttdXN0RmFjdG9yeQEIBQFpBmNhbGxlcgUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlwb29sSW5kZXgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQULcG9vbEFkZHJlc3MECW5ld1N0YXR1cwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGFyZ3MAAAQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIJAQtrUG9vbFN0YXR1cwEFCXBvb2xJbmRleAkAzAgCBQluZXdTdGF0dXMFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQ5mYWN0b3J5QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARZpc1d4U3dhcEFjdGl2ZVJFQURPTkxZAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQTYW1vdW50QXNzZXRJZFN0cmluZwkAkQMCBQRhcmdzAAEEEnByaWNlQXNzZXRJZFN0cmluZwkAkQMCBQRhcmdzAAIEBmNoZWNrcwkAzAgCCQELbXVzdEZhY3RvcnkBCAUBaQZjYWxsZXIFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCBQNuaWwJAQ5pc1d4U3dhcEFjdGl2ZQIFE2Ftb3VudEFzc2V0SWRTdHJpbmcFEnByaWNlQXNzZXRJZFN0cmluZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxzd2FwUkVBRE9OTFkCD2NhbGxlclB1YmxpY0tleQRhcmdzBAtwb29sQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQRhcmdzAAAEE2Ftb3VudEFzc2V0SWRTdHJpbmcJAJEDAgUEYXJncwABBBJwcmljZUFzc2V0SWRTdHJpbmcJAJEDAgUEYXJncwACBAZhbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRhcmdzAAMEBmNoZWNrcwkAzAgCAwkBASEBBQhzaHV0ZG93bgYJAQh0aHJvd0VycgECElRlbXBvcmFyeSBzaHV0ZG93bgkAzAgCCQELbXVzdEZhY3RvcnkBCAUBaQZjYWxsZXIFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwMJARNpc1Bvb2xUYXJnZXRSZWFjaGVkAQULcG9vbEFkZHJlc3MEDHd4U3dhcFJlc3VsdAoAAUAJAPwHBAUNd3hTd2FwQWRkcmVzcwIVc3dhcENhbGN1bGF0ZVJFQURPTkxZCQDMCAIFBmFtb3VudAkAzAgCBRNhbW91bnRBc3NldElkU3RyaW5nCQDMCAIFEnByaWNlQXNzZXRJZFN0cmluZwUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQCUCgIFA25pbAkAlAoCBQx3eFN3YXBSZXN1bHQCBld4U3dhcAQOcG9vbFN3YXBSZXN1bHQKAAFACQD8BwQFC3Bvb2xBZGRyZXNzAgxzd2FwUmVhZE9ubHkJAMwIAgUTYW1vdW50QXNzZXRJZFN0cmluZwkAzAgCBRJwcmljZUFzc2V0SWRTdHJpbmcJAMwIAgUGYW1vdW50BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAJQKAgUDbmlsCQCUCgIFDnBvb2xTd2FwUmVzdWx0AglpTWVtZVBvb2wJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEc3dhcAIPY2FsbGVyUHVibGljS2V5BGFyZ3MEDWNhbGxlckFkZHJlc3MJAKcIAQUPY2FsbGVyUHVibGljS2V5BAtwb29sQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQRhcmdzAAAEEnByaWNlQXNzZXRJZFN0cmluZwkAkQMCBQRhcmdzAAEEDHByaWNlQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEFEnByaWNlQXNzZXRJZFN0cmluZwQNbWluaW11bUFtb3VudAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGFyZ3MAAgQNYXNzZXRJbkFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEDmFzc2V0SW5Bc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQEBmNoZWNrcwkAzAgCAwkBASEBBQhzaHV0ZG93bgYJAQh0aHJvd0VycgECElRlbXBvcmFyeSBzaHV0ZG93bgkAzAgCCQELbXVzdEZhY3RvcnkBCAUBaQZjYWxsZXIJAMwIAgMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEIdGhyb3dFcnIBAh9leGFjdGx5IG9uZSBwYXltZW50IGlzIGV4cGVjdGVkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEFW91dEFzc2V0QmFsYW5jZUJlZm9yZQkBCmdldEJhbGFuY2UCBQR0aGlzBQxwcmljZUFzc2V0SWQDCQAAAgUVb3V0QXNzZXRCYWxhbmNlQmVmb3JlBRVvdXRBc3NldEJhbGFuY2VCZWZvcmUECnN3YXBBY3Rpb24DCQETaXNQb29sVGFyZ2V0UmVhY2hlZAEFC3Bvb2xBZGRyZXNzCQD8BwQFDXd4U3dhcEFkZHJlc3MCBHN3YXAJAMwIAgUNbWluaW11bUFtb3VudAkAzAgCBRJwcmljZUFzc2V0SWRTdHJpbmcJAMwIAgkApQgBBQR0aGlzBQNuaWwIBQFpCHBheW1lbnRzCQD8BwQFC3Bvb2xBZGRyZXNzAgRzd2FwCQDMCAIFEnByaWNlQXNzZXRJZFN0cmluZwkAzAgCBQ1taW5pbXVtQW1vdW50BQNuaWwIBQFpCHBheW1lbnRzAwkAAAIFCnN3YXBBY3Rpb24FCnN3YXBBY3Rpb24EFG91dEFzc2V0QmFsYW5jZUFmdGVyCQEKZ2V0QmFsYW5jZQIFBHRoaXMFDHByaWNlQXNzZXRJZAMJAAACBRRvdXRBc3NldEJhbGFuY2VBZnRlcgUUb3V0QXNzZXRCYWxhbmNlQWZ0ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNY2FsbGVyQWRkcmVzcwkAZQIFFG91dEFzc2V0QmFsYW5jZUFmdGVyBRVvdXRBc3NldEJhbGFuY2VCZWZvcmUFDHByaWNlQXNzZXRJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDHRyYW5zZmVyUG9vbAIPY2FsbGVyUHVibGljS2V5BGFyZ3MEDWNhbGxlckFkZHJlc3MJAKcIAQUPY2FsbGVyUHVibGljS2V5BAtwb29sQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQRhcmdzAAAEFHBvb2xUb2tlbnNTdHJpbmdMaXN0CQC1CQIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC3Bvb2xBZGRyZXNzBQ9rUG9vbFRva2Vuc0xpc3QCASwEBmFzc2V0MQkBDHBhcnNlQXNzZXRJZAEJAJEDAgUUcG9vbFRva2Vuc1N0cmluZ0xpc3QAAAQGYXNzZXQyCQEMcGFyc2VBc3NldElkAQkAkQMCBRRwb29sVG9rZW5zU3RyaW5nTGlzdAABBA0kdDAxMTcyNTExODE3AwkAAAIFBmFzc2V0MQUEdW5pdAkAlAoCBQZhc3NldDIFBmFzc2V0MQkAlAoCBQZhc3NldDEFBmFzc2V0MgQJcG9vbEFzc2V0CAUNJHQwMTE3MjUxMTgxNwJfMQQKd2F2ZXNBc3NldAgFDSR0MDExNzI1MTE4MTcCXzIEFnBvb2xBc3NldEJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAgUOZmFjdG9yeUFkZHJlc3MFCXBvb2xBc3NldAMJAAACBRZwb29sQXNzZXRCYWxhbmNlQmVmb3JlBRZwb29sQXNzZXRCYWxhbmNlQmVmb3JlBBd3YXZlc0Fzc2V0QmFsYW5jZUJlZm9yZQkBCmdldEJhbGFuY2UCBQ5mYWN0b3J5QWRkcmVzcwUKd2F2ZXNBc3NldAMJAAACBRd3YXZlc0Fzc2V0QmFsYW5jZUJlZm9yZQUXd2F2ZXNBc3NldEJhbGFuY2VCZWZvcmUEDndpdGhkcmF3SW52b2tlCQD8BwQFDmZhY3RvcnlBZGRyZXNzAhl3aXRoZHJhd0xpcXVpZGl0eUZyb21Qb29sCQDMCAIIBQtwb29sQWRkcmVzcwVieXRlcwUDbmlsBQNuaWwDCQAAAgUOd2l0aGRyYXdJbnZva2UFDndpdGhkcmF3SW52b2tlBBVwb29sQXNzZXRCYWxhbmNlQWZ0ZXIJAQpnZXRCYWxhbmNlAgUOZmFjdG9yeUFkZHJlc3MFCXBvb2xBc3NldAMJAAACBRVwb29sQXNzZXRCYWxhbmNlQWZ0ZXIFFXBvb2xBc3NldEJhbGFuY2VBZnRlcgQWd2F2ZXNBc3NldEJhbGFuY2VBZnRlcgkBCmdldEJhbGFuY2UCBQ5mYWN0b3J5QWRkcmVzcwUKd2F2ZXNBc3NldAMJAAACBRZ3YXZlc0Fzc2V0QmFsYW5jZUFmdGVyBRZ3YXZlc0Fzc2V0QmFsYW5jZUFmdGVyBA9wb29sQXNzZXRBbW91bnQJAGUCBRVwb29sQXNzZXRCYWxhbmNlQWZ0ZXIFFnBvb2xBc3NldEJhbGFuY2VCZWZvcmUEC3dhdmVzQW1vdW50CQBlAgUWd2F2ZXNBc3NldEJhbGFuY2VBZnRlcgUXd2F2ZXNBc3NldEJhbGFuY2VCZWZvcmUDAwkAZgIFD3Bvb2xBc3NldEFtb3VudAAACQBmAgULd2F2ZXNBbW91bnQAAAcECmJ1cm5BbW91bnQJAGsDBQ9wb29sQXNzZXRBbW91bnQAFABkBApidXJuQWN0aW9uCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgRidXJuCQDMCAIFCXBvb2xBc3NldAkAzAgCBQpidXJuQW1vdW50BQNuaWwFA25pbAMJAAACBQpidXJuQWN0aW9uBQpidXJuQWN0aW9uBA5mZWVXYXZlc0Ftb3VudAkAawMFC3dhdmVzQW1vdW50ABQAZAQJZmVlQWN0aW9uCQD8BwQFDmZhY3RvcnlBZGRyZXNzAg10cmFuc2ZlcldhdmVzCQDMCAIIBRNmZWVDb2xsZWN0b3JBZGRyZXNzBWJ5dGVzCQDMCAIFDmZlZVdhdmVzQW1vdW50BQNuaWwFA25pbAMJAAACBQlmZWVBY3Rpb24FCWZlZUFjdGlvbgQTcmVnaXN0ZXJBc3NldEFjdGlvbgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwINcmVnaXN0ZXJBc3NldAkAzAgCCAURYXNzZXRTdG9yZUFkZHJlc3MFYnl0ZXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFCXBvb2xBc3NldAkAzAgCBQtkZWZhdWx0TG9nbwkAzAgCBgUDbmlsBQNuaWwDCQAAAgUTcmVnaXN0ZXJBc3NldEFjdGlvbgUTcmVnaXN0ZXJBc3NldEFjdGlvbgQSY3JlYXRlV3hQb29sQWN0aW9uCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxjcmVhdGVXeFBvb2wJAMwIAggFEHVzZXJQb29sc0FkZHJlc3MFYnl0ZXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFCXBvb2xBc3NldAkAzAgCCQBlAgUPcG9vbEFzc2V0QW1vdW50BQpidXJuQW1vdW50CQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQp3YXZlc0Fzc2V0CQDMCAIJAGUCBQt3YXZlc0Ftb3VudAUOZmVlV2F2ZXNBbW91bnQFA25pbAUDbmlsAwkAAAIFEmNyZWF0ZVd4UG9vbEFjdGlvbgUSY3JlYXRlV3hQb29sQWN0aW9uBAxjaGFuZ2VTdGF0dXMJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCCQELa1Bvb2xTdGF0dXMBCQEJZ2V0UG9vbElkAQULcG9vbEFkZHJlc3MJAMwIAgUSU1RBVFVTX1RSQU5TRkVSUkVEBQNuaWwFA25pbAMJAAACBQxjaGFuZ2VTdGF0dXMFDGNoYW5nZVN0YXR1cwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQEIdGhyb3dFcnIBAiV3aXRoZHJhd24gYW1vdW50IGZyb20gcG9vbCBpcyB0b28gbG93CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQTa2V5QWRtaW5BZGRyZXNzTGlzdAIUJXNfX2FkbWluQWRkcmVzc0xpc3QEDmtleUFsbG93ZWRUeElkAgglc19fdHhJZAQJYWRtaW5MaXN0CQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOZmFjdG9yeUFkZHJlc3MFE2tleUFkbWluQWRkcmVzc0xpc3QCAAICX18EB2J5T3duZXIDCQBnAgkAkAMBBQlhZG1pbkxpc3QAAwcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkECGJ5QWRtaW5zCQAAAggFAnR4AmlkCQDZBAEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOZmFjdG9yeUFkZHJlc3MFDmtleUFsbG93ZWRUeElkAgADBQhieUFkbWlucwYFB2J5T3duZXJaS9ne", "height": 3422603, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EeYZr3JEPQMVjbjCrts3MtHWWu44bxJ2MN6wstdLHtJN Next: FZEFZsaSqaXyKCvpy8vzwP5SLByaLqgMypait27tGBq1 Diff:
OldNewDifferences
197197
198198
199199 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")
200+ let as = makeString(["%s%s%s", "status", aq, ar], a)
201+ let at = valueOrElse(getString(P, as), "")
202+ (at == "active")
205203 }
206204
207205
208-@Callable(aw)
209-func init (ax) = {
210- let ay = ae(aw.caller)
211- if ((ay == ay))
212- then [StringEntry(D, ax)]
206+@Callable(au)
207+func init (av) = {
208+ let aw = ae(au.caller)
209+ if ((aw == aw))
210+ then [StringEntry(D, av)]
213211 else throw("Strict value is not equal to itself.")
214212 }
215213
216214
217215
218-@Callable(aw)
219-func addEmptyPool (az,aA) = {
220- let aB = addressFromPublicKey(az)
221- let aC = (U + 1)
222- let aD = [if (!(T))
216+@Callable(au)
217+func addEmptyPool (ax,ay) = {
218+ let az = addressFromPublicKey(ax)
219+ let aA = (U + 1)
220+ let aB = [if (!(T))
223221 then true
224- else g("not allowed (shutdown)"), if (ag(aB))
222+ else g("not allowed (shutdown)"), if (ag(az))
225223 then true
226- else g("pool script is not allowed"), if (!(ai(aB)))
224+ else g("pool script is not allowed"), if (!(ai(az)))
227225 then true
228226 else g("pool address is already registered")]
229- if ((aD == aD))
227+ if ((aB == aB))
230228 then {
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)
229+ let aC = [invoke(G, "integerEntry", [w, aA], nil), invoke(G, "stringEntry", [y(aA), toString(az)], nil), invoke(G, "integerEntry", [A(az), aA], nil), invoke(G, "integerEntry", [C(aA), j], nil)]
230+ $Tuple2(nil, aC)
233231 }
234232 else throw("Strict value is not equal to itself.")
235233 }
236234
237235
238236
239-@Callable(aw)
240-func createPool (az,aA) = {
241- let aF = (W + X)
242- let aD = [if (!(T))
237+@Callable(au)
238+func createPool (ax,ay) = {
239+ let aD = (W + X)
240+ let aB = [if (!(T))
243241 then true
244- else g("Temporary shutdown"), af(aw.caller), if (((U - V) > 0))
242+ else g("Temporary shutdown"), af(au.caller), if (((U - V) > 0))
245243 then true
246- else g("No empty pool available"), if ((aw.payments[0].assetId == unit))
244+ else g("No empty pool available"), if ((au.payments[0].assetId == unit))
247245 then true
248- else g("Payment should be in WAVES"), if ((aw.payments[0].amount >= aF))
246+ else g("Payment should be in WAVES"), if ((au.payments[0].amount >= aD))
249247 then true
250- else g((("Payment should be greater or equal " + toString(aF)) + " WAVELET")), if (isDefined(aA[0]))
248+ else g((("Payment should be greater or equal " + toString(aD)) + " WAVELET")), if (isDefined(ay[0]))
251249 then true
252- else g("Token name is not provided"), if (isDefined(aA[1]))
250+ else g("Token name is not provided"), if (isDefined(ay[1]))
253251 then true
254- else g("Token description is not provided"), if (isDefined(aA[2]))
252+ else g("Token description is not provided"), if (isDefined(ay[2]))
255253 then true
256- else g("Token quantity is not provided"), if ((parseInt(aA[2]) != unit))
254+ else g("Token quantity is not provided"), if ((parseInt(ay[2]) != unit))
257255 then true
258256 else g("Token quantity should be a number")]
259- if ((aD == aD))
257+ if ((aB == aB))
260258 then {
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))
259+ let aE = (V + 1)
260+ let aF = getStringValue(G, y(aE))
261+ let aj = addressFromStringValue(aF)
262+ let aG = addressFromPublicKey(ax)
263+ let aH = take(aF, 8)
264+ let aI = toString(aG)
265+ let aJ = ay[0]
266+ let aK = ay[1]
267+ let aL = ay[2]
268+ let aM = invoke(G, "initPoolInvoke", [aF, [aH, aI, aJ, aK, aL]], [AttachedPayment(au.payments[0].assetId, au.payments[0].amount)])
269+ if ((aM == aM))
272270 then {
273- let aE = [invoke(G, "integerEntry", [x, aG], nil), invoke(G, "integerEntry", [C(aG), k], nil)]
274- $Tuple2(nil, aE)
271+ let aC = [invoke(G, "integerEntry", [x, aE], nil), invoke(G, "integerEntry", [C(aE), k], nil)]
272+ $Tuple2(nil, aC)
275273 }
276274 else throw("Strict value is not equal to itself.")
277275 }
280278
281279
282280
283-@Callable(aw)
284-func notifyStatusUpdate (az,aA) = {
285- let aj = addressFromPublicKey(az)
286- let aD = [if (ai(aj))
281+@Callable(au)
282+func notifyStatusUpdate (ax,ay) = {
283+ let aj = addressFromPublicKey(ax)
284+ let aB = [if (ai(aj))
287285 then true
288- else g("pool not found"), af(aw.caller)]
289- if ((aD == aD))
286+ else g("pool not found"), af(au.caller)]
287+ if ((aB == aB))
290288 then {
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)
289+ let aE = getIntegerValue(G, A(aj))
290+ let aN = parseIntValue(ay[0])
291+ let aC = [invoke(G, "integerEntry", [C(aE), aN], nil)]
292+ $Tuple2(nil, aC)
295293 }
296294 else throw("Strict value is not equal to itself.")
297295 }
298296
299297
300298
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))
299+@Callable(au)
300+func isWxSwapActiveREADONLY (ax,ay) = {
301+ let aO = ay[1]
302+ let aP = ay[2]
303+ let aB = [af(au.caller)]
304+ if ((aB == aB))
305+ then $Tuple2(nil, ap(aO, aP))
306+ else throw("Strict value is not equal to itself.")
307+ }
308+
309+
310+
311+@Callable(au)
312+func swapREADONLY (ax,ay) = {
313+ let aj = addressFromStringValue(ay[0])
314+ let aO = ay[1]
315+ let aP = ay[2]
316+ let aQ = parseIntValue(ay[3])
317+ let aB = [if (!(T))
308318 then true
309- else g("Temporary shutdown"), af(aw.caller)]
310- if ((aD == aD))
319+ else g("Temporary shutdown"), af(au.caller)]
320+ if ((aB == aB))
311321 then if (al(aj))
312322 then {
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"))
323+ let aR = {
324+ let aS = invoke(J, "swapCalculateREADONLY", [aQ, aO, aP], nil)
325+ if ($isInstanceOf(aS, "Int"))
326+ then aS
327+ else throw(($getType(aS) + " couldn't be cast to Int"))
318328 }
319- $Tuple2(nil, $Tuple2(aT, "WxSwap"))
329+ $Tuple2(nil, $Tuple2(aR, "WxSwap"))
320330 }
321331 else {
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"))
332+ let aT = {
333+ let aS = invoke(aj, "swapReadOnly", [aO, aP, aQ], nil)
334+ if ($isInstanceOf(aS, "Int"))
335+ then aS
336+ else throw(($getType(aS) + " couldn't be cast to Int"))
327337 }
328- $Tuple2(nil, $Tuple2(aV, "iMemePool"))
338+ $Tuple2(nil, $Tuple2(aT, "iMemePool"))
329339 }
330340 else throw("Strict value is not equal to itself.")
331341 }
332342
333343
334344
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))
345+@Callable(au)
346+func swap (ax,ay) = {
347+ let aG = addressFromPublicKey(ax)
348+ let aj = addressFromStringValue(ay[0])
349+ let aP = ay[1]
350+ let aU = Z(aP)
351+ let aV = parseIntValue(ay[2])
352+ let aW = au.payments[0].amount
353+ let aX = au.payments[0].assetId
354+ let aB = [if (!(T))
345355 then true
346- else g("Temporary shutdown"), af(aw.caller), if ((size(aw.payments) == 1))
356+ else g("Temporary shutdown"), af(au.caller), if ((size(au.payments) == 1))
347357 then true
348358 else g("exactly one payment is expected")]
349- if ((aD == aD))
359+ if ((aB == aB))
350360 then {
351- let ba = am(this, aW)
352- if ((ba == ba))
361+ let aY = am(this, aU)
362+ if ((aY == aY))
353363 then {
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))
364+ let aZ = if (al(aj))
365+ then invoke(J, "swap", [aV, aP, toString(this)], au.payments)
366+ else invoke(aj, "swap", [aP, aV], au.payments)
367+ if ((aZ == aZ))
358368 then {
359- let bc = am(this, aW)
360- if ((bc == bc))
361- then [ScriptTransfer(aI, (bc - ba), aW)]
369+ let ba = am(this, aU)
370+ if ((ba == ba))
371+ then [ScriptTransfer(aG, (ba - aY), aU)]
362372 else throw("Strict value is not equal to itself.")
363373 }
364374 else throw("Strict value is not equal to itself.")
370380
371381
372382
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))
383+@Callable(au)
384+func transferPool (ax,ay) = {
385+ let aG = addressFromPublicKey(ax)
386+ let aj = addressFromStringValue(ay[0])
387+ let bb = split(getStringValue(aj, u), ",")
388+ let bc = Z(bb[0])
389+ let bd = Z(bb[1])
390+ let be = if ((bc == unit))
391+ then $Tuple2(bd, bc)
392+ else $Tuple2(bc, bd)
393+ let bf = be._1
394+ let bg = be._2
395+ let bh = am(G, bf)
396+ if ((bh == bh))
387397 then {
388- let bk = am(G, bi)
389- if ((bk == bk))
398+ let bi = am(G, bg)
399+ if ((bi == bi))
390400 then {
391- let bl = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
392- if ((bl == bl))
401+ let bj = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
402+ if ((bj == bj))
393403 then {
394- let bm = am(G, bh)
395- if ((bm == bm))
404+ let bk = am(G, bf)
405+ if ((bk == bk))
396406 then {
397- let bn = am(G, bi)
398- if ((bn == bn))
407+ let bl = am(G, bg)
408+ if ((bl == bl))
399409 then {
400- let bo = (bm - bj)
401- let bp = (bn - bk)
402- if (if ((bo > 0))
403- then (bp > 0)
410+ let bm = (bk - bh)
411+ let bn = (bl - bi)
412+ if (if ((bm > 0))
413+ then (bn > 0)
404414 else false)
405415 then {
406- let bq = fraction(bo, 20, 100)
407- let br = invoke(G, "burn", [bh, bq], nil)
408- if ((br == br))
416+ let bo = fraction(bm, 20, 100)
417+ let bp = invoke(G, "burn", [bf, bo], nil)
418+ if ((bp == bp))
409419 then {
410- let bs = fraction(bp, 20, 100)
411- let bt = invoke(G, "transferWaves", [M.bytes, bs], nil)
412- if ((bt == bt))
420+ let bq = fraction(bn, 20, 100)
421+ let br = invoke(G, "transferWaves", [M.bytes, bq], nil)
422+ if ((br == br))
413423 then {
414- let bu = invoke(G, "registerAsset", [S.bytes, ab(bh), n, true], nil)
415- if ((bu == bu))
424+ let bs = invoke(G, "registerAsset", [S.bytes, ab(bf), n, true], nil)
425+ if ((bs == bs))
416426 then {
417- let bv = invoke(G, "createWxPool", [P.bytes, ab(bh), (bo - bq), ab(bi), (bp - bs)], nil)
418- if ((bv == bv))
427+ let bt = invoke(G, "createWxPool", [P.bytes, ab(bf), (bm - bo), ab(bg), (bn - bq)], nil)
428+ if ((bt == bt))
419429 then {
420- let bw = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
421- if ((bw == bw))
430+ let bu = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
431+ if ((bu == bu))
422432 then nil
423433 else throw("Strict value is not equal to itself.")
424434 }
444454 }
445455
446456
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))
457+@Verifier(bv)
458+func bw () = {
459+ let bx = "%s__adminAddressList"
460+ let by = "%s__txId"
461+ let bz = split(valueOrElse(getString(G, bx), ""), "__")
462+ let bA = if ((size(bz) >= 3))
453463 then false
454- else sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey)
455- let bD = (bx.id == fromBase58String(valueOrElse(getString(G, bA), "")))
456- if (bD)
464+ else sigVerify(bv.bodyBytes, bv.proofs[0], bv.senderPublicKey)
465+ let bB = (bv.id == fromBase58String(valueOrElse(getString(G, by), "")))
466+ if (bB)
457467 then true
458- else bC
468+ else bA
459469 }
460470
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
199199 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")
200+ let as = makeString(["%s%s%s", "status", aq, ar], a)
201+ let at = valueOrElse(getString(P, as), "")
202+ (at == "active")
205203 }
206204
207205
208-@Callable(aw)
209-func init (ax) = {
210- let ay = ae(aw.caller)
211- if ((ay == ay))
212- then [StringEntry(D, ax)]
206+@Callable(au)
207+func init (av) = {
208+ let aw = ae(au.caller)
209+ if ((aw == aw))
210+ then [StringEntry(D, av)]
213211 else throw("Strict value is not equal to itself.")
214212 }
215213
216214
217215
218-@Callable(aw)
219-func addEmptyPool (az,aA) = {
220- let aB = addressFromPublicKey(az)
221- let aC = (U + 1)
222- let aD = [if (!(T))
216+@Callable(au)
217+func addEmptyPool (ax,ay) = {
218+ let az = addressFromPublicKey(ax)
219+ let aA = (U + 1)
220+ let aB = [if (!(T))
223221 then true
224- else g("not allowed (shutdown)"), if (ag(aB))
222+ else g("not allowed (shutdown)"), if (ag(az))
225223 then true
226- else g("pool script is not allowed"), if (!(ai(aB)))
224+ else g("pool script is not allowed"), if (!(ai(az)))
227225 then true
228226 else g("pool address is already registered")]
229- if ((aD == aD))
227+ if ((aB == aB))
230228 then {
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)
229+ let aC = [invoke(G, "integerEntry", [w, aA], nil), invoke(G, "stringEntry", [y(aA), toString(az)], nil), invoke(G, "integerEntry", [A(az), aA], nil), invoke(G, "integerEntry", [C(aA), j], nil)]
230+ $Tuple2(nil, aC)
233231 }
234232 else throw("Strict value is not equal to itself.")
235233 }
236234
237235
238236
239-@Callable(aw)
240-func createPool (az,aA) = {
241- let aF = (W + X)
242- let aD = [if (!(T))
237+@Callable(au)
238+func createPool (ax,ay) = {
239+ let aD = (W + X)
240+ let aB = [if (!(T))
243241 then true
244- else g("Temporary shutdown"), af(aw.caller), if (((U - V) > 0))
242+ else g("Temporary shutdown"), af(au.caller), if (((U - V) > 0))
245243 then true
246- else g("No empty pool available"), if ((aw.payments[0].assetId == unit))
244+ else g("No empty pool available"), if ((au.payments[0].assetId == unit))
247245 then true
248- else g("Payment should be in WAVES"), if ((aw.payments[0].amount >= aF))
246+ else g("Payment should be in WAVES"), if ((au.payments[0].amount >= aD))
249247 then true
250- else g((("Payment should be greater or equal " + toString(aF)) + " WAVELET")), if (isDefined(aA[0]))
248+ else g((("Payment should be greater or equal " + toString(aD)) + " WAVELET")), if (isDefined(ay[0]))
251249 then true
252- else g("Token name is not provided"), if (isDefined(aA[1]))
250+ else g("Token name is not provided"), if (isDefined(ay[1]))
253251 then true
254- else g("Token description is not provided"), if (isDefined(aA[2]))
252+ else g("Token description is not provided"), if (isDefined(ay[2]))
255253 then true
256- else g("Token quantity is not provided"), if ((parseInt(aA[2]) != unit))
254+ else g("Token quantity is not provided"), if ((parseInt(ay[2]) != unit))
257255 then true
258256 else g("Token quantity should be a number")]
259- if ((aD == aD))
257+ if ((aB == aB))
260258 then {
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))
259+ let aE = (V + 1)
260+ let aF = getStringValue(G, y(aE))
261+ let aj = addressFromStringValue(aF)
262+ let aG = addressFromPublicKey(ax)
263+ let aH = take(aF, 8)
264+ let aI = toString(aG)
265+ let aJ = ay[0]
266+ let aK = ay[1]
267+ let aL = ay[2]
268+ let aM = invoke(G, "initPoolInvoke", [aF, [aH, aI, aJ, aK, aL]], [AttachedPayment(au.payments[0].assetId, au.payments[0].amount)])
269+ if ((aM == aM))
272270 then {
273- let aE = [invoke(G, "integerEntry", [x, aG], nil), invoke(G, "integerEntry", [C(aG), k], nil)]
274- $Tuple2(nil, aE)
271+ let aC = [invoke(G, "integerEntry", [x, aE], nil), invoke(G, "integerEntry", [C(aE), k], nil)]
272+ $Tuple2(nil, aC)
275273 }
276274 else throw("Strict value is not equal to itself.")
277275 }
278276 else throw("Strict value is not equal to itself.")
279277 }
280278
281279
282280
283-@Callable(aw)
284-func notifyStatusUpdate (az,aA) = {
285- let aj = addressFromPublicKey(az)
286- let aD = [if (ai(aj))
281+@Callable(au)
282+func notifyStatusUpdate (ax,ay) = {
283+ let aj = addressFromPublicKey(ax)
284+ let aB = [if (ai(aj))
287285 then true
288- else g("pool not found"), af(aw.caller)]
289- if ((aD == aD))
286+ else g("pool not found"), af(au.caller)]
287+ if ((aB == aB))
290288 then {
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)
289+ let aE = getIntegerValue(G, A(aj))
290+ let aN = parseIntValue(ay[0])
291+ let aC = [invoke(G, "integerEntry", [C(aE), aN], nil)]
292+ $Tuple2(nil, aC)
295293 }
296294 else throw("Strict value is not equal to itself.")
297295 }
298296
299297
300298
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))
299+@Callable(au)
300+func isWxSwapActiveREADONLY (ax,ay) = {
301+ let aO = ay[1]
302+ let aP = ay[2]
303+ let aB = [af(au.caller)]
304+ if ((aB == aB))
305+ then $Tuple2(nil, ap(aO, aP))
306+ else throw("Strict value is not equal to itself.")
307+ }
308+
309+
310+
311+@Callable(au)
312+func swapREADONLY (ax,ay) = {
313+ let aj = addressFromStringValue(ay[0])
314+ let aO = ay[1]
315+ let aP = ay[2]
316+ let aQ = parseIntValue(ay[3])
317+ let aB = [if (!(T))
308318 then true
309- else g("Temporary shutdown"), af(aw.caller)]
310- if ((aD == aD))
319+ else g("Temporary shutdown"), af(au.caller)]
320+ if ((aB == aB))
311321 then if (al(aj))
312322 then {
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"))
323+ let aR = {
324+ let aS = invoke(J, "swapCalculateREADONLY", [aQ, aO, aP], nil)
325+ if ($isInstanceOf(aS, "Int"))
326+ then aS
327+ else throw(($getType(aS) + " couldn't be cast to Int"))
318328 }
319- $Tuple2(nil, $Tuple2(aT, "WxSwap"))
329+ $Tuple2(nil, $Tuple2(aR, "WxSwap"))
320330 }
321331 else {
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"))
332+ let aT = {
333+ let aS = invoke(aj, "swapReadOnly", [aO, aP, aQ], nil)
334+ if ($isInstanceOf(aS, "Int"))
335+ then aS
336+ else throw(($getType(aS) + " couldn't be cast to Int"))
327337 }
328- $Tuple2(nil, $Tuple2(aV, "iMemePool"))
338+ $Tuple2(nil, $Tuple2(aT, "iMemePool"))
329339 }
330340 else throw("Strict value is not equal to itself.")
331341 }
332342
333343
334344
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))
345+@Callable(au)
346+func swap (ax,ay) = {
347+ let aG = addressFromPublicKey(ax)
348+ let aj = addressFromStringValue(ay[0])
349+ let aP = ay[1]
350+ let aU = Z(aP)
351+ let aV = parseIntValue(ay[2])
352+ let aW = au.payments[0].amount
353+ let aX = au.payments[0].assetId
354+ let aB = [if (!(T))
345355 then true
346- else g("Temporary shutdown"), af(aw.caller), if ((size(aw.payments) == 1))
356+ else g("Temporary shutdown"), af(au.caller), if ((size(au.payments) == 1))
347357 then true
348358 else g("exactly one payment is expected")]
349- if ((aD == aD))
359+ if ((aB == aB))
350360 then {
351- let ba = am(this, aW)
352- if ((ba == ba))
361+ let aY = am(this, aU)
362+ if ((aY == aY))
353363 then {
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))
364+ let aZ = if (al(aj))
365+ then invoke(J, "swap", [aV, aP, toString(this)], au.payments)
366+ else invoke(aj, "swap", [aP, aV], au.payments)
367+ if ((aZ == aZ))
358368 then {
359- let bc = am(this, aW)
360- if ((bc == bc))
361- then [ScriptTransfer(aI, (bc - ba), aW)]
369+ let ba = am(this, aU)
370+ if ((ba == ba))
371+ then [ScriptTransfer(aG, (ba - aY), aU)]
362372 else throw("Strict value is not equal to itself.")
363373 }
364374 else throw("Strict value is not equal to itself.")
365375 }
366376 else throw("Strict value is not equal to itself.")
367377 }
368378 else throw("Strict value is not equal to itself.")
369379 }
370380
371381
372382
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))
383+@Callable(au)
384+func transferPool (ax,ay) = {
385+ let aG = addressFromPublicKey(ax)
386+ let aj = addressFromStringValue(ay[0])
387+ let bb = split(getStringValue(aj, u), ",")
388+ let bc = Z(bb[0])
389+ let bd = Z(bb[1])
390+ let be = if ((bc == unit))
391+ then $Tuple2(bd, bc)
392+ else $Tuple2(bc, bd)
393+ let bf = be._1
394+ let bg = be._2
395+ let bh = am(G, bf)
396+ if ((bh == bh))
387397 then {
388- let bk = am(G, bi)
389- if ((bk == bk))
398+ let bi = am(G, bg)
399+ if ((bi == bi))
390400 then {
391- let bl = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
392- if ((bl == bl))
401+ let bj = invoke(G, "withdrawLiquidityFromPool", [aj.bytes], nil)
402+ if ((bj == bj))
393403 then {
394- let bm = am(G, bh)
395- if ((bm == bm))
404+ let bk = am(G, bf)
405+ if ((bk == bk))
396406 then {
397- let bn = am(G, bi)
398- if ((bn == bn))
407+ let bl = am(G, bg)
408+ if ((bl == bl))
399409 then {
400- let bo = (bm - bj)
401- let bp = (bn - bk)
402- if (if ((bo > 0))
403- then (bp > 0)
410+ let bm = (bk - bh)
411+ let bn = (bl - bi)
412+ if (if ((bm > 0))
413+ then (bn > 0)
404414 else false)
405415 then {
406- let bq = fraction(bo, 20, 100)
407- let br = invoke(G, "burn", [bh, bq], nil)
408- if ((br == br))
416+ let bo = fraction(bm, 20, 100)
417+ let bp = invoke(G, "burn", [bf, bo], nil)
418+ if ((bp == bp))
409419 then {
410- let bs = fraction(bp, 20, 100)
411- let bt = invoke(G, "transferWaves", [M.bytes, bs], nil)
412- if ((bt == bt))
420+ let bq = fraction(bn, 20, 100)
421+ let br = invoke(G, "transferWaves", [M.bytes, bq], nil)
422+ if ((br == br))
413423 then {
414- let bu = invoke(G, "registerAsset", [S.bytes, ab(bh), n, true], nil)
415- if ((bu == bu))
424+ let bs = invoke(G, "registerAsset", [S.bytes, ab(bf), n, true], nil)
425+ if ((bs == bs))
416426 then {
417- let bv = invoke(G, "createWxPool", [P.bytes, ab(bh), (bo - bq), ab(bi), (bp - bs)], nil)
418- if ((bv == bv))
427+ let bt = invoke(G, "createWxPool", [P.bytes, ab(bf), (bm - bo), ab(bg), (bn - bq)], nil)
428+ if ((bt == bt))
419429 then {
420- let bw = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
421- if ((bw == bw))
430+ let bu = invoke(G, "integerEntry", [C(ak(aj)), m], nil)
431+ if ((bu == bu))
422432 then nil
423433 else throw("Strict value is not equal to itself.")
424434 }
425435 else throw("Strict value is not equal to itself.")
426436 }
427437 else throw("Strict value is not equal to itself.")
428438 }
429439 else throw("Strict value is not equal to itself.")
430440 }
431441 else throw("Strict value is not equal to itself.")
432442 }
433443 else g("withdrawn amount from pool is too low")
434444 }
435445 else throw("Strict value is not equal to itself.")
436446 }
437447 else throw("Strict value is not equal to itself.")
438448 }
439449 else throw("Strict value is not equal to itself.")
440450 }
441451 else throw("Strict value is not equal to itself.")
442452 }
443453 else throw("Strict value is not equal to itself.")
444454 }
445455
446456
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))
457+@Verifier(bv)
458+func bw () = {
459+ let bx = "%s__adminAddressList"
460+ let by = "%s__txId"
461+ let bz = split(valueOrElse(getString(G, bx), ""), "__")
462+ let bA = if ((size(bz) >= 3))
453463 then false
454- else sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey)
455- let bD = (bx.id == fromBase58String(valueOrElse(getString(G, bA), "")))
456- if (bD)
464+ else sigVerify(bv.bodyBytes, bv.proofs[0], bv.senderPublicKey)
465+ let bB = (bv.id == fromBase58String(valueOrElse(getString(G, by), "")))
466+ if (bB)
457467 then true
458- else bC
468+ else bA
459469 }
460470

github/deemru/w8io/169f3d6 
110.85 ms