tx · 38oUCppTN1697dWaSxEb5JqSRB3QHYHotB8y13y47m8o

3MrrZRV6F9ywSejcyd9foJV5ZWXRhiDD6yo:  -0.03700000 Waves

2022.10.14 17:36 [2272146] smart account 3MrrZRV6F9ywSejcyd9foJV5ZWXRhiDD6yo > SELF 0.00000000 Waves

{ "type": 13, "id": "38oUCppTN1697dWaSxEb5JqSRB3QHYHotB8y13y47m8o", "fee": 3700000, "feeAssetId": null, "timestamp": 1665758239076, "version": 2, "chainId": 84, "sender": "3MrrZRV6F9ywSejcyd9foJV5ZWXRhiDD6yo", "senderPublicKey": "AzkmMXb1TBA8jfijtZ5hFHMEC6p5hm3e5prwCk1cTVCh", "proofs": [ "2y6LkVJ66NPGrFcYphQwYi542Lx51VEhmpjVSCkn7yVsfNp9V8SuTaWq2uYedmg4GjtrsEki7ACDRRUNXTTaV4TF" ], "script": "base64:BgIdCAISBAoCCAgSAwoBCBIAEgMKAQESABIAEgMKAQg4AA1rX3RvdGFsU3VwcGx5Ag1rX3RvdGFsU3VwcGx5AA9rX3Jld2FyZEJhbGFuY2UCD2tfcmV3YXJkQmFsYW5jZQANa19zd2FwQWRkcmVzcwINa19zd2FwQWRkcmVzcwAQa19sYXN0VXBkYXRlVGltZQIQa19sYXN0VXBkYXRlVGltZQAWa19yZXdhcmRQZXJUb2tlblN0b3JlZAIWa19yZXdhcmRQZXJUb2tlblN0b3JlZAAMa19yZXdhcmRSYXRlAgxrX3Jld2FyZFJhdGUADmtfcGVyaW9kRmluaXNoAg5rX3BlcmlvZEZpbmlzaAAJa19iYWxhbmNlAglrX2JhbGFuY2UAFGtfdXNlclJld2FyZFBlclRva2VuAhRrX3VzZXJSZXdhcmRQZXJUb2tlbgAMa191c2VyUmV3YXJkAgxrX3VzZXJSZXdhcmQADWtfaW5pdGlhbGl6ZWQCDWtfaW5pdGlhbGl6ZWQAFGtfY29vcmRpbmF0b3JBZGRyZXNzAhRrX2Nvb3JkaW5hdG9yQWRkcmVzcwARa19zdGFraW5nX2FkZHJlc3MCEWtfc3Rha2luZ19hZGRyZXNzABJrX2dvdmVybmFuY2VfYXNzZXQCC2tfZ292X2Fzc2V0AA1rX3F1b3RlX2Fzc2V0Ag1rX3F1b3RlX2Fzc2V0ABJrX2FkbWluX3B1YmxpY19rZXkCEmtfYWRtaW5fcHVibGljX2tleQAPa19hZG1pbl9hZGRyZXNzAg9rX2FkbWluX2FkZHJlc3MBC2Nvb3JkaW5hdG9yAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFFGtfY29vcmRpbmF0b3JBZGRyZXNzAhNDb29yZGluYXRvciBub3Qgc2V0AQxhZG1pbkFkZHJlc3MACQCmCAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFD2tfYWRtaW5fYWRkcmVzcwEOYWRtaW5QdWJsaWNLZXkACQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFEmtfYWRtaW5fcHVibGljX2tleQEPZ292ZXJuYW5jZUFzc2V0AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRJrX2dvdmVybmFuY2VfYXNzZXQBCnF1b3RlQXNzZXQACQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFDWtfcXVvdGVfYXNzZXQBDnN0YWtpbmdBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFEWtfc3Rha2luZ19hZGRyZXNzAg9TdGFraW5nIG5vdCBzZXQADERFQ0lNQUxfVU5JVAkAaAIAAQkAaAIJAGgCCQBoAgkAaAIJAGgCCQBoAgkAaAIACgAKAAoACgAKAAoACgAKAAhEVVJBVElPTgkAaAIJAGgCADwAPAAYAApOT19BRERSRVNTAgAACU5PX1NUQUtFUgAAAQRkaXZkAgJfeAJfeQkAbgQFAl94BQxERUNJTUFMX1VOSVQFAl95BQhIQUxGRVZFTgEEbXVsZAICX3gCX3kJAG4EBQJfeAUCX3kFDERFQ0lNQUxfVU5JVAUISEFMRkVWRU4BA2FicwECX3gDCQBmAgUCX3gAAAUCX3gJAQEtAQUCX3gBBG1pbnYCAl94Al95AwkAZgIFAl94BQJfeQUCX3kFAl94AQ50b0NvbXBvc2l0ZUtleQIEX2tleQhfYWRkcmVzcwkArAICCQCsAgIFBF9rZXkCAV8FCF9hZGRyZXNzAQNpbnQBAWsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQFrCQCsAgICDW5vIHZhbHVlIGZvciAFAWsBBGludDABAWsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBawAAAQt0b3RhbFN1cHBseQAJAQRpbnQwAQUNa190b3RhbFN1cHBseQEUcmV3YXJkUGVyVG9rZW5TdG9yZWQACQEEaW50MAEFFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQBDmxhc3RVcGRhdGVUaW1lAAkBBGludDABBRBrX2xhc3RVcGRhdGVUaW1lAQpyZXdhcmRSYXRlAAkBBGludDABBQxrX3Jld2FyZFJhdGUBDHBlcmlvZEZpbmlzaAAJAQRpbnQwAQUOa19wZXJpb2RGaW5pc2gBDXJld2FyZEJhbGFuY2UACQEEaW50MAEFD2tfcmV3YXJkQmFsYW5jZQELc3dhcEFkZHJlc3MACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFDWtfc3dhcEFkZHJlc3MCEE5vdyBzd2FwIGFkZHJlc3MCFEludmFsaWQgc3dhcCBhZGRyZXNzAQdyZXdhcmRzAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFDGtfdXNlclJld2FyZAUHX3N0YWtlcgEWdXNlclJld2FyZFBlclRva2VuUGFpZAEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBRRrX3VzZXJSZXdhcmRQZXJUb2tlbgUHX3N0YWtlcgEJYmFsYW5jZU9mAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFCWtfYmFsYW5jZQUHX3N0YWtlcgELaW5pdGlhbGl6ZWQACQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDWtfaW5pdGlhbGl6ZWQHARN1cGRhdGVSZXdhcmRCYWxhbmNlAQZfZGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tfcmV3YXJkQmFsYW5jZQkAZAIJAQ1yZXdhcmRCYWxhbmNlAAUGX2RlbHRhBQNuaWwBEHVwZGF0ZVJld2FyZFJhdGUBC19yZXdhcmRSYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrX3Jld2FyZFJhdGUFC19yZXdhcmRSYXRlBQNuaWwBCnVwZGF0ZVRpbWUCD19sYXN0VXBkYXRlVGltZQ1fcGVyaW9kRmluaXNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrX2xhc3RVcGRhdGVUaW1lBQ9fbGFzdFVwZGF0ZVRpbWUJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtfcGVyaW9kRmluaXNoBQ1fcGVyaW9kRmluaXNoBQNuaWwBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkARVfcmV3YXJkUGVyVG9rZW5TdG9yZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQFFV9yZXdhcmRQZXJUb2tlblN0b3JlZAUDbmlsARF1cGRhdGVVc2VyUmV3YXJkcwMHX3N0YWtlcgdfcmV3YXJkE191c2VyUmV3YXJkUGVyVG9rZW4JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFDGtfdXNlclJld2FyZAUHX3N0YWtlcgUHX3Jld2FyZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUUa191c2VyUmV3YXJkUGVyVG9rZW4FB19zdGFrZXIFE191c2VyUmV3YXJkUGVyVG9rZW4FA25pbAENdXBkYXRlQmFsYW5jZQIHX3N0YWtlcgZfZGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFCWtfYmFsYW5jZQUHX3N0YWtlcgkAZAIJAQliYWxhbmNlT2YBBQdfc3Rha2VyBQZfZGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtfdG90YWxTdXBwbHkJAGQCCQELdG90YWxTdXBwbHkABQZfZGVsdGEFA25pbAETY3VycmVudFRpbWVzdGFtcFNlYwAJAGkCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcADoBwEYbGFzdFRpbWVSZXdhcmRBcHBsaWNhYmxlAAkBBG1pbnYCCQETY3VycmVudFRpbWVzdGFtcFNlYwAJAQxwZXJpb2RGaW5pc2gAAQ5yZXdhcmRQZXJUb2tlbgENX2JhbGFuY2VEZWx0YQMJAAACCQBkAgkBC3RvdGFsU3VwcGx5AAUNX2JhbGFuY2VEZWx0YQAACQEUcmV3YXJkUGVyVG9rZW5TdG9yZWQABAx0aW1lSW50ZXJ2YWwJAGUCCQEYbGFzdFRpbWVSZXdhcmRBcHBsaWNhYmxlAAkBDmxhc3RVcGRhdGVUaW1lAAQSYWN0dWFsVGltZUludGVydmFsAwkAZgIAAAUMdGltZUludGVydmFsAAAFDHRpbWVJbnRlcnZhbAQEZGlmZgkBBGRpdmQCCQBoAgkBCnJld2FyZFJhdGUABRJhY3R1YWxUaW1lSW50ZXJ2YWwJAGQCCQELdG90YWxTdXBwbHkABQ1fYmFsYW5jZURlbHRhCQBkAgkBFHJld2FyZFBlclRva2VuU3RvcmVkAAUEZGlmZgEGZWFybmVkAgdfc3Rha2VyDV9iYWxhbmNlRGVsdGEEC3Jld2FyZERlbHRhCQBlAgkBDnJld2FyZFBlclRva2VuAQUNX2JhbGFuY2VEZWx0YQkBFnVzZXJSZXdhcmRQZXJUb2tlblBhaWQBBQdfc3Rha2VyCQBkAgkBBG11bGQCCQBkAgkBCWJhbGFuY2VPZgEFB19zdGFrZXIFDV9iYWxhbmNlRGVsdGEFC3Jld2FyZERlbHRhCQEHcmV3YXJkcwEFB19zdGFrZXIBDHVwZGF0ZVJld2FyZAIHX3N0YWtlcg1fYmFsYW5jZURlbHRhBBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBDnJld2FyZFBlclRva2VuAQUNX2JhbGFuY2VEZWx0YQQRbmV3TGFzdFVwZGF0ZVRpbWUJARNjdXJyZW50VGltZXN0YW1wU2VjAAQLJHQwNTIwNTUzOTcDCQECIT0CBQdfc3Rha2VyAgAJAJQKAgkBBmVhcm5lZAIFB19zdGFrZXIFDV9iYWxhbmNlRGVsdGEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQCUCgIAAAAABAxzdGFrZXJFYXJuZWQIBQskdDA1MjA1NTM5NwJfMQQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAULJHQwNTIwNTUzOTcCXzIJAJYKBAUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQFEW5ld0xhc3RVcGRhdGVUaW1lBQxzdGFrZXJFYXJuZWQFGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAcBaQEKaW5pdGlhbGl6ZQIMX2Nvb3JkaW5hdG9yDF9zd2FwQWRkcmVzcwMJAQtpbml0aWFsaXplZAAJAAIBAhNBbHJlYWR5IGluaXRpYWxpemVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFFGtfY29vcmRpbmF0b3JBZGRyZXNzBQxfY29vcmRpbmF0b3IJAMwIAgkBC1N0cmluZ0VudHJ5AgUNa19zd2FwQWRkcmVzcwUMX3N3YXBBZGRyZXNzCQDMCAIJAQxCb29sZWFuRW50cnkCBQ1rX2luaXRpYWxpemVkBgUDbmlsAWkBB3NldFN3YXABDF9zd2FwQWRkcmVzcwMJAQIhPQIIBQFpBmNhbGxlcgkBDGFkbWluQWRkcmVzcwAJAAIBAhZJbnZhbGlkIHNldFN3YXAgcGFyYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWtfc3dhcEFkZHJlc3MFDF9zd2FwQWRkcmVzcwUDbmlsAWkBBXN0YWtlAAQHX3N0YWtlcgkApQgBCAUBaQZjYWxsZXIEB19hbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBD2dvdmVybmFuY2VBc3NldAAGCQEBIQEJAQtpbml0aWFsaXplZAAJAAIBAhZJbnZhbGlkIGNhbGwgdG8gIHN0YWtlBAskdDA2MzM5NjUwNAkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQskdDA2MzM5NjUwNAJfMQQRbmV3TGFzdFVwZGF0ZVRpbWUIBQskdDA2MzM5NjUwNAJfMgQMc3Rha2VyRWFybmVkCAULJHQwNjMzOTY1MDQCXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFCyR0MDYzMzk2NTA0Al80BAdkb1N0YWtlCQD8BwQJAQ5zdGFraW5nQWRkcmVzcwACBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ9nb3Zlcm5hbmNlQXNzZXQABQdfYW1vdW50BQNuaWwDCQAAAgUHZG9TdGFrZQUHZG9TdGFrZQkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBDXVwZGF0ZUJhbGFuY2UCBQdfc3Rha2VyBQdfYW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB3VuU3Rha2UBB19hbW91bnQEDGRvQWNrUmV3YXJkcwkA/AcEBQR0aGlzAgphY2tSZXdhcmRzBQNuaWwFA25pbAMJAAACBQxkb0Fja1Jld2FyZHMFDGRvQWNrUmV3YXJkcwQHX3N0YWtlcgkApQgBCAUBaQZjYWxsZXIDAwkBAiE9AggFAWkIcGF5bWVudHMFA25pbAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECGkludmFsaWQgdW5TdGFrZSBwYXJhbWV0ZXJzBAskdDA3MjUwNzQxNQkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQskdDA3MjUwNzQxNQJfMQQRbmV3TGFzdFVwZGF0ZVRpbWUIBQskdDA3MjUwNzQxNQJfMgQMc3Rha2VyRWFybmVkCAULJHQwNzI1MDc0MTUCXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFCyR0MDcyNTA3NDE1Al80AwkAZgIFB19hbW91bnQJAGQCCQEJYmFsYW5jZU9mAQUHX3N0YWtlcgUMc3Rha2VyRWFybmVkCQACAQIaSW52YWxpZCB1blN0YWtlIHBhcmFtZXRlcnMECWRvVW5TdGFrZQkA/AcECQEOc3Rha2luZ0FkZHJlc3MAAgd1blN0YWtlCQDMCAIFB19hbW91bnQFA25pbAUDbmlsAwkAAAIFCWRvVW5TdGFrZQUJZG9VblN0YWtlBAxyZXdhcmRDaGFuZ2UDCQBnAgkBCWJhbGFuY2VPZgEFB19zdGFrZXIFB19hbW91bnQAAAkAZQIFB19hbW91bnQJAQliYWxhbmNlT2YBBQdfc3Rha2VyBA1iYWxhbmNlQ2hhbmdlAwkAZwIJAQliYWxhbmNlT2YBBQdfc3Rha2VyBQdfYW1vdW50BQdfYW1vdW50CQEJYmFsYW5jZU9mAQUHX3N0YWtlcgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJARF1cGRhdGVVc2VyUmV3YXJkcwMFB19zdGFrZXIJAGUCBQxzdGFrZXJFYXJuZWQFDHJld2FyZENoYW5nZQUYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBCnVwZGF0ZVRpbWUCBRFuZXdMYXN0VXBkYXRlVGltZQkBDHBlcmlvZEZpbmlzaAAJAQ11cGRhdGVCYWxhbmNlAgUHX3N0YWtlcgkBAS0BBQ1iYWxhbmNlQ2hhbmdlCQETdXBkYXRlUmV3YXJkQmFsYW5jZQEJAQEtAQUMcmV3YXJkQ2hhbmdlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHX2Ftb3VudAkBD2dvdmVybmFuY2VBc3NldAAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ93aXRoZHJhd1Jld2FyZHMABAxkb0Fja1Jld2FyZHMJAPwHBAUEdGhpcwIKYWNrUmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUMZG9BY2tSZXdhcmRzBQxkb0Fja1Jld2FyZHMEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyBAskdDA4NzUzODg5OAkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQskdDA4NzUzODg5OAJfMQQRbmV3TGFzdFVwZGF0ZVRpbWUIBQskdDA4NzUzODg5OAJfMgQMc3Rha2VyRWFybmVkCAULJHQwODc1Mzg4OTgCXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFCyR0MDg3NTM4ODk4Al80AwMJAGcCAAAFDHN0YWtlckVhcm5lZAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECEU5vIGZhcm1pbmcgcmV3YXJkBAlkb1VuU3Rha2UJAPwHBAkBDnN0YWtpbmdBZGRyZXNzAAIHdW5TdGFrZQkAzAgCBQxzdGFrZXJFYXJuZWQFA25pbAUDbmlsAwkAAAIFCWRvVW5TdGFrZQUJZG9VblN0YWtlCQDOCAIJAM4IAgkAzggCCQDOCAIJARF1cGRhdGVVc2VyUmV3YXJkcwMFB19zdGFrZXIAAAUYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBCnVwZGF0ZVRpbWUCBRFuZXdMYXN0VXBkYXRlVGltZQkBDHBlcmlvZEZpbmlzaAAJARN1cGRhdGVSZXdhcmRCYWxhbmNlAQkBAS0BBQxzdGFrZXJFYXJuZWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQxzdGFrZXJFYXJuZWQJAQ9nb3Zlcm5hbmNlQXNzZXQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWNrUmV3YXJkcwAEDV9yZXdhcmRBbW91bnQJAPwHBAkBDnN0YWtpbmdBZGRyZXNzAAINY29tcHV0ZVJld2FyZAkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAAIFDV9yZXdhcmRBbW91bnQFDV9yZXdhcmRBbW91bnQEDHJld2FyZEFtb3VudAQHJG1hdGNoMAUNX3Jld2FyZEFtb3VudAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAhpSZXdhcmQgYW1vdW50IG5vdCBhIG51bWJlcgMJAAACBQxyZXdhcmRBbW91bnQAAAUDbmlsBA5kb0NsYWltUmV3YXJkcwkA/AcECQEOc3Rha2luZ0FkZHJlc3MAAg93aXRoZHJhd1Jld2FyZHMFA25pbAUDbmlsAwkAAAIFDmRvQ2xhaW1SZXdhcmRzBQ5kb0NsYWltUmV3YXJkcwQNcmV3YXJkc0Ftb3VudAkA8AcCBQR0aGlzCQEKcXVvdGVBc3NldAAEBmRvU3dhcAkA/AcECQELc3dhcEFkZHJlc3MAAgRzd2FwCQDMCAIJANgEAQkBD2dvdmVybmFuY2VBc3NldAAJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQpxdW90ZUFzc2V0AAUNcmV3YXJkc0Ftb3VudAUDbmlsAwkAAAIFBmRvU3dhcAUGZG9Td2FwBAtyZXdhcmREZWx0YQkA8AcCBQR0aGlzCQEPZ292ZXJuYW5jZUFzc2V0AAMJAAACBQtyZXdhcmREZWx0YQULcmV3YXJkRGVsdGEDCQBnAgAABQtyZXdhcmREZWx0YQkAAgECGUludmFsaWQgYWNrUmV3YXJkcyBwYXJhbXMEB19yZXdhcmQFC3Jld2FyZERlbHRhBBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgJAQx1cGRhdGVSZXdhcmQCBQpOT19BRERSRVNTBQlOT19TVEFLRVICXzEECXRpbWVzdGFtcAkBE2N1cnJlbnRUaW1lc3RhbXBTZWMABA1uZXdSZXdhcmRSYXRlAwkAZgIFCXRpbWVzdGFtcAkBDHBlcmlvZEZpbmlzaAAJAGkCBQdfcmV3YXJkBQhEVVJBVElPTgQNcmVtYWluaW5nVGltZQkAZQIJAQxwZXJpb2RGaW5pc2gABQl0aW1lc3RhbXAECGxlZnRvdmVyCQBoAgkBCnJld2FyZFJhdGUABQ1yZW1haW5pbmdUaW1lCQBpAgkAZAIFB19yZXdhcmQFCGxlZnRvdmVyBQhEVVJBVElPTgQHZG9TdGFrZQkA/AcECQEOc3Rha2luZ0FkZHJlc3MAAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEPZ292ZXJuYW5jZUFzc2V0AAULcmV3YXJkRGVsdGEFA25pbAMJAAACBQdkb1N0YWtlBQdkb1N0YWtlCQDOCAIJAM4IAgkAzggCCQEQdXBkYXRlUmV3YXJkUmF0ZQEFDW5ld1Jld2FyZFJhdGUJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQETdXBkYXRlUmV3YXJkQmFsYW5jZQEFB19yZXdhcmQJAQp1cGRhdGVUaW1lAgUJdGltZXN0YW1wCQBkAgUJdGltZXN0YW1wBQhEVVJBVElPTgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQt2aWV3X3Jld2FyZAEHX3N0YWtlcgQMc3Rha2VyRWFybmVkCAkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAJfMwkAAgEJAKQDAQUMc3Rha2VyRWFybmVkAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkBDmFkbWluUHVibGljS2V5APbOBaE=", "height": 2272146, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 96LbARFKoWchdvkfKGtFivVxhCAhBNZEm6entdLkM3gt Next: FARS8CStsiJ5UHkhXxGtM5poXeby4YJHo2K5aAVahN9Y Diff:
OldNewDifferences
216216 if ((aH == aH))
217217 then {
218218 let V = toString(aB.caller)
219- if (if (if ((aE > X(V)))
220- then true
221- else (aB.payments != nil))
219+ if (if ((aB.payments != nil))
222220 then true
223221 else !(Y()))
224222 then throw("Invalid unStake parameters")
228226 let ax = aI._2
229227 let az = aI._3
230228 let aA = aI._4
231- let aJ = invoke(w(), "unStake", [aE], nil)
232- if ((aJ == aJ))
233- then ((((ai(V, az, aA) ++ ag(aw)) ++ ad(ax, R())) ++ al(V, -(aE))) ++ [ScriptTransfer(aB.caller, aE, u())])
234- else throw("Strict value is not equal to itself.")
229+ if ((aE > (X(V) + az)))
230+ then throw("Invalid unStake parameters")
231+ else {
232+ let aJ = invoke(w(), "unStake", [aE], nil)
233+ if ((aJ == aJ))
234+ then {
235+ let aK = if ((X(V) >= aE))
236+ then 0
237+ else (aE - X(V))
238+ let aL = if ((X(V) >= aE))
239+ then aE
240+ else X(V)
241+ (((((ai(V, (az - aK), aA) ++ ag(aw)) ++ ad(ax, R())) ++ al(V, -(aL))) ++ Z(-(aK))) ++ [ScriptTransfer(aB.caller, aE, u())])
242+ }
243+ else throw("Strict value is not equal to itself.")
244+ }
235245 }
236246 }
237247 else throw("Strict value is not equal to itself.")
245255 if ((aH == aH))
246256 then {
247257 let V = toString(aB.caller)
248- let aK = av(V, 0)
249- let aw = aK._1
250- let ax = aK._2
251- let az = aK._3
252- let aA = aK._4
258+ let aM = av(V, 0)
259+ let aw = aM._1
260+ let ax = aM._2
261+ let az = aM._3
262+ let aA = aM._4
253263 if (if ((0 >= az))
254264 then true
255265 else !(Y()))
268278
269279 @Callable(aB)
270280 func ackRewards () = {
271- let aL = invoke(w(), "computeReward", [toString(this)], nil)
272- if ((aL == aL))
281+ let aN = invoke(w(), "computeReward", [toString(this)], nil)
282+ if ((aN == aN))
273283 then {
274- let aM = {
275- let aN = aL
276- if ($isInstanceOf(aN, "Int"))
284+ let aO = {
285+ let aP = aN
286+ if ($isInstanceOf(aP, "Int"))
277287 then {
278- let aO = aN
279- aO
288+ let aQ = aP
289+ aQ
280290 }
281291 else throw("Reward amount not a number")
282292 }
283- if ((aM == 0))
293+ if ((aO == 0))
284294 then nil
285295 else {
286- let aP = invoke(w(), "withdrawRewards", nil, nil)
287- if ((aP == aP))
296+ let aR = invoke(w(), "withdrawRewards", nil, nil)
297+ if ((aR == aR))
288298 then {
289- let aQ = assetBalance(this, v())
290- let aR = invoke(T(), "swap", [toBase58String(u()), 0], [AttachedPayment(v(), aQ)])
291- if ((aR == aR))
299+ let aS = assetBalance(this, v())
300+ let aT = invoke(T(), "swap", [toBase58String(u()), 0], [AttachedPayment(v(), aS)])
301+ if ((aT == aT))
292302 then {
293303 let au = assetBalance(this, u())
294304 if ((au == au))
297307 else {
298308 let aj = au
299309 let aw = av(z, A)._1
300- let aS = am()
301- let aT = if ((aS > R()))
310+ let aU = am()
311+ let aV = if ((aU > R()))
302312 then (aj / y)
303313 else {
304- let aU = (R() - aS)
305- let aV = (Q() * aU)
306- ((aj + aV) / y)
314+ let aW = (R() - aU)
315+ let aX = (Q() * aW)
316+ ((aj + aX) / y)
307317 }
308318 let aG = invoke(w(), "stake", nil, [AttachedPayment(u(), au)])
309319 if ((aG == aG))
310- then (((ab(aT) ++ ag(aw)) ++ Z(aj)) ++ ad(aS, (aS + y)))
320+ then (((ab(aV) ++ ag(aw)) ++ Z(aj)) ++ ad(aU, (aU + y)))
311321 else throw("Strict value is not equal to itself.")
312322 }
313323 else throw("Strict value is not equal to itself.")
329339 }
330340
331341
332-@Verifier(aW)
333-func aX () = sigVerify(aW.bodyBytes, aW.proofs[0], t())
342+@Verifier(aY)
343+func aZ () = sigVerify(aY.bodyBytes, aY.proofs[0], t())
334344
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "k_totalSupply"
55
66 let b = "k_rewardBalance"
77
88 let c = "k_swapAddress"
99
1010 let d = "k_lastUpdateTime"
1111
1212 let e = "k_rewardPerTokenStored"
1313
1414 let f = "k_rewardRate"
1515
1616 let g = "k_periodFinish"
1717
1818 let h = "k_balance"
1919
2020 let i = "k_userRewardPerToken"
2121
2222 let j = "k_userReward"
2323
2424 let k = "k_initialized"
2525
2626 let l = "k_coordinatorAddress"
2727
2828 let m = "k_staking_address"
2929
3030 let n = "k_gov_asset"
3131
3232 let o = "k_quote_asset"
3333
3434 let p = "k_admin_public_key"
3535
3636 let q = "k_admin_address"
3737
3838 func r () = valueOrErrorMessage(addressFromString(getStringValue(this, l)), "Coordinator not set")
3939
4040
4141 func s () = addressFromString(getStringValue(r(), q))
4242
4343
4444 func t () = fromBase58String(getStringValue(r(), p))
4545
4646
4747 func u () = fromBase58String(getStringValue(r(), n))
4848
4949
5050 func v () = fromBase58String(getStringValue(r(), o))
5151
5252
5353 func w () = valueOrErrorMessage(addressFromString(getStringValue(r(), m)), "Staking not set")
5454
5555
5656 let x = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
5757
5858 let y = ((60 * 60) * 24)
5959
6060 let z = ""
6161
6262 let A = 0
6363
6464 func B (C,D) = fraction(C, x, D, HALFEVEN)
6565
6666
6767 func E (C,D) = fraction(C, D, x, HALFEVEN)
6868
6969
7070 func F (C) = if ((C > 0))
7171 then C
7272 else -(C)
7373
7474
7575 func G (C,D) = if ((C > D))
7676 then D
7777 else C
7878
7979
8080 func H (I,J) = ((I + "_") + J)
8181
8282
8383 func K (L) = valueOrErrorMessage(getInteger(this, L), ("no value for " + L))
8484
8585
8686 func M (L) = valueOrElse(getInteger(this, L), 0)
8787
8888
8989 func N () = M(a)
9090
9191
9292 func O () = M(e)
9393
9494
9595 func P () = M(d)
9696
9797
9898 func Q () = M(f)
9999
100100
101101 func R () = M(g)
102102
103103
104104 func S () = M(b)
105105
106106
107107 func T () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, c), "Now swap address")), "Invalid swap address")
108108
109109
110110 func U (V) = M(H(j, V))
111111
112112
113113 func W (V) = M(H(i, V))
114114
115115
116116 func X (V) = M(H(h, V))
117117
118118
119119 func Y () = valueOrElse(getBoolean(this, k), false)
120120
121121
122122 func Z (aa) = [IntegerEntry(b, (S() + aa))]
123123
124124
125125 func ab (ac) = [IntegerEntry(f, ac)]
126126
127127
128128 func ad (ae,af) = [IntegerEntry(d, ae), IntegerEntry(g, af)]
129129
130130
131131 func ag (ah) = [IntegerEntry(e, ah)]
132132
133133
134134 func ai (V,aj,ak) = [IntegerEntry(H(j, V), aj), IntegerEntry(H(i, V), ak)]
135135
136136
137137 func al (V,aa) = [IntegerEntry(H(h, V), (X(V) + aa)), IntegerEntry(a, (N() + aa))]
138138
139139
140140 func am () = (lastBlock.timestamp / 1000)
141141
142142
143143 func an () = G(am(), R())
144144
145145
146146 func ao (ap) = if (((N() + ap) == 0))
147147 then O()
148148 else {
149149 let aq = (an() - P())
150150 let ar = if ((0 > aq))
151151 then 0
152152 else aq
153153 let as = B((Q() * ar), (N() + ap))
154154 (O() + as)
155155 }
156156
157157
158158 func at (V,ap) = {
159159 let au = (ao(ap) - W(V))
160160 (E((X(V) + ap), au) + U(V))
161161 }
162162
163163
164164 func av (V,ap) = {
165165 let aw = ao(ap)
166166 let ax = am()
167167 let ay = if ((V != ""))
168168 then $Tuple2(at(V, ap), aw)
169169 else $Tuple2(0, 0)
170170 let az = ay._1
171171 let aA = ay._2
172172 $Tuple4(aw, ax, az, aA)
173173 }
174174
175175
176176 @Callable(aB)
177177 func initialize (aC,aD) = if (Y())
178178 then throw("Already initialized")
179179 else [StringEntry(l, aC), StringEntry(c, aD), BooleanEntry(k, true)]
180180
181181
182182
183183 @Callable(aB)
184184 func setSwap (aD) = if ((aB.caller != s()))
185185 then throw("Invalid setSwap params")
186186 else [StringEntry(c, aD)]
187187
188188
189189
190190 @Callable(aB)
191191 func stake () = {
192192 let V = toString(aB.caller)
193193 let aE = aB.payments[0].amount
194194 if (if ((aB.payments[0].assetId != u()))
195195 then true
196196 else !(Y()))
197197 then throw("Invalid call to stake")
198198 else {
199199 let aF = av(V, 0)
200200 let aw = aF._1
201201 let ax = aF._2
202202 let az = aF._3
203203 let aA = aF._4
204204 let aG = invoke(w(), "stake", nil, [AttachedPayment(u(), aE)])
205205 if ((aG == aG))
206206 then (((ai(V, az, aA) ++ ag(aw)) ++ ad(ax, R())) ++ al(V, aE))
207207 else throw("Strict value is not equal to itself.")
208208 }
209209 }
210210
211211
212212
213213 @Callable(aB)
214214 func unStake (aE) = {
215215 let aH = invoke(this, "ackRewards", nil, nil)
216216 if ((aH == aH))
217217 then {
218218 let V = toString(aB.caller)
219- if (if (if ((aE > X(V)))
220- then true
221- else (aB.payments != nil))
219+ if (if ((aB.payments != nil))
222220 then true
223221 else !(Y()))
224222 then throw("Invalid unStake parameters")
225223 else {
226224 let aI = av(V, 0)
227225 let aw = aI._1
228226 let ax = aI._2
229227 let az = aI._3
230228 let aA = aI._4
231- let aJ = invoke(w(), "unStake", [aE], nil)
232- if ((aJ == aJ))
233- then ((((ai(V, az, aA) ++ ag(aw)) ++ ad(ax, R())) ++ al(V, -(aE))) ++ [ScriptTransfer(aB.caller, aE, u())])
234- else throw("Strict value is not equal to itself.")
229+ if ((aE > (X(V) + az)))
230+ then throw("Invalid unStake parameters")
231+ else {
232+ let aJ = invoke(w(), "unStake", [aE], nil)
233+ if ((aJ == aJ))
234+ then {
235+ let aK = if ((X(V) >= aE))
236+ then 0
237+ else (aE - X(V))
238+ let aL = if ((X(V) >= aE))
239+ then aE
240+ else X(V)
241+ (((((ai(V, (az - aK), aA) ++ ag(aw)) ++ ad(ax, R())) ++ al(V, -(aL))) ++ Z(-(aK))) ++ [ScriptTransfer(aB.caller, aE, u())])
242+ }
243+ else throw("Strict value is not equal to itself.")
244+ }
235245 }
236246 }
237247 else throw("Strict value is not equal to itself.")
238248 }
239249
240250
241251
242252 @Callable(aB)
243253 func withdrawRewards () = {
244254 let aH = invoke(this, "ackRewards", nil, nil)
245255 if ((aH == aH))
246256 then {
247257 let V = toString(aB.caller)
248- let aK = av(V, 0)
249- let aw = aK._1
250- let ax = aK._2
251- let az = aK._3
252- let aA = aK._4
258+ let aM = av(V, 0)
259+ let aw = aM._1
260+ let ax = aM._2
261+ let az = aM._3
262+ let aA = aM._4
253263 if (if ((0 >= az))
254264 then true
255265 else !(Y()))
256266 then throw("No farming reward")
257267 else {
258268 let aJ = invoke(w(), "unStake", [az], nil)
259269 if ((aJ == aJ))
260270 then ((((ai(V, 0, aA) ++ ag(aw)) ++ ad(ax, R())) ++ Z(-(az))) ++ [ScriptTransfer(aB.caller, az, u())])
261271 else throw("Strict value is not equal to itself.")
262272 }
263273 }
264274 else throw("Strict value is not equal to itself.")
265275 }
266276
267277
268278
269279 @Callable(aB)
270280 func ackRewards () = {
271- let aL = invoke(w(), "computeReward", [toString(this)], nil)
272- if ((aL == aL))
281+ let aN = invoke(w(), "computeReward", [toString(this)], nil)
282+ if ((aN == aN))
273283 then {
274- let aM = {
275- let aN = aL
276- if ($isInstanceOf(aN, "Int"))
284+ let aO = {
285+ let aP = aN
286+ if ($isInstanceOf(aP, "Int"))
277287 then {
278- let aO = aN
279- aO
288+ let aQ = aP
289+ aQ
280290 }
281291 else throw("Reward amount not a number")
282292 }
283- if ((aM == 0))
293+ if ((aO == 0))
284294 then nil
285295 else {
286- let aP = invoke(w(), "withdrawRewards", nil, nil)
287- if ((aP == aP))
296+ let aR = invoke(w(), "withdrawRewards", nil, nil)
297+ if ((aR == aR))
288298 then {
289- let aQ = assetBalance(this, v())
290- let aR = invoke(T(), "swap", [toBase58String(u()), 0], [AttachedPayment(v(), aQ)])
291- if ((aR == aR))
299+ let aS = assetBalance(this, v())
300+ let aT = invoke(T(), "swap", [toBase58String(u()), 0], [AttachedPayment(v(), aS)])
301+ if ((aT == aT))
292302 then {
293303 let au = assetBalance(this, u())
294304 if ((au == au))
295305 then if ((0 >= au))
296306 then throw("Invalid ackRewards params")
297307 else {
298308 let aj = au
299309 let aw = av(z, A)._1
300- let aS = am()
301- let aT = if ((aS > R()))
310+ let aU = am()
311+ let aV = if ((aU > R()))
302312 then (aj / y)
303313 else {
304- let aU = (R() - aS)
305- let aV = (Q() * aU)
306- ((aj + aV) / y)
314+ let aW = (R() - aU)
315+ let aX = (Q() * aW)
316+ ((aj + aX) / y)
307317 }
308318 let aG = invoke(w(), "stake", nil, [AttachedPayment(u(), au)])
309319 if ((aG == aG))
310- then (((ab(aT) ++ ag(aw)) ++ Z(aj)) ++ ad(aS, (aS + y)))
320+ then (((ab(aV) ++ ag(aw)) ++ Z(aj)) ++ ad(aU, (aU + y)))
311321 else throw("Strict value is not equal to itself.")
312322 }
313323 else throw("Strict value is not equal to itself.")
314324 }
315325 else throw("Strict value is not equal to itself.")
316326 }
317327 else throw("Strict value is not equal to itself.")
318328 }
319329 }
320330 else throw("Strict value is not equal to itself.")
321331 }
322332
323333
324334
325335 @Callable(aB)
326336 func view_reward (V) = {
327337 let az = av(V, 0)._3
328338 throw(toString(az))
329339 }
330340
331341
332-@Verifier(aW)
333-func aX () = sigVerify(aW.bodyBytes, aW.proofs[0], t())
342+@Verifier(aY)
343+func aZ () = sigVerify(aY.bodyBytes, aY.proofs[0], t())
334344

github/deemru/w8io/026f985 
59.45 ms