tx · 9EiPpCbJrmfoBsvSPeNE9LiBUTc12cSvpP197n2DDXWh

3N4QWZXfZqNf284CJVbtxzCerqARoALxJEy:  -0.03700000 Waves

2023.03.04 14:23 [2475242] smart account 3N4QWZXfZqNf284CJVbtxzCerqARoALxJEy > SELF 0.00000000 Waves

{ "type": 13, "id": "9EiPpCbJrmfoBsvSPeNE9LiBUTc12cSvpP197n2DDXWh", "fee": 3700000, "feeAssetId": null, "timestamp": 1677929002834, "version": 2, "chainId": 84, "sender": "3N4QWZXfZqNf284CJVbtxzCerqARoALxJEy", "senderPublicKey": "GzEvTfwa3251fRwyTL99QzUmkDGBdn4cNr2mR6XQ1UmR", "proofs": [ "dZ7ZH8zRdNUyWj8m6wggRHhmRSZEgv1Gob2CsPCphzPQ1p6hn71CijEB8dLb1fFrPz1fX5PfWgNBGQX8mAM5nrU" ], "script": "base64:BgIeCAISAwoBCBIAEgMKAQESABIAEgASAwoBCBIDCgEINQANa190b3RhbFN1cHBseQINa190b3RhbFN1cHBseQAPa19yZXdhcmRCYWxhbmNlAg9rX3Jld2FyZEJhbGFuY2UAEGtfbGFzdFVwZGF0ZVRpbWUCEGtfbGFzdFVwZGF0ZVRpbWUAFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQCFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQADGtfcmV3YXJkUmF0ZQIMa19yZXdhcmRSYXRlAA5rX3BlcmlvZEZpbmlzaAIOa19wZXJpb2RGaW5pc2gACWtfYmFsYW5jZQIJa19iYWxhbmNlABRrX3VzZXJSZXdhcmRQZXJUb2tlbgIUa191c2VyUmV3YXJkUGVyVG9rZW4ADGtfdXNlclJld2FyZAIMa191c2VyUmV3YXJkAA1rX2luaXRpYWxpemVkAg1rX2luaXRpYWxpemVkABRrX2Nvb3JkaW5hdG9yQWRkcmVzcwIUa19jb29yZGluYXRvckFkZHJlc3MAEmtfZ292ZXJuYW5jZV9hc3NldAILa19nb3ZfYXNzZXQADmtfcmV3YXJkX2Fzc2V0Ag5rX3Jld2FyZF9hc3NldAAPa19hZG1pbl9hZGRyZXNzAg9rX2FkbWluX2FkZHJlc3MAEWtfbWFuYWdlcl9hZGRyZXNzAhFrX21hbmFnZXJfYWRkcmVzcwELY29vcmRpbmF0b3IACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQBD2dvdmVybmFuY2VBc3NldAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBC2Nvb3JkaW5hdG9yAAUSa19nb3Zlcm5hbmNlX2Fzc2V0AQtyZXdhcmRBc3NldAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBC2Nvb3JkaW5hdG9yAAUOa19yZXdhcmRfYXNzZXQBDm1hbmFnZXJBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFEWtfbWFuYWdlcl9hZGRyZXNzAg9NYW5hZ2VyIG5vdCBzZXQADERFQ0lNQUxfVU5JVAkAaAIAAQkAaAIJAGgCCQBoAgkAaAIJAGgCCQBoAgkAaAIACgAKAAoACgAKAAoACgAKAAhEVVJBVElPTgkAaAIJAGgCADwAPAAYAApOT19BRERSRVNTAgAACU5PX1NUQUtFUgAAARB1c2RuRnJvbURlY2ltYWxzAQdfYW1vdW50CQBpAgUHX2Ftb3VudABkAQ51c2RuVG9EZWNpbWFscwEHX2Ftb3VudAkAaAIFB19hbW91bnQAZAEEZGl2ZAICX3gCX3kJAG4EBQJfeAUMREVDSU1BTF9VTklUBQJfeQUISEFMRkVWRU4BBG11bGQCAl94Al95CQBuBAUCX3gFAl95BQxERUNJTUFMX1VOSVQFCEhBTEZFVkVOAQNhYnMBAl94AwkAZgIFAl94AAAFAl94CQEBLQEFAl94AQRtaW52AgJfeAJfeQMJAGYCBQJfeAUCX3kFAl95BQJfeAEOdG9Db21wb3NpdGVLZXkCBF9rZXkIX2FkZHJlc3MJAKwCAgkArAICBQRfa2V5AgFfBQhfYWRkcmVzcwEDaW50AQFrCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUBawkArAICAg1ubyB2YWx1ZSBmb3IgBQFrAQRpbnQwAQFrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWsAAAELdG90YWxTdXBwbHkACQEEaW50MAEFDWtfdG90YWxTdXBwbHkBFHJld2FyZFBlclRva2VuU3RvcmVkAAkBBGludDABBRZrX3Jld2FyZFBlclRva2VuU3RvcmVkAQ5sYXN0VXBkYXRlVGltZQAJAQRpbnQwAQUQa19sYXN0VXBkYXRlVGltZQEKcmV3YXJkUmF0ZQAJAQRpbnQwAQUMa19yZXdhcmRSYXRlAQxwZXJpb2RGaW5pc2gACQEEaW50MAEFDmtfcGVyaW9kRmluaXNoAQ1yZXdhcmRCYWxhbmNlAAkBBGludDABBQ9rX3Jld2FyZEJhbGFuY2UBB3Jld2FyZHMBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUMa191c2VyUmV3YXJkBQdfc3Rha2VyARZ1c2VyUmV3YXJkUGVyVG9rZW5QYWlkAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFFGtfdXNlclJld2FyZFBlclRva2VuBQdfc3Rha2VyAQliYWxhbmNlT2YBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUJa19iYWxhbmNlBQdfc3Rha2VyAQtpbml0aWFsaXplZAAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUNa19pbml0aWFsaXplZAcBE3VwZGF0ZVJld2FyZEJhbGFuY2UBBl9kZWx0YQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa19yZXdhcmRCYWxhbmNlCQBkAgkBDXJld2FyZEJhbGFuY2UABQZfZGVsdGEFA25pbAEQdXBkYXRlUmV3YXJkUmF0ZQELX3Jld2FyZFJhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtfcmV3YXJkUmF0ZQULX3Jld2FyZFJhdGUFA25pbAEKdXBkYXRlVGltZQIPX2xhc3RVcGRhdGVUaW1lDV9wZXJpb2RGaW5pc2gJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtfbGFzdFVwZGF0ZVRpbWUFD19sYXN0VXBkYXRlVGltZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa19wZXJpb2RGaW5pc2gFDV9wZXJpb2RGaW5pc2gFA25pbAEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBFV9yZXdhcmRQZXJUb2tlblN0b3JlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUWa19yZXdhcmRQZXJUb2tlblN0b3JlZAUVX3Jld2FyZFBlclRva2VuU3RvcmVkBQNuaWwBEXVwZGF0ZVVzZXJSZXdhcmRzAwdfc3Rha2VyB19yZXdhcmQTX3VzZXJSZXdhcmRQZXJUb2tlbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUMa191c2VyUmV3YXJkBQdfc3Rha2VyBQdfcmV3YXJkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBRRrX3VzZXJSZXdhcmRQZXJUb2tlbgUHX3N0YWtlcgUTX3VzZXJSZXdhcmRQZXJUb2tlbgUDbmlsAQ11cGRhdGVCYWxhbmNlAgdfc3Rha2VyBl9kZWx0YQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUJa19iYWxhbmNlBQdfc3Rha2VyCQBkAgkBCWJhbGFuY2VPZgEFB19zdGFrZXIFBl9kZWx0YQkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa190b3RhbFN1cHBseQkAZAIJAQt0b3RhbFN1cHBseQAFBl9kZWx0YQUDbmlsARNjdXJyZW50VGltZXN0YW1wU2VjAAkAaQIIBQlsYXN0QmxvY2sJdGltZXN0YW1wAOgHARhsYXN0VGltZVJld2FyZEFwcGxpY2FibGUACQEEbWludgIJARNjdXJyZW50VGltZXN0YW1wU2VjAAkBDHBlcmlvZEZpbmlzaAABDnJld2FyZFBlclRva2VuAQ1fYmFsYW5jZURlbHRhAwkAAAIJAGQCCQELdG90YWxTdXBwbHkABQ1fYmFsYW5jZURlbHRhAAAJARRyZXdhcmRQZXJUb2tlblN0b3JlZAAEDHRpbWVJbnRlcnZhbAkAZQIJARhsYXN0VGltZVJld2FyZEFwcGxpY2FibGUACQEObGFzdFVwZGF0ZVRpbWUABBJhY3R1YWxUaW1lSW50ZXJ2YWwDCQBmAgAABQx0aW1lSW50ZXJ2YWwAAAUMdGltZUludGVydmFsBARkaWZmCQEEZGl2ZAIJAGgCCQEKcmV3YXJkUmF0ZQAFEmFjdHVhbFRpbWVJbnRlcnZhbAkAZAIJAQt0b3RhbFN1cHBseQAFDV9iYWxhbmNlRGVsdGEJAGQCCQEUcmV3YXJkUGVyVG9rZW5TdG9yZWQABQRkaWZmAQZlYXJuZWQCB19zdGFrZXINX2JhbGFuY2VEZWx0YQQLcmV3YXJkRGVsdGEJAGUCCQEOcmV3YXJkUGVyVG9rZW4BBQ1fYmFsYW5jZURlbHRhCQEWdXNlclJld2FyZFBlclRva2VuUGFpZAEFB19zdGFrZXIJAGQCCQEEbXVsZAIJAGQCCQEJYmFsYW5jZU9mAQUHX3N0YWtlcgUNX2JhbGFuY2VEZWx0YQULcmV3YXJkRGVsdGEJAQdyZXdhcmRzAQUHX3N0YWtlcgEMdXBkYXRlUmV3YXJkAgdfc3Rha2VyDV9iYWxhbmNlRGVsdGEEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEOcmV3YXJkUGVyVG9rZW4BBQ1fYmFsYW5jZURlbHRhBBFuZXdMYXN0VXBkYXRlVGltZQkBE2N1cnJlbnRUaW1lc3RhbXBTZWMABAskdDA0OTI1NTExNwMJAQIhPQIFB19zdGFrZXICAAkAlAoCCQEGZWFybmVkAgUHX3N0YWtlcgUNX2JhbGFuY2VEZWx0YQUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJAJQKAgAAAAAEDHN0YWtlckVhcm5lZAgFCyR0MDQ5MjU1MTE3Al8xBBhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQIBQskdDA0OTI1NTExNwJfMgkAlgoEBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAURbmV3TGFzdFVwZGF0ZVRpbWUFDHN0YWtlckVhcm5lZAUYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAFpAQppbml0aWFsaXplAQxfY29vcmRpbmF0b3IDAwkBC2luaXRpYWxpemVkAAYJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECFFVuYWJsZSB0byBpbml0aWFsaXplCQDMCAIJAQtTdHJpbmdFbnRyeQIFFGtfY29vcmRpbmF0b3JBZGRyZXNzCQClCAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDF9jb29yZGluYXRvcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUNa19pbml0aWFsaXplZAYFA25pbAFpAQVzdGFrZQAEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyBAdfYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQ9nb3Zlcm5hbmNlQXNzZXQABgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIWSW52YWxpZCBjYWxsIHRvICBzdGFrZQQLJHQwNTgyOTU5OTQJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAAEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCAULJHQwNTgyOTU5OTQCXzEEEW5ld0xhc3RVcGRhdGVUaW1lCAULJHQwNTgyOTU5OTQCXzIEDHN0YWtlckVhcm5lZAgFCyR0MDU4Mjk1OTk0Al8zBBhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQIBQskdDA1ODI5NTk5NAJfNAkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBDXVwZGF0ZUJhbGFuY2UCBQdfc3Rha2VyBQdfYW1vdW50AWkBB3VuU3Rha2UBB19hbW91bnQEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyAwMDCQBmAgUHX2Ftb3VudAkBCWJhbGFuY2VPZgEFB19zdGFrZXIGCQECIT0CCAUBaQhwYXltZW50cwUDbmlsBgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIaSW52YWxpZCB1blN0YWtlIHBhcmFtZXRlcnMECyR0MDY1MjU2NjkwCQEMdXBkYXRlUmV3YXJkAgUHX3N0YWtlcgAABBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgFCyR0MDY1MjU2NjkwAl8xBBFuZXdMYXN0VXBkYXRlVGltZQgFCyR0MDY1MjU2NjkwAl8yBAxzdGFrZXJFYXJuZWQIBQskdDA2NTI1NjY5MAJfMwQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAULJHQwNjUyNTY2OTACXzQJAM4IAgkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBDXVwZGF0ZUJhbGFuY2UCBQdfc3Rha2VyCQEBLQEFB19hbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQdfYW1vdW50CQEPZ292ZXJuYW5jZUFzc2V0AAUDbmlsAWkBD3dpdGhkcmF3UmV3YXJkcwAEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyBAskdDA3MTY2NzMxMQkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQskdDA3MTY2NzMxMQJfMQQRbmV3TGFzdFVwZGF0ZVRpbWUIBQskdDA3MTY2NzMxMQJfMgQMc3Rha2VyRWFybmVkCAULJHQwNzE2NjczMTECXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFCyR0MDcxNjY3MzExAl80AwMJAGcCAAAFDHN0YWtlckVhcm5lZAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECCU5vIHJld2FyZAQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgh3aXRoZHJhdwkAzAgCCQDYBAEJAQtyZXdhcmRBc3NldAAJAMwIAgkBEHVzZG5Gcm9tRGVjaW1hbHMBBQxzdGFrZXJFYXJuZWQFA25pbAUDbmlsAwkAAAIFB3Vuc3Rha2UFB3Vuc3Rha2UJAM4IAgkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgAABRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBE3VwZGF0ZVJld2FyZEJhbGFuY2UBCQEBLQEFDHN0YWtlckVhcm5lZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJARB1c2RuRnJvbURlY2ltYWxzAQUMc3Rha2VyRWFybmVkCQELcmV3YXJkQXNzZXQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWRkUmV3YXJkcwADAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQELcmV3YXJkQXNzZXQABgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIZSW52YWxpZCBhZGRSZXdhcmRzIHBhcmFtcwQHX3Jld2FyZAkBDnVzZG5Ub0RlY2ltYWxzAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBXN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBC3Jld2FyZEFzc2V0AAkBEHVzZG5Gcm9tRGVjaW1hbHMBBQdfcmV3YXJkBQNuaWwDCQAAAgUFc3Rha2UFBXN0YWtlBBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgJAQx1cGRhdGVSZXdhcmQCBQpOT19BRERSRVNTBQlOT19TVEFLRVICXzEECXRpbWVzdGFtcAkBE2N1cnJlbnRUaW1lc3RhbXBTZWMABA1uZXdSZXdhcmRSYXRlAwkAZgIFCXRpbWVzdGFtcAkBDHBlcmlvZEZpbmlzaAAJAGkCBQdfcmV3YXJkBQhEVVJBVElPTgQNcmVtYWluaW5nVGltZQkAZQIJAQxwZXJpb2RGaW5pc2gABQl0aW1lc3RhbXAECGxlZnRvdmVyCQBoAgkBCnJld2FyZFJhdGUABQ1yZW1haW5pbmdUaW1lCQBpAgkAZAIFB19yZXdhcmQFCGxlZnRvdmVyBQhEVVJBVElPTgkAzggCCQDOCAIJAM4IAgkBEHVwZGF0ZVJld2FyZFJhdGUBBQ1uZXdSZXdhcmRSYXRlCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBE3VwZGF0ZVJld2FyZEJhbGFuY2UBBQdfcmV3YXJkCQEKdXBkYXRlVGltZQIFCXRpbWVzdGFtcAkAZAIFCXRpbWVzdGFtcAUIRFVSQVRJT04JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWNrUmV3YXJkcwAEC3Jld2FyZERlbHRhCQEOdXNkblRvRGVjaW1hbHMBCQDwBwIFBHRoaXMJAQtyZXdhcmRBc3NldAADCQBmAgkAaAIAAQUMREVDSU1BTF9VTklUBQtyZXdhcmREZWx0YQUDbmlsBAVzdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQtyZXdhcmRBc3NldAAJARB1c2RuRnJvbURlY2ltYWxzAQULcmV3YXJkRGVsdGEFA25pbAMJAAACBQVzdGFrZQUFc3Rha2UEB19yZXdhcmQFC3Jld2FyZERlbHRhBBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgJAQx1cGRhdGVSZXdhcmQCBQpOT19BRERSRVNTBQlOT19TVEFLRVICXzEECXRpbWVzdGFtcAkBE2N1cnJlbnRUaW1lc3RhbXBTZWMABA1uZXdSZXdhcmRSYXRlAwkAZgIFCXRpbWVzdGFtcAkBDHBlcmlvZEZpbmlzaAAJAGkCBQdfcmV3YXJkBQhEVVJBVElPTgQNcmVtYWluaW5nVGltZQkAZQIJAQxwZXJpb2RGaW5pc2gABQl0aW1lc3RhbXAECGxlZnRvdmVyCQBoAgkBCnJld2FyZFJhdGUABQ1yZW1haW5pbmdUaW1lCQBpAgkAZAIFB19yZXdhcmQFCGxlZnRvdmVyBQhEVVJBVElPTgkAzggCCQDOCAIJAM4IAgkBEHVwZGF0ZVJld2FyZFJhdGUBBQ1uZXdSZXdhcmRSYXRlCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBE3VwZGF0ZVJld2FyZEJhbGFuY2UBBQdfcmV3YXJkCQEKdXBkYXRlVGltZQIFCXRpbWVzdGFtcAkAZAIFCXRpbWVzdGFtcAUIRFVSQVRJT04JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELdmlld19yZXdhcmQBB19zdGFrZXIEDHN0YWtlckVhcm5lZAgJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAACXzMJAAIBCQCkAwEJARB1c2RuRnJvbURlY2ltYWxzAQUMc3Rha2VyRWFybmVkAWkBDWNvbXB1dGVSZXdhcmQBB19zdGFrZXIEDHN0YWtlckVhcm5lZAgJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAACXzMJAJQKAgUDbmlsBQxzdGFrZXJFYXJuZWQBAnR4AQZ2ZXJpZnkABA5jb29yZGluYXRvclN0cgkAnQgCBQR0aGlzBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwMJAQlpc0RlZmluZWQBBQ5jb29yZGluYXRvclN0cgQFYWRtaW4JAJ0IAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUOY29vcmRpbmF0b3JTdHIFD2tfYWRtaW5fYWRkcmVzcwMJAQlpc0RlZmluZWQBBQVhZG1pbgkBC3ZhbHVlT3JFbHNlAgkAmwgCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBBQVhZG1pbgkArAICCQCsAgIJAKwCAgIHc3RhdHVzXwkApQgBBQR0aGlzAgFfCQDYBAEIBQJ0eAJpZAcJAAIBAi51bmFibGUgdG8gdmVyaWZ5OiBhZG1pbiBub3Qgc2V0IGluIGNvb3JkaW5hdG9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5ImUi1Q==", "height": 2475242, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J6qmvhu69AkJBPVTCPWy2MkQKD8MZA5ETQhGdBtFJtSy Next: none Diff:
OldNewDifferences
2525
2626 let l = "k_gov_asset"
2727
28-let m = "k_quote_asset"
28+let m = "k_reward_asset"
2929
30-let n = "k_admin_public_key"
30+let n = "k_admin_address"
3131
3232 let o = "k_manager_address"
3333
3434 func p () = valueOrErrorMessage(addressFromString(getStringValue(this, k)), "Coordinator not set")
3535
3636
37-func q () = fromBase58String(getStringValue(p(), n))
37+func q () = fromBase58String(getStringValue(p(), l))
3838
3939
40-func r () = fromBase58String(getStringValue(p(), l))
40+func r () = fromBase58String(getStringValue(p(), m))
4141
4242
43-func s () = fromBase58String(getStringValue(p(), m))
43+func s () = valueOrErrorMessage(addressFromString(getStringValue(p(), o)), "Manager not set")
4444
4545
46-func t () = valueOrErrorMessage(addressFromString(getStringValue(p(), o)), "Manager not set")
46+let t = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
47+
48+let u = ((60 * 60) * 24)
49+
50+let v = ""
51+
52+let w = 0
53+
54+func x (y) = (y / 100)
4755
4856
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)
57+func z (y) = (y * 100)
5858
5959
60-func A (z) = (z * 100)
60+func A (B,C) = fraction(B, t, C, HALFEVEN)
6161
6262
63-func B (C,D) = fraction(C, u, D, HALFEVEN)
63+func D (B,C) = fraction(B, C, t, HALFEVEN)
6464
6565
66-func E (C,D) = fraction(C, D, u, HALFEVEN)
66+func E (B) = if ((B > 0))
67+ then B
68+ else -(B)
6769
6870
69-func F (C) = if ((C > 0))
71+func F (B,C) = if ((B > C))
7072 then C
71- else -(C)
73+ else B
7274
7375
74-func G (C,D) = if ((C > D))
75- then D
76- else C
76+func G (H,I) = ((H + "_") + I)
7777
7878
79-func H (I,J) = ((I + "_") + J)
79+func J (K) = valueOrErrorMessage(getInteger(this, K), ("no value for " + K))
8080
8181
82-func K (L) = valueOrErrorMessage(getInteger(this, L), ("no value for " + L))
82+func L (K) = valueOrElse(getInteger(this, K), 0)
8383
8484
85-func M (L) = valueOrElse(getInteger(this, L), 0)
85+func M () = L(a)
8686
8787
88-func N () = M(a)
88+func N () = L(d)
8989
9090
91-func O () = M(d)
91+func O () = L(c)
9292
9393
94-func P () = M(c)
94+func P () = L(e)
9595
9696
97-func Q () = M(e)
97+func Q () = L(f)
9898
9999
100-func R () = M(f)
100+func R () = L(b)
101101
102102
103-func S () = M(b)
103+func S (T) = L(G(i, T))
104104
105105
106-func T (U) = M(H(i, U))
106+func U (T) = L(G(h, T))
107107
108108
109-func V (U) = M(H(h, U))
109+func V (T) = L(G(g, T))
110110
111111
112-func W (U) = M(H(g, U))
112+func W () = valueOrElse(getBoolean(this, j), false)
113113
114114
115-func X () = valueOrElse(getBoolean(this, j), false)
115+func X (Y) = [IntegerEntry(b, (R() + Y))]
116116
117117
118-func Y (Z) = [IntegerEntry(b, (S() + Z))]
118+func Z (aa) = [IntegerEntry(e, aa)]
119119
120120
121-func aa (ab) = [IntegerEntry(e, ab)]
121+func ab (ac,ad) = [IntegerEntry(c, ac), IntegerEntry(f, ad)]
122122
123123
124-func ac (ad,ae) = [IntegerEntry(c, ad), IntegerEntry(f, ae)]
124+func ae (af) = [IntegerEntry(d, af)]
125125
126126
127-func af (ag) = [IntegerEntry(d, ag)]
127+func ag (T,ah,ai) = [IntegerEntry(G(i, T), ah), IntegerEntry(G(h, T), ai)]
128128
129129
130-func ah (U,ai,aj) = [IntegerEntry(H(i, U), ai), IntegerEntry(H(h, U), aj)]
130+func aj (T,Y) = [IntegerEntry(G(g, T), (V(T) + Y)), IntegerEntry(a, (M() + Y))]
131131
132132
133-func ak (U,Z) = [IntegerEntry(H(g, U), (W(U) + Z)), IntegerEntry(a, (N() + Z))]
133+func ak () = (lastBlock.timestamp / 1000)
134134
135135
136-func al () = (lastBlock.timestamp / 1000)
136+func al () = F(ak(), Q())
137137
138138
139-func am () = G(al(), R())
140-
141-
142-func an (ao) = if (((N() + ao) == 0))
143- then O()
139+func am (an) = if (((M() + an) == 0))
140+ then N()
144141 else {
145- let ap = (am() - P())
146- let aq = if ((0 > ap))
142+ let ao = (al() - O())
143+ let ap = if ((0 > ao))
147144 then 0
148- else ap
149- let ar = B((Q() * aq), (N() + ao))
150- (O() + ar)
145+ else ao
146+ let aq = A((P() * ap), (M() + an))
147+ (N() + aq)
151148 }
152149
153150
154-func as (U,ao) = {
155- let at = (an(ao) - V(U))
156- (E((W(U) + ao), at) + T(U))
151+func ar (T,an) = {
152+ let as = (am(an) - U(T))
153+ (D((V(T) + an), as) + S(T))
157154 }
158155
159156
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)
157+func at (T,an) = {
158+ let au = am(an)
159+ let av = ak()
160+ let aw = if ((T != ""))
161+ then $Tuple2(ar(T, an), au)
165162 else $Tuple2(0, 0)
166- let ay = ax._1
167- let az = ax._2
168- $Tuple4(av, aw, ay, az)
163+ let ax = aw._1
164+ let ay = aw._2
165+ $Tuple4(au, av, ax, ay)
169166 }
170167
171168
172-@Callable(aA)
173-func initialize (aB) = if (X())
174- then throw("Already initialized")
175- else [StringEntry(k, aB), BooleanEntry(j, true)]
169+@Callable(az)
170+func initialize (aA) = if (if (W())
171+ then true
172+ else (az.caller != this))
173+ then throw("Unable to initialize")
174+ else [StringEntry(k, toString(addressFromStringValue(aA))), BooleanEntry(j, true)]
176175
177176
178177
179-@Callable(aA)
178+@Callable(az)
180179 func stake () = {
181- let U = toString(aA.caller)
182- let z = aA.payments[0].amount
183- if (if ((aA.payments[0].assetId != r()))
180+ let T = toString(az.caller)
181+ let y = az.payments[0].amount
182+ if (if ((az.payments[0].assetId != q()))
184183 then true
185- else !(X()))
184+ else !(W()))
186185 then throw("Invalid call to stake")
187186 else {
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))
187+ let aB = at(T, 0)
188+ let au = aB._1
189+ let av = aB._2
190+ let ax = aB._3
191+ let ay = aB._4
192+ (((ag(T, ax, ay) ++ ae(au)) ++ ab(av, Q())) ++ aj(T, y))
194193 }
195194 }
196195
197196
198197
199-@Callable(aA)
200-func unStake (z) = {
201- let U = toString(aA.caller)
202- if (if (if ((z > W(U)))
198+@Callable(az)
199+func unStake (y) = {
200+ let T = toString(az.caller)
201+ if (if (if ((y > V(T)))
203202 then true
204- else (aA.payments != nil))
203+ else (az.payments != nil))
205204 then true
206- else !(X()))
205+ else !(W()))
207206 then throw("Invalid unStake parameters")
208207 else {
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())])
208+ let aC = at(T, 0)
209+ let au = aC._1
210+ let av = aC._2
211+ let ax = aC._3
212+ let ay = aC._4
213+ ((((ag(T, ax, ay) ++ ae(au)) ++ ab(av, Q())) ++ aj(T, -(y))) ++ [ScriptTransfer(az.caller, y, q())])
215214 }
216215 }
217216
218217
219218
220-@Callable(aA)
219+@Callable(az)
221220 func withdrawRewards () = {
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))
221+ let T = toString(az.caller)
222+ let aD = at(T, 0)
223+ let au = aD._1
224+ let av = aD._2
225+ let ax = aD._3
226+ let ay = aD._4
227+ if (if ((0 >= ax))
229228 then true
230- else !(X()))
229+ else !(W()))
231230 then throw("No reward")
232231 else {
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())])
232+ let aE = invoke(s(), "withdraw", [toBase58String(r()), x(ax)], nil)
233+ if ((aE == aE))
234+ then ((((ag(T, 0, ay) ++ ae(au)) ++ ab(av, Q())) ++ X(-(ax))) ++ [ScriptTransfer(az.caller, x(ax), r())])
236235 else throw("Strict value is not equal to itself.")
237236 }
238237 }
239238
240239
241240
242-@Callable(aA)
243-func addRewards () = if (if ((aA.payments[0].assetId != s()))
241+@Callable(az)
242+func addRewards () = if (if ((az.payments[0].assetId != r()))
244243 then true
245- else !(X()))
244+ else !(W()))
246245 then throw("Invalid addRewards params")
247246 else {
248- let ai = A(aA.payments[0].amount)
249- let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(ai))])
250- if ((aG == aG))
247+ let ah = z(az.payments[0].amount)
248+ let aF = invoke(s(), "deposit", nil, [AttachedPayment(r(), x(ah))])
249+ if ((aF == aF))
251250 then {
252- let av = au(w, x)._1
253- let aH = al()
254- let aI = if ((aH > R()))
255- then (ai / v)
251+ let au = at(v, w)._1
252+ let aG = ak()
253+ let aH = if ((aG > Q()))
254+ then (ah / u)
256255 else {
257- let aJ = (R() - aH)
258- let aK = (Q() * aJ)
259- ((ai + aK) / v)
256+ let aI = (Q() - aG)
257+ let aJ = (P() * aI)
258+ ((ah + aJ) / u)
260259 }
261- (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
260+ (((Z(aH) ++ ae(au)) ++ X(ah)) ++ ab(aG, (aG + u)))
262261 }
263262 else throw("Strict value is not equal to itself.")
264263 }
265264
266265
267266
268-@Callable(aA)
267+@Callable(az)
269268 func ackRewards () = {
270- let at = A(assetBalance(this, s()))
271- if (((1 * u) > at))
269+ let as = z(assetBalance(this, r()))
270+ if (((1 * t) > as))
272271 then nil
273272 else {
274- let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(at))])
275- if ((aG == aG))
273+ let aF = invoke(s(), "deposit", nil, [AttachedPayment(r(), x(as))])
274+ if ((aF == aF))
276275 then {
277- let ai = at
278- let av = au(w, x)._1
279- let aH = al()
280- let aI = if ((aH > R()))
281- then (ai / v)
276+ let ah = as
277+ let au = at(v, w)._1
278+ let aG = ak()
279+ let aH = if ((aG > Q()))
280+ then (ah / u)
282281 else {
283- let aJ = (R() - aH)
284- let aK = (Q() * aJ)
285- ((ai + aK) / v)
282+ let aI = (Q() - aG)
283+ let aJ = (P() * aI)
284+ ((ah + aJ) / u)
286285 }
287- (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
286+ (((Z(aH) ++ ae(au)) ++ X(ah)) ++ ab(aG, (aG + u)))
288287 }
289288 else throw("Strict value is not equal to itself.")
290289 }
292291
293292
294293
295-@Callable(aA)
296-func view_reward (U) = {
297- let ay = au(U, 0)._3
298- throw(toString(y(ay)))
294+@Callable(az)
295+func view_reward (T) = {
296+ let ax = at(T, 0)._3
297+ throw(toString(x(ax)))
299298 }
300299
301300
302301
303-@Callable(aA)
304-func computeReward (U) = {
305- let ay = au(U, 0)._3
306- $Tuple2(nil, ay)
302+@Callable(az)
303+func computeReward (T) = {
304+ let ax = at(T, 0)._3
305+ $Tuple2(nil, ax)
307306 }
308307
309308
310-
311-@Callable(aA)
312-func migrateLiquidity () = {
313- let aL = y(S())
314- let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), aL)])
315- if ((aG == aG))
316- then nil
317- else throw("Strict value is not equal to itself.")
309+@Verifier(aK)
310+func aL () = {
311+ let aM = getString(this, k)
312+ if (isDefined(aM))
313+ then {
314+ let aN = getString(addressFromStringValue(value(aM)), n)
315+ if (isDefined(aN))
316+ then valueOrElse(getBoolean(addressFromStringValue(value(aN)), ((("status_" + toString(this)) + "_") + toBase58String(aK.id))), false)
317+ else throw("unable to verify: admin not set in coordinator")
318+ }
319+ else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
318320 }
319-
320-
321-@Verifier(aM)
322-func aN () = sigVerify(aM.bodyBytes, aM.proofs[0], q())
323321
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
28-let m = "k_quote_asset"
28+let m = "k_reward_asset"
2929
30-let n = "k_admin_public_key"
30+let n = "k_admin_address"
3131
3232 let o = "k_manager_address"
3333
3434 func p () = valueOrErrorMessage(addressFromString(getStringValue(this, k)), "Coordinator not set")
3535
3636
37-func q () = fromBase58String(getStringValue(p(), n))
37+func q () = fromBase58String(getStringValue(p(), l))
3838
3939
40-func r () = fromBase58String(getStringValue(p(), l))
40+func r () = fromBase58String(getStringValue(p(), m))
4141
4242
43-func s () = fromBase58String(getStringValue(p(), m))
43+func s () = valueOrErrorMessage(addressFromString(getStringValue(p(), o)), "Manager not set")
4444
4545
46-func t () = valueOrErrorMessage(addressFromString(getStringValue(p(), o)), "Manager not set")
46+let t = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
47+
48+let u = ((60 * 60) * 24)
49+
50+let v = ""
51+
52+let w = 0
53+
54+func x (y) = (y / 100)
4755
4856
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)
57+func z (y) = (y * 100)
5858
5959
60-func A (z) = (z * 100)
60+func A (B,C) = fraction(B, t, C, HALFEVEN)
6161
6262
63-func B (C,D) = fraction(C, u, D, HALFEVEN)
63+func D (B,C) = fraction(B, C, t, HALFEVEN)
6464
6565
66-func E (C,D) = fraction(C, D, u, HALFEVEN)
66+func E (B) = if ((B > 0))
67+ then B
68+ else -(B)
6769
6870
69-func F (C) = if ((C > 0))
71+func F (B,C) = if ((B > C))
7072 then C
71- else -(C)
73+ else B
7274
7375
74-func G (C,D) = if ((C > D))
75- then D
76- else C
76+func G (H,I) = ((H + "_") + I)
7777
7878
79-func H (I,J) = ((I + "_") + J)
79+func J (K) = valueOrErrorMessage(getInteger(this, K), ("no value for " + K))
8080
8181
82-func K (L) = valueOrErrorMessage(getInteger(this, L), ("no value for " + L))
82+func L (K) = valueOrElse(getInteger(this, K), 0)
8383
8484
85-func M (L) = valueOrElse(getInteger(this, L), 0)
85+func M () = L(a)
8686
8787
88-func N () = M(a)
88+func N () = L(d)
8989
9090
91-func O () = M(d)
91+func O () = L(c)
9292
9393
94-func P () = M(c)
94+func P () = L(e)
9595
9696
97-func Q () = M(e)
97+func Q () = L(f)
9898
9999
100-func R () = M(f)
100+func R () = L(b)
101101
102102
103-func S () = M(b)
103+func S (T) = L(G(i, T))
104104
105105
106-func T (U) = M(H(i, U))
106+func U (T) = L(G(h, T))
107107
108108
109-func V (U) = M(H(h, U))
109+func V (T) = L(G(g, T))
110110
111111
112-func W (U) = M(H(g, U))
112+func W () = valueOrElse(getBoolean(this, j), false)
113113
114114
115-func X () = valueOrElse(getBoolean(this, j), false)
115+func X (Y) = [IntegerEntry(b, (R() + Y))]
116116
117117
118-func Y (Z) = [IntegerEntry(b, (S() + Z))]
118+func Z (aa) = [IntegerEntry(e, aa)]
119119
120120
121-func aa (ab) = [IntegerEntry(e, ab)]
121+func ab (ac,ad) = [IntegerEntry(c, ac), IntegerEntry(f, ad)]
122122
123123
124-func ac (ad,ae) = [IntegerEntry(c, ad), IntegerEntry(f, ae)]
124+func ae (af) = [IntegerEntry(d, af)]
125125
126126
127-func af (ag) = [IntegerEntry(d, ag)]
127+func ag (T,ah,ai) = [IntegerEntry(G(i, T), ah), IntegerEntry(G(h, T), ai)]
128128
129129
130-func ah (U,ai,aj) = [IntegerEntry(H(i, U), ai), IntegerEntry(H(h, U), aj)]
130+func aj (T,Y) = [IntegerEntry(G(g, T), (V(T) + Y)), IntegerEntry(a, (M() + Y))]
131131
132132
133-func ak (U,Z) = [IntegerEntry(H(g, U), (W(U) + Z)), IntegerEntry(a, (N() + Z))]
133+func ak () = (lastBlock.timestamp / 1000)
134134
135135
136-func al () = (lastBlock.timestamp / 1000)
136+func al () = F(ak(), Q())
137137
138138
139-func am () = G(al(), R())
140-
141-
142-func an (ao) = if (((N() + ao) == 0))
143- then O()
139+func am (an) = if (((M() + an) == 0))
140+ then N()
144141 else {
145- let ap = (am() - P())
146- let aq = if ((0 > ap))
142+ let ao = (al() - O())
143+ let ap = if ((0 > ao))
147144 then 0
148- else ap
149- let ar = B((Q() * aq), (N() + ao))
150- (O() + ar)
145+ else ao
146+ let aq = A((P() * ap), (M() + an))
147+ (N() + aq)
151148 }
152149
153150
154-func as (U,ao) = {
155- let at = (an(ao) - V(U))
156- (E((W(U) + ao), at) + T(U))
151+func ar (T,an) = {
152+ let as = (am(an) - U(T))
153+ (D((V(T) + an), as) + S(T))
157154 }
158155
159156
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)
157+func at (T,an) = {
158+ let au = am(an)
159+ let av = ak()
160+ let aw = if ((T != ""))
161+ then $Tuple2(ar(T, an), au)
165162 else $Tuple2(0, 0)
166- let ay = ax._1
167- let az = ax._2
168- $Tuple4(av, aw, ay, az)
163+ let ax = aw._1
164+ let ay = aw._2
165+ $Tuple4(au, av, ax, ay)
169166 }
170167
171168
172-@Callable(aA)
173-func initialize (aB) = if (X())
174- then throw("Already initialized")
175- else [StringEntry(k, aB), BooleanEntry(j, true)]
169+@Callable(az)
170+func initialize (aA) = if (if (W())
171+ then true
172+ else (az.caller != this))
173+ then throw("Unable to initialize")
174+ else [StringEntry(k, toString(addressFromStringValue(aA))), BooleanEntry(j, true)]
176175
177176
178177
179-@Callable(aA)
178+@Callable(az)
180179 func stake () = {
181- let U = toString(aA.caller)
182- let z = aA.payments[0].amount
183- if (if ((aA.payments[0].assetId != r()))
180+ let T = toString(az.caller)
181+ let y = az.payments[0].amount
182+ if (if ((az.payments[0].assetId != q()))
184183 then true
185- else !(X()))
184+ else !(W()))
186185 then throw("Invalid call to stake")
187186 else {
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))
187+ let aB = at(T, 0)
188+ let au = aB._1
189+ let av = aB._2
190+ let ax = aB._3
191+ let ay = aB._4
192+ (((ag(T, ax, ay) ++ ae(au)) ++ ab(av, Q())) ++ aj(T, y))
194193 }
195194 }
196195
197196
198197
199-@Callable(aA)
200-func unStake (z) = {
201- let U = toString(aA.caller)
202- if (if (if ((z > W(U)))
198+@Callable(az)
199+func unStake (y) = {
200+ let T = toString(az.caller)
201+ if (if (if ((y > V(T)))
203202 then true
204- else (aA.payments != nil))
203+ else (az.payments != nil))
205204 then true
206- else !(X()))
205+ else !(W()))
207206 then throw("Invalid unStake parameters")
208207 else {
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())])
208+ let aC = at(T, 0)
209+ let au = aC._1
210+ let av = aC._2
211+ let ax = aC._3
212+ let ay = aC._4
213+ ((((ag(T, ax, ay) ++ ae(au)) ++ ab(av, Q())) ++ aj(T, -(y))) ++ [ScriptTransfer(az.caller, y, q())])
215214 }
216215 }
217216
218217
219218
220-@Callable(aA)
219+@Callable(az)
221220 func withdrawRewards () = {
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))
221+ let T = toString(az.caller)
222+ let aD = at(T, 0)
223+ let au = aD._1
224+ let av = aD._2
225+ let ax = aD._3
226+ let ay = aD._4
227+ if (if ((0 >= ax))
229228 then true
230- else !(X()))
229+ else !(W()))
231230 then throw("No reward")
232231 else {
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())])
232+ let aE = invoke(s(), "withdraw", [toBase58String(r()), x(ax)], nil)
233+ if ((aE == aE))
234+ then ((((ag(T, 0, ay) ++ ae(au)) ++ ab(av, Q())) ++ X(-(ax))) ++ [ScriptTransfer(az.caller, x(ax), r())])
236235 else throw("Strict value is not equal to itself.")
237236 }
238237 }
239238
240239
241240
242-@Callable(aA)
243-func addRewards () = if (if ((aA.payments[0].assetId != s()))
241+@Callable(az)
242+func addRewards () = if (if ((az.payments[0].assetId != r()))
244243 then true
245- else !(X()))
244+ else !(W()))
246245 then throw("Invalid addRewards params")
247246 else {
248- let ai = A(aA.payments[0].amount)
249- let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(ai))])
250- if ((aG == aG))
247+ let ah = z(az.payments[0].amount)
248+ let aF = invoke(s(), "deposit", nil, [AttachedPayment(r(), x(ah))])
249+ if ((aF == aF))
251250 then {
252- let av = au(w, x)._1
253- let aH = al()
254- let aI = if ((aH > R()))
255- then (ai / v)
251+ let au = at(v, w)._1
252+ let aG = ak()
253+ let aH = if ((aG > Q()))
254+ then (ah / u)
256255 else {
257- let aJ = (R() - aH)
258- let aK = (Q() * aJ)
259- ((ai + aK) / v)
256+ let aI = (Q() - aG)
257+ let aJ = (P() * aI)
258+ ((ah + aJ) / u)
260259 }
261- (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
260+ (((Z(aH) ++ ae(au)) ++ X(ah)) ++ ab(aG, (aG + u)))
262261 }
263262 else throw("Strict value is not equal to itself.")
264263 }
265264
266265
267266
268-@Callable(aA)
267+@Callable(az)
269268 func ackRewards () = {
270- let at = A(assetBalance(this, s()))
271- if (((1 * u) > at))
269+ let as = z(assetBalance(this, r()))
270+ if (((1 * t) > as))
272271 then nil
273272 else {
274- let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), y(at))])
275- if ((aG == aG))
273+ let aF = invoke(s(), "deposit", nil, [AttachedPayment(r(), x(as))])
274+ if ((aF == aF))
276275 then {
277- let ai = at
278- let av = au(w, x)._1
279- let aH = al()
280- let aI = if ((aH > R()))
281- then (ai / v)
276+ let ah = as
277+ let au = at(v, w)._1
278+ let aG = ak()
279+ let aH = if ((aG > Q()))
280+ then (ah / u)
282281 else {
283- let aJ = (R() - aH)
284- let aK = (Q() * aJ)
285- ((ai + aK) / v)
282+ let aI = (Q() - aG)
283+ let aJ = (P() * aI)
284+ ((ah + aJ) / u)
286285 }
287- (((aa(aI) ++ af(av)) ++ Y(ai)) ++ ac(aH, (aH + v)))
286+ (((Z(aH) ++ ae(au)) ++ X(ah)) ++ ab(aG, (aG + u)))
288287 }
289288 else throw("Strict value is not equal to itself.")
290289 }
291290 }
292291
293292
294293
295-@Callable(aA)
296-func view_reward (U) = {
297- let ay = au(U, 0)._3
298- throw(toString(y(ay)))
294+@Callable(az)
295+func view_reward (T) = {
296+ let ax = at(T, 0)._3
297+ throw(toString(x(ax)))
299298 }
300299
301300
302301
303-@Callable(aA)
304-func computeReward (U) = {
305- let ay = au(U, 0)._3
306- $Tuple2(nil, ay)
302+@Callable(az)
303+func computeReward (T) = {
304+ let ax = at(T, 0)._3
305+ $Tuple2(nil, ax)
307306 }
308307
309308
310-
311-@Callable(aA)
312-func migrateLiquidity () = {
313- let aL = y(S())
314- let aG = invoke(t(), "deposit", nil, [AttachedPayment(s(), aL)])
315- if ((aG == aG))
316- then nil
317- else throw("Strict value is not equal to itself.")
309+@Verifier(aK)
310+func aL () = {
311+ let aM = getString(this, k)
312+ if (isDefined(aM))
313+ then {
314+ let aN = getString(addressFromStringValue(value(aM)), n)
315+ if (isDefined(aN))
316+ then valueOrElse(getBoolean(addressFromStringValue(value(aN)), ((("status_" + toString(this)) + "_") + toBase58String(aK.id))), false)
317+ else throw("unable to verify: admin not set in coordinator")
318+ }
319+ else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
318320 }
319-
320-
321-@Verifier(aM)
322-func aN () = sigVerify(aM.bodyBytes, aM.proofs[0], q())
323321

github/deemru/w8io/169f3d6 
108.29 ms