tx · FZp5a9PRkYdVhgjhRfcvwv41SP13UBuFmCXvLzmkHT92

3N4QWZXfZqNf284CJVbtxzCerqARoALxJEy:  -0.03700000 Waves

2022.10.06 10:42 [2260170] smart account 3N4QWZXfZqNf284CJVbtxzCerqARoALxJEy > SELF 0.00000000 Waves

{ "type": 13, "id": "FZp5a9PRkYdVhgjhRfcvwv41SP13UBuFmCXvLzmkHT92", "fee": 3700000, "feeAssetId": null, "timestamp": 1665042161809, "version": 2, "chainId": 84, "sender": "3N4QWZXfZqNf284CJVbtxzCerqARoALxJEy", "senderPublicKey": "GzEvTfwa3251fRwyTL99QzUmkDGBdn4cNr2mR6XQ1UmR", "proofs": [ "2VrxujthqFidNLfVQXajbKpiJSPrv6R94B9ZsCbi4i5XVxW8cS3q1NCTxp9FJhpUvb6v3mQ2BsrSHgrdzhiHWihG" ], "script": "base64:BgIgCAISAwoBCBIAEgMKAQESABIAEgASAwoBCBIDCgEIEgA2AA1rX3RvdGFsU3VwcGx5Ag1rX3RvdGFsU3VwcGx5AA9rX3Jld2FyZEJhbGFuY2UCD2tfcmV3YXJkQmFsYW5jZQAQa19sYXN0VXBkYXRlVGltZQIQa19sYXN0VXBkYXRlVGltZQAWa19yZXdhcmRQZXJUb2tlblN0b3JlZAIWa19yZXdhcmRQZXJUb2tlblN0b3JlZAAMa19yZXdhcmRSYXRlAgxrX3Jld2FyZFJhdGUADmtfcGVyaW9kRmluaXNoAg5rX3BlcmlvZEZpbmlzaAAJa19iYWxhbmNlAglrX2JhbGFuY2UAFGtfdXNlclJld2FyZFBlclRva2VuAhRrX3VzZXJSZXdhcmRQZXJUb2tlbgAMa191c2VyUmV3YXJkAgxrX3VzZXJSZXdhcmQADWtfaW5pdGlhbGl6ZWQCDWtfaW5pdGlhbGl6ZWQAFGtfY29vcmRpbmF0b3JBZGRyZXNzAhRrX2Nvb3JkaW5hdG9yQWRkcmVzcwASa19nb3Zlcm5hbmNlX2Fzc2V0AgtrX2dvdl9hc3NldAANa19xdW90ZV9hc3NldAINa19xdW90ZV9hc3NldAASa19hZG1pbl9wdWJsaWNfa2V5AhJrX2FkbWluX3B1YmxpY19rZXkAEWtfbWFuYWdlcl9hZGRyZXNzAhFrX21hbmFnZXJfYWRkcmVzcwELY29vcmRpbmF0b3IACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQBDmFkbWluUHVibGljS2V5AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRJrX2FkbWluX3B1YmxpY19rZXkBD2dvdmVybmFuY2VBc3NldAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBC2Nvb3JkaW5hdG9yAAUSa19nb3Zlcm5hbmNlX2Fzc2V0AQpxdW90ZUFzc2V0AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABQ1rX3F1b3RlX2Fzc2V0AQ5tYW5hZ2VyQWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRFrX21hbmFnZXJfYWRkcmVzcwIPTWFuYWdlciBub3Qgc2V0AAxERUNJTUFMX1VOSVQJAGgCAAEJAGgCCQBoAgkAaAIJAGgCCQBoAgkAaAIJAGgCAAoACgAKAAoACgAKAAoACgAIRFVSQVRJT04JAGgCCQBoAgA8ADwAGAAKTk9fQUREUkVTUwIAAAlOT19TVEFLRVIAAAEQdXNkbkZyb21EZWNpbWFscwEHX2Ftb3VudAkAaQIFB19hbW91bnQAZAEOdXNkblRvRGVjaW1hbHMBB19hbW91bnQJAGgCBQdfYW1vdW50AGQBBGRpdmQCAl94Al95CQBuBAUCX3gFDERFQ0lNQUxfVU5JVAUCX3kFCEhBTEZFVkVOAQRtdWxkAgJfeAJfeQkAbgQFAl94BQJfeQUMREVDSU1BTF9VTklUBQhIQUxGRVZFTgEDYWJzAQJfeAMJAGYCBQJfeAAABQJfeAkBAS0BBQJfeAEEbWludgICX3gCX3kDCQBmAgUCX3gFAl95BQJfeQUCX3gBDnRvQ29tcG9zaXRlS2V5AgRfa2V5CF9hZGRyZXNzCQCsAgIJAKwCAgUEX2tleQIBXwUIX2FkZHJlc3MBA2ludAEBawkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAWsJAKwCAgINbm8gdmFsdWUgZm9yIAUBawEEaW50MAEBawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFrAAABC3RvdGFsU3VwcGx5AAkBBGludDABBQ1rX3RvdGFsU3VwcGx5ARRyZXdhcmRQZXJUb2tlblN0b3JlZAAJAQRpbnQwAQUWa19yZXdhcmRQZXJUb2tlblN0b3JlZAEObGFzdFVwZGF0ZVRpbWUACQEEaW50MAEFEGtfbGFzdFVwZGF0ZVRpbWUBCnJld2FyZFJhdGUACQEEaW50MAEFDGtfcmV3YXJkUmF0ZQEMcGVyaW9kRmluaXNoAAkBBGludDABBQ5rX3BlcmlvZEZpbmlzaAENcmV3YXJkQmFsYW5jZQAJAQRpbnQwAQUPa19yZXdhcmRCYWxhbmNlAQdyZXdhcmRzAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFDGtfdXNlclJld2FyZAUHX3N0YWtlcgEWdXNlclJld2FyZFBlclRva2VuUGFpZAEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBRRrX3VzZXJSZXdhcmRQZXJUb2tlbgUHX3N0YWtlcgEJYmFsYW5jZU9mAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFCWtfYmFsYW5jZQUHX3N0YWtlcgELaW5pdGlhbGl6ZWQACQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDWtfaW5pdGlhbGl6ZWQHARN1cGRhdGVSZXdhcmRCYWxhbmNlAQZfZGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tfcmV3YXJkQmFsYW5jZQkAZAIJAQ1yZXdhcmRCYWxhbmNlAAUGX2RlbHRhBQNuaWwBEHVwZGF0ZVJld2FyZFJhdGUBC19yZXdhcmRSYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrX3Jld2FyZFJhdGUFC19yZXdhcmRSYXRlBQNuaWwBCnVwZGF0ZVRpbWUCD19sYXN0VXBkYXRlVGltZQ1fcGVyaW9kRmluaXNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrX2xhc3RVcGRhdGVUaW1lBQ9fbGFzdFVwZGF0ZVRpbWUJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtfcGVyaW9kRmluaXNoBQ1fcGVyaW9kRmluaXNoBQNuaWwBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkARVfcmV3YXJkUGVyVG9rZW5TdG9yZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQFFV9yZXdhcmRQZXJUb2tlblN0b3JlZAUDbmlsARF1cGRhdGVVc2VyUmV3YXJkcwMHX3N0YWtlcgdfcmV3YXJkE191c2VyUmV3YXJkUGVyVG9rZW4JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFDGtfdXNlclJld2FyZAUHX3N0YWtlcgUHX3Jld2FyZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUUa191c2VyUmV3YXJkUGVyVG9rZW4FB19zdGFrZXIFE191c2VyUmV3YXJkUGVyVG9rZW4FA25pbAENdXBkYXRlQmFsYW5jZQIHX3N0YWtlcgZfZGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFCWtfYmFsYW5jZQUHX3N0YWtlcgkAZAIJAQliYWxhbmNlT2YBBQdfc3Rha2VyBQZfZGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtfdG90YWxTdXBwbHkJAGQCCQELdG90YWxTdXBwbHkABQZfZGVsdGEFA25pbAETY3VycmVudFRpbWVzdGFtcFNlYwAJAGkCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcADoBwEYbGFzdFRpbWVSZXdhcmRBcHBsaWNhYmxlAAkBBG1pbnYCCQETY3VycmVudFRpbWVzdGFtcFNlYwAJAQxwZXJpb2RGaW5pc2gAAQ5yZXdhcmRQZXJUb2tlbgENX2JhbGFuY2VEZWx0YQMJAAACCQBkAgkBC3RvdGFsU3VwcGx5AAUNX2JhbGFuY2VEZWx0YQAACQEUcmV3YXJkUGVyVG9rZW5TdG9yZWQABAx0aW1lSW50ZXJ2YWwJAGUCCQEYbGFzdFRpbWVSZXdhcmRBcHBsaWNhYmxlAAkBDmxhc3RVcGRhdGVUaW1lAAQSYWN0dWFsVGltZUludGVydmFsAwkAZgIAAAUMdGltZUludGVydmFsAAAFDHRpbWVJbnRlcnZhbAQEZGlmZgkBBGRpdmQCCQBoAgkBCnJld2FyZFJhdGUABRJhY3R1YWxUaW1lSW50ZXJ2YWwJAGQCCQELdG90YWxTdXBwbHkABQ1fYmFsYW5jZURlbHRhCQBkAgkBFHJld2FyZFBlclRva2VuU3RvcmVkAAUEZGlmZgEGZWFybmVkAgdfc3Rha2VyDV9iYWxhbmNlRGVsdGEEC3Jld2FyZERlbHRhCQBlAgkBDnJld2FyZFBlclRva2VuAQUNX2JhbGFuY2VEZWx0YQkBFnVzZXJSZXdhcmRQZXJUb2tlblBhaWQBBQdfc3Rha2VyCQBkAgkBBG11bGQCCQBkAgkBCWJhbGFuY2VPZgEFB19zdGFrZXIFDV9iYWxhbmNlRGVsdGEFC3Jld2FyZERlbHRhCQEHcmV3YXJkcwEFB19zdGFrZXIBDHVwZGF0ZVJld2FyZAIHX3N0YWtlcg1fYmFsYW5jZURlbHRhBBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBDnJld2FyZFBlclRva2VuAQUNX2JhbGFuY2VEZWx0YQQRbmV3TGFzdFVwZGF0ZVRpbWUJARNjdXJyZW50VGltZXN0YW1wU2VjAAQLJHQwNTAyMDUyMTIDCQECIT0CBQdfc3Rha2VyAgAJAJQKAgkBBmVhcm5lZAIFB19zdGFrZXIFDV9iYWxhbmNlRGVsdGEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQCUCgIAAAAABAxzdGFrZXJFYXJuZWQIBQskdDA1MDIwNTIxMgJfMQQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAULJHQwNTAyMDUyMTICXzIJAJYKBAUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQFEW5ld0xhc3RVcGRhdGVUaW1lBQxzdGFrZXJFYXJuZWQFGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAkBaQEKaW5pdGlhbGl6ZQEMX2Nvb3JkaW5hdG9yAwkBC2luaXRpYWxpemVkAAkAAgECE0FscmVhZHkgaW5pdGlhbGl6ZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUUa19jb29yZGluYXRvckFkZHJlc3MFDF9jb29yZGluYXRvcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUNa19pbml0aWFsaXplZAYFA25pbAFpAQVzdGFrZQAEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyBAdfYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQ9nb3Zlcm5hbmNlQXNzZXQABgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIWSW52YWxpZCBjYWxsIHRvICBzdGFrZQQLJHQwNTg2ODYwMzMJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAAEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCAULJHQwNTg2ODYwMzMCXzEEEW5ld0xhc3RVcGRhdGVUaW1lCAULJHQwNTg2ODYwMzMCXzIEDHN0YWtlckVhcm5lZAgFCyR0MDU4Njg2MDMzAl8zBBhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQIBQskdDA1ODY4NjAzMwJfNAkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBDXVwZGF0ZUJhbGFuY2UCBQdfc3Rha2VyBQdfYW1vdW50AWkBB3VuU3Rha2UBB19hbW91bnQEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyAwMDCQBmAgUHX2Ftb3VudAkBCWJhbGFuY2VPZgEFB19zdGFrZXIGCQECIT0CCAUBaQhwYXltZW50cwUDbmlsBgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIaSW52YWxpZCB1blN0YWtlIHBhcmFtZXRlcnMECyR0MDY1NjQ2NzI5CQEMdXBkYXRlUmV3YXJkAgUHX3N0YWtlcgAABBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgFCyR0MDY1NjQ2NzI5Al8xBBFuZXdMYXN0VXBkYXRlVGltZQgFCyR0MDY1NjQ2NzI5Al8yBAxzdGFrZXJFYXJuZWQIBQskdDA2NTY0NjcyOQJfMwQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAULJHQwNjU2NDY3MjkCXzQJAM4IAgkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBDXVwZGF0ZUJhbGFuY2UCBQdfc3Rha2VyCQEBLQEFB19hbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQdfYW1vdW50CQEPZ292ZXJuYW5jZUFzc2V0AAUDbmlsAWkBD3dpdGhkcmF3UmV3YXJkcwAEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyBAskdDA3MjA1NzM1MAkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQskdDA3MjA1NzM1MAJfMQQRbmV3TGFzdFVwZGF0ZVRpbWUIBQskdDA3MjA1NzM1MAJfMgQMc3Rha2VyRWFybmVkCAULJHQwNzIwNTczNTACXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFCyR0MDcyMDU3MzUwAl80AwMJAGcCAAAFDHN0YWtlckVhcm5lZAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECCU5vIHJld2FyZAQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgh3aXRoZHJhdwkAzAgCCQDYBAEJAQpxdW90ZUFzc2V0AAkAzAgCCQEQdXNkbkZyb21EZWNpbWFscwEFDHN0YWtlckVhcm5lZAUDbmlsBQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQkAzggCCQDOCAIJAM4IAgkAzggCCQERdXBkYXRlVXNlclJld2FyZHMDBQdfc3Rha2VyAAAFGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAkBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkAQUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJAQp1cGRhdGVUaW1lAgURbmV3TGFzdFVwZGF0ZVRpbWUJAQxwZXJpb2RGaW5pc2gACQETdXBkYXRlUmV3YXJkQmFsYW5jZQEJAQEtAQUMc3Rha2VyRWFybmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkBEHVzZG5Gcm9tRGVjaW1hbHMBBQxzdGFrZXJFYXJuZWQJAQpxdW90ZUFzc2V0AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmFkZFJld2FyZHMAAwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBCnF1b3RlQXNzZXQABgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIZSW52YWxpZCBhZGRSZXdhcmRzIHBhcmFtcwQHX3Jld2FyZAkBDnVzZG5Ub0RlY2ltYWxzAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBXN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBCnF1b3RlQXNzZXQACQEQdXNkbkZyb21EZWNpbWFscwEFB19yZXdhcmQFA25pbAMJAAACBQVzdGFrZQUFc3Rha2UEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCAkBDHVwZGF0ZVJld2FyZAIFCk5PX0FERFJFU1MFCU5PX1NUQUtFUgJfMQQJdGltZXN0YW1wCQETY3VycmVudFRpbWVzdGFtcFNlYwAEDW5ld1Jld2FyZFJhdGUDCQBmAgUJdGltZXN0YW1wCQEMcGVyaW9kRmluaXNoAAkAaQIFB19yZXdhcmQFCERVUkFUSU9OBA1yZW1haW5pbmdUaW1lCQBlAgkBDHBlcmlvZEZpbmlzaAAFCXRpbWVzdGFtcAQIbGVmdG92ZXIJAGgCCQEKcmV3YXJkUmF0ZQAFDXJlbWFpbmluZ1RpbWUJAGkCCQBkAgUHX3Jld2FyZAUIbGVmdG92ZXIFCERVUkFUSU9OCQDOCAIJAM4IAgkAzggCCQEQdXBkYXRlUmV3YXJkUmF0ZQEFDW5ld1Jld2FyZFJhdGUJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQETdXBkYXRlUmV3YXJkQmFsYW5jZQEFB19yZXdhcmQJAQp1cGRhdGVUaW1lAgUJdGltZXN0YW1wCQBkAgUJdGltZXN0YW1wBQhEVVJBVElPTgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQphY2tSZXdhcmRzAAQOY3VycmVudEJhbGFuY2UJAQ51c2RuVG9EZWNpbWFscwEJAPAHAgUEdGhpcwkBCnF1b3RlQXNzZXQABA5fcmV3YXJkQmFsYW5jZQkBDXJld2FyZEJhbGFuY2UABAtyZXdhcmREZWx0YQkAZQIFDmN1cnJlbnRCYWxhbmNlBQ5fcmV3YXJkQmFsYW5jZQMJAGcCAAAFC3Jld2FyZERlbHRhCQACAQIZSW52YWxpZCBhY2tSZXdhcmRzIHBhcmFtcwQFc3Rha2UJAPwHBAkBDm1hbmFnZXJBZGRyZXNzAAIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKcXVvdGVBc3NldAAJARB1c2RuRnJvbURlY2ltYWxzAQULcmV3YXJkRGVsdGEFA25pbAMJAAACBQVzdGFrZQUFc3Rha2UEB19yZXdhcmQFC3Jld2FyZERlbHRhBBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgJAQx1cGRhdGVSZXdhcmQCBQpOT19BRERSRVNTBQlOT19TVEFLRVICXzEECXRpbWVzdGFtcAkBE2N1cnJlbnRUaW1lc3RhbXBTZWMABA1uZXdSZXdhcmRSYXRlAwkAZgIFCXRpbWVzdGFtcAkBDHBlcmlvZEZpbmlzaAAJAGkCBQdfcmV3YXJkBQhEVVJBVElPTgQNcmVtYWluaW5nVGltZQkAZQIJAQxwZXJpb2RGaW5pc2gABQl0aW1lc3RhbXAECGxlZnRvdmVyCQBoAgkBCnJld2FyZFJhdGUABQ1yZW1haW5pbmdUaW1lCQBpAgkAZAIFB19yZXdhcmQFCGxlZnRvdmVyBQhEVVJBVElPTgkAzggCCQDOCAIJAM4IAgkBEHVwZGF0ZVJld2FyZFJhdGUBBQ1uZXdSZXdhcmRSYXRlCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBE3VwZGF0ZVJld2FyZEJhbGFuY2UBBQdfcmV3YXJkCQEKdXBkYXRlVGltZQIFCXRpbWVzdGFtcAkAZAIFCXRpbWVzdGFtcAUIRFVSQVRJT04JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELdmlld19yZXdhcmQBB19zdGFrZXIEDHN0YWtlckVhcm5lZAgJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAACXzMJAAIBCQCkAwEJARB1c2RuRnJvbURlY2ltYWxzAQUMc3Rha2VyRWFybmVkAWkBDWNvbXB1dGVSZXdhcmQBB19zdGFrZXIEDHN0YWtlckVhcm5lZAgJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAACXzMJAJQKAgUDbmlsBQxzdGFrZXJFYXJuZWQBaQEQbWlncmF0ZUxpcXVpZGl0eQAEBmFtb3VudAkBEHVzZG5Gcm9tRGVjaW1hbHMBCQENcmV3YXJkQmFsYW5jZQAEBXN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBCnF1b3RlQXNzZXQABQZhbW91bnQFA25pbAMJAAACBQVzdGFrZQUFc3Rha2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJAQ5hZG1pblB1YmxpY0tleQBsPlOF", "height": 2260170, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AZfJwranHSXKucjoToZXrfqpxi7VyY46kqZXSp8sFwUu Next: Fg769VxgVGD1eyQm9t5TBbnuSWeEnEkQsDSpstSqGSZZ Diff:
OldNewDifferences
2929
3030 let n = "k_admin_public_key"
3131
32-func o () = valueOrErrorMessage(addressFromString(getStringValue(this, k)), "Coordinator not set")
32+let o = "k_manager_address"
33+
34+func p () = valueOrErrorMessage(addressFromString(getStringValue(this, k)), "Coordinator not set")
3335
3436
35-func p () = fromBase58String(getStringValue(o(), n))
37+func q () = fromBase58String(getStringValue(p(), n))
3638
3739
38-func q () = fromBase58String(getStringValue(o(), l))
40+func r () = fromBase58String(getStringValue(p(), l))
3941
4042
41-func r () = fromBase58String(getStringValue(o(), m))
43+func s () = fromBase58String(getStringValue(p(), m))
4244
4345
44-let s = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
45-
46-let t = ((60 * 60) * 24)
47-
48-let u = ""
49-
50-let v = 0
51-
52-func w (x) = (x / 100)
46+func t () = valueOrErrorMessage(addressFromString(getStringValue(p(), o)), "Manager not set")
5347
5448
55-func y (x) = (x * 100)
49+let u = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
50+
51+let v = ((60 * 60) * 24)
52+
53+let w = ""
54+
55+let x = 0
56+
57+func y (z) = (z / 100)
5658
5759
58-func z (A,B) = fraction(A, s, B, HALFEVEN)
60+func A (z) = (z * 100)
5961
6062
61-func C (A,B) = fraction(A, B, s, HALFEVEN)
63+func B (C,D) = fraction(C, u, D, HALFEVEN)
6264
6365
64-func D (A) = if ((A > 0))
65- then A
66- else -(A)
66+func E (C,D) = fraction(C, D, u, HALFEVEN)
6767
6868
69-func E (A,B) = if ((A > B))
70- then B
71- else A
69+func F (C) = if ((C > 0))
70+ then C
71+ else -(C)
7272
7373
74-func F (G,H) = ((G + "_") + H)
74+func G (C,D) = if ((C > D))
75+ then D
76+ else C
7577
7678
77-func I (J) = valueOrErrorMessage(getInteger(this, J), ("no value for " + J))
79+func H (I,J) = ((I + "_") + J)
7880
7981
80-func K (J) = valueOrElse(getInteger(this, J), 0)
82+func K (L) = valueOrErrorMessage(getInteger(this, L), ("no value for " + L))
8183
8284
83-func L () = K(a)
85+func M (L) = valueOrElse(getInteger(this, L), 0)
8486
8587
86-func M () = K(d)
88+func N () = M(a)
8789
8890
89-func N () = K(c)
91+func O () = M(d)
9092
9193
92-func O () = K(e)
94+func P () = M(c)
9395
9496
95-func P () = K(f)
97+func Q () = M(e)
9698
9799
98-func Q () = K(b)
100+func R () = M(f)
99101
100102
101-func R (S) = K(F(i, S))
103+func S () = M(b)
102104
103105
104-func T (S) = K(F(h, S))
106+func T (U) = M(H(i, U))
105107
106108
107-func U (S) = K(F(g, S))
109+func V (U) = M(H(h, U))
108110
109111
110-func V () = valueOrElse(getBoolean(this, j), false)
112+func W (U) = M(H(g, U))
111113
112114
113-func W (X) = [IntegerEntry(b, (Q() + X))]
115+func X () = valueOrElse(getBoolean(this, j), false)
114116
115117
116-func Y (Z) = [IntegerEntry(e, Z)]
118+func Y (Z) = [IntegerEntry(b, (S() + Z))]
117119
118120
119-func aa (ab,ac) = [IntegerEntry(c, ab), IntegerEntry(f, ac)]
121+func aa (ab) = [IntegerEntry(e, ab)]
120122
121123
122-func ad (ae) = [IntegerEntry(d, ae)]
124+func ac (ad,ae) = [IntegerEntry(c, ad), IntegerEntry(f, ae)]
123125
124126
125-func af (S,ag,ah) = [IntegerEntry(F(i, S), ag), IntegerEntry(F(h, S), ah)]
127+func af (ag) = [IntegerEntry(d, ag)]
126128
127129
128-func ai (S,X) = [IntegerEntry(F(g, S), (U(S) + X)), IntegerEntry(a, (L() + X))]
130+func ah (U,ai,aj) = [IntegerEntry(H(i, U), ai), IntegerEntry(H(h, U), aj)]
129131
130132
131-func aj () = (lastBlock.timestamp / 1000)
133+func ak (U,Z) = [IntegerEntry(H(g, U), (W(U) + Z)), IntegerEntry(a, (N() + Z))]
132134
133135
134-func ak () = E(aj(), P())
136+func al () = (lastBlock.timestamp / 1000)
135137
136138
137-func al (am) = if (((L() + am) == 0))
138- then M()
139+func am () = G(al(), R())
140+
141+
142+func an (ao) = if (((N() + ao) == 0))
143+ then O()
139144 else {
140- let an = (ak() - N())
141- let ao = if ((0 > an))
145+ let ap = (am() - P())
146+ let aq = if ((0 > ap))
142147 then 0
143- else an
144- let ap = z((O() * ao), (L() + am))
145- (M() + ap)
148+ else ap
149+ let ar = B((Q() * aq), (N() + ao))
150+ (O() + ar)
146151 }
147152
148153
149-func aq (S,am) = {
150- let ar = (al(am) - T(S))
151- (C((U(S) + am), ar) + R(S))
154+func as (U,ao) = {
155+ let at = (an(ao) - V(U))
156+ (E((W(U) + ao), at) + T(U))
152157 }
153158
154159
155-func as (S,am) = {
156- let at = al(am)
157- let au = aj()
158- let av = if ((S != ""))
159- then $Tuple2(aq(S, am), at)
160+func au (U,ao) = {
161+ let av = an(ao)
162+ let aw = al()
163+ let ax = if ((U != ""))
164+ then $Tuple2(as(U, ao), av)
160165 else $Tuple2(0, 0)
161- let aw = av._1
162- let ax = av._2
163- $Tuple4(at, au, aw, ax)
166+ let ay = ax._1
167+ let az = ax._2
168+ $Tuple4(av, aw, ay, az)
164169 }
165170
166171
167-@Callable(ay)
168-func initialize (az) = if (V())
172+@Callable(aA)
173+func initialize (aB) = if (X())
169174 then throw("Already initialized")
170- else [StringEntry(k, az), BooleanEntry(j, true)]
175+ else [StringEntry(k, aB), BooleanEntry(j, true)]
171176
172177
173178
174-@Callable(ay)
179+@Callable(aA)
175180 func stake () = {
176- let S = toString(ay.caller)
177- let x = ay.payments[0].amount
178- if (if ((ay.payments[0].assetId != q()))
181+ let U = toString(aA.caller)
182+ let z = aA.payments[0].amount
183+ if (if ((aA.payments[0].assetId != r()))
179184 then true
180- else !(V()))
185+ else !(X()))
181186 then throw("Invalid call to stake")
182187 else {
183- let aA = as(S, 0)
184- let at = aA._1
185- let au = aA._2
186- let aw = aA._3
187- let ax = aA._4
188- (((af(S, aw, ax) ++ ad(at)) ++ aa(au, P())) ++ ai(S, x))
188+ let aC = au(U, 0)
189+ let av = aC._1
190+ let aw = aC._2
191+ let ay = aC._3
192+ let az = aC._4
193+ (((ah(U, ay, az) ++ af(av)) ++ ac(aw, R())) ++ ak(U, z))
189194 }
190195 }
191196
192197
193198
194-@Callable(ay)
195-func unStake (x) = {
196- let S = toString(ay.caller)
197- if (if (if ((x > U(S)))
199+@Callable(aA)
200+func unStake (z) = {
201+ let U = toString(aA.caller)
202+ if (if (if ((z > W(U)))
198203 then true
199- else (ay.payments != nil))
204+ else (aA.payments != nil))
200205 then true
201- else !(V()))
206+ else !(X()))
202207 then throw("Invalid unStake parameters")
203208 else {
204- let aB = as(S, 0)
205- let at = aB._1
206- let au = aB._2
207- let aw = aB._3
208- let ax = aB._4
209- ((((af(S, aw, ax) ++ ad(at)) ++ aa(au, P())) ++ ai(S, -(x))) ++ [ScriptTransfer(ay.caller, x, q())])
209+ let aD = au(U, 0)
210+ let av = aD._1
211+ let aw = aD._2
212+ let ay = aD._3
213+ let az = aD._4
214+ ((((ah(U, ay, az) ++ af(av)) ++ ac(aw, R())) ++ ak(U, -(z))) ++ [ScriptTransfer(aA.caller, z, r())])
210215 }
211216 }
212217
213218
214219
215-@Callable(ay)
220+@Callable(aA)
216221 func withdrawRewards () = {
217- let S = toString(ay.caller)
218- let aC = as(S, 0)
219- let at = aC._1
220- let au = aC._2
221- let aw = aC._3
222- let ax = aC._4
223- if (if ((0 >= aw))
222+ let U = toString(aA.caller)
223+ let aE = au(U, 0)
224+ let av = aE._1
225+ let aw = aE._2
226+ let ay = aE._3
227+ let az = aE._4
228+ if (if ((0 >= ay))
224229 then true
225- else !(V()))
230+ else !(X()))
226231 then throw("No reward")
227- else ((((af(S, 0, ax) ++ ad(at)) ++ aa(au, P())) ++ W(-(aw))) ++ [ScriptTransfer(ay.caller, w(aw), r())])
228- }
229-
230-
231-
232-@Callable(ay)
233-func addRewards () = if (if ((ay.payments[0].assetId != r()))
234- then true
235- else !(V()))
236- then throw("Invalid addRewards params")
237- else {
238- let ag = y(ay.payments[0].amount)
239- let at = as(u, v)._1
240- let aD = aj()
241- let aE = if ((aD > P()))
242- then (ag / t)
243- else {
244- let aF = (P() - aD)
245- let aG = (O() * aF)
246- ((ag + aG) / t)
247- }
248- (((Y(aE) ++ ad(at)) ++ W(ag)) ++ aa(aD, (aD + t)))
249- }
250-
251-
252-
253-@Callable(ay)
254-func ackRewards () = {
255- let aH = y(assetBalance(this, r()))
256- let aI = Q()
257- let ar = (aH - aI)
258- if ((0 >= ar))
259- then throw("Invalid ackRewards params")
260232 else {
261- let ag = ar
262- let at = as(u, v)._1
263- let aD = aj()
264- let aE = if ((aD > P()))
265- then (ag / t)
266- else {
267- let aF = (P() - aD)
268- let aG = (O() * aF)
269- ((ag + aG) / t)
270- }
271- (((Y(aE) ++ ad(at)) ++ W(ag)) ++ aa(aD, (aD + t)))
233+ let aF = invoke(t(), "withdraw", [toBase58String(s()), y(ay)], nil)
234+ if ((aF == aF))
235+ then ((((ah(U, 0, az) ++ af(av)) ++ ac(aw, R())) ++ Y(-(ay))) ++ [ScriptTransfer(aA.caller, y(ay), s())])
236+ else throw("Strict value is not equal to itself.")
272237 }
273238 }
274239
275240
276241
277-@Callable(ay)
278-func view_reward (S) = {
279- let aw = as(S, 0)._3
280- throw(toString(w(aw)))
242+@Callable(aA)
243+func addRewards () = if (if ((aA.payments[0].assetId != s()))
244+ then true
245+ else !(X()))
246+ then throw("Invalid addRewards params")
247+ else {
248+ let ai = A(aA.payments[0].amount)
249+ let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(ai))])
250+ if ((aG == aG))
251+ then {
252+ let av = au(w, x)._1
253+ let aH = al()
254+ let aI = if ((aH > R()))
255+ then (ai / v)
256+ else {
257+ let aJ = (R() - aH)
258+ let aK = (Q() * aJ)
259+ ((ai + aK) / v)
260+ }
261+ (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
262+ }
263+ else throw("Strict value is not equal to itself.")
264+ }
265+
266+
267+
268+@Callable(aA)
269+func ackRewards () = {
270+ let aL = A(assetBalance(this, s()))
271+ let aM = S()
272+ let at = (aL - aM)
273+ if ((0 >= at))
274+ then throw("Invalid ackRewards params")
275+ else {
276+ let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(at))])
277+ if ((aG == aG))
278+ then {
279+ let ai = at
280+ let av = au(w, x)._1
281+ let aH = al()
282+ let aI = if ((aH > R()))
283+ then (ai / v)
284+ else {
285+ let aJ = (R() - aH)
286+ let aK = (Q() * aJ)
287+ ((ai + aK) / v)
288+ }
289+ (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
290+ }
291+ else throw("Strict value is not equal to itself.")
292+ }
281293 }
282294
283295
284296
285-@Callable(ay)
286-func computeReward (S) = {
287- let aw = as(S, 0)._3
288- $Tuple2(nil, aw)
297+@Callable(aA)
298+func view_reward (U) = {
299+ let ay = au(U, 0)._3
300+ throw(toString(y(ay)))
289301 }
290302
291303
292-@Verifier(aJ)
293-func aK () = sigVerify(aJ.bodyBytes, aJ.proofs[0], p())
304+
305+@Callable(aA)
306+func computeReward (U) = {
307+ let ay = au(U, 0)._3
308+ $Tuple2(nil, ay)
309+ }
310+
311+
312+
313+@Callable(aA)
314+func migrateLiquidity () = {
315+ let aN = y(S())
316+ let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), aN)])
317+ if ((aG == aG))
318+ then nil
319+ else throw("Strict value is not equal to itself.")
320+ }
321+
322+
323+@Verifier(aO)
324+func aP () = sigVerify(aO.bodyBytes, aO.proofs[0], q())
294325
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_lastUpdateTime"
99
1010 let d = "k_rewardPerTokenStored"
1111
1212 let e = "k_rewardRate"
1313
1414 let f = "k_periodFinish"
1515
1616 let g = "k_balance"
1717
1818 let h = "k_userRewardPerToken"
1919
2020 let i = "k_userReward"
2121
2222 let j = "k_initialized"
2323
2424 let k = "k_coordinatorAddress"
2525
2626 let l = "k_gov_asset"
2727
2828 let m = "k_quote_asset"
2929
3030 let n = "k_admin_public_key"
3131
32-func o () = valueOrErrorMessage(addressFromString(getStringValue(this, k)), "Coordinator not set")
32+let o = "k_manager_address"
33+
34+func p () = valueOrErrorMessage(addressFromString(getStringValue(this, k)), "Coordinator not set")
3335
3436
35-func p () = fromBase58String(getStringValue(o(), n))
37+func q () = fromBase58String(getStringValue(p(), n))
3638
3739
38-func q () = fromBase58String(getStringValue(o(), l))
40+func r () = fromBase58String(getStringValue(p(), l))
3941
4042
41-func r () = fromBase58String(getStringValue(o(), m))
43+func s () = fromBase58String(getStringValue(p(), m))
4244
4345
44-let s = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
45-
46-let t = ((60 * 60) * 24)
47-
48-let u = ""
49-
50-let v = 0
51-
52-func w (x) = (x / 100)
46+func t () = valueOrErrorMessage(addressFromString(getStringValue(p(), o)), "Manager not set")
5347
5448
55-func y (x) = (x * 100)
49+let u = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
50+
51+let v = ((60 * 60) * 24)
52+
53+let w = ""
54+
55+let x = 0
56+
57+func y (z) = (z / 100)
5658
5759
58-func z (A,B) = fraction(A, s, B, HALFEVEN)
60+func A (z) = (z * 100)
5961
6062
61-func C (A,B) = fraction(A, B, s, HALFEVEN)
63+func B (C,D) = fraction(C, u, D, HALFEVEN)
6264
6365
64-func D (A) = if ((A > 0))
65- then A
66- else -(A)
66+func E (C,D) = fraction(C, D, u, HALFEVEN)
6767
6868
69-func E (A,B) = if ((A > B))
70- then B
71- else A
69+func F (C) = if ((C > 0))
70+ then C
71+ else -(C)
7272
7373
74-func F (G,H) = ((G + "_") + H)
74+func G (C,D) = if ((C > D))
75+ then D
76+ else C
7577
7678
77-func I (J) = valueOrErrorMessage(getInteger(this, J), ("no value for " + J))
79+func H (I,J) = ((I + "_") + J)
7880
7981
80-func K (J) = valueOrElse(getInteger(this, J), 0)
82+func K (L) = valueOrErrorMessage(getInteger(this, L), ("no value for " + L))
8183
8284
83-func L () = K(a)
85+func M (L) = valueOrElse(getInteger(this, L), 0)
8486
8587
86-func M () = K(d)
88+func N () = M(a)
8789
8890
89-func N () = K(c)
91+func O () = M(d)
9092
9193
92-func O () = K(e)
94+func P () = M(c)
9395
9496
95-func P () = K(f)
97+func Q () = M(e)
9698
9799
98-func Q () = K(b)
100+func R () = M(f)
99101
100102
101-func R (S) = K(F(i, S))
103+func S () = M(b)
102104
103105
104-func T (S) = K(F(h, S))
106+func T (U) = M(H(i, U))
105107
106108
107-func U (S) = K(F(g, S))
109+func V (U) = M(H(h, U))
108110
109111
110-func V () = valueOrElse(getBoolean(this, j), false)
112+func W (U) = M(H(g, U))
111113
112114
113-func W (X) = [IntegerEntry(b, (Q() + X))]
115+func X () = valueOrElse(getBoolean(this, j), false)
114116
115117
116-func Y (Z) = [IntegerEntry(e, Z)]
118+func Y (Z) = [IntegerEntry(b, (S() + Z))]
117119
118120
119-func aa (ab,ac) = [IntegerEntry(c, ab), IntegerEntry(f, ac)]
121+func aa (ab) = [IntegerEntry(e, ab)]
120122
121123
122-func ad (ae) = [IntegerEntry(d, ae)]
124+func ac (ad,ae) = [IntegerEntry(c, ad), IntegerEntry(f, ae)]
123125
124126
125-func af (S,ag,ah) = [IntegerEntry(F(i, S), ag), IntegerEntry(F(h, S), ah)]
127+func af (ag) = [IntegerEntry(d, ag)]
126128
127129
128-func ai (S,X) = [IntegerEntry(F(g, S), (U(S) + X)), IntegerEntry(a, (L() + X))]
130+func ah (U,ai,aj) = [IntegerEntry(H(i, U), ai), IntegerEntry(H(h, U), aj)]
129131
130132
131-func aj () = (lastBlock.timestamp / 1000)
133+func ak (U,Z) = [IntegerEntry(H(g, U), (W(U) + Z)), IntegerEntry(a, (N() + Z))]
132134
133135
134-func ak () = E(aj(), P())
136+func al () = (lastBlock.timestamp / 1000)
135137
136138
137-func al (am) = if (((L() + am) == 0))
138- then M()
139+func am () = G(al(), R())
140+
141+
142+func an (ao) = if (((N() + ao) == 0))
143+ then O()
139144 else {
140- let an = (ak() - N())
141- let ao = if ((0 > an))
145+ let ap = (am() - P())
146+ let aq = if ((0 > ap))
142147 then 0
143- else an
144- let ap = z((O() * ao), (L() + am))
145- (M() + ap)
148+ else ap
149+ let ar = B((Q() * aq), (N() + ao))
150+ (O() + ar)
146151 }
147152
148153
149-func aq (S,am) = {
150- let ar = (al(am) - T(S))
151- (C((U(S) + am), ar) + R(S))
154+func as (U,ao) = {
155+ let at = (an(ao) - V(U))
156+ (E((W(U) + ao), at) + T(U))
152157 }
153158
154159
155-func as (S,am) = {
156- let at = al(am)
157- let au = aj()
158- let av = if ((S != ""))
159- then $Tuple2(aq(S, am), at)
160+func au (U,ao) = {
161+ let av = an(ao)
162+ let aw = al()
163+ let ax = if ((U != ""))
164+ then $Tuple2(as(U, ao), av)
160165 else $Tuple2(0, 0)
161- let aw = av._1
162- let ax = av._2
163- $Tuple4(at, au, aw, ax)
166+ let ay = ax._1
167+ let az = ax._2
168+ $Tuple4(av, aw, ay, az)
164169 }
165170
166171
167-@Callable(ay)
168-func initialize (az) = if (V())
172+@Callable(aA)
173+func initialize (aB) = if (X())
169174 then throw("Already initialized")
170- else [StringEntry(k, az), BooleanEntry(j, true)]
175+ else [StringEntry(k, aB), BooleanEntry(j, true)]
171176
172177
173178
174-@Callable(ay)
179+@Callable(aA)
175180 func stake () = {
176- let S = toString(ay.caller)
177- let x = ay.payments[0].amount
178- if (if ((ay.payments[0].assetId != q()))
181+ let U = toString(aA.caller)
182+ let z = aA.payments[0].amount
183+ if (if ((aA.payments[0].assetId != r()))
179184 then true
180- else !(V()))
185+ else !(X()))
181186 then throw("Invalid call to stake")
182187 else {
183- let aA = as(S, 0)
184- let at = aA._1
185- let au = aA._2
186- let aw = aA._3
187- let ax = aA._4
188- (((af(S, aw, ax) ++ ad(at)) ++ aa(au, P())) ++ ai(S, x))
188+ let aC = au(U, 0)
189+ let av = aC._1
190+ let aw = aC._2
191+ let ay = aC._3
192+ let az = aC._4
193+ (((ah(U, ay, az) ++ af(av)) ++ ac(aw, R())) ++ ak(U, z))
189194 }
190195 }
191196
192197
193198
194-@Callable(ay)
195-func unStake (x) = {
196- let S = toString(ay.caller)
197- if (if (if ((x > U(S)))
199+@Callable(aA)
200+func unStake (z) = {
201+ let U = toString(aA.caller)
202+ if (if (if ((z > W(U)))
198203 then true
199- else (ay.payments != nil))
204+ else (aA.payments != nil))
200205 then true
201- else !(V()))
206+ else !(X()))
202207 then throw("Invalid unStake parameters")
203208 else {
204- let aB = as(S, 0)
205- let at = aB._1
206- let au = aB._2
207- let aw = aB._3
208- let ax = aB._4
209- ((((af(S, aw, ax) ++ ad(at)) ++ aa(au, P())) ++ ai(S, -(x))) ++ [ScriptTransfer(ay.caller, x, q())])
209+ let aD = au(U, 0)
210+ let av = aD._1
211+ let aw = aD._2
212+ let ay = aD._3
213+ let az = aD._4
214+ ((((ah(U, ay, az) ++ af(av)) ++ ac(aw, R())) ++ ak(U, -(z))) ++ [ScriptTransfer(aA.caller, z, r())])
210215 }
211216 }
212217
213218
214219
215-@Callable(ay)
220+@Callable(aA)
216221 func withdrawRewards () = {
217- let S = toString(ay.caller)
218- let aC = as(S, 0)
219- let at = aC._1
220- let au = aC._2
221- let aw = aC._3
222- let ax = aC._4
223- if (if ((0 >= aw))
222+ let U = toString(aA.caller)
223+ let aE = au(U, 0)
224+ let av = aE._1
225+ let aw = aE._2
226+ let ay = aE._3
227+ let az = aE._4
228+ if (if ((0 >= ay))
224229 then true
225- else !(V()))
230+ else !(X()))
226231 then throw("No reward")
227- else ((((af(S, 0, ax) ++ ad(at)) ++ aa(au, P())) ++ W(-(aw))) ++ [ScriptTransfer(ay.caller, w(aw), r())])
228- }
229-
230-
231-
232-@Callable(ay)
233-func addRewards () = if (if ((ay.payments[0].assetId != r()))
234- then true
235- else !(V()))
236- then throw("Invalid addRewards params")
237- else {
238- let ag = y(ay.payments[0].amount)
239- let at = as(u, v)._1
240- let aD = aj()
241- let aE = if ((aD > P()))
242- then (ag / t)
243- else {
244- let aF = (P() - aD)
245- let aG = (O() * aF)
246- ((ag + aG) / t)
247- }
248- (((Y(aE) ++ ad(at)) ++ W(ag)) ++ aa(aD, (aD + t)))
249- }
250-
251-
252-
253-@Callable(ay)
254-func ackRewards () = {
255- let aH = y(assetBalance(this, r()))
256- let aI = Q()
257- let ar = (aH - aI)
258- if ((0 >= ar))
259- then throw("Invalid ackRewards params")
260232 else {
261- let ag = ar
262- let at = as(u, v)._1
263- let aD = aj()
264- let aE = if ((aD > P()))
265- then (ag / t)
266- else {
267- let aF = (P() - aD)
268- let aG = (O() * aF)
269- ((ag + aG) / t)
270- }
271- (((Y(aE) ++ ad(at)) ++ W(ag)) ++ aa(aD, (aD + t)))
233+ let aF = invoke(t(), "withdraw", [toBase58String(s()), y(ay)], nil)
234+ if ((aF == aF))
235+ then ((((ah(U, 0, az) ++ af(av)) ++ ac(aw, R())) ++ Y(-(ay))) ++ [ScriptTransfer(aA.caller, y(ay), s())])
236+ else throw("Strict value is not equal to itself.")
272237 }
273238 }
274239
275240
276241
277-@Callable(ay)
278-func view_reward (S) = {
279- let aw = as(S, 0)._3
280- throw(toString(w(aw)))
242+@Callable(aA)
243+func addRewards () = if (if ((aA.payments[0].assetId != s()))
244+ then true
245+ else !(X()))
246+ then throw("Invalid addRewards params")
247+ else {
248+ let ai = A(aA.payments[0].amount)
249+ let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(ai))])
250+ if ((aG == aG))
251+ then {
252+ let av = au(w, x)._1
253+ let aH = al()
254+ let aI = if ((aH > R()))
255+ then (ai / v)
256+ else {
257+ let aJ = (R() - aH)
258+ let aK = (Q() * aJ)
259+ ((ai + aK) / v)
260+ }
261+ (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
262+ }
263+ else throw("Strict value is not equal to itself.")
264+ }
265+
266+
267+
268+@Callable(aA)
269+func ackRewards () = {
270+ let aL = A(assetBalance(this, s()))
271+ let aM = S()
272+ let at = (aL - aM)
273+ if ((0 >= at))
274+ then throw("Invalid ackRewards params")
275+ else {
276+ let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(at))])
277+ if ((aG == aG))
278+ then {
279+ let ai = at
280+ let av = au(w, x)._1
281+ let aH = al()
282+ let aI = if ((aH > R()))
283+ then (ai / v)
284+ else {
285+ let aJ = (R() - aH)
286+ let aK = (Q() * aJ)
287+ ((ai + aK) / v)
288+ }
289+ (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
290+ }
291+ else throw("Strict value is not equal to itself.")
292+ }
281293 }
282294
283295
284296
285-@Callable(ay)
286-func computeReward (S) = {
287- let aw = as(S, 0)._3
288- $Tuple2(nil, aw)
297+@Callable(aA)
298+func view_reward (U) = {
299+ let ay = au(U, 0)._3
300+ throw(toString(y(ay)))
289301 }
290302
291303
292-@Verifier(aJ)
293-func aK () = sigVerify(aJ.bodyBytes, aJ.proofs[0], p())
304+
305+@Callable(aA)
306+func computeReward (U) = {
307+ let ay = au(U, 0)._3
308+ $Tuple2(nil, ay)
309+ }
310+
311+
312+
313+@Callable(aA)
314+func migrateLiquidity () = {
315+ let aN = y(S())
316+ let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), aN)])
317+ if ((aG == aG))
318+ then nil
319+ else throw("Strict value is not equal to itself.")
320+ }
321+
322+
323+@Verifier(aO)
324+func aP () = sigVerify(aO.bodyBytes, aO.proofs[0], q())
294325

github/deemru/w8io/169f3d6 
107.24 ms