tx · 5mkHELsuHKqFZfKRjrRVr3JwnaueT4Jxi1bZRsSLUx1b

3MtsXxXqERvHEmkPiiuBESuixd9Y8qAU1PC:  -0.14000000 Waves

2022.12.23 12:46 [2372765] smart account 3MtsXxXqERvHEmkPiiuBESuixd9Y8qAU1PC > SELF 0.00000000 Waves

{ "type": 13, "id": "5mkHELsuHKqFZfKRjrRVr3JwnaueT4Jxi1bZRsSLUx1b", "fee": 14000000, "feeAssetId": null, "timestamp": 1671788781592, "version": 2, "chainId": 84, "sender": "3MtsXxXqERvHEmkPiiuBESuixd9Y8qAU1PC", "senderPublicKey": "EBCSQaTtuxQBJyc62F142LxJ3hpQtCwuZ2z9kkoe6Vvt", "proofs": [ "5w5n1WyrcvVJoSKNGpRwp5djCtMqo7BqDEM5LSto1XPUKZoymUGxGiVq472SZK3j9QqgHFNkb1h8jFp1yZvDFyCY", "44FEBTu1CoFA3aFtpU41h31T6NrF2rb4ZLgRy25EoYT1fagDuymbaskNNtrWTNbeTQLjEJPKXZmJWVYLFjCqy4eK" ], "script": "base64:BgIbCAISABIECgIICBIFCgMBBAESBAoCAQgSABIAQAAGb3JhY2xlCQEHQWRkcmVzcwEBGgFUSBOXDMDTM8wlMoC2KfenZGiAq+PMe0uZAAd2ZXJzaW9uAgUxLjAuMAAIa1ZlcnNpb24CB3ZlcnNpb24AB2tBY3RpdmUCBmFjdGl2ZQALa0FjdGl2ZUdsb2ICFGFjdGl2ZV9hbGxfY29udHJhY3RzAA9rTnVtYmVyT2ZWb3RpbmcCFHZvdGluZ19hY3RpdmVfbnVtYmVyAA1rSGVpZ2h0T2ZQb29sAg5fZmluaXNoX2hlaWdodAADa05vAg9fdG90YWxfdm90ZXNfbm8ABGtZZXMCEF90b3RhbF92b3Rlc195ZXMAB2tOb1VzZXICCF92b3RlX25vAAhrWWVzVXNlcgIJX3ZvdGVfeWVzAA9rU3RhdHVzT2ZWb3RpbmcCB19zdGF0dXMAD2tBbW91bnRPZlZvdGluZwIOdm90aW5nX2lkX2xhc3QAEmtNYXhBbW91bnRPZlZvdGluZwIRbWF4X2Ftb3VudF92b3RpbmcAD2tNYXhEYXlPZlZvdGluZwIObWF4X2RheV92b3RpbmcABmtDYXVzZQIOc2h1dGRvd25fY2F1c2UADGtDYW5jZWxDYXVzZQINX2NhbmNlbF9jYXVzZQAOa1VzZXJUb3RhbFNXT1ACDF9TV09QX2Ftb3VudAAPa1VzZXJUb3RhbEdTV09QAg1fR1N3b3BfYW1vdW50AAVrTmFtZQILX2Fzc2V0X25hbWUACHZvdGluZ0lkAgdfdm90aW5nAA9hY3RpdmVWb3RlRmlyc3QCFHZvdGluZ19hY3RpdmVfY2VsbF8xABBhY3RpdmVWb3RlU2Vjb25kAhR2b3RpbmdfYWN0aXZlX2NlbGxfMgAPYWN0aXZlVm90ZVRoaXJkAhR2b3RpbmdfYWN0aXZlX2NlbGxfMwANa0FkbWluUHViS2V5MQILYWRtaW5fcHViXzEADWtBZG1pblB1YktleTICC2FkbWluX3B1Yl8yAA1rQWRtaW5QdWJLZXkzAgthZG1pbl9wdWJfMwAQa01vbmV5Qm94QWRkcmVzcwIRbW9uZXlfYm94X2FkZHJlc3MAC2tHb3ZBZGRyZXNzAhJnb3Zlcm5hbmNlX2FkZHJlc3MADGtGYXJtaW5nQWRkcgIPZmFybWluZ19hZGRyZXNzAAxrVVNETkFzc2V0SWQCDXVzZG5fYXNzZXRfaWQAB2tTV09QaWQCB1NXT1BfaWQADm51bWJlck9mVm90aW5nCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQ9rTnVtYmVyT2ZWb3RpbmcADmFtb3VudE9mVm90aW5nCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQ9rQW1vdW50T2ZWb3RpbmcAD2ZpcnN0QWN0aXZlVm90ZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQ9hY3RpdmVWb3RlRmlyc3QCAAAQc2Vjb25kQWN0aXZlVm90ZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBRBhY3RpdmVWb3RlU2Vjb25kAgAAD3RoaXJkQWN0aXZlVm90ZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQ9hY3RpdmVWb3RlVGhpcmQCAAAGYWN0aXZlCQERQGV4dHJOYXRpdmUoMTA1MSkCBQR0aGlzBQdrQWN0aXZlAAphY3RpdmVHbG9iCQELdmFsdWVPckVsc2UCCQCbCAIFBm9yYWNsZQULa0FjdGl2ZUdsb2IGACFjb21pc3Npb25Gb3JJbml0YWxpemF0aW9uT2ZWb3RpbmcAgJTr3AMAEW1heEFtb3VudE9mVm90aW5nAAMADm1heERheU9mVm90aW5nAAcAEnZvdGluZ1BlcmlvZExlbmd0aAkAaAIAowsFDm1heERheU9mVm90aW5nARNnZXRCYXNlNThGcm9tT3JhY2xlAQNrZXkEByRtYXRjaDAJAJ0IAgUGb3JhY2xlBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQkArAICBQNrZXkCCGlzIGVtcHR5AAxhZG1pblB1YktleTEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MQAMYWRtaW5QdWJLZXkyCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTIADGFkbWluUHViS2V5MwkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkzAApnb3ZBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQULa0dvdkFkZHJlc3MAC2Zhcm1pbmdBZGRyCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0Zhcm1pbmdBZGRyAA9tb25leUJveEFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRBrTW9uZXlCb3hBZGRyZXNzAARVU0ROCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtVU0ROQXNzZXRJZAAEU1dPUAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCBQtmYXJtaW5nQWRkcgUHa1NXT1BpZAEIaXNBY3RpdmUAAwMFBmFjdGl2ZQUKYWN0aXZlR2xvYgcFBHVuaXQJAAIBAh9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AQtpc0FkbWluQ2FsbAEBaQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQUEdW5pdAkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEMZ2V0QXNzZXRJbmZvAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwAwkBCWlzRGVmaW5lZAEJAOwHAQUCaWQECHN0cmluZ0lkCQDYBAEFAmlkBARpbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCaWQJAKwCAgkArAICAgZBc3NldCAFCHN0cmluZ0lkAg4gZG9lc24ndCBleGlzdAkAlQoDBQhzdHJpbmdJZAgFBGluZm8EbmFtZQgFBGluZm8IZGVjaW1hbHMJAAIBAhRBc3NldCBpcyBub3QgZGVmaW5lZAMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAkAlQoDAgVXQVZFUwIFV0FWRVMACAkAAgECC01hdGNoIGVycm9yARJpc0FjdGl2ZVBvb2xFeGlzdHMDBXBvb2xzBmFzc2V0QQZhc3NldEIECXBvb2xzRGF0YQkAtQkCBQVwb29scwIBXwQMaXNQb29sRGVmaW5lCQEJaXNEZWZpbmVkAQkAmggCBQR0aGlzBQVwb29scwMDBQxpc1Bvb2xEZWZpbmUJAQIhPQIFBXBvb2xzAgAHBAZ2b3RpbmcJAJEDAgUJcG9vbHNEYXRhAAIECG5ld1Bvb2xzCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUGYXNzZXRBAgFfBQZhc3NldEICAV8FBnZvdGluZwUIdm90aW5nSWQED2lzTmV3UG9vbERlZmluZQkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwUIbmV3UG9vbHMEDmhlaWdodE9mVm90aW5nCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUGdm90aW5nBQ1rSGVpZ2h0T2ZQb29sAAAEDnN0YXR1c09mVm90aW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMJAKwCAgUGdm90aW5nBQ9rU3RhdHVzT2ZWb3RpbmcGAwUPaXNOZXdQb29sRGVmaW5lAwkAZgIFDmhlaWdodE9mVm90aW5nBQZoZWlnaHQDBQ5zdGF0dXNPZlZvdGluZwYHBwcHARRpc1VuYWN0aXZlUG9vbEV4aXN0cwEKcG9vbHNTdGF0ZQQFcG9vbHMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKcG9vbHNTdGF0ZQIABAlwb29sc0RhdGEJALUJAgUFcG9vbHMCAV8EDGlzUG9vbERlZmluZQkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwUFcG9vbHMDAwUMaXNQb29sRGVmaW5lCQECIT0CBQVwb29scwIABwQGdm90aW5nCQCRAwIFCXBvb2xzRGF0YQACBA5oZWlnaHRPZlZvdGluZwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBnZvdGluZwUNa0hlaWdodE9mUG9vbAAABA5zdGF0dXNPZlZvdGluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzCQCsAgIFBnZvdGluZwUPa1N0YXR1c09mVm90aW5nBgMJAGYCBQ5oZWlnaHRPZlZvdGluZwUGaGVpZ2h0AwUOc3RhdHVzT2ZWb3RpbmcCAAUKcG9vbHNTdGF0ZQUKcG9vbHNTdGF0ZQUKcG9vbHNTdGF0ZQEWaXNMYXN0QWN0aXZlUG9vbEV4aXN0cwIGYXNzZXRBBmFzc2V0QgMDCQESaXNBY3RpdmVQb29sRXhpc3RzAwUPZmlyc3RBY3RpdmVWb3RlBQZhc3NldEEFBmFzc2V0QgYJARJpc0FjdGl2ZVBvb2xFeGlzdHMDBRBzZWNvbmRBY3RpdmVWb3RlBQZhc3NldEEFBmFzc2V0QgYJARJpc0FjdGl2ZVBvb2xFeGlzdHMDBQ90aGlyZEFjdGl2ZVZvdGUFBmFzc2V0QQUGYXNzZXRCAQ1nZXRBY3RpdmVQb29sAQZ2b3RpbmcEDmhlaWdodE9mVm90aW5nCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkApAMBBQZ2b3RpbmcFDWtIZWlnaHRPZlBvb2wAAAQOc3RhdHVzT2ZWb3RpbmcJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkArAICCQCkAwEFBnZvdGluZwUPa1N0YXR1c09mVm90aW5nBgQNY3VycmVudEhlaWdodAUGaGVpZ2h0AwkAZgIAAAUGdm90aW5nAAADCQEBIQEFDnN0YXR1c09mVm90aW5nAAADCQBmAgUOaGVpZ2h0T2ZWb3RpbmcFDWN1cnJlbnRIZWlnaHQAAQAAARlnZXRBY3RpdmVWb3RpbmdQb29sQW1vdW50AAkAZAIJAGQCCQENZ2V0QWN0aXZlUG9vbAEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPZmlyc3RBY3RpdmVWb3RlAP///////////wEJAQ1nZXRBY3RpdmVQb29sAQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRBzZWNvbmRBY3RpdmVWb3RlAP///////////wEJAQ1nZXRBY3RpdmVQb29sAQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ90aGlyZEFjdGl2ZVZvdGUA////////////AQEVZ2V0VW5hY3RpdmVWb3RpbmdQb29sAAMJAQIhPQIJARRpc1VuYWN0aXZlUG9vbEV4aXN0cwEFD2FjdGl2ZVZvdGVGaXJzdAIABQ9hY3RpdmVWb3RlRmlyc3QDCQECIT0CCQEUaXNVbmFjdGl2ZVBvb2xFeGlzdHMBBRBhY3RpdmVWb3RlU2Vjb25kAgAFEGFjdGl2ZVZvdGVTZWNvbmQDCQECIT0CCQEUaXNVbmFjdGl2ZVBvb2xFeGlzdHMBBQ9hY3RpdmVWb3RlVGhpcmQCAAUPYWN0aXZlVm90ZVRoaXJkAgABFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcBCGFzc2V0U3RyAwkAAAIFCGFzc2V0U3RyAgVXQVZFUwUEdW5pdAkA2QQBBQhhc3NldFN0cgEUaXNDYWxsZXJJbkdvdmVybmFuY2UBBHVzZXIDCQBmAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQpnb3ZBZGRyZXNzCQCsAgIJAKUIAQUEdXNlcgUOa1VzZXJUb3RhbFNXT1AAAAAABgcBB3N1c3BlbmQBBWNhdXNlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBwkAzAgCCQELU3RyaW5nRW50cnkCBQZrQ2F1c2UFBWNhdXNlBQNuaWwGAWkBBGluaXQAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIrT25seSB0aGUgREFwcCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAQlpc0RlZmluZWQBCQCbCAIFBHRoaXMFB2tBY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlBBJpbml0TnVtYmVyT2ZWb3RpbmcAAAQSaW5pdEFtb3VudE9mVm90aW5nAAAEDWluaXRLZXlBY3RpdmUGBAphY3RpdmVJbml0AgAJAMwIAgkBC1N0cmluZ0VudHJ5AgUIa1ZlcnNpb24FB3ZlcnNpb24JAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUFDWluaXRLZXlBY3RpdmUJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tOdW1iZXJPZlZvdGluZwUSaW5pdE51bWJlck9mVm90aW5nCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rQW1vdW50T2ZWb3RpbmcFEmluaXRBbW91bnRPZlZvdGluZwkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa01heEFtb3VudE9mVm90aW5nBRFtYXhBbW91bnRPZlZvdGluZwkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa01heERheU9mVm90aW5nBQ5tYXhEYXlPZlZvdGluZwkAzAgCCQELU3RyaW5nRW50cnkCBQ9hY3RpdmVWb3RlRmlyc3QFCmFjdGl2ZUluaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgUQYWN0aXZlVm90ZVNlY29uZAUKYWN0aXZlSW5pdAkAzAgCCQELU3RyaW5nRW50cnkCBQ9hY3RpdmVWb3RlVGhpcmQFCmFjdGl2ZUluaXQFA25pbAFpARRpbml0Vm90aW5nRm9yTmV3UG9vbAIGYXNzZXRBBmFzc2V0QgkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQLJHQwNzA5OTcxNzQJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAULJHQwNzA5OTcxNzQCXzEECnBtdEFzc2V0SWQIBQskdDA3MDk5NzE3NAJfMgQLJHQwNzE3OTcyNzgJAJQKAgkBFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcBBQZhc3NldEEJARZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAQUGYXNzZXRCBAxwb29sQXNzZXRJZEEIBQskdDA3MTc5NzI3OAJfMQQMcG9vbEFzc2V0SWRCCAULJHQwNzE3OTcyNzgCXzIEDHVuYWN0aXZlVm90ZQkBFWdldFVuYWN0aXZlVm90aW5nUG9vbAAEEW5ld051bWJlck9mVm90aW5nCQEZZ2V0QWN0aXZlVm90aW5nUG9vbEFtb3VudAAEDGlzUG9vbEV4aXN0cwkBFmlzTGFzdEFjdGl2ZVBvb2xFeGlzdHMCBQZhc3NldEEFBmFzc2V0QgQLJHQwNzQ0ODc1MjYJAQxnZXRBc3NldEluZm8BBQxwb29sQXNzZXRJZEEEDnBtdFN0ckFzc2V0SWRBCAULJHQwNzQ0ODc1MjYCXzEEDXBtdEFzc2V0TmFtZUEIBQskdDA3NDQ4NzUyNgJfMgQMcG10RGVjaW1hbHNBCAULJHQwNzQ0ODc1MjYCXzMECyR0MDc1MzE3NjA5CQEMZ2V0QXNzZXRJbmZvAQUMcG9vbEFzc2V0SWRCBA5wbXRTdHJBc3NldElkQggFCyR0MDc1MzE3NjA5Al8xBA1wbXRBc3NldE5hbWVCCAULJHQwNzUzMTc2MDkCXzIEDHBtdERlY2ltYWxzQggFCyR0MDc1MzE3NjA5Al8zAwkAAAIFDHBvb2xBc3NldElkQQUMcG9vbEFzc2V0SWRCCQACAQIYQXNzZXRzIG11c3QgYmUgZGlmZmVyZW50AwUMaXNQb29sRXhpc3RzCQACAQIYVGhpcyBwb29sIGFscmVhZHkgZXhpc3RzAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIbT25lIGF0dGFjaGVkIGFzc2V0IGV4cGVjdGVkAwkBAiE9AgUKcG10QXNzZXRJZAUEU1dPUAkAAgECGVlvdSBtdXN0IHVzZSBhIFNXT1AgdG9rZW4DAwkAAAIFBmFzc2V0QQIABgkAAAIFBmFzc2V0QgIACQACAQIVQXNzZXRzIGNhbid0IGJlIGVtcHR5AwkBAiE9AgUJcG10QW1vdW50BSFjb21pc3Npb25Gb3JJbml0YWxpemF0aW9uT2ZWb3RpbmcJAAIBAiFZb3UgbmVlZCB0byBhdHRhY2ggMTAgU1dPUCB0b2tlbnMDCQEBIQEDAwkAAAIFDHBvb2xBc3NldElkQgUEVVNETgYJAAACBQxwb29sQXNzZXRJZEIFBHVuaXQGCQAAAgUMcG9vbEFzc2V0SWRCBQRTV09QCQACAQIiYXNzZXRCIG11c3QgYmUgVVNETiwgV0FWRVMgb3IgU1dPUAMDCQBmAgkAZAIFEW5ld051bWJlck9mVm90aW5nAAEFEW1heEFtb3VudE9mVm90aW5nBgkAAAIFDHVuYWN0aXZlVm90ZQIACQACAQkArAICAiRUb28gbWFueSB2b3RpbmdzLiBNYXhpbXVtIHF1YW50aXR5OiAJAKQDAQURbWF4QW1vdW50T2ZWb3RpbmcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQZhc3NldEECAV8FBmFzc2V0QgIBXwkApAMBBQ5hbW91bnRPZlZvdGluZwUIdm90aW5nSWQFDmFtb3VudE9mVm90aW5nCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQUOYW1vdW50T2ZWb3RpbmcFDWtIZWlnaHRPZlBvb2wJAGQCBQZoZWlnaHQFEnZvdGluZ1BlcmlvZExlbmd0aAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICCQCkAwEFDmFtb3VudE9mVm90aW5nBQ9rU3RhdHVzT2ZWb3RpbmcGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rQW1vdW50T2ZWb3RpbmcJAGQCBQ5hbW91bnRPZlZvdGluZwABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rTnVtYmVyT2ZWb3RpbmcJAGQCBRFuZXdOdW1iZXJPZlZvdGluZwABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGYXNzZXRBBQVrTmFtZQUNcG10QXNzZXROYW1lQQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmFzc2V0QgUFa05hbWUFDXBtdEFzc2V0TmFtZUIJAMwIAgkBC1N0cmluZ0VudHJ5AgUMdW5hY3RpdmVWb3RlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUGYXNzZXRBAgFfBQZhc3NldEICAV8JAKQDAQUOYW1vdW50T2ZWb3RpbmcFCHZvdGluZ0lkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFD21vbmV5Qm94QWRkcmVzcwUJcG10QW1vdW50BQpwbXRBc3NldElkBQNuaWwBaQELdm90ZUZvclBvb2wDBnZvdGluZwd5ZXNPck5vB3ZvdGVBbXQJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAEDWN1cnJlbnRIZWlnaHQFBmhlaWdodAQOcG9vbEluaXRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICCQCkAwEFBnZvdGluZwUNa0hlaWdodE9mUG9vbAIRRW1wdHkgcG9vbCBoZWlnaHQEDnN0YXR1c09mVm90aW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMJAKwCAgkApAMBBQZ2b3RpbmcFD2tTdGF0dXNPZlZvdGluZwYEFHVzZXJTV09QaW5Hb3Zlcm5hbmNlCQELdmFsdWVPckVsc2UCCQCaCAIFCmdvdkFkZHJlc3MJAKwCAgkApQgBCAUBaQZjYWxsZXIFDmtVc2VyVG90YWxTV09QAAAEFXVzZXJHU1dPUGluR292ZXJuYW5jZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQpnb3ZBZGRyZXNzCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQ9rVXNlclRvdGFsR1NXT1AFFHVzZXJTV09QaW5Hb3Zlcm5hbmNlBA10b3RhbFZvdGVVc2VyAwUHeWVzT3JObwkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXICAV8JAKQDAQUGdm90aW5nBQdrTm9Vc2VyAAAFB3ZvdGVBbXQJAGQCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFBnZvdGluZwUIa1llc1VzZXIAAAUHdm90ZUFtdAMJAQEhAQkBFGlzQ2FsbGVySW5Hb3Zlcm5hbmNlAQgFAWkGY2FsbGVyCQACAQIqVGhpcyBhZGRyZXNzIGhhcyAwIFNXT1AgaW4gR292ZXJuYW5jZSBkQXBwAwkBASEBBQ5zdGF0dXNPZlZvdGluZwkAAgECGFRoaXMgdm90aW5nIHdhcyBjYW5jZWxlZAMJAGYCBQ1jdXJyZW50SGVpZ2h0BQ5wb29sSW5pdEhlaWdodAkAAgECF1RoaXMgdm90aW5nIHdhcyBleHBpcmVkAwkAZgIAAAUHdm90ZUFtdAkAAgECJFRoZSBudW1iZXIgb2Ygdm90ZXMgbXVzdCBiZSBwb3NpdGl2ZQMJAGYCBQ10b3RhbFZvdGVVc2VyBRV1c2VyR1NXT1BpbkdvdmVybmFuY2UJAAIBCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIFIGhhcyAJAKQDAQUVdXNlckdTV09QaW5Hb3Zlcm5hbmNlAhUgR1NXT1AgaW4gZ292ZXJuYW5jZS4DBQd5ZXNPck5vBAtvbGRWb3RlVXNlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQZ2b3RpbmcFCGtZZXNVc2VyAAAEB25ld1ZvdGUJAGQCCQBlAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKQDAQUGdm90aW5nBQRrWWVzAAAFC29sZFZvdGVVc2VyBQd2b3RlQW10CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQUGdm90aW5nBQRrWWVzBQduZXdWb3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQZ2b3RpbmcFCGtZZXNVc2VyBQd2b3RlQW10BQNuaWwEC29sZFZvdGVVc2VyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFBnZvdGluZwUHa05vVXNlcgAABAduZXdWb3RlCQBkAgkAZQIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCkAwEFBnZvdGluZwUDa05vAAAFC29sZFZvdGVVc2VyBQd2b3RlQW10CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQUGdm90aW5nBQNrTm8FB25ld1ZvdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEFBnZvdGluZwUHa05vVXNlcgUHdm90ZUFtdAUDbmlsAWkBDGNhbmNlbFZvdGluZwIGdm90aW5nBWNhdXNlCQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpBA5zdGF0dXNPZlZvdGluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzCQCsAgIJAKQDAQUGdm90aW5nBQ9rU3RhdHVzT2ZWb3RpbmcGAwkBASEBBQ5zdGF0dXNPZlZvdGluZwkAAgEJAKwCAgkArAICAgdWb3RpbmcgCQCkAwEFBnZvdGluZwIZIGhhcyBhbHJlYWR5IGJlZW4gc3RvcHBlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa051bWJlck9mVm90aW5nCQBlAgUObnVtYmVyT2ZWb3RpbmcAAQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICCQCkAwEFBnZvdGluZwUPa1N0YXR1c09mVm90aW5nBwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKQDAQUGdm90aW5nBQxrQ2FuY2VsQ2F1c2UFBWNhdXNlBQNuaWwBaQEIc2h1dGRvd24ACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpAwkBASEBBQZhY3RpdmUJAAIBCQCsAgICIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUGa0NhdXNlAhp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAkBB3N1c3BlbmQBAg9QYXVzZWQgYnkgYWRtaW4BaQEIYWN0aXZhdGUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpAwUGYWN0aXZlCQACAQIWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUHa0FjdGl2ZQYJAMwIAgkBC0RlbGV0ZUVudHJ5AQUGa0NhdXNlBQNuaWwBAnR4AQZ2ZXJpZnkABBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAALuhcWB", "height": 2372765, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6sZEEaSg9e389m4azP6dugxRbKbPV1vYgw5e5vTySxUU Next: 6skSUNiJzPyEGrp1AEGHhZFgSGStU9Wj3CP1CXrvoWwA Diff:
OldNewDifferences
234234 else fromBase58String(aG)
235235
236236
237-func aH (aI) = if ((valueOrElse(getInteger(Z, (toString(aI) + s)), 0) > 0))
237+func aH (aI) = if ((valueOrElse(getInteger(Z, (toString(aI) + r)), 0) > 0))
238238 then true
239239 else false
240240
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
55
66 let b = "1.0.0"
77
88 let c = "version"
99
1010 let d = "active"
1111
1212 let e = "active_all_contracts"
1313
1414 let f = "voting_active_number"
1515
1616 let g = "_finish_height"
1717
1818 let h = "_total_votes_no"
1919
2020 let i = "_total_votes_yes"
2121
2222 let j = "_vote_no"
2323
2424 let k = "_vote_yes"
2525
2626 let l = "_status"
2727
2828 let m = "voting_id_last"
2929
3030 let n = "max_amount_voting"
3131
3232 let o = "max_day_voting"
3333
3434 let p = "shutdown_cause"
3535
3636 let q = "_cancel_cause"
3737
3838 let r = "_SWOP_amount"
3939
4040 let s = "_GSwop_amount"
4141
4242 let t = "_asset_name"
4343
4444 let u = "_voting"
4545
4646 let v = "voting_active_cell_1"
4747
4848 let w = "voting_active_cell_2"
4949
5050 let x = "voting_active_cell_3"
5151
5252 let y = "admin_pub_1"
5353
5454 let z = "admin_pub_2"
5555
5656 let A = "admin_pub_3"
5757
5858 let B = "money_box_address"
5959
6060 let C = "governance_address"
6161
6262 let D = "farming_address"
6363
6464 let E = "usdn_asset_id"
6565
6666 let F = "SWOP_id"
6767
6868 let G = getIntegerValue(this, f)
6969
7070 let H = getIntegerValue(this, m)
7171
7272 let I = valueOrElse(getString(this, v), "")
7373
7474 let J = valueOrElse(getString(this, w), "")
7575
7676 let K = valueOrElse(getString(this, x), "")
7777
7878 let L = getBooleanValue(this, d)
7979
8080 let M = valueOrElse(getBoolean(a, e), true)
8181
8282 let N = 1000000000
8383
8484 let O = 3
8585
8686 let P = 7
8787
8888 let Q = (1443 * P)
8989
9090 func R (S) = {
9191 let T = getString(a, S)
9292 if ($isInstanceOf(T, "String"))
9393 then {
9494 let U = T
9595 fromBase58String(U)
9696 }
9797 else {
9898 let V = T
9999 throw((S + "is empty"))
100100 }
101101 }
102102
103103
104104 let W = R(y)
105105
106106 let X = R(z)
107107
108108 let Y = R(A)
109109
110110 let Z = Address(R(C))
111111
112112 let aa = Address(R(D))
113113
114114 let ab = Address(R(B))
115115
116116 let ac = R(E)
117117
118118 let ad = fromBase58String(getStringValue(aa, F))
119119
120120 func ae () = if (if (L)
121121 then M
122122 else false)
123123 then unit
124124 else throw("DApp is inactive at this moment")
125125
126126
127127 func af (ag) = if (containsElement([W, X, Y], ag.callerPublicKey))
128128 then unit
129129 else throw("Only admin can call this function")
130130
131131
132132 func ah (ai) = {
133133 let T = ai
134134 if ($isInstanceOf(T, "ByteVector"))
135135 then {
136136 let aj = T
137137 if (isDefined(assetInfo(aj)))
138138 then {
139139 let ak = toBase58String(aj)
140140 let al = valueOrErrorMessage(assetInfo(aj), (("Asset " + ak) + " doesn't exist"))
141141 $Tuple3(ak, al.name, al.decimals)
142142 }
143143 else throw("Asset is not defined")
144144 }
145145 else if ($isInstanceOf(T, "Unit"))
146146 then {
147147 let am = T
148148 $Tuple3("WAVES", "WAVES", 8)
149149 }
150150 else throw("Match error")
151151 }
152152
153153
154154 func an (ao,ap,aq) = {
155155 let ar = split(ao, "_")
156156 let as = isDefined(getInteger(this, ao))
157157 if (if (as)
158158 then (ao != "")
159159 else false)
160160 then {
161161 let at = ar[2]
162162 let au = (((((ap + "_") + aq) + "_") + at) + u)
163163 let av = isDefined(getInteger(this, au))
164164 let aw = valueOrElse(getInteger(this, (at + g)), 0)
165165 let ax = valueOrElse(getBoolean(this, (at + l)), true)
166166 if (av)
167167 then if ((aw > height))
168168 then if (ax)
169169 then true
170170 else false
171171 else false
172172 else false
173173 }
174174 else false
175175 }
176176
177177
178178 func ay (az) = {
179179 let ao = valueOrElse(getString(this, az), "")
180180 let ar = split(ao, "_")
181181 let as = isDefined(getInteger(this, ao))
182182 if (if (as)
183183 then (ao != "")
184184 else false)
185185 then {
186186 let at = ar[2]
187187 let aw = valueOrElse(getInteger(this, (at + g)), 0)
188188 let ax = valueOrElse(getBoolean(this, (at + l)), true)
189189 if ((aw > height))
190190 then if (ax)
191191 then ""
192192 else az
193193 else az
194194 }
195195 else az
196196 }
197197
198198
199199 func aA (ap,aq) = if (if (an(I, ap, aq))
200200 then true
201201 else an(J, ap, aq))
202202 then true
203203 else an(K, ap, aq)
204204
205205
206206 func aB (at) = {
207207 let aw = valueOrElse(getInteger(this, (toString(at) + g)), 0)
208208 let ax = valueOrElse(getBoolean(this, (toString(at) + l)), true)
209209 let aC = height
210210 if ((0 > at))
211211 then 0
212212 else if (!(ax))
213213 then 0
214214 else if ((aw > aC))
215215 then 1
216216 else 0
217217 }
218218
219219
220220 func aD () = ((aB(valueOrElse(getInteger(this, I), -1)) + aB(valueOrElse(getInteger(this, J), -1))) + aB(valueOrElse(getInteger(this, K), -1)))
221221
222222
223223 func aE () = if ((ay(v) != ""))
224224 then v
225225 else if ((ay(w) != ""))
226226 then w
227227 else if ((ay(x) != ""))
228228 then x
229229 else ""
230230
231231
232232 func aF (aG) = if ((aG == "WAVES"))
233233 then unit
234234 else fromBase58String(aG)
235235
236236
237-func aH (aI) = if ((valueOrElse(getInteger(Z, (toString(aI) + s)), 0) > 0))
237+func aH (aI) = if ((valueOrElse(getInteger(Z, (toString(aI) + r)), 0) > 0))
238238 then true
239239 else false
240240
241241
242242 func aJ (aK) = [BooleanEntry(d, false), StringEntry(p, aK)]
243243
244244
245245 @Callable(ag)
246246 func init () = if ((ag.caller != this))
247247 then throw("Only the DApp itself can call this function")
248248 else if (isDefined(getBoolean(this, d)))
249249 then throw("DApp is already active")
250250 else {
251251 let aL = 0
252252 let aM = 0
253253 let aN = true
254254 let aO = ""
255255 [StringEntry(c, b), BooleanEntry(d, aN), IntegerEntry(f, aL), IntegerEntry(m, aM), IntegerEntry(n, O), IntegerEntry(o, P), StringEntry(v, aO), StringEntry(w, aO), StringEntry(x, aO)]
256256 }
257257
258258
259259
260260 @Callable(ag)
261261 func initVotingForNewPool (ap,aq) = valueOrElse(ae(), {
262262 let aP = $Tuple2(ag.payments[0].amount, ag.payments[0].assetId)
263263 let aQ = aP._1
264264 let aR = aP._2
265265 let aS = $Tuple2(aF(ap), aF(aq))
266266 let aT = aS._1
267267 let aU = aS._2
268268 let aV = aE()
269269 let aW = aD()
270270 let aX = aA(ap, aq)
271271 let aY = ah(aT)
272272 let aZ = aY._1
273273 let ba = aY._2
274274 let bb = aY._3
275275 let bc = ah(aU)
276276 let bd = bc._1
277277 let be = bc._2
278278 let bf = bc._3
279279 if ((aT == aU))
280280 then throw("Assets must be different")
281281 else if (aX)
282282 then throw("This pool already exists")
283283 else if ((size(ag.payments) != 1))
284284 then throw("One attached asset expected")
285285 else if ((aR != ad))
286286 then throw("You must use a SWOP token")
287287 else if (if ((ap == ""))
288288 then true
289289 else (aq == ""))
290290 then throw("Assets can't be empty")
291291 else if ((aQ != N))
292292 then throw("You need to attach 10 SWOP tokens")
293293 else if (!(if (if ((aU == ac))
294294 then true
295295 else (aU == unit))
296296 then true
297297 else (aU == ad)))
298298 then throw("assetB must be USDN, WAVES or SWOP")
299299 else if (if (((aW + 1) > O))
300300 then true
301301 else (aV == ""))
302302 then throw(("Too many votings. Maximum quantity: " + toString(O)))
303303 else [IntegerEntry((((((ap + "_") + aq) + "_") + toString(H)) + u), H), IntegerEntry((toString(H) + g), (height + Q)), BooleanEntry((toString(H) + l), true), IntegerEntry(m, (H + 1)), IntegerEntry(f, (aW + 1)), StringEntry((ap + t), ba), StringEntry((aq + t), be), StringEntry(aV, (((((ap + "_") + aq) + "_") + toString(H)) + u)), ScriptTransfer(ab, aQ, aR)]
304304 })
305305
306306
307307
308308 @Callable(ag)
309309 func voteForPool (at,bg,bh) = valueOrElse(ae(), {
310310 let aC = height
311311 let bi = valueOrErrorMessage(getIntegerValue(this, (toString(at) + g)), "Empty pool height")
312312 let ax = valueOrElse(getBoolean(this, (toString(at) + l)), true)
313313 let bj = valueOrElse(getInteger(Z, (toString(ag.caller) + r)), 0)
314314 let bk = valueOrElse(getInteger(Z, (toString(ag.caller) + s)), bj)
315315 let bl = if (bg)
316316 then (valueOrElse(getInteger(this, (((toString(ag.caller) + "_") + toString(at)) + j)), 0) + bh)
317317 else (valueOrElse(getInteger(this, (((toString(ag.caller) + "_") + toString(at)) + k)), 0) + bh)
318318 if (!(aH(ag.caller)))
319319 then throw("This address has 0 SWOP in Governance dApp")
320320 else if (!(ax))
321321 then throw("This voting was canceled")
322322 else if ((aC > bi))
323323 then throw("This voting was expired")
324324 else if ((0 > bh))
325325 then throw("The number of votes must be positive")
326326 else if ((bl > bk))
327327 then throw((((toString(ag.caller) + " has ") + toString(bk)) + " GSWOP in governance."))
328328 else if (bg)
329329 then {
330330 let bm = valueOrElse(getInteger(this, (((toString(ag.caller) + "_") + toString(at)) + k)), 0)
331331 let bn = ((valueOrElse(getInteger(this, (toString(at) + i)), 0) - bm) + bh)
332332 [IntegerEntry((toString(at) + i), bn), IntegerEntry((((toString(ag.caller) + "_") + toString(at)) + k), bh)]
333333 }
334334 else {
335335 let bm = valueOrElse(getInteger(this, (((toString(ag.caller) + "_") + toString(at)) + j)), 0)
336336 let bn = ((valueOrElse(getInteger(this, (toString(at) + h)), 0) - bm) + bh)
337337 [IntegerEntry((toString(at) + h), bn), IntegerEntry((((toString(ag.caller) + "_") + toString(at)) + j), bh)]
338338 }
339339 })
340340
341341
342342
343343 @Callable(ag)
344344 func cancelVoting (at,aK) = valueOrElse(af(ag), {
345345 let ax = valueOrElse(getBoolean(this, (toString(at) + l)), true)
346346 if (!(ax))
347347 then throw((("Voting " + toString(at)) + " has already been stopped"))
348348 else [IntegerEntry(f, (G - 1)), BooleanEntry((toString(at) + l), false), StringEntry((toString(at) + q), aK)]
349349 })
350350
351351
352352
353353 @Callable(ag)
354354 func shutdown () = valueOrElse(af(ag), if (!(L))
355355 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified")))
356356 else aJ("Paused by admin"))
357357
358358
359359
360360 @Callable(ag)
361361 func activate () = valueOrElse(af(ag), if (L)
362362 then throw("DApp is already active")
363363 else [BooleanEntry(d, true), DeleteEntry(p)])
364364
365365
366366 @Verifier(bo)
367367 func bp () = {
368368 let bq = if (sigVerify(bo.bodyBytes, bo.proofs[0], W))
369369 then 1
370370 else 0
371371 let br = if (sigVerify(bo.bodyBytes, bo.proofs[1], X))
372372 then 1
373373 else 0
374374 let bs = if (sigVerify(bo.bodyBytes, bo.proofs[2], Y))
375375 then 1
376376 else 0
377377 (((bq + br) + bs) >= 2)
378378 }
379379

github/deemru/w8io/873ac7e 
58.21 ms