tx · 7tHzJeGdLnkuqWxfD42ne6Dq4WmgfxnRvkHKKRcGUZs6

3NADcxHXbecCheinqFbvhDjfzZhsMFZJUuH:  -0.03700000 Waves

2023.01.30 10:00 [2427371] smart account 3NADcxHXbecCheinqFbvhDjfzZhsMFZJUuH > SELF 0.00000000 Waves

{ "type": 13, "id": "7tHzJeGdLnkuqWxfD42ne6Dq4WmgfxnRvkHKKRcGUZs6", "fee": 3700000, "feeAssetId": null, "timestamp": 1675062113030, "version": 2, "chainId": 84, "sender": "3NADcxHXbecCheinqFbvhDjfzZhsMFZJUuH", "senderPublicKey": "DKfzQgvVdTqPHgGbdZptWYA8G5xVfmSMAwL3UnhwQmdy", "proofs": [ "4DKg3ZMyCHn6bAGG4funHodbA6cZU9gK3hEJeAYhXHLZEXDa64ddjpX4vh6hmHBG8BX2t3D8SEFRr1gZUf9AkbLf" ], "script": "base64:BgIvCAISAwoBCBIAEgMKAQESABIAEgASAwoBARIDCgEBEgASAwoBCBIDCgEIEgMKAQhXAA1rX3RvdGFsU3VwcGx5Ag1rX3RvdGFsU3VwcGx5AA9rX3Jld2FyZEJhbGFuY2UCD2tfcmV3YXJkQmFsYW5jZQAPa19sb2NrZWRCYWxhbmNlAg9rX2xvY2tlZEJhbGFuY2UADWtfZnJlZUJhbGFuY2UCDWtfZnJlZUJhbGFuY2UABmtfcmF0ZQIGa19yYXRlABBrX2xhc3RVcGRhdGVUaW1lAhBrX2xhc3RVcGRhdGVUaW1lABZrX3Jld2FyZFBlclRva2VuU3RvcmVkAhZrX3Jld2FyZFBlclRva2VuU3RvcmVkAAxrX3Jld2FyZFJhdGUCDGtfcmV3YXJkUmF0ZQAOa19wZXJpb2RGaW5pc2gCDmtfcGVyaW9kRmluaXNoABRrX3VzZXJSZXdhcmRQZXJUb2tlbgIUa191c2VyUmV3YXJkUGVyVG9rZW4ADGtfdXNlclJld2FyZAIMa191c2VyUmV3YXJkAAlrX2JhbGFuY2UCCWtfYmFsYW5jZQAOa19hdmVyYWdlX3JhdGUCDmtfYXZlcmFnZV9yYXRlABBrX3dpdGhkcmF3X2xpbWl0AhBrX3dpdGhkcmF3X2xpbWl0ABRrX2xhc3Rfd2l0aGRyYXdfZGF0ZQIUa19sYXN0X3dpdGhkcmF3X2RhdGUAFGtfd2l0aGRyYXdfaW5fcGVyaW9kAhRrX3dpdGhkcmF3X2luX3BlcmlvZAANa19pbml0aWFsaXplZAINa19pbml0aWFsaXplZAAUa19jb29yZGluYXRvckFkZHJlc3MCFGtfY29vcmRpbmF0b3JBZGRyZXNzAAVrX2FtbQIFa19hbW0AEmtfZ292ZXJuYW5jZV9hc3NldAILa19nb3ZfYXNzZXQADWtfcXVvdGVfYXNzZXQCDWtfcXVvdGVfYXNzZXQAEmtfYWRtaW5fcHVibGljX2tleQISa19hZG1pbl9wdWJsaWNfa2V5AA9rX2FkbWluX2FkZHJlc3MCD2tfYWRtaW5fYWRkcmVzcwARa19tYW5hZ2VyX2FkZHJlc3MCEWtfbWFuYWdlcl9hZGRyZXNzABRrX2NvbGxhdGVyYWxfYWRkcmVzcwIUa19jb2xsYXRlcmFsX2FkZHJlc3MBDnRvQ29tcG9zaXRlS2V5AgRfa2V5CF9hZGRyZXNzCQCsAgIJAKwCAgUEX2tleQIBXwUIX2FkZHJlc3MBC2Nvb3JkaW5hdG9yAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFFGtfY29vcmRpbmF0b3JBZGRyZXNzAhNDb29yZGluYXRvciBub3Qgc2V0AQtpc1doaXRlbGlzdAEIX2FkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAJsIAgkBC2Nvb3JkaW5hdG9yAAkBDnRvQ29tcG9zaXRlS2V5AgUFa19hbW0FCF9hZGRyZXNzBwEOYWRtaW5QdWJsaWNLZXkACQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFEmtfYWRtaW5fcHVibGljX2tleQEPZ292ZXJuYW5jZUFzc2V0AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRJrX2dvdmVybmFuY2VfYXNzZXQBDGFkbWluQWRkcmVzcwAJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFD2tfYWRtaW5fYWRkcmVzcwIVQWRtaW4gYWRkcmVzcyBub3Qgc2V0AQpxdW90ZUFzc2V0AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABQ1rX3F1b3RlX2Fzc2V0AQ5tYW5hZ2VyQWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRFrX21hbmFnZXJfYWRkcmVzcwIPTWFuYWdlciBub3Qgc2V0AAxERUNJTUFMX1VOSVQJAGgCAAEJAGgCCQBoAgkAaAIJAGgCCQBoAgkAaAIJAGgCAAoACgAKAAoACgAKAAoACgAIRFVSQVRJT04JAGgCCQBoAgkAaAIABwA8ADwAGAAKTk9fQUREUkVTUwIAAAlOT19TVEFLRVIAAAEQdXNkbkZyb21EZWNpbWFscwEHX2Ftb3VudAkAaQIFB19hbW91bnQAZAEOdXNkblRvRGVjaW1hbHMBB19hbW91bnQJAGgCBQdfYW1vdW50AGQBBGRpdmQCAl94Al95CQBuBAUCX3gFDERFQ0lNQUxfVU5JVAUCX3kFCEhBTEZFVkVOAQRtdWxkAgJfeAJfeQkAbgQFAl94BQJfeQUMREVDSU1BTF9VTklUBQhIQUxGRVZFTgEDYWJzAQJfeAMJAGYCBQJfeAAABQJfeAkBAS0BBQJfeAEEbWludgICX3gCX3kDCQBmAgUCX3gFAl95BQJfeQUCX3gAD1dJVEhEUkFXX1BFUklPRAkAaAIAgKMFAOgHABNXSVRIRFJBV19QRVJfUEVSSU9ECQEEZGl2ZAIJAGgCAAEFDERFQ0lNQUxfVU5JVAkAaAIABAUMREVDSU1BTF9VTklUAQNpbnQBAWsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQFrCQCsAgICDW5vIHZhbHVlIGZvciAFAWsBBGludDABAWsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBawAAAQRpbnQxAQFrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWsFDERFQ0lNQUxfVU5JVAELdG90YWxTdXBwbHkACQEEaW50MAEFDWtfdG90YWxTdXBwbHkBBHJhdGUACQEEaW50MQEFBmtfcmF0ZQEJYmFsYW5jZU9mAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFCWtfYmFsYW5jZQUHX3N0YWtlcgELYXZlcmFnZVJhdGUBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUOa19hdmVyYWdlX3JhdGUFB19zdGFrZXIBDXdpdGhkcmF3TGltaXQBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUQa193aXRoZHJhd19saW1pdAUHX3N0YWtlcgERd2l0aGRyYXduSW5QZXJpb2QBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUUa193aXRoZHJhd19pbl9wZXJpb2QFB19zdGFrZXIBEWxhc3RXaXRoZHJhd25EYXRlAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFFGtfbGFzdF93aXRoZHJhd19kYXRlBQdfc3Rha2VyAQtmcmVlQmFsYW5jZQAJAQRpbnQwAQUNa19mcmVlQmFsYW5jZQENbG9ja2VkQmFsYW5jZQAJAQRpbnQwAQUPa19sb2NrZWRCYWxhbmNlARRyZXdhcmRQZXJUb2tlblN0b3JlZAAJAQRpbnQwAQUWa19yZXdhcmRQZXJUb2tlblN0b3JlZAEObGFzdFVwZGF0ZVRpbWUACQEEaW50MAEFEGtfbGFzdFVwZGF0ZVRpbWUBCnJld2FyZFJhdGUACQEEaW50MAEFDGtfcmV3YXJkUmF0ZQEMcGVyaW9kRmluaXNoAAkBBGludDABBQ5rX3BlcmlvZEZpbmlzaAENcmV3YXJkQmFsYW5jZQAJAQRpbnQwAQUPa19yZXdhcmRCYWxhbmNlAQdyZXdhcmRzAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFDGtfdXNlclJld2FyZAUHX3N0YWtlcgEWdXNlclJld2FyZFBlclRva2VuUGFpZAEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBRRrX3VzZXJSZXdhcmRQZXJUb2tlbgUHX3N0YWtlcgELaW5pdGlhbGl6ZWQACQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDWtfaW5pdGlhbGl6ZWQHARBjdXJyZW50VGltZXN0YW1wAAgFCWxhc3RCbG9jawl0aW1lc3RhbXABE2N1cnJlbnRUaW1lc3RhbXBTZWMACQBpAgkBEGN1cnJlbnRUaW1lc3RhbXAAAOgHARRnZXRXaXRoZHJhd0xpbWl0TGVmdAEHX3N0YWtlcgQLY3VycmVudERhdGUJARBjdXJyZW50VGltZXN0YW1wAAQQbGFzdFdpdGhkcmF3RGF0ZQkBEWxhc3RXaXRoZHJhd25EYXRlAQUHX3N0YWtlcgQLJHQwNTEwODUzNzIDCQBmAgkAZQIFC2N1cnJlbnREYXRlBRBsYXN0V2l0aGRyYXdEYXRlBQ9XSVRIRFJBV19QRVJJT0QJAJQKAgULY3VycmVudERhdGUJAQ13aXRoZHJhd0xpbWl0AQUHX3N0YWtlcgkAlAoCBRBsYXN0V2l0aGRyYXdEYXRlCQBlAgkBDXdpdGhkcmF3TGltaXQBBQdfc3Rha2VyCQERd2l0aGRyYXduSW5QZXJpb2QBBQdfc3Rha2VyBBRuZXdMYXN0V2l0aGRyYXduRGF0ZQgFCyR0MDUxMDg1MzcyAl8xBBF3aXRoZHJhd0xpbWl0TGVmdAgFCyR0MDUxMDg1MzcyAl8yCQCUCgIFFG5ld0xhc3RXaXRoZHJhd25EYXRlBRF3aXRoZHJhd0xpbWl0TGVmdAEOY29tcHV0ZU5ld1JhdGUBE19hbW91bnRPZlF1b3RlQXNzZXQEB25ld1JhdGUDCQBmAgkBC3RvdGFsU3VwcGx5AAAACQEEZGl2ZAIJAGQCCQELZnJlZUJhbGFuY2UABRNfYW1vdW50T2ZRdW90ZUFzc2V0CQELdG90YWxTdXBwbHkABQxERUNJTUFMX1VOSVQFB25ld1JhdGUBGGxhc3RUaW1lUmV3YXJkQXBwbGljYWJsZQAJAQRtaW52AgkBE2N1cnJlbnRUaW1lc3RhbXBTZWMACQEMcGVyaW9kRmluaXNoAAEOcmV3YXJkUGVyVG9rZW4BDV9iYWxhbmNlRGVsdGEDCQAAAgkAZAIJAQt0b3RhbFN1cHBseQAFDV9iYWxhbmNlRGVsdGEAAAkBFHJld2FyZFBlclRva2VuU3RvcmVkAAQMdGltZUludGVydmFsCQBlAgkBGGxhc3RUaW1lUmV3YXJkQXBwbGljYWJsZQAJAQ5sYXN0VXBkYXRlVGltZQAEEmFjdHVhbFRpbWVJbnRlcnZhbAMJAGYCAAAFDHRpbWVJbnRlcnZhbAAABQx0aW1lSW50ZXJ2YWwEBGRpZmYJAQRkaXZkAgkAaAIJAQpyZXdhcmRSYXRlAAUSYWN0dWFsVGltZUludGVydmFsCQBkAgkBC3RvdGFsU3VwcGx5AAUNX2JhbGFuY2VEZWx0YQkAZAIJARRyZXdhcmRQZXJUb2tlblN0b3JlZAAFBGRpZmYBBmVhcm5lZAIHX3N0YWtlcg1fYmFsYW5jZURlbHRhBAtyZXdhcmREZWx0YQkAZQIJAQ5yZXdhcmRQZXJUb2tlbgEFDV9iYWxhbmNlRGVsdGEJARZ1c2VyUmV3YXJkUGVyVG9rZW5QYWlkAQUHX3N0YWtlcgkAZAIJAQRtdWxkAgkAZAIJAQliYWxhbmNlT2YBBQdfc3Rha2VyBQ1fYmFsYW5jZURlbHRhBQtyZXdhcmREZWx0YQkBB3Jld2FyZHMBBQdfc3Rha2VyAQx1cGRhdGVSZXdhcmQCB19zdGFrZXINX2JhbGFuY2VEZWx0YQQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJAQ5yZXdhcmRQZXJUb2tlbgEFDV9iYWxhbmNlRGVsdGEEEW5ld0xhc3RVcGRhdGVUaW1lCQETY3VycmVudFRpbWVzdGFtcFNlYwAECyR0MDY1Njg2NzYwAwkBAiE9AgUHX3N0YWtlcgIACQCUCgIJAQZlYXJuZWQCBQdfc3Rha2VyBQ1fYmFsYW5jZURlbHRhBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkAlAoCAAAAAAQMc3Rha2VyRWFybmVkCAULJHQwNjU2ODY3NjACXzEEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFCyR0MDY1Njg2NzYwAl8yCQCWCgQFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkBRFuZXdMYXN0VXBkYXRlVGltZQUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQBEXVwZGF0ZVVzZXJCYWxhbmNlAgVfdXNlcgdfY2hhbmdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBQlrX2JhbGFuY2UFBV91c2VyCQBkAgkBCWJhbGFuY2VPZgEFBV91c2VyBQdfY2hhbmdlBQNuaWwBFHNldFVzZXJXaXRoZHJhd0xpbWl0AgVfdXNlcgVfcmF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUQa193aXRoZHJhd19saW1pdAUFX3VzZXIFBV9yYXRlBQNuaWwBEnNldFVzZXJBdmVyYWdlUmF0ZQIFX3VzZXIFX3JhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFDmtfYXZlcmFnZV9yYXRlBQVfdXNlcgUFX3JhdGUFA25pbAERdXBkYXRlRnJlZUJhbGFuY2UBB19jaGFuZ2UJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtfZnJlZUJhbGFuY2UJAGQCCQELZnJlZUJhbGFuY2UABQdfY2hhbmdlBQNuaWwBE3VwZGF0ZUxvY2tlZEJhbGFuY2UBB19jaGFuZ2UEB2JhbGFuY2UJAQ1sb2NrZWRCYWxhbmNlAAMJAGcCCQBkAgUHYmFsYW5jZQUHX2NoYW5nZQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rX2xvY2tlZEJhbGFuY2UJAGQCBQdiYWxhbmNlBQdfY2hhbmdlBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICAi9WYXVsdDogY2FuIG5vdCB1cGRhdGUgbG9ja2VkIGJhbGFuY2UuIEJhbGFuY2U6IAkApAMBBQdiYWxhbmNlAgkgY2hhbmdlOiAJAKQDAQUHX2NoYW5nZQEcdXBkYXRlTG9ja2VkQmFsYW5jZVVuY2hlY2tlZAEHX2NoYW5nZQQHYmFsYW5jZQkBDWxvY2tlZEJhbGFuY2UAAwkAZwIJAGQCBQdiYWxhbmNlBQdfY2hhbmdlAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tfbG9ja2VkQmFsYW5jZQkAZAIFB2JhbGFuY2UFB19jaGFuZ2UFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa19sb2NrZWRCYWxhbmNlAAAFA25pbAERdXBkYXRlVG90YWxTdXBwbHkBB19jaGFuZ2UJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtfdG90YWxTdXBwbHkJAGQCCQELdG90YWxTdXBwbHkABQdfY2hhbmdlBQNuaWwBCnVwZGF0ZVJhdGUBBV9yYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQZrX3JhdGUFBV9yYXRlBQNuaWwBFXNldFVzZXJXaXRoZHJhd1BhcmFtcwMFX3VzZXIRX2xhc3RXaXRoZHJhd0RhdGUKX3dpdGhkcmF3bgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUUa19sYXN0X3dpdGhkcmF3X2RhdGUFBV91c2VyBRFfbGFzdFdpdGhkcmF3RGF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUUa193aXRoZHJhd19pbl9wZXJpb2QFBV91c2VyBQpfd2l0aGRyYXduBQNuaWwBE3VwZGF0ZVJld2FyZEJhbGFuY2UBBl9kZWx0YQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa19yZXdhcmRCYWxhbmNlCQBkAgkBDXJld2FyZEJhbGFuY2UABQZfZGVsdGEFA25pbAEQdXBkYXRlUmV3YXJkUmF0ZQELX3Jld2FyZFJhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtfcmV3YXJkUmF0ZQULX3Jld2FyZFJhdGUFA25pbAEKdXBkYXRlVGltZQIPX2xhc3RVcGRhdGVUaW1lDV9wZXJpb2RGaW5pc2gJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtfbGFzdFVwZGF0ZVRpbWUFD19sYXN0VXBkYXRlVGltZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa19wZXJpb2RGaW5pc2gFDV9wZXJpb2RGaW5pc2gFA25pbAEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBFV9yZXdhcmRQZXJUb2tlblN0b3JlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUWa19yZXdhcmRQZXJUb2tlblN0b3JlZAUVX3Jld2FyZFBlclRva2VuU3RvcmVkBQNuaWwBEXVwZGF0ZVVzZXJSZXdhcmRzAwdfc3Rha2VyB19yZXdhcmQTX3VzZXJSZXdhcmRQZXJUb2tlbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUMa191c2VyUmV3YXJkBQdfc3Rha2VyBQdfcmV3YXJkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBRRrX3VzZXJSZXdhcmRQZXJUb2tlbgUHX3N0YWtlcgUTX3VzZXJSZXdhcmRQZXJUb2tlbgUDbmlsDAFpAQppbml0aWFsaXplAQxfY29vcmRpbmF0b3IDCQELaW5pdGlhbGl6ZWQACQACAQITQWxyZWFkeSBpbml0aWFsaXplZAkAzAgCCQELU3RyaW5nRW50cnkCBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwUMX2Nvb3JkaW5hdG9yCQDMCAIJAQxCb29sZWFuRW50cnkCBQ1rX2luaXRpYWxpemVkBgUDbmlsAWkBBXN0YWtlAAQHX3N0YWtlcgkApQgBCAUBaQZjYWxsZXIEB19hbW91bnQJAQ51c2RuVG9EZWNpbWFscwEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBCnF1b3RlQXNzZXQABgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIVSW52YWxpZCBjYWxsIHRvIHN0YWtlBAwkdDA5OTQ2MTAxNzUJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAAEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCAUMJHQwOTk0NjEwMTc1Al8xBBFuZXdMYXN0VXBkYXRlVGltZQgFDCR0MDk5NDYxMDE3NQJfMgQMc3Rha2VyRWFybmVkCAUMJHQwOTk0NjEwMTc1Al8zBBhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQIBQwkdDA5OTQ2MTAxNzUCXzQEC2N1cnJlbnRSYXRlCQEEcmF0ZQAED3ByZXZBdmVyYWdlUmF0ZQkBC2F2ZXJhZ2VSYXRlAQUHX3N0YWtlcgQHdkFtb3VudAkBBGRpdmQCBQdfYW1vdW50BQtjdXJyZW50UmF0ZQQObmV3QXZlcmFnZVJhdGUJAQRkaXZkAgkAZAIJAQRtdWxkAgUHdkFtb3VudAULY3VycmVudFJhdGUJAQRtdWxkAgkBCWJhbGFuY2VPZgEFB19zdGFrZXIFD3ByZXZBdmVyYWdlUmF0ZQkAZAIFB3ZBbW91bnQJAQliYWxhbmNlT2YBBQdfc3Rha2VyBA9uZXdUb3RhbEJhbGFuY2UJAGQCBQd2QW1vdW50CQEJYmFsYW5jZU9mAQUHX3N0YWtlcgQQbmV3V2l0aGRyYXdMaW1pdAkBBG11bGQCBQ9uZXdUb3RhbEJhbGFuY2UFE1dJVEhEUkFXX1BFUl9QRVJJT0QEBXN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBCnF1b3RlQXNzZXQACQEQdXNkbkZyb21EZWNpbWFscwEFB19hbW91bnQFA25pbAMJAAACBQVzdGFrZQUFc3Rha2UJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBEXVwZGF0ZUZyZWVCYWxhbmNlAQUHX2Ftb3VudAkBEXVwZGF0ZVVzZXJCYWxhbmNlAgUHX3N0YWtlcgUHdkFtb3VudAkBEnNldFVzZXJBdmVyYWdlUmF0ZQIFB19zdGFrZXIFDm5ld0F2ZXJhZ2VSYXRlCQEUc2V0VXNlcldpdGhkcmF3TGltaXQCBQdfc3Rha2VyBRBuZXdXaXRoZHJhd0xpbWl0CQERdXBkYXRlVG90YWxTdXBwbHkBBQd2QW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB3VuU3Rha2UBB19hbW91bnQEB19zdGFrZXIJAKUIAQgFAWkGY2FsbGVyBBJhbW91bnRPZlF1b3RlQXNzZXQJAQ51c2RuVG9EZWNpbWFscwEFB19hbW91bnQDAwMJAQIhPQIIBQFpCHBheW1lbnRzBQNuaWwGCQBnAgAABRJhbW91bnRPZlF1b3RlQXNzZXQGCQEBIQEJAQtpbml0aWFsaXplZAAJAAIBAhdJbnZhbGlkIGNhbGwgdG8gdW5TdGFrZQQNJHQwMTE1MjgxMTc0NAkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQ0kdDAxMTUyODExNzQ0Al8xBBFuZXdMYXN0VXBkYXRlVGltZQgFDSR0MDExNTI4MTE3NDQCXzIEDHN0YWtlckVhcm5lZAgFDSR0MDExNTI4MTE3NDQCXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFDSR0MDExNTI4MTE3NDQCXzQEDSR0MDExNzUxMTE4OTIJARRnZXRXaXRoZHJhd0xpbWl0TGVmdAEFB19zdGFrZXIEFG5ld0xhc3RXaXRoZHJhd25EYXRlCAUNJHQwMTE3NTExMTg5MgJfMQQRd2l0aGRyYXdMaW1pdExlZnQIBQ0kdDAxMTc1MTExODkyAl8yBAd2QW1vdW50CQEEZGl2ZAIFEmFtb3VudE9mUXVvdGVBc3NldAkBBHJhdGUAAwkAZgIFB3ZBbW91bnQFEXdpdGhkcmF3TGltaXRMZWZ0CQACAQIsSW52YWxpZCBjYWxsIHRvIHVuU3Rha2U6IHdpdGhkcmF3IG92ZXIgbGltaXQEFG5ld1dpdGhkcmF3bkluUGVyaW9kCQBkAgkBEXdpdGhkcmF3bkluUGVyaW9kAQUHX3N0YWtlcgUHdkFtb3VudAMJAGYCBRJhbW91bnRPZlF1b3RlQXNzZXQJAQtmcmVlQmFsYW5jZQAJAAIBAihJbnZhbGlkIGNhbGwgdG8gdW5TdGFrZTogYmFsYW5jZSB0b28gbG93BAd1bnN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACCHdpdGhkcmF3CQDMCAIJANgEAQkBCnF1b3RlQXNzZXQACQDMCAIJARB1c2RuRnJvbURlY2ltYWxzAQUSYW1vdW50T2ZRdW90ZUFzc2V0BQNuaWwFA25pbAMJAAACBQd1bnN0YWtlBQd1bnN0YWtlCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJARF1cGRhdGVVc2VyUmV3YXJkcwMFB19zdGFrZXIFDHN0YWtlckVhcm5lZAUYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBCnVwZGF0ZVRpbWUCBRFuZXdMYXN0VXBkYXRlVGltZQkBDHBlcmlvZEZpbmlzaAAJARF1cGRhdGVGcmVlQmFsYW5jZQEJAQEtAQUSYW1vdW50T2ZRdW90ZUFzc2V0CQERdXBkYXRlVXNlckJhbGFuY2UCBQdfc3Rha2VyCQEBLQEFB3ZBbW91bnQJARF1cGRhdGVUb3RhbFN1cHBseQEJAQEtAQUHdkFtb3VudAkBFXNldFVzZXJXaXRoZHJhd1BhcmFtcwMFB19zdGFrZXIFFG5ld0xhc3RXaXRoZHJhd25EYXRlBRRuZXdXaXRoZHJhd25JblBlcmlvZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJARB1c2RuRnJvbURlY2ltYWxzAQUSYW1vdW50T2ZRdW90ZUFzc2V0CQEKcXVvdGVBc3NldAAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ93aXRoZHJhd1Jld2FyZHMABAdfc3Rha2VyCQClCAEIBQFpBmNhbGxlcgQNJHQwMTMyMzAxMzM3NQkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQ0kdDAxMzIzMDEzMzc1Al8xBBFuZXdMYXN0VXBkYXRlVGltZQgFDSR0MDEzMjMwMTMzNzUCXzIEDHN0YWtlckVhcm5lZAgFDSR0MDEzMjMwMTMzNzUCXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFDSR0MDEzMjMwMTMzNzUCXzQDAwkAZwIAAAUMc3Rha2VyRWFybmVkBgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIQTm8gcmV3YXJkOiBWYXVsdAkAzggCCQDOCAIJAM4IAgkAzggCCQERdXBkYXRlVXNlclJld2FyZHMDBQdfc3Rha2VyAAAFGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAkBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkAQUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJAQp1cGRhdGVUaW1lAgURbmV3TGFzdFVwZGF0ZVRpbWUJAQxwZXJpb2RGaW5pc2gACQETdXBkYXRlUmV3YXJkQmFsYW5jZQEJAQEtAQUMc3Rha2VyRWFybmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUMc3Rha2VyRWFybmVkCQEPZ292ZXJuYW5jZUFzc2V0AAUDbmlsAWkBB2FkZEZyZWUABAdfYW1vdW50CQEOdXNkblRvRGVjaW1hbHMBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMDAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQEKcXVvdGVBc3NldAAGCQEBIQEJAQtpbml0aWFsaXplZAAGCQEBIQEDCQELaXNXaGl0ZWxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAAACCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MACQACAQIWSW52YWxpZCBhZGRGcmVlIHBhcmFtcwQHbmV3UmF0ZQMJAGYCCQELdG90YWxTdXBwbHkAAAAJAQRkaXZkAgkAZAIJAQtmcmVlQmFsYW5jZQAFB19hbW91bnQJAQt0b3RhbFN1cHBseQAFDERFQ0lNQUxfVU5JVAQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQpxdW90ZUFzc2V0AAkBEHVzZG5Gcm9tRGVjaW1hbHMBBQdfYW1vdW50BQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQkAzggCCQERdXBkYXRlRnJlZUJhbGFuY2UBBQdfYW1vdW50CQEKdXBkYXRlUmF0ZQEFB25ld1JhdGUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJYWRkTG9ja2VkAAQHX2Ftb3VudAkBDnVzZG5Ub0RlY2ltYWxzAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDAwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBCnF1b3RlQXNzZXQABgkBASEBCQELaW5pdGlhbGl6ZWQABgkBASEBAwkBC2lzV2hpdGVsaXN0AQkApQgBCAUBaQZjYWxsZXIGCQAAAggFAWkGY2FsbGVyCQEMYWRtaW5BZGRyZXNzAAkAAgECGEludmFsaWQgYWRkTG9ja2VkIHBhcmFtcwQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQpxdW90ZUFzc2V0AAkBEHVzZG5Gcm9tRGVjaW1hbHMBBQdfYW1vdW50BQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQkBE3VwZGF0ZUxvY2tlZEJhbGFuY2UBBQdfYW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFWV4Y2hhbmdlRnJlZUFuZExvY2tlZAEHX2Ftb3VudAMDCQEBIQEJAQtpbml0aWFsaXplZAAGCQEBIQEDCQELaXNXaGl0ZWxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAAACCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MACQACAQIkSW52YWxpZCBleGNoYW5nZUZyZWVBbmRMb2NrZWQgcGFyYW1zBBJhbW91bnRPZlF1b3RlQXNzZXQJAQ51c2RuVG9EZWNpbWFscwEFB19hbW91bnQECmZyZWVVcGRhdGUJAQEtAQUSYW1vdW50T2ZRdW90ZUFzc2V0BAduZXdSYXRlCQEOY29tcHV0ZU5ld1JhdGUBBQpmcmVlVXBkYXRlCQDOCAIJAM4IAgkBHHVwZGF0ZUxvY2tlZEJhbGFuY2VVbmNoZWNrZWQBBRJhbW91bnRPZlF1b3RlQXNzZXQJARF1cGRhdGVGcmVlQmFsYW5jZQEFCmZyZWVVcGRhdGUJAQp1cGRhdGVSYXRlAQUHbmV3UmF0ZQFpAQ53aXRoZHJhd0xvY2tlZAEHX2Ftb3VudAMDAwkBASEBCQELaW5pdGlhbGl6ZWQABgkAZwIAAAUHX2Ftb3VudAYJAQEhAQkBC2lzV2hpdGVsaXN0AQkApQgBCAUBaQZjYWxsZXIJAAIBAh1JbnZhbGlkIHdpdGhkcmF3TG9ja2VkIHBhcmFtcwQSYW1vdW50T2ZRdW90ZUFzc2V0CQEOdXNkblRvRGVjaW1hbHMBBQdfYW1vdW50BAd1bnN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACCHdpdGhkcmF3CQDMCAIJANgEAQkBCnF1b3RlQXNzZXQACQDMCAIJARB1c2RuRnJvbURlY2ltYWxzAQUSYW1vdW50T2ZRdW90ZUFzc2V0BQNuaWwFA25pbAMJAAACBQd1bnN0YWtlBQd1bnN0YWtlBA5sb2NrQmFsYW5jZU5vdwkBDWxvY2tlZEJhbGFuY2UABA0kdDAxNjI3NjE2NDY5AwkAZgIFEmFtb3VudE9mUXVvdGVBc3NldAUObG9ja0JhbGFuY2VOb3cJAJQKAgUObG9ja0JhbGFuY2VOb3cJAGUCBRJhbW91bnRPZlF1b3RlQXNzZXQFDmxvY2tCYWxhbmNlTm93CQCUCgIFEmFtb3VudE9mUXVvdGVBc3NldAAABApmcm9tTG9ja2VkCAUNJHQwMTYyNzYxNjQ2OQJfMQQIZnJvbUZyZWUIBQ0kdDAxNjI3NjE2NDY5Al8yCQDOCAIJAM4IAgMJAGYCBQhmcm9tRnJlZQAABAduZXdSYXRlCQEOY29tcHV0ZU5ld1JhdGUBCQEBLQEFCGZyb21GcmVlCQDOCAIJARF1cGRhdGVGcmVlQmFsYW5jZQEJAQEtAQUIZnJvbUZyZWUJAQp1cGRhdGVSYXRlAQUHbmV3UmF0ZQUDbmlsCQETdXBkYXRlTG9ja2VkQmFsYW5jZQEJAQEtAQUKZnJvbUxvY2tlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJARB1c2RuRnJvbURlY2ltYWxzAQUSYW1vdW50T2ZRdW90ZUFzc2V0CQEKcXVvdGVBc3NldAAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQphZGRSZXdhcmRzAAMDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQ9nb3Zlcm5hbmNlQXNzZXQABgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIZSW52YWxpZCBhZGRSZXdhcmRzIHBhcmFtcwQHX3Jld2FyZAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCAkBDHVwZGF0ZVJld2FyZAIFCk5PX0FERFJFU1MFCU5PX1NUQUtFUgJfMQQJdGltZXN0YW1wCQETY3VycmVudFRpbWVzdGFtcFNlYwAEDW5ld1Jld2FyZFJhdGUDCQBmAgUJdGltZXN0YW1wCQEMcGVyaW9kRmluaXNoAAkAaQIFB19yZXdhcmQFCERVUkFUSU9OBA1yZW1haW5pbmdUaW1lCQBlAgkBDHBlcmlvZEZpbmlzaAAFCXRpbWVzdGFtcAQIbGVmdG92ZXIJAGgCCQEKcmV3YXJkUmF0ZQAFDXJlbWFpbmluZ1RpbWUJAGkCCQBkAgUHX3Jld2FyZAUIbGVmdG92ZXIFCERVUkFUSU9OCQDOCAIJAM4IAgkAzggCCQEQdXBkYXRlUmV3YXJkUmF0ZQEFDW5ld1Jld2FyZFJhdGUJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQETdXBkYXRlUmV3YXJkQmFsYW5jZQEFB19yZXdhcmQJAQp1cGRhdGVUaW1lAgUJdGltZXN0YW1wCQBkAgUJdGltZXN0YW1wBQhEVVJBVElPTgFpAQt2aWV3X3Jld2FyZAEHX3N0YWtlcgQHYmFsYW5jZQkBCWJhbGFuY2VPZgEFB19zdGFrZXIED2RlcG9zaXRlZEFtb3VudAkBBG11bGQCCQELYXZlcmFnZVJhdGUBBQdfc3Rha2VyBQdiYWxhbmNlBA1jdXJyZW50QW1vdW50CQEEbXVsZAIJAQRyYXRlAAUHYmFsYW5jZQQLZWFybmVkUXVvdGUJAGUCBQ1jdXJyZW50QW1vdW50BQ9kZXBvc2l0ZWRBbW91bnQJAAIBCQCkAwEFC2Vhcm5lZFF1b3RlAWkBEnZpZXdfc3Rha2luZ1Jld2FyZAEHX3N0YWtlcgQMc3Rha2VyRWFybmVkCAkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAJfMwkAAgEJAKQDAQkBEHVzZG5Gcm9tRGVjaW1hbHMBBQxzdGFrZXJFYXJuZWQBaQESdmlld193aXRoZHJhd0xpbWl0AQdfc3Rha2VyBBF3aXRoZHJhd0xpbWl0TGVmdAgJARRnZXRXaXRoZHJhd0xpbWl0TGVmdAEFB19zdGFrZXICXzIEC2xpbWl0SW5Vc2RuCQEQdXNkbkZyb21EZWNpbWFscwEJAQRtdWxkAgURd2l0aGRyYXdMaW1pdExlZnQJAQRyYXRlAAkAAgEJAKQDAQULbGltaXRJblVzZG4BAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQEOYWRtaW5QdWJsaWNLZXkAcNprgA==", "height": 2427371, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AedhUzzEoxMx1HxeTKckrhCuTAEmKim9aXjm3pQM6qip Next: 9WJktdE62BH7CJFxNKo9hJjbBoy1gUgnTTy5R5i39caW Diff:
OldNewDifferences
77
88 let c = "k_lockedBalance"
99
10-let d = "k_vLockedBalance"
10+let d = "k_freeBalance"
1111
12-let e = "k_freeBalance"
12+let e = "k_rate"
1313
14-let f = "k_freeBalanceBorrowed"
14+let f = "k_lastUpdateTime"
1515
16-let g = "k_rate"
16+let g = "k_rewardPerTokenStored"
1717
18-let h = "k_lastUpdateTime"
18+let h = "k_rewardRate"
1919
20-let i = "k_rewardPerTokenStored"
20+let i = "k_periodFinish"
2121
22-let j = "k_rewardRate"
22+let j = "k_userRewardPerToken"
2323
24-let k = "k_periodFinish"
24+let k = "k_userReward"
2525
26-let l = "k_userRewardPerToken"
26+let l = "k_balance"
2727
28-let m = "k_userReward"
28+let m = "k_average_rate"
2929
30-let n = "k_balance"
30+let n = "k_withdraw_limit"
3131
32-let o = "k_average_rate"
32+let o = "k_last_withdraw_date"
3333
34-let p = "k_withdraw_limit"
34+let p = "k_withdraw_in_period"
3535
36-let q = "k_last_withdraw_date"
36+let q = "k_initialized"
3737
38-let r = "k_withdraw_in_period"
38+let r = "k_coordinatorAddress"
3939
40-let s = "k_initialized"
40+let s = "k_amm"
4141
42-let t = "k_coordinatorAddress"
42+let t = "k_gov_asset"
4343
44-let u = "k_amm"
44+let u = "k_quote_asset"
4545
46-let v = "k_gov_asset"
46+let v = "k_admin_public_key"
4747
48-let w = "k_quote_asset"
48+let w = "k_admin_address"
4949
50-let x = "k_admin_public_key"
50+let x = "k_manager_address"
5151
52-let y = "k_admin_address"
52+let y = "k_collateral_address"
5353
54-let z = "k_manager_address"
55-
56-let A = "k_collateral_address"
57-
58-func B (C,D) = ((C + "_") + D)
54+func z (A,B) = ((A + "_") + B)
5955
6056
61-func E () = valueOrErrorMessage(addressFromString(getStringValue(this, t)), "Coordinator not set")
57+func C () = valueOrErrorMessage(addressFromString(getStringValue(this, r)), "Coordinator not set")
6258
6359
64-func F (D) = valueOrElse(getBoolean(E(), B(u, D)), false)
60+func D (B) = valueOrElse(getBoolean(C(), z(s, B)), false)
6561
6662
67-func G () = fromBase58String(getStringValue(E(), x))
63+func E () = fromBase58String(getStringValue(C(), v))
6864
6965
70-func H () = fromBase58String(getStringValue(E(), v))
66+func F () = fromBase58String(getStringValue(C(), t))
7167
7268
73-func I () = addressFromString(valueOrErrorMessage(getString(E(), y), "Admin address not set"))
69+func G () = addressFromString(valueOrErrorMessage(getString(C(), w), "Admin address not set"))
7470
7571
76-func J () = fromBase58String(getStringValue(E(), w))
72+func H () = fromBase58String(getStringValue(C(), u))
7773
7874
79-func K () = valueOrErrorMessage(addressFromString(getStringValue(E(), z)), "Manager not set")
75+func I () = valueOrErrorMessage(addressFromString(getStringValue(C(), x)), "Manager not set")
8076
8177
82-func L () = valueOrErrorMessage(addressFromString(getStringValue(E(), A)), "Collateral Manager not set")
78+let J = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
79+
80+let K = (((7 * 60) * 60) * 24)
81+
82+let L = ""
83+
84+let M = 0
85+
86+func N (O) = (O / 100)
8387
8488
85-let M = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
86-
87-let N = (((7 * 60) * 60) * 24)
88-
89-let O = ""
90-
91-let P = 0
92-
93-func Q (R) = (R / 100)
89+func P (O) = (O * 100)
9490
9591
96-func S (R) = (R * 100)
92+func Q (R,S) = fraction(R, J, S, HALFEVEN)
9793
9894
99-func T (U,V) = fraction(U, M, V, HALFEVEN)
95+func T (R,S) = fraction(R, S, J, HALFEVEN)
10096
10197
102-func W (U,V) = fraction(U, V, M, HALFEVEN)
98+func U (R) = if ((R > 0))
99+ then R
100+ else -(R)
103101
104102
105-func X (U) = if ((U > 0))
106- then U
107- else -(U)
103+func V (R,S) = if ((R > S))
104+ then S
105+ else R
108106
109107
110-func Y (U,V) = if ((U > V))
111- then V
112- else U
108+let W = (86400 * 1000)
109+
110+let X = Q((1 * J), (4 * J))
111+
112+func Y (Z) = valueOrErrorMessage(getInteger(this, Z), ("no value for " + Z))
113113
114114
115-let Z = (86400 * 1000)
116-
117-let aa = T((1 * M), (4 * M))
118-
119-func ab (ac) = valueOrErrorMessage(getInteger(this, ac), ("no value for " + ac))
115+func aa (Z) = valueOrElse(getInteger(this, Z), 0)
120116
121117
122-func ad (ac) = valueOrElse(getInteger(this, ac), 0)
118+func ab (Z) = valueOrElse(getInteger(this, Z), J)
123119
124120
125-func ae (ac) = valueOrElse(getInteger(this, ac), M)
121+func ac () = aa(a)
126122
127123
128-func af () = ad(a)
124+func ad () = ab(e)
129125
130126
131-func ag () = ae(g)
127+func ae (af) = aa(z(l, af))
132128
133129
134-func ah (ai) = ad(B(n, ai))
130+func ag (af) = aa(z(m, af))
135131
136132
137-func aj (ai) = ad(B(o, ai))
133+func ah (af) = aa(z(n, af))
138134
139135
140-func ak (ai) = ad(B(p, ai))
136+func ai (af) = aa(z(p, af))
141137
142138
143-func al (ai) = ad(B(r, ai))
139+func aj (af) = aa(z(o, af))
144140
145141
146-func am (ai) = ad(B(q, ai))
142+func ak () = aa(d)
147143
148144
149-func an () = ad(e)
145+func al () = aa(c)
150146
151147
152-func ao () = ad(f)
148+func am () = aa(g)
153149
154150
155-func ap () = ad(c)
151+func an () = aa(f)
156152
157153
158-func aq () = ad(d)
154+func ao () = aa(h)
159155
160156
161-func ar () = ad(i)
157+func ap () = aa(i)
162158
163159
164-func as () = ad(h)
160+func aq () = aa(b)
165161
166162
167-func at () = ad(j)
163+func ar (af) = aa(z(k, af))
168164
169165
170-func au () = ad(k)
166+func as (af) = aa(z(j, af))
171167
172168
173-func av () = ad(b)
169+func at () = valueOrElse(getBoolean(this, q), false)
174170
175171
176-func aw (ai) = ad(B(m, ai))
172+func au () = lastBlock.timestamp
177173
178174
179-func ax (ai) = ad(B(l, ai))
175+func av () = (au() / 1000)
180176
181177
182-func ay () = valueOrElse(getBoolean(this, s), false)
183-
184-
185-func az () = lastBlock.timestamp
186-
187-
188-func aA () = (az() / 1000)
189-
190-
191-func aB (ai) = {
192- let aC = az()
193- let aD = am(ai)
194- let aE = if (((aC - aD) > Z))
195- then $Tuple2(aC, ak(ai))
196- else $Tuple2(aD, (ak(ai) - al(ai)))
197- let aF = aE._1
198- let aG = aE._2
199- $Tuple2(aF, aG)
178+func aw (af) = {
179+ let ax = au()
180+ let ay = aj(af)
181+ let az = if (((ax - ay) > W))
182+ then $Tuple2(ax, ah(af))
183+ else $Tuple2(ay, (ah(af) - ai(af)))
184+ let aA = az._1
185+ let aB = az._2
186+ $Tuple2(aA, aB)
200187 }
201188
202189
203-func aH (aI) = {
204- let aJ = if ((af() > 0))
205- then T((an() + aI), af())
206- else M
207- aJ
190+func aC (aD) = {
191+ let aE = if ((ac() > 0))
192+ then Q((ak() + aD), ac())
193+ else J
194+ aE
208195 }
209196
210197
211-func aK () = Y(aA(), au())
198+func aF () = V(av(), ap())
212199
213200
214-func aL (aM) = if (((af() + aM) == 0))
215- then ar()
201+func aG (aH) = if (((ac() + aH) == 0))
202+ then am()
216203 else {
217- let aN = (aK() - as())
218- let aO = if ((0 > aN))
204+ let aI = (aF() - an())
205+ let aJ = if ((0 > aI))
219206 then 0
220- else aN
221- let aP = T((at() * aO), (af() + aM))
222- (ar() + aP)
207+ else aI
208+ let aK = Q((ao() * aJ), (ac() + aH))
209+ (am() + aK)
223210 }
224211
225212
226-func aQ (ai,aM) = {
227- let aR = (aL(aM) - ax(ai))
228- (W((ah(ai) + aM), aR) + aw(ai))
213+func aL (af,aH) = {
214+ let aM = (aG(aH) - as(af))
215+ (T((ae(af) + aH), aM) + ar(af))
229216 }
230217
231218
232-func aS (ai,aM) = {
233- let aT = aL(aM)
234- let aU = aA()
235- let aV = if ((ai != ""))
236- then $Tuple2(aQ(ai, aM), aT)
219+func aN (af,aH) = {
220+ let aO = aG(aH)
221+ let aP = av()
222+ let aQ = if ((af != ""))
223+ then $Tuple2(aL(af, aH), aO)
237224 else $Tuple2(0, 0)
238- let aW = aV._1
239- let aX = aV._2
240- $Tuple4(aT, aU, aW, aX)
225+ let aR = aQ._1
226+ let aS = aQ._2
227+ $Tuple4(aO, aP, aR, aS)
241228 }
242229
243230
244-func aY (aZ,ba) = [IntegerEntry(B(n, aZ), (ah(aZ) + ba))]
231+func aT (aU,aV) = [IntegerEntry(z(l, aU), (ae(aU) + aV))]
245232
246233
247-func bb (aZ,bc) = [IntegerEntry(B(p, aZ), bc)]
234+func aW (aU,aX) = [IntegerEntry(z(n, aU), aX)]
248235
249236
250-func bd (aZ,bc) = [IntegerEntry(B(o, aZ), bc)]
237+func aY (aU,aX) = [IntegerEntry(z(m, aU), aX)]
251238
252239
253-func be (ba) = [IntegerEntry(e, (an() + ba))]
240+func aZ (aV) = [IntegerEntry(d, (ak() + aV))]
254241
255242
256-func bf (ba) = {
257- let bg = ao()
258- if (((bg + ba) >= 0))
259- then [IntegerEntry(f, (bg + ba))]
260- else throw(((("Vault: can not update borrowed free balance. Balance: " + toString(bg)) + " change: ") + toString(ba)))
243+func ba (aV) = {
244+ let bb = al()
245+ if (((bb + aV) >= 0))
246+ then [IntegerEntry(c, (bb + aV))]
247+ else throw(((("Vault: can not update locked balance. Balance: " + toString(bb)) + " change: ") + toString(aV)))
261248 }
262249
263250
264-func bh (ba) = {
265- let bi = ap()
266- if (((bi + ba) >= 0))
267- then [IntegerEntry(c, (bi + ba))]
268- else throw(((("Vault: can not update locked balance. Balance: " + toString(bi)) + " change: ") + toString(ba)))
251+func bc (aV) = {
252+ let bb = al()
253+ if (((bb + aV) >= 0))
254+ then [IntegerEntry(c, (bb + aV))]
255+ else [IntegerEntry(c, 0)]
269256 }
270257
271258
272-func bj (ba) = {
273- let bi = aq()
274- if (((bi + ba) >= 0))
275- then [IntegerEntry(d, (bi + ba))]
276- else throw(((("Vault: can not update v-locked balance. Balance: " + toString(bi)) + " change: ") + toString(ba)))
277- }
259+func bd (aV) = [IntegerEntry(a, (ac() + aV))]
278260
279261
280-func bk (ba) = [IntegerEntry(a, (af() + ba))]
262+func be (aX) = [IntegerEntry(e, aX)]
281263
282264
283-func bl (bc) = [IntegerEntry(g, bc)]
265+func bf (aU,bg,bh) = [IntegerEntry(z(o, aU), bg), IntegerEntry(z(p, aU), bh)]
284266
285267
286-func bm (aZ,bn,bo) = [IntegerEntry(B(q, aZ), bn), IntegerEntry(B(r, aZ), bo)]
268+func bi (bj) = [IntegerEntry(b, (aq() + bj))]
287269
288270
289-func bp (bq) = [IntegerEntry(b, (av() + bq))]
271+func bk (bl) = [IntegerEntry(h, bl)]
290272
291273
292-func br (bs) = [IntegerEntry(j, bs)]
274+func bm (bn,bo) = [IntegerEntry(f, bn), IntegerEntry(i, bo)]
293275
294276
295-func bt (bu,bv) = [IntegerEntry(h, bu), IntegerEntry(k, bv)]
277+func bp (bq) = [IntegerEntry(g, bq)]
296278
297279
298-func bw (bx) = [IntegerEntry(i, bx)]
280+func br (af,bs,bt) = [IntegerEntry(z(k, af), bs), IntegerEntry(z(j, af), bt)]
299281
300282
301-func by (ai,bz,bA) = [IntegerEntry(B(m, ai), bz), IntegerEntry(B(l, ai), bA)]
302-
303-
304-@Callable(bB)
305-func initialize (bC) = if (ay())
283+@Callable(bu)
284+func initialize (bv) = if (at())
306285 then throw("Already initialized")
307- else [StringEntry(t, bC), BooleanEntry(s, true)]
286+ else [StringEntry(r, bv), BooleanEntry(q, true)]
308287
309288
310289
311-@Callable(bB)
290+@Callable(bu)
312291 func stake () = {
313- let ai = toString(bB.caller)
314- let R = S(bB.payments[0].amount)
315- if (if ((bB.payments[0].assetId != J()))
292+ let af = toString(bu.caller)
293+ let O = P(bu.payments[0].amount)
294+ if (if ((bu.payments[0].assetId != H()))
316295 then true
317- else !(ay()))
296+ else !(at()))
318297 then throw("Invalid call to stake")
319298 else {
320- let bD = aS(ai, 0)
321- let aT = bD._1
322- let aU = bD._2
323- let aW = bD._3
324- let aX = bD._4
325- let bE = ag()
326- let bF = aj(ai)
327- let bG = T(R, bE)
328- let bH = T((W(bG, bE) + W(ah(ai), bF)), (bE + bF))
329- let bI = (bG + ah(ai))
330- let bJ = W(bI, aa)
331- let bK = invoke(K(), "deposit", nil, [AttachedPayment(J(), Q(R))])
332- if ((bK == bK))
333- then (((((((by(ai, aW, aX) ++ bw(aT)) ++ bt(aU, au())) ++ be(R)) ++ aY(ai, bG)) ++ bd(ai, bH)) ++ bb(ai, bJ)) ++ bk(bG))
299+ let bw = aN(af, 0)
300+ let aO = bw._1
301+ let aP = bw._2
302+ let aR = bw._3
303+ let aS = bw._4
304+ let bx = ad()
305+ let by = ag(af)
306+ let bz = Q(O, bx)
307+ let bA = Q((T(bz, bx) + T(ae(af), by)), (bz + ae(af)))
308+ let bB = (bz + ae(af))
309+ let bC = T(bB, X)
310+ let bD = invoke(I(), "deposit", nil, [AttachedPayment(H(), N(O))])
311+ if ((bD == bD))
312+ then (((((((br(af, aR, aS) ++ bp(aO)) ++ bm(aP, ap())) ++ aZ(O)) ++ aT(af, bz)) ++ aY(af, bA)) ++ aW(af, bC)) ++ bd(bz))
334313 else throw("Strict value is not equal to itself.")
335314 }
336315 }
337316
338317
339318
340-@Callable(bB)
341-func unStake (R) = {
342- let ai = toString(bB.caller)
343- let bL = S(R)
344- if (if ((bB.payments != nil))
319+@Callable(bu)
320+func unStake (O) = {
321+ let af = toString(bu.caller)
322+ let bE = P(O)
323+ if (if (if ((bu.payments != nil))
345324 then true
346- else !(ay()))
325+ else (0 >= bE))
326+ then true
327+ else !(at()))
347328 then throw("Invalid call to unStake")
348329 else {
349- let bM = aS(ai, 0)
350- let aT = bM._1
351- let aU = bM._2
352- let aW = bM._3
353- let aX = bM._4
354- let bN = aB(ai)
355- let aF = bN._1
356- let aG = bN._2
357- let bG = T(bL, ag())
358- if ((bG > aG))
330+ let bF = aN(af, 0)
331+ let aO = bF._1
332+ let aP = bF._2
333+ let aR = bF._3
334+ let aS = bF._4
335+ let bG = aw(af)
336+ let aA = bG._1
337+ let aB = bG._2
338+ let bz = Q(bE, ad())
339+ if ((bz > aB))
359340 then throw("Invalid call to unStake: withdraw over limit")
360341 else {
361- let bO = (al(ai) + bG)
362- if ((bL > an()))
342+ let bH = (ai(af) + bz)
343+ if ((bE > ak()))
363344 then throw("Invalid call to unStake: balance too low")
364345 else {
365- let bP = invoke(K(), "withdraw", [toBase58String(J()), Q(bL)], nil)
366- if ((bP == bP))
367- then (((((((by(ai, aW, aX) ++ bw(aT)) ++ bt(aU, au())) ++ be(-(bL))) ++ aY(ai, -(bG))) ++ bk(-(bG))) ++ bm(ai, aF, bO)) ++ [ScriptTransfer(bB.caller, Q(bL), J())])
346+ let bI = invoke(I(), "withdraw", [toBase58String(H()), N(bE)], nil)
347+ if ((bI == bI))
348+ then (((((((br(af, aR, aS) ++ bp(aO)) ++ bm(aP, ap())) ++ aZ(-(bE))) ++ aT(af, -(bz))) ++ bd(-(bz))) ++ bf(af, aA, bH)) ++ [ScriptTransfer(bu.caller, N(bE), H())])
368349 else throw("Strict value is not equal to itself.")
369350 }
370351 }
373354
374355
375356
376-@Callable(bB)
357+@Callable(bu)
377358 func withdrawRewards () = {
378- let ai = toString(bB.caller)
379- let bQ = aS(ai, 0)
380- let aT = bQ._1
381- let aU = bQ._2
382- let aW = bQ._3
383- let aX = bQ._4
384- if (if ((0 >= aW))
359+ let af = toString(bu.caller)
360+ let bJ = aN(af, 0)
361+ let aO = bJ._1
362+ let aP = bJ._2
363+ let aR = bJ._3
364+ let aS = bJ._4
365+ if (if ((0 >= aR))
385366 then true
386- else !(ay()))
367+ else !(at()))
387368 then throw("No reward: Vault")
388- else ((((by(ai, 0, aX) ++ bw(aT)) ++ bt(aU, au())) ++ bp(-(aW))) ++ [ScriptTransfer(bB.caller, aW, H())])
369+ else ((((br(af, 0, aS) ++ bp(aO)) ++ bm(aP, ap())) ++ bi(-(aR))) ++ [ScriptTransfer(bu.caller, aR, F())])
389370 }
390371
391372
392373
393-@Callable(bB)
374+@Callable(bu)
394375 func addFree () = {
395- let R = S(bB.payments[0].amount)
396- if (if (if ((bB.payments[0].assetId != J()))
376+ let O = P(bu.payments[0].amount)
377+ if (if (if ((bu.payments[0].assetId != H()))
397378 then true
398- else !(ay()))
379+ else !(at()))
399380 then true
400- else !(if (F(toString(bB.caller)))
381+ else !(if (D(toString(bu.caller)))
401382 then true
402- else (bB.caller == I())))
383+ else (bu.caller == G())))
403384 then throw("Invalid addFree params")
404385 else {
405- let aJ = if ((af() > 0))
406- then T((an() + R), af())
407- else M
408- let bP = invoke(K(), "deposit", nil, [AttachedPayment(J(), Q(R))])
409- if ((bP == bP))
410- then (be(R) ++ bl(aJ))
386+ let aE = if ((ac() > 0))
387+ then Q((ak() + O), ac())
388+ else J
389+ let bI = invoke(I(), "deposit", nil, [AttachedPayment(H(), N(O))])
390+ if ((bI == bI))
391+ then (aZ(O) ++ be(aE))
411392 else throw("Strict value is not equal to itself.")
412393 }
413394 }
414395
415396
416397
417-@Callable(bB)
418-func addLocked (bR) = {
419- let R = S(bB.payments[0].amount)
420- if (if (if ((bB.payments[0].assetId != J()))
398+@Callable(bu)
399+func addLocked () = {
400+ let O = P(bu.payments[0].amount)
401+ if (if (if ((bu.payments[0].assetId != H()))
421402 then true
422- else !(ay()))
403+ else !(at()))
423404 then true
424- else !(if (if (F(toString(bB.caller)))
405+ else !(if (D(toString(bu.caller)))
425406 then true
426- else (bB.caller == L()))
427- then true
428- else (bB.caller == I())))
407+ else (bu.caller == G())))
429408 then throw("Invalid addLocked params")
430409 else {
431- let bP = invoke(K(), "deposit", nil, [AttachedPayment(J(), Q(R))])
432- if ((bP == bP))
433- then {
434- let bS = ao()
435- ((if (if (bR)
436- then (bS > 0)
437- else false)
438- then bf(-(Y(bS, R)))
439- else nil) ++ bh(R))
440- }
410+ let bI = invoke(I(), "deposit", nil, [AttachedPayment(H(), N(O))])
411+ if ((bI == bI))
412+ then ba(O)
441413 else throw("Strict value is not equal to itself.")
442414 }
443415 }
444416
445417
446418
447-@Callable(bB)
448-func addLockedV (bT) = {
449- let R = S(bT)
450- if (if (!(ay()))
419+@Callable(bu)
420+func exchangeFreeAndLocked (O) = if (if (!(at()))
421+ then true
422+ else !(if (D(toString(bu.caller)))
451423 then true
452- else !(if ((bB.caller == L()))
453- then true
454- else (bB.caller == I())))
455- then throw("Invalid addLockedV params")
456- else (bh(R) ++ bj(R))
457- }
458-
459-
460-
461-@Callable(bB)
462-func exchangeFreeAndLocked (R) = if (if (!(ay()))
463- then true
464- else !(if (F(toString(bB.caller)))
465- then true
466- else (bB.caller == I())))
424+ else (bu.caller == G())))
467425 then throw("Invalid exchangeFreeAndLocked params")
468426 else {
469- let bL = S(R)
470- let bg = ao()
471- let bU = if (if ((bL > 0))
472- then (bg > 0)
473- else false)
474- then $Tuple2(-(bL), -(Y(bL, bg)))
475- else $Tuple2(-(bL), 0)
476- let bV = bU._1
477- let bW = bU._2
478- let aJ = aH(bV)
479- (((bh(bL) ++ be(bV)) ++ bf(bW)) ++ bl(aJ))
427+ let bE = P(O)
428+ let bK = -(bE)
429+ let aE = aC(bK)
430+ ((bc(bE) ++ aZ(bK)) ++ be(aE))
480431 }
481432
482433
483434
484-@Callable(bB)
485-func withdrawLocked (R) = if (if (if (!(ay()))
435+@Callable(bu)
436+func withdrawLocked (O) = if (if (if (!(at()))
486437 then true
487- else (0 >= R))
438+ else (0 >= O))
488439 then true
489- else !(F(toString(bB.caller))))
440+ else !(D(toString(bu.caller))))
490441 then throw("Invalid withdrawLocked params")
491442 else {
492- let bL = S(R)
493- let bP = invoke(K(), "withdraw", [toBase58String(J()), Q(bL)], nil)
494- if ((bP == bP))
443+ let bE = P(O)
444+ let bI = invoke(I(), "withdraw", [toBase58String(H()), N(bE)], nil)
445+ if ((bI == bI))
495446 then {
496- let bX = ap()
497- let bY = if ((bL > bX))
498- then $Tuple2(bX, (bL - bX))
499- else $Tuple2(bL, 0)
500- let bZ = bY._1
501- let ca = bY._2
502- let cb = aq()
503- let cc = (bX - cb)
504- let cd = if ((bZ > cc))
505- then $Tuple2(cc, (bZ - cc))
506- else $Tuple2(bZ, 0)
507- let ce = cd._1
508- let cf = cd._2
509- ((((if ((cf > 0))
510- then bf(cf)
511- else nil) ++ (if ((ca > 0))
447+ let bL = al()
448+ let bM = if ((bE > bL))
449+ then $Tuple2(bL, (bE - bL))
450+ else $Tuple2(bE, 0)
451+ let bN = bM._1
452+ let bO = bM._2
453+ (((if ((bO > 0))
512454 then {
513- let aJ = aH(-(ca))
514- (be(-(ca)) ++ bl(aJ))
455+ let aE = aC(-(bO))
456+ (aZ(-(bO)) ++ be(aE))
515457 }
516- else nil)) ++ bh(-(bZ))) ++ [ScriptTransfer(bB.caller, Q(bL), J())])
458+ else nil) ++ ba(-(bN))) ++ [ScriptTransfer(bu.caller, N(bE), H())])
517459 }
518460 else throw("Strict value is not equal to itself.")
519461 }
520462
521463
522464
523-@Callable(bB)
524-func withdrawLockedV (bT) = if (if (if (!(ay()))
465+@Callable(bu)
466+func addRewards () = if (if ((bu.payments[0].assetId != F()))
525467 then true
526- else (0 >= bT))
527- then true
528- else !((bB.caller == L())))
529- then throw("Invalid withdrawLockedV params")
468+ else !(at()))
469+ then throw("Invalid addRewards params")
530470 else {
531- let bL = S(bT)
532- let bX = ap()
533- let cg = if ((bL > bX))
534- then $Tuple2(bX, (bL - bX))
535- else $Tuple2(bL, 0)
536- let bZ = cg._1
537- let ca = cg._2
538- (((if ((ca > 0))
539- then {
540- let aJ = aH(-(ca))
541- (be(-(ca)) ++ bl(aJ))
471+ let bs = bu.payments[0].amount
472+ let aO = aN(L, M)._1
473+ let bP = av()
474+ let bQ = if ((bP > ap()))
475+ then (bs / K)
476+ else {
477+ let bR = (ap() - bP)
478+ let bS = (ao() * bR)
479+ ((bs + bS) / K)
542480 }
543- else nil) ++ bh(-(bZ))) ++ bj(-(bL)))
481+ (((bk(bQ) ++ bp(aO)) ++ bi(bs)) ++ bm(bP, (bP + K)))
544482 }
545483
546484
547485
548-@Callable(bB)
549-func addRewards () = if (if ((bB.payments[0].assetId != H()))
550- then true
551- else !(ay()))
552- then throw("Invalid addRewards params")
553- else {
554- let bz = bB.payments[0].amount
555- let aT = aS(O, P)._1
556- let ch = aA()
557- let ci = if ((ch > au()))
558- then (bz / N)
559- else {
560- let cj = (au() - ch)
561- let ck = (at() * cj)
562- ((bz + ck) / N)
563- }
564- (((br(ci) ++ bw(aT)) ++ bp(bz)) ++ bt(ch, (ch + N)))
565- }
566-
567-
568-
569-@Callable(bB)
570-func view_reward (ai) = {
571- let bi = ah(ai)
572- let cl = W(aj(ai), bi)
573- let cm = W(ag(), bi)
574- let cn = (cm - cl)
575- throw(toString(cn))
486+@Callable(bu)
487+func view_reward (af) = {
488+ let bb = ae(af)
489+ let bT = T(ag(af), bb)
490+ let bU = T(ad(), bb)
491+ let bV = (bU - bT)
492+ throw(toString(bV))
576493 }
577494
578495
579496
580-@Callable(bB)
581-func view_withdrawLimit (ai) = {
582- let aG = aB(ai)._2
583- let co = Q(W(aG, ag()))
584- throw(toString(co))
497+@Callable(bu)
498+func view_stakingReward (af) = {
499+ let aR = aN(af, 0)._3
500+ throw(toString(N(aR)))
585501 }
586502
587503
588-@Verifier(cp)
589-func cq () = sigVerify(cp.bodyBytes, cp.proofs[0], G())
504+
505+@Callable(bu)
506+func view_withdrawLimit (af) = {
507+ let aB = aw(af)._2
508+ let bW = N(T(aB, ad()))
509+ throw(toString(bW))
510+ }
511+
512+
513+@Verifier(bX)
514+func bY () = sigVerify(bX.bodyBytes, bX.proofs[0], E())
590515
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_lockedBalance"
99
10-let d = "k_vLockedBalance"
10+let d = "k_freeBalance"
1111
12-let e = "k_freeBalance"
12+let e = "k_rate"
1313
14-let f = "k_freeBalanceBorrowed"
14+let f = "k_lastUpdateTime"
1515
16-let g = "k_rate"
16+let g = "k_rewardPerTokenStored"
1717
18-let h = "k_lastUpdateTime"
18+let h = "k_rewardRate"
1919
20-let i = "k_rewardPerTokenStored"
20+let i = "k_periodFinish"
2121
22-let j = "k_rewardRate"
22+let j = "k_userRewardPerToken"
2323
24-let k = "k_periodFinish"
24+let k = "k_userReward"
2525
26-let l = "k_userRewardPerToken"
26+let l = "k_balance"
2727
28-let m = "k_userReward"
28+let m = "k_average_rate"
2929
30-let n = "k_balance"
30+let n = "k_withdraw_limit"
3131
32-let o = "k_average_rate"
32+let o = "k_last_withdraw_date"
3333
34-let p = "k_withdraw_limit"
34+let p = "k_withdraw_in_period"
3535
36-let q = "k_last_withdraw_date"
36+let q = "k_initialized"
3737
38-let r = "k_withdraw_in_period"
38+let r = "k_coordinatorAddress"
3939
40-let s = "k_initialized"
40+let s = "k_amm"
4141
42-let t = "k_coordinatorAddress"
42+let t = "k_gov_asset"
4343
44-let u = "k_amm"
44+let u = "k_quote_asset"
4545
46-let v = "k_gov_asset"
46+let v = "k_admin_public_key"
4747
48-let w = "k_quote_asset"
48+let w = "k_admin_address"
4949
50-let x = "k_admin_public_key"
50+let x = "k_manager_address"
5151
52-let y = "k_admin_address"
52+let y = "k_collateral_address"
5353
54-let z = "k_manager_address"
55-
56-let A = "k_collateral_address"
57-
58-func B (C,D) = ((C + "_") + D)
54+func z (A,B) = ((A + "_") + B)
5955
6056
61-func E () = valueOrErrorMessage(addressFromString(getStringValue(this, t)), "Coordinator not set")
57+func C () = valueOrErrorMessage(addressFromString(getStringValue(this, r)), "Coordinator not set")
6258
6359
64-func F (D) = valueOrElse(getBoolean(E(), B(u, D)), false)
60+func D (B) = valueOrElse(getBoolean(C(), z(s, B)), false)
6561
6662
67-func G () = fromBase58String(getStringValue(E(), x))
63+func E () = fromBase58String(getStringValue(C(), v))
6864
6965
70-func H () = fromBase58String(getStringValue(E(), v))
66+func F () = fromBase58String(getStringValue(C(), t))
7167
7268
73-func I () = addressFromString(valueOrErrorMessage(getString(E(), y), "Admin address not set"))
69+func G () = addressFromString(valueOrErrorMessage(getString(C(), w), "Admin address not set"))
7470
7571
76-func J () = fromBase58String(getStringValue(E(), w))
72+func H () = fromBase58String(getStringValue(C(), u))
7773
7874
79-func K () = valueOrErrorMessage(addressFromString(getStringValue(E(), z)), "Manager not set")
75+func I () = valueOrErrorMessage(addressFromString(getStringValue(C(), x)), "Manager not set")
8076
8177
82-func L () = valueOrErrorMessage(addressFromString(getStringValue(E(), A)), "Collateral Manager not set")
78+let J = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
79+
80+let K = (((7 * 60) * 60) * 24)
81+
82+let L = ""
83+
84+let M = 0
85+
86+func N (O) = (O / 100)
8387
8488
85-let M = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
86-
87-let N = (((7 * 60) * 60) * 24)
88-
89-let O = ""
90-
91-let P = 0
92-
93-func Q (R) = (R / 100)
89+func P (O) = (O * 100)
9490
9591
96-func S (R) = (R * 100)
92+func Q (R,S) = fraction(R, J, S, HALFEVEN)
9793
9894
99-func T (U,V) = fraction(U, M, V, HALFEVEN)
95+func T (R,S) = fraction(R, S, J, HALFEVEN)
10096
10197
102-func W (U,V) = fraction(U, V, M, HALFEVEN)
98+func U (R) = if ((R > 0))
99+ then R
100+ else -(R)
103101
104102
105-func X (U) = if ((U > 0))
106- then U
107- else -(U)
103+func V (R,S) = if ((R > S))
104+ then S
105+ else R
108106
109107
110-func Y (U,V) = if ((U > V))
111- then V
112- else U
108+let W = (86400 * 1000)
109+
110+let X = Q((1 * J), (4 * J))
111+
112+func Y (Z) = valueOrErrorMessage(getInteger(this, Z), ("no value for " + Z))
113113
114114
115-let Z = (86400 * 1000)
116-
117-let aa = T((1 * M), (4 * M))
118-
119-func ab (ac) = valueOrErrorMessage(getInteger(this, ac), ("no value for " + ac))
115+func aa (Z) = valueOrElse(getInteger(this, Z), 0)
120116
121117
122-func ad (ac) = valueOrElse(getInteger(this, ac), 0)
118+func ab (Z) = valueOrElse(getInteger(this, Z), J)
123119
124120
125-func ae (ac) = valueOrElse(getInteger(this, ac), M)
121+func ac () = aa(a)
126122
127123
128-func af () = ad(a)
124+func ad () = ab(e)
129125
130126
131-func ag () = ae(g)
127+func ae (af) = aa(z(l, af))
132128
133129
134-func ah (ai) = ad(B(n, ai))
130+func ag (af) = aa(z(m, af))
135131
136132
137-func aj (ai) = ad(B(o, ai))
133+func ah (af) = aa(z(n, af))
138134
139135
140-func ak (ai) = ad(B(p, ai))
136+func ai (af) = aa(z(p, af))
141137
142138
143-func al (ai) = ad(B(r, ai))
139+func aj (af) = aa(z(o, af))
144140
145141
146-func am (ai) = ad(B(q, ai))
142+func ak () = aa(d)
147143
148144
149-func an () = ad(e)
145+func al () = aa(c)
150146
151147
152-func ao () = ad(f)
148+func am () = aa(g)
153149
154150
155-func ap () = ad(c)
151+func an () = aa(f)
156152
157153
158-func aq () = ad(d)
154+func ao () = aa(h)
159155
160156
161-func ar () = ad(i)
157+func ap () = aa(i)
162158
163159
164-func as () = ad(h)
160+func aq () = aa(b)
165161
166162
167-func at () = ad(j)
163+func ar (af) = aa(z(k, af))
168164
169165
170-func au () = ad(k)
166+func as (af) = aa(z(j, af))
171167
172168
173-func av () = ad(b)
169+func at () = valueOrElse(getBoolean(this, q), false)
174170
175171
176-func aw (ai) = ad(B(m, ai))
172+func au () = lastBlock.timestamp
177173
178174
179-func ax (ai) = ad(B(l, ai))
175+func av () = (au() / 1000)
180176
181177
182-func ay () = valueOrElse(getBoolean(this, s), false)
183-
184-
185-func az () = lastBlock.timestamp
186-
187-
188-func aA () = (az() / 1000)
189-
190-
191-func aB (ai) = {
192- let aC = az()
193- let aD = am(ai)
194- let aE = if (((aC - aD) > Z))
195- then $Tuple2(aC, ak(ai))
196- else $Tuple2(aD, (ak(ai) - al(ai)))
197- let aF = aE._1
198- let aG = aE._2
199- $Tuple2(aF, aG)
178+func aw (af) = {
179+ let ax = au()
180+ let ay = aj(af)
181+ let az = if (((ax - ay) > W))
182+ then $Tuple2(ax, ah(af))
183+ else $Tuple2(ay, (ah(af) - ai(af)))
184+ let aA = az._1
185+ let aB = az._2
186+ $Tuple2(aA, aB)
200187 }
201188
202189
203-func aH (aI) = {
204- let aJ = if ((af() > 0))
205- then T((an() + aI), af())
206- else M
207- aJ
190+func aC (aD) = {
191+ let aE = if ((ac() > 0))
192+ then Q((ak() + aD), ac())
193+ else J
194+ aE
208195 }
209196
210197
211-func aK () = Y(aA(), au())
198+func aF () = V(av(), ap())
212199
213200
214-func aL (aM) = if (((af() + aM) == 0))
215- then ar()
201+func aG (aH) = if (((ac() + aH) == 0))
202+ then am()
216203 else {
217- let aN = (aK() - as())
218- let aO = if ((0 > aN))
204+ let aI = (aF() - an())
205+ let aJ = if ((0 > aI))
219206 then 0
220- else aN
221- let aP = T((at() * aO), (af() + aM))
222- (ar() + aP)
207+ else aI
208+ let aK = Q((ao() * aJ), (ac() + aH))
209+ (am() + aK)
223210 }
224211
225212
226-func aQ (ai,aM) = {
227- let aR = (aL(aM) - ax(ai))
228- (W((ah(ai) + aM), aR) + aw(ai))
213+func aL (af,aH) = {
214+ let aM = (aG(aH) - as(af))
215+ (T((ae(af) + aH), aM) + ar(af))
229216 }
230217
231218
232-func aS (ai,aM) = {
233- let aT = aL(aM)
234- let aU = aA()
235- let aV = if ((ai != ""))
236- then $Tuple2(aQ(ai, aM), aT)
219+func aN (af,aH) = {
220+ let aO = aG(aH)
221+ let aP = av()
222+ let aQ = if ((af != ""))
223+ then $Tuple2(aL(af, aH), aO)
237224 else $Tuple2(0, 0)
238- let aW = aV._1
239- let aX = aV._2
240- $Tuple4(aT, aU, aW, aX)
225+ let aR = aQ._1
226+ let aS = aQ._2
227+ $Tuple4(aO, aP, aR, aS)
241228 }
242229
243230
244-func aY (aZ,ba) = [IntegerEntry(B(n, aZ), (ah(aZ) + ba))]
231+func aT (aU,aV) = [IntegerEntry(z(l, aU), (ae(aU) + aV))]
245232
246233
247-func bb (aZ,bc) = [IntegerEntry(B(p, aZ), bc)]
234+func aW (aU,aX) = [IntegerEntry(z(n, aU), aX)]
248235
249236
250-func bd (aZ,bc) = [IntegerEntry(B(o, aZ), bc)]
237+func aY (aU,aX) = [IntegerEntry(z(m, aU), aX)]
251238
252239
253-func be (ba) = [IntegerEntry(e, (an() + ba))]
240+func aZ (aV) = [IntegerEntry(d, (ak() + aV))]
254241
255242
256-func bf (ba) = {
257- let bg = ao()
258- if (((bg + ba) >= 0))
259- then [IntegerEntry(f, (bg + ba))]
260- else throw(((("Vault: can not update borrowed free balance. Balance: " + toString(bg)) + " change: ") + toString(ba)))
243+func ba (aV) = {
244+ let bb = al()
245+ if (((bb + aV) >= 0))
246+ then [IntegerEntry(c, (bb + aV))]
247+ else throw(((("Vault: can not update locked balance. Balance: " + toString(bb)) + " change: ") + toString(aV)))
261248 }
262249
263250
264-func bh (ba) = {
265- let bi = ap()
266- if (((bi + ba) >= 0))
267- then [IntegerEntry(c, (bi + ba))]
268- else throw(((("Vault: can not update locked balance. Balance: " + toString(bi)) + " change: ") + toString(ba)))
251+func bc (aV) = {
252+ let bb = al()
253+ if (((bb + aV) >= 0))
254+ then [IntegerEntry(c, (bb + aV))]
255+ else [IntegerEntry(c, 0)]
269256 }
270257
271258
272-func bj (ba) = {
273- let bi = aq()
274- if (((bi + ba) >= 0))
275- then [IntegerEntry(d, (bi + ba))]
276- else throw(((("Vault: can not update v-locked balance. Balance: " + toString(bi)) + " change: ") + toString(ba)))
277- }
259+func bd (aV) = [IntegerEntry(a, (ac() + aV))]
278260
279261
280-func bk (ba) = [IntegerEntry(a, (af() + ba))]
262+func be (aX) = [IntegerEntry(e, aX)]
281263
282264
283-func bl (bc) = [IntegerEntry(g, bc)]
265+func bf (aU,bg,bh) = [IntegerEntry(z(o, aU), bg), IntegerEntry(z(p, aU), bh)]
284266
285267
286-func bm (aZ,bn,bo) = [IntegerEntry(B(q, aZ), bn), IntegerEntry(B(r, aZ), bo)]
268+func bi (bj) = [IntegerEntry(b, (aq() + bj))]
287269
288270
289-func bp (bq) = [IntegerEntry(b, (av() + bq))]
271+func bk (bl) = [IntegerEntry(h, bl)]
290272
291273
292-func br (bs) = [IntegerEntry(j, bs)]
274+func bm (bn,bo) = [IntegerEntry(f, bn), IntegerEntry(i, bo)]
293275
294276
295-func bt (bu,bv) = [IntegerEntry(h, bu), IntegerEntry(k, bv)]
277+func bp (bq) = [IntegerEntry(g, bq)]
296278
297279
298-func bw (bx) = [IntegerEntry(i, bx)]
280+func br (af,bs,bt) = [IntegerEntry(z(k, af), bs), IntegerEntry(z(j, af), bt)]
299281
300282
301-func by (ai,bz,bA) = [IntegerEntry(B(m, ai), bz), IntegerEntry(B(l, ai), bA)]
302-
303-
304-@Callable(bB)
305-func initialize (bC) = if (ay())
283+@Callable(bu)
284+func initialize (bv) = if (at())
306285 then throw("Already initialized")
307- else [StringEntry(t, bC), BooleanEntry(s, true)]
286+ else [StringEntry(r, bv), BooleanEntry(q, true)]
308287
309288
310289
311-@Callable(bB)
290+@Callable(bu)
312291 func stake () = {
313- let ai = toString(bB.caller)
314- let R = S(bB.payments[0].amount)
315- if (if ((bB.payments[0].assetId != J()))
292+ let af = toString(bu.caller)
293+ let O = P(bu.payments[0].amount)
294+ if (if ((bu.payments[0].assetId != H()))
316295 then true
317- else !(ay()))
296+ else !(at()))
318297 then throw("Invalid call to stake")
319298 else {
320- let bD = aS(ai, 0)
321- let aT = bD._1
322- let aU = bD._2
323- let aW = bD._3
324- let aX = bD._4
325- let bE = ag()
326- let bF = aj(ai)
327- let bG = T(R, bE)
328- let bH = T((W(bG, bE) + W(ah(ai), bF)), (bE + bF))
329- let bI = (bG + ah(ai))
330- let bJ = W(bI, aa)
331- let bK = invoke(K(), "deposit", nil, [AttachedPayment(J(), Q(R))])
332- if ((bK == bK))
333- then (((((((by(ai, aW, aX) ++ bw(aT)) ++ bt(aU, au())) ++ be(R)) ++ aY(ai, bG)) ++ bd(ai, bH)) ++ bb(ai, bJ)) ++ bk(bG))
299+ let bw = aN(af, 0)
300+ let aO = bw._1
301+ let aP = bw._2
302+ let aR = bw._3
303+ let aS = bw._4
304+ let bx = ad()
305+ let by = ag(af)
306+ let bz = Q(O, bx)
307+ let bA = Q((T(bz, bx) + T(ae(af), by)), (bz + ae(af)))
308+ let bB = (bz + ae(af))
309+ let bC = T(bB, X)
310+ let bD = invoke(I(), "deposit", nil, [AttachedPayment(H(), N(O))])
311+ if ((bD == bD))
312+ then (((((((br(af, aR, aS) ++ bp(aO)) ++ bm(aP, ap())) ++ aZ(O)) ++ aT(af, bz)) ++ aY(af, bA)) ++ aW(af, bC)) ++ bd(bz))
334313 else throw("Strict value is not equal to itself.")
335314 }
336315 }
337316
338317
339318
340-@Callable(bB)
341-func unStake (R) = {
342- let ai = toString(bB.caller)
343- let bL = S(R)
344- if (if ((bB.payments != nil))
319+@Callable(bu)
320+func unStake (O) = {
321+ let af = toString(bu.caller)
322+ let bE = P(O)
323+ if (if (if ((bu.payments != nil))
345324 then true
346- else !(ay()))
325+ else (0 >= bE))
326+ then true
327+ else !(at()))
347328 then throw("Invalid call to unStake")
348329 else {
349- let bM = aS(ai, 0)
350- let aT = bM._1
351- let aU = bM._2
352- let aW = bM._3
353- let aX = bM._4
354- let bN = aB(ai)
355- let aF = bN._1
356- let aG = bN._2
357- let bG = T(bL, ag())
358- if ((bG > aG))
330+ let bF = aN(af, 0)
331+ let aO = bF._1
332+ let aP = bF._2
333+ let aR = bF._3
334+ let aS = bF._4
335+ let bG = aw(af)
336+ let aA = bG._1
337+ let aB = bG._2
338+ let bz = Q(bE, ad())
339+ if ((bz > aB))
359340 then throw("Invalid call to unStake: withdraw over limit")
360341 else {
361- let bO = (al(ai) + bG)
362- if ((bL > an()))
342+ let bH = (ai(af) + bz)
343+ if ((bE > ak()))
363344 then throw("Invalid call to unStake: balance too low")
364345 else {
365- let bP = invoke(K(), "withdraw", [toBase58String(J()), Q(bL)], nil)
366- if ((bP == bP))
367- then (((((((by(ai, aW, aX) ++ bw(aT)) ++ bt(aU, au())) ++ be(-(bL))) ++ aY(ai, -(bG))) ++ bk(-(bG))) ++ bm(ai, aF, bO)) ++ [ScriptTransfer(bB.caller, Q(bL), J())])
346+ let bI = invoke(I(), "withdraw", [toBase58String(H()), N(bE)], nil)
347+ if ((bI == bI))
348+ then (((((((br(af, aR, aS) ++ bp(aO)) ++ bm(aP, ap())) ++ aZ(-(bE))) ++ aT(af, -(bz))) ++ bd(-(bz))) ++ bf(af, aA, bH)) ++ [ScriptTransfer(bu.caller, N(bE), H())])
368349 else throw("Strict value is not equal to itself.")
369350 }
370351 }
371352 }
372353 }
373354
374355
375356
376-@Callable(bB)
357+@Callable(bu)
377358 func withdrawRewards () = {
378- let ai = toString(bB.caller)
379- let bQ = aS(ai, 0)
380- let aT = bQ._1
381- let aU = bQ._2
382- let aW = bQ._3
383- let aX = bQ._4
384- if (if ((0 >= aW))
359+ let af = toString(bu.caller)
360+ let bJ = aN(af, 0)
361+ let aO = bJ._1
362+ let aP = bJ._2
363+ let aR = bJ._3
364+ let aS = bJ._4
365+ if (if ((0 >= aR))
385366 then true
386- else !(ay()))
367+ else !(at()))
387368 then throw("No reward: Vault")
388- else ((((by(ai, 0, aX) ++ bw(aT)) ++ bt(aU, au())) ++ bp(-(aW))) ++ [ScriptTransfer(bB.caller, aW, H())])
369+ else ((((br(af, 0, aS) ++ bp(aO)) ++ bm(aP, ap())) ++ bi(-(aR))) ++ [ScriptTransfer(bu.caller, aR, F())])
389370 }
390371
391372
392373
393-@Callable(bB)
374+@Callable(bu)
394375 func addFree () = {
395- let R = S(bB.payments[0].amount)
396- if (if (if ((bB.payments[0].assetId != J()))
376+ let O = P(bu.payments[0].amount)
377+ if (if (if ((bu.payments[0].assetId != H()))
397378 then true
398- else !(ay()))
379+ else !(at()))
399380 then true
400- else !(if (F(toString(bB.caller)))
381+ else !(if (D(toString(bu.caller)))
401382 then true
402- else (bB.caller == I())))
383+ else (bu.caller == G())))
403384 then throw("Invalid addFree params")
404385 else {
405- let aJ = if ((af() > 0))
406- then T((an() + R), af())
407- else M
408- let bP = invoke(K(), "deposit", nil, [AttachedPayment(J(), Q(R))])
409- if ((bP == bP))
410- then (be(R) ++ bl(aJ))
386+ let aE = if ((ac() > 0))
387+ then Q((ak() + O), ac())
388+ else J
389+ let bI = invoke(I(), "deposit", nil, [AttachedPayment(H(), N(O))])
390+ if ((bI == bI))
391+ then (aZ(O) ++ be(aE))
411392 else throw("Strict value is not equal to itself.")
412393 }
413394 }
414395
415396
416397
417-@Callable(bB)
418-func addLocked (bR) = {
419- let R = S(bB.payments[0].amount)
420- if (if (if ((bB.payments[0].assetId != J()))
398+@Callable(bu)
399+func addLocked () = {
400+ let O = P(bu.payments[0].amount)
401+ if (if (if ((bu.payments[0].assetId != H()))
421402 then true
422- else !(ay()))
403+ else !(at()))
423404 then true
424- else !(if (if (F(toString(bB.caller)))
405+ else !(if (D(toString(bu.caller)))
425406 then true
426- else (bB.caller == L()))
427- then true
428- else (bB.caller == I())))
407+ else (bu.caller == G())))
429408 then throw("Invalid addLocked params")
430409 else {
431- let bP = invoke(K(), "deposit", nil, [AttachedPayment(J(), Q(R))])
432- if ((bP == bP))
433- then {
434- let bS = ao()
435- ((if (if (bR)
436- then (bS > 0)
437- else false)
438- then bf(-(Y(bS, R)))
439- else nil) ++ bh(R))
440- }
410+ let bI = invoke(I(), "deposit", nil, [AttachedPayment(H(), N(O))])
411+ if ((bI == bI))
412+ then ba(O)
441413 else throw("Strict value is not equal to itself.")
442414 }
443415 }
444416
445417
446418
447-@Callable(bB)
448-func addLockedV (bT) = {
449- let R = S(bT)
450- if (if (!(ay()))
419+@Callable(bu)
420+func exchangeFreeAndLocked (O) = if (if (!(at()))
421+ then true
422+ else !(if (D(toString(bu.caller)))
451423 then true
452- else !(if ((bB.caller == L()))
453- then true
454- else (bB.caller == I())))
455- then throw("Invalid addLockedV params")
456- else (bh(R) ++ bj(R))
457- }
458-
459-
460-
461-@Callable(bB)
462-func exchangeFreeAndLocked (R) = if (if (!(ay()))
463- then true
464- else !(if (F(toString(bB.caller)))
465- then true
466- else (bB.caller == I())))
424+ else (bu.caller == G())))
467425 then throw("Invalid exchangeFreeAndLocked params")
468426 else {
469- let bL = S(R)
470- let bg = ao()
471- let bU = if (if ((bL > 0))
472- then (bg > 0)
473- else false)
474- then $Tuple2(-(bL), -(Y(bL, bg)))
475- else $Tuple2(-(bL), 0)
476- let bV = bU._1
477- let bW = bU._2
478- let aJ = aH(bV)
479- (((bh(bL) ++ be(bV)) ++ bf(bW)) ++ bl(aJ))
427+ let bE = P(O)
428+ let bK = -(bE)
429+ let aE = aC(bK)
430+ ((bc(bE) ++ aZ(bK)) ++ be(aE))
480431 }
481432
482433
483434
484-@Callable(bB)
485-func withdrawLocked (R) = if (if (if (!(ay()))
435+@Callable(bu)
436+func withdrawLocked (O) = if (if (if (!(at()))
486437 then true
487- else (0 >= R))
438+ else (0 >= O))
488439 then true
489- else !(F(toString(bB.caller))))
440+ else !(D(toString(bu.caller))))
490441 then throw("Invalid withdrawLocked params")
491442 else {
492- let bL = S(R)
493- let bP = invoke(K(), "withdraw", [toBase58String(J()), Q(bL)], nil)
494- if ((bP == bP))
443+ let bE = P(O)
444+ let bI = invoke(I(), "withdraw", [toBase58String(H()), N(bE)], nil)
445+ if ((bI == bI))
495446 then {
496- let bX = ap()
497- let bY = if ((bL > bX))
498- then $Tuple2(bX, (bL - bX))
499- else $Tuple2(bL, 0)
500- let bZ = bY._1
501- let ca = bY._2
502- let cb = aq()
503- let cc = (bX - cb)
504- let cd = if ((bZ > cc))
505- then $Tuple2(cc, (bZ - cc))
506- else $Tuple2(bZ, 0)
507- let ce = cd._1
508- let cf = cd._2
509- ((((if ((cf > 0))
510- then bf(cf)
511- else nil) ++ (if ((ca > 0))
447+ let bL = al()
448+ let bM = if ((bE > bL))
449+ then $Tuple2(bL, (bE - bL))
450+ else $Tuple2(bE, 0)
451+ let bN = bM._1
452+ let bO = bM._2
453+ (((if ((bO > 0))
512454 then {
513- let aJ = aH(-(ca))
514- (be(-(ca)) ++ bl(aJ))
455+ let aE = aC(-(bO))
456+ (aZ(-(bO)) ++ be(aE))
515457 }
516- else nil)) ++ bh(-(bZ))) ++ [ScriptTransfer(bB.caller, Q(bL), J())])
458+ else nil) ++ ba(-(bN))) ++ [ScriptTransfer(bu.caller, N(bE), H())])
517459 }
518460 else throw("Strict value is not equal to itself.")
519461 }
520462
521463
522464
523-@Callable(bB)
524-func withdrawLockedV (bT) = if (if (if (!(ay()))
465+@Callable(bu)
466+func addRewards () = if (if ((bu.payments[0].assetId != F()))
525467 then true
526- else (0 >= bT))
527- then true
528- else !((bB.caller == L())))
529- then throw("Invalid withdrawLockedV params")
468+ else !(at()))
469+ then throw("Invalid addRewards params")
530470 else {
531- let bL = S(bT)
532- let bX = ap()
533- let cg = if ((bL > bX))
534- then $Tuple2(bX, (bL - bX))
535- else $Tuple2(bL, 0)
536- let bZ = cg._1
537- let ca = cg._2
538- (((if ((ca > 0))
539- then {
540- let aJ = aH(-(ca))
541- (be(-(ca)) ++ bl(aJ))
471+ let bs = bu.payments[0].amount
472+ let aO = aN(L, M)._1
473+ let bP = av()
474+ let bQ = if ((bP > ap()))
475+ then (bs / K)
476+ else {
477+ let bR = (ap() - bP)
478+ let bS = (ao() * bR)
479+ ((bs + bS) / K)
542480 }
543- else nil) ++ bh(-(bZ))) ++ bj(-(bL)))
481+ (((bk(bQ) ++ bp(aO)) ++ bi(bs)) ++ bm(bP, (bP + K)))
544482 }
545483
546484
547485
548-@Callable(bB)
549-func addRewards () = if (if ((bB.payments[0].assetId != H()))
550- then true
551- else !(ay()))
552- then throw("Invalid addRewards params")
553- else {
554- let bz = bB.payments[0].amount
555- let aT = aS(O, P)._1
556- let ch = aA()
557- let ci = if ((ch > au()))
558- then (bz / N)
559- else {
560- let cj = (au() - ch)
561- let ck = (at() * cj)
562- ((bz + ck) / N)
563- }
564- (((br(ci) ++ bw(aT)) ++ bp(bz)) ++ bt(ch, (ch + N)))
565- }
566-
567-
568-
569-@Callable(bB)
570-func view_reward (ai) = {
571- let bi = ah(ai)
572- let cl = W(aj(ai), bi)
573- let cm = W(ag(), bi)
574- let cn = (cm - cl)
575- throw(toString(cn))
486+@Callable(bu)
487+func view_reward (af) = {
488+ let bb = ae(af)
489+ let bT = T(ag(af), bb)
490+ let bU = T(ad(), bb)
491+ let bV = (bU - bT)
492+ throw(toString(bV))
576493 }
577494
578495
579496
580-@Callable(bB)
581-func view_withdrawLimit (ai) = {
582- let aG = aB(ai)._2
583- let co = Q(W(aG, ag()))
584- throw(toString(co))
497+@Callable(bu)
498+func view_stakingReward (af) = {
499+ let aR = aN(af, 0)._3
500+ throw(toString(N(aR)))
585501 }
586502
587503
588-@Verifier(cp)
589-func cq () = sigVerify(cp.bodyBytes, cp.proofs[0], G())
504+
505+@Callable(bu)
506+func view_withdrawLimit (af) = {
507+ let aB = aw(af)._2
508+ let bW = N(T(aB, ad()))
509+ throw(toString(bW))
510+ }
511+
512+
513+@Verifier(bX)
514+func bY () = sigVerify(bX.bodyBytes, bX.proofs[0], E())
590515

github/deemru/w8io/03bedc9 
222.69 ms