tx · 2QoWuWcA2umuD9Yu51yKg4ebM7PwtNseQGWN3tSmTdMY

3NBEuUXKfGqe1ZKUfx8b8YsguJKYLhy2bTJ:  -0.03700000 Waves

2023.04.28 09:59 [2554085] smart account 3NBEuUXKfGqe1ZKUfx8b8YsguJKYLhy2bTJ > SELF 0.00000000 Waves

{ "type": 13, "id": "2QoWuWcA2umuD9Yu51yKg4ebM7PwtNseQGWN3tSmTdMY", "fee": 3700000, "feeAssetId": null, "timestamp": 1682665178769, "version": 2, "chainId": 84, "sender": "3NBEuUXKfGqe1ZKUfx8b8YsguJKYLhy2bTJ", "senderPublicKey": "2NgVCitn1k18yzwhrzdQXHDEygzSkjbXS4A1koTt14db", "proofs": [ "J4oVTbePcWbTYQNMoqfWCbLubuvTScg9ZE5S9twQ9qAzKrK5sijba5fUehnvjFx7H8XYLai6EThtwsAJAQV7zjo" ], "script": "base64:BgIxCAISAwoBCBIAEgMKAQESABIAEgASAwoBARIDCgEBEgASABIDCgEIEgMKAQgSAwoBCFQADWtfdG90YWxTdXBwbHkCDWtfdG90YWxTdXBwbHkAD2tfcmV3YXJkQmFsYW5jZQIPa19yZXdhcmRCYWxhbmNlAA9rX2xvY2tlZEJhbGFuY2UCD2tfbG9ja2VkQmFsYW5jZQANa19mcmVlQmFsYW5jZQINa19mcmVlQmFsYW5jZQAGa19yYXRlAgZrX3JhdGUAEGtfbGFzdFVwZGF0ZVRpbWUCEGtfbGFzdFVwZGF0ZVRpbWUAFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQCFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQADGtfcmV3YXJkUmF0ZQIMa19yZXdhcmRSYXRlAA5rX3BlcmlvZEZpbmlzaAIOa19wZXJpb2RGaW5pc2gAFGtfdXNlclJld2FyZFBlclRva2VuAhRrX3VzZXJSZXdhcmRQZXJUb2tlbgAMa191c2VyUmV3YXJkAgxrX3VzZXJSZXdhcmQACWtfYmFsYW5jZQIJa19iYWxhbmNlAA5rX2F2ZXJhZ2VfcmF0ZQIOa19hdmVyYWdlX3JhdGUAEGtfd2l0aGRyYXdfbGltaXQCEGtfd2l0aGRyYXdfbGltaXQAFGtfbGFzdF93aXRoZHJhd19kYXRlAhRrX2xhc3Rfd2l0aGRyYXdfZGF0ZQAUa193aXRoZHJhd19pbl9wZXJpb2QCFGtfd2l0aGRyYXdfaW5fcGVyaW9kAA1rX2luaXRpYWxpemVkAg1rX2luaXRpYWxpemVkABRrX2Nvb3JkaW5hdG9yQWRkcmVzcwIUa19jb29yZGluYXRvckFkZHJlc3MABWtfYW1tAgVrX2FtbQASa19nb3Zlcm5hbmNlX2Fzc2V0AgtrX2dvdl9hc3NldAANa19xdW90ZV9hc3NldAINa19xdW90ZV9hc3NldAAPa19hZG1pbl9hZGRyZXNzAg9rX2FkbWluX2FkZHJlc3MAEWtfbWFuYWdlcl9hZGRyZXNzAhFrX21hbmFnZXJfYWRkcmVzcwAUa19jb2xsYXRlcmFsX2FkZHJlc3MCFGtfY29sbGF0ZXJhbF9hZGRyZXNzAQ50b0NvbXBvc2l0ZUtleQIEX2tleQhfYWRkcmVzcwkArAICCQCsAgIFBF9rZXkCAV8FCF9hZGRyZXNzAQtjb29yZGluYXRvcgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQCG0Nvb3JkaW5hdG9yIGFkZHJlc3MgaW52YWxpZAEMYWRtaW5BZGRyZXNzAAkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAUPa19hZG1pbl9hZGRyZXNzAhVBZG1pbiBhZGRyZXNzIG5vdCBzZXQBC2lzV2hpdGVsaXN0AQhfYWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmwgCCQELY29vcmRpbmF0b3IACQEOdG9Db21wb3NpdGVLZXkCBQVrX2FtbQUIX2FkZHJlc3MHAQ9nb3Zlcm5hbmNlQXNzZXQACQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABRJrX2dvdmVybmFuY2VfYXNzZXQCGEdvdmVybmFuY2UgYXNzZXQgbm90IHNldAEKcXVvdGVBc3NldAAJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFDWtfcXVvdGVfYXNzZXQCE1F1b3RlIGFzc2V0IG5vdCBzZXQBDm1hbmFnZXJBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABRFrX21hbmFnZXJfYWRkcmVzcwIXTWFuYWdlciBhZGRyZXNzIG5vdCBzZXQCF01hbmFnZXIgYWRkcmVzcyBpbnZhbGlkAAxERUNJTUFMX1VOSVQJAGgCAAEJAGgCCQBoAgkAaAIJAGgCCQBoAgkAaAIJAGgCAAoACgAKAAoACgAKAAoACgAIRFVSQVRJT04JAGgCCQBoAgkAaAIABwA8ADwAGAAKTk9fQUREUkVTUwIAAAlOT19TVEFLRVIAAAEQdXNkbkZyb21EZWNpbWFscwEHX2Ftb3VudAkAaQIFB19hbW91bnQAZAEOdXNkblRvRGVjaW1hbHMBB19hbW91bnQJAGgCBQdfYW1vdW50AGQBBGRpdmQCAl94Al95CQBuBAUCX3gFDERFQ0lNQUxfVU5JVAUCX3kFCEhBTEZFVkVOAQRtdWxkAgJfeAJfeQkAbgQFAl94BQJfeQUMREVDSU1BTF9VTklUBQhIQUxGRVZFTgEDYWJzAQJfeAMJAGYCBQJfeAAABQJfeAkBAS0BBQJfeAEEbWludgICX3gCX3kDCQBmAgUCX3gFAl95BQJfeQUCX3gAD1dJVEhEUkFXX1BFUklPRAkAaAIAgKMFAOgHABNXSVRIRFJBV19QRVJfUEVSSU9ECQEEZGl2ZAIJAGgCAAEFDERFQ0lNQUxfVU5JVAkAaAIABAUMREVDSU1BTF9VTklUAQNpbnQBAWsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQFrCQCsAgICDW5vIHZhbHVlIGZvciAFAWsBBGludDABAWsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBawAAAQRpbnQxAQFrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWsFDERFQ0lNQUxfVU5JVAELdG90YWxTdXBwbHkACQEEaW50MAEFDWtfdG90YWxTdXBwbHkBBHJhdGUACQEEaW50MQEFBmtfcmF0ZQEJYmFsYW5jZU9mAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFCWtfYmFsYW5jZQUHX3N0YWtlcgELYXZlcmFnZVJhdGUBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUOa19hdmVyYWdlX3JhdGUFB19zdGFrZXIBDXdpdGhkcmF3TGltaXQBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUQa193aXRoZHJhd19saW1pdAUHX3N0YWtlcgERd2l0aGRyYXduSW5QZXJpb2QBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUUa193aXRoZHJhd19pbl9wZXJpb2QFB19zdGFrZXIBEWxhc3RXaXRoZHJhd25EYXRlAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFFGtfbGFzdF93aXRoZHJhd19kYXRlBQdfc3Rha2VyAQtmcmVlQmFsYW5jZQAJAQRpbnQwAQUNa19mcmVlQmFsYW5jZQENbG9ja2VkQmFsYW5jZQAJAQRpbnQwAQUPa19sb2NrZWRCYWxhbmNlARRyZXdhcmRQZXJUb2tlblN0b3JlZAAJAQRpbnQwAQUWa19yZXdhcmRQZXJUb2tlblN0b3JlZAEObGFzdFVwZGF0ZVRpbWUACQEEaW50MAEFEGtfbGFzdFVwZGF0ZVRpbWUBCnJld2FyZFJhdGUACQEEaW50MAEFDGtfcmV3YXJkUmF0ZQEMcGVyaW9kRmluaXNoAAkBBGludDABBQ5rX3BlcmlvZEZpbmlzaAENcmV3YXJkQmFsYW5jZQAJAQRpbnQwAQUPa19yZXdhcmRCYWxhbmNlAQdyZXdhcmRzAQdfc3Rha2VyCQEEaW50MAEJAQ50b0NvbXBvc2l0ZUtleQIFDGtfdXNlclJld2FyZAUHX3N0YWtlcgEWdXNlclJld2FyZFBlclRva2VuUGFpZAEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBRRrX3VzZXJSZXdhcmRQZXJUb2tlbgUHX3N0YWtlcgELaW5pdGlhbGl6ZWQACQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDWtfaW5pdGlhbGl6ZWQHARBjdXJyZW50VGltZXN0YW1wAAgFCWxhc3RCbG9jawl0aW1lc3RhbXABE2N1cnJlbnRUaW1lc3RhbXBTZWMACQBpAgkBEGN1cnJlbnRUaW1lc3RhbXAAAOgHARRnZXRXaXRoZHJhd0xpbWl0TGVmdAEHX3N0YWtlcgQLY3VycmVudERhdGUJARBjdXJyZW50VGltZXN0YW1wAAQQbGFzdFdpdGhkcmF3RGF0ZQkBEWxhc3RXaXRoZHJhd25EYXRlAQUHX3N0YWtlcgQLJHQwNDk4OTUzMTADCQBmAgkAZQIFC2N1cnJlbnREYXRlBRBsYXN0V2l0aGRyYXdEYXRlBQ9XSVRIRFJBV19QRVJJT0QJAJUKAwULY3VycmVudERhdGUJAQ13aXRoZHJhd0xpbWl0AQUHX3N0YWtlcgAACQCVCgMFEGxhc3RXaXRoZHJhd0RhdGUJAGUCCQENd2l0aGRyYXdMaW1pdAEFB19zdGFrZXIJARF3aXRoZHJhd25JblBlcmlvZAEFB19zdGFrZXIJARF3aXRoZHJhd25JblBlcmlvZAEFB19zdGFrZXIEFG5ld0xhc3RXaXRoZHJhd25EYXRlCAULJHQwNDk4OTUzMTACXzEEEXdpdGhkcmF3TGltaXRMZWZ0CAULJHQwNDk4OTUzMTACXzIEGGFscmVhZHlXaXRoZHJhd25JblBlcmlvZAgFCyR0MDQ5ODk1MzEwAl8zCQCVCgMFFG5ld0xhc3RXaXRoZHJhd25EYXRlBRF3aXRoZHJhd0xpbWl0TGVmdAUYYWxyZWFkeVdpdGhkcmF3bkluUGVyaW9kAQ5jb21wdXRlTmV3UmF0ZQETX2Ftb3VudE9mUXVvdGVBc3NldAQHbmV3UmF0ZQMJAGYCCQELdG90YWxTdXBwbHkAAAAJAQRkaXZkAgkAZAIJAQtmcmVlQmFsYW5jZQAFE19hbW91bnRPZlF1b3RlQXNzZXQJAQt0b3RhbFN1cHBseQAFDERFQ0lNQUxfVU5JVAUHbmV3UmF0ZQEYbGFzdFRpbWVSZXdhcmRBcHBsaWNhYmxlAAkBBG1pbnYCCQETY3VycmVudFRpbWVzdGFtcFNlYwAJAQxwZXJpb2RGaW5pc2gAAQ5yZXdhcmRQZXJUb2tlbgENX2JhbGFuY2VEZWx0YQMJAAACCQBkAgkBC3RvdGFsU3VwcGx5AAUNX2JhbGFuY2VEZWx0YQAACQEUcmV3YXJkUGVyVG9rZW5TdG9yZWQABAx0aW1lSW50ZXJ2YWwJAGUCCQEYbGFzdFRpbWVSZXdhcmRBcHBsaWNhYmxlAAkBDmxhc3RVcGRhdGVUaW1lAAQSYWN0dWFsVGltZUludGVydmFsAwkAZgIAAAUMdGltZUludGVydmFsAAAFDHRpbWVJbnRlcnZhbAQEZGlmZgkBBGRpdmQCCQBoAgkBCnJld2FyZFJhdGUABRJhY3R1YWxUaW1lSW50ZXJ2YWwJAGQCCQELdG90YWxTdXBwbHkABQ1fYmFsYW5jZURlbHRhCQBkAgkBFHJld2FyZFBlclRva2VuU3RvcmVkAAUEZGlmZgEGZWFybmVkAgdfc3Rha2VyDV9iYWxhbmNlRGVsdGEEC3Jld2FyZERlbHRhCQBlAgkBDnJld2FyZFBlclRva2VuAQUNX2JhbGFuY2VEZWx0YQkBFnVzZXJSZXdhcmRQZXJUb2tlblBhaWQBBQdfc3Rha2VyCQBkAgkBBG11bGQCCQBkAgkBCWJhbGFuY2VPZgEFB19zdGFrZXIFDV9iYWxhbmNlRGVsdGEFC3Jld2FyZERlbHRhCQEHcmV3YXJkcwEFB19zdGFrZXIBDHVwZGF0ZVJld2FyZAIHX3N0YWtlcg1fYmFsYW5jZURlbHRhBBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBDnJld2FyZFBlclRva2VuAQUNX2JhbGFuY2VEZWx0YQQRbmV3TGFzdFVwZGF0ZVRpbWUJARNjdXJyZW50VGltZXN0YW1wU2VjAAQLJHQwNjUzMjY3MjQDCQECIT0CBQdfc3Rha2VyAgAJAJQKAgkBBmVhcm5lZAIFB19zdGFrZXIFDV9iYWxhbmNlRGVsdGEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQCUCgIAAAAABAxzdGFrZXJFYXJuZWQIBQskdDA2NTMyNjcyNAJfMQQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAULJHQwNjUzMjY3MjQCXzIJAJYKBAUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQFEW5ld0xhc3RVcGRhdGVUaW1lBQxzdGFrZXJFYXJuZWQFGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAERdXBkYXRlVXNlckJhbGFuY2UCBV91c2VyB19jaGFuZ2UDCQBnAgkAZAIJAQliYWxhbmNlT2YBBQVfdXNlcgUHX2NoYW5nZQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBQlrX2JhbGFuY2UFBV91c2VyCQBkAgkBCWJhbGFuY2VPZgEFBV91c2VyBQdfY2hhbmdlBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICAi1WYXVsdDogY2FuIG5vdCB1cGRhdGUgdXNlciBiYWxhbmNlLiBCYWxhbmNlOiAJAKQDAQkBCWJhbGFuY2VPZgEFBV91c2VyAgkgY2hhbmdlOiAJAKQDAQUHX2NoYW5nZQEUc2V0VXNlcldpdGhkcmF3TGltaXQCBV91c2VyBV9yYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBRBrX3dpdGhkcmF3X2xpbWl0BQVfdXNlcgUFX3JhdGUFA25pbAESc2V0VXNlckF2ZXJhZ2VSYXRlAgVfdXNlcgVfcmF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUOa19hdmVyYWdlX3JhdGUFBV91c2VyBQVfcmF0ZQUDbmlsARF1cGRhdGVGcmVlQmFsYW5jZQEHX2NoYW5nZQQHYmFsYW5jZQkBC2ZyZWVCYWxhbmNlAAMJAGcCCQBkAgUHYmFsYW5jZQUHX2NoYW5nZQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rX2ZyZWVCYWxhbmNlCQBkAgUHYmFsYW5jZQUHX2NoYW5nZQUDbmlsCQACAQkArAICCQCsAgIJAKwCAgItVmF1bHQ6IGNhbiBub3QgdXBkYXRlIGZyZWUgYmFsYW5jZS4gQmFsYW5jZTogCQCkAwEFB2JhbGFuY2UCCSBjaGFuZ2U6IAkApAMBBQdfY2hhbmdlARN1cGRhdGVMb2NrZWRCYWxhbmNlAQdfY2hhbmdlBAdiYWxhbmNlCQENbG9ja2VkQmFsYW5jZQADCQBnAgkAZAIFB2JhbGFuY2UFB19jaGFuZ2UAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa19sb2NrZWRCYWxhbmNlCQBkAgUHYmFsYW5jZQUHX2NoYW5nZQUDbmlsCQACAQkArAICCQCsAgIJAKwCAgIvVmF1bHQ6IGNhbiBub3QgdXBkYXRlIGxvY2tlZCBiYWxhbmNlLiBCYWxhbmNlOiAJAKQDAQUHYmFsYW5jZQIJIGNoYW5nZTogCQCkAwEFB19jaGFuZ2UBEXVwZGF0ZVRvdGFsU3VwcGx5AQdfY2hhbmdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rX3RvdGFsU3VwcGx5CQBkAgkBC3RvdGFsU3VwcGx5AAUHX2NoYW5nZQUDbmlsAQp1cGRhdGVSYXRlAQVfcmF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUGa19yYXRlBQVfcmF0ZQUDbmlsARVzZXRVc2VyV2l0aGRyYXdQYXJhbXMDBV91c2VyEV9sYXN0V2l0aGRyYXdEYXRlCl93aXRoZHJhd24JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFFGtfbGFzdF93aXRoZHJhd19kYXRlBQVfdXNlcgURX2xhc3RXaXRoZHJhd0RhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFFGtfd2l0aGRyYXdfaW5fcGVyaW9kBQVfdXNlcgUKX3dpdGhkcmF3bgUDbmlsARN1cGRhdGVSZXdhcmRCYWxhbmNlAQZfZGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tfcmV3YXJkQmFsYW5jZQkAZAIJAQ1yZXdhcmRCYWxhbmNlAAUGX2RlbHRhBQNuaWwBEHVwZGF0ZVJld2FyZFJhdGUBC19yZXdhcmRSYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrX3Jld2FyZFJhdGUFC19yZXdhcmRSYXRlBQNuaWwBCnVwZGF0ZVRpbWUCD19sYXN0VXBkYXRlVGltZQ1fcGVyaW9kRmluaXNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrX2xhc3RVcGRhdGVUaW1lBQ9fbGFzdFVwZGF0ZVRpbWUJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtfcGVyaW9kRmluaXNoBQ1fcGVyaW9kRmluaXNoBQNuaWwBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkARVfcmV3YXJkUGVyVG9rZW5TdG9yZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQFFV9yZXdhcmRQZXJUb2tlblN0b3JlZAUDbmlsARF1cGRhdGVVc2VyUmV3YXJkcwMHX3N0YWtlcgdfcmV3YXJkE191c2VyUmV3YXJkUGVyVG9rZW4JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFDGtfdXNlclJld2FyZAUHX3N0YWtlcgUHX3Jld2FyZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUUa191c2VyUmV3YXJkUGVyVG9rZW4FB19zdGFrZXIFE191c2VyUmV3YXJkUGVyVG9rZW4FA25pbA0BaQEKaW5pdGlhbGl6ZQEMX2Nvb3JkaW5hdG9yAwMJAQtpbml0aWFsaXplZAAGCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhRVbmFibGUgdG8gaW5pdGlhbGl6ZQkAzAgCCQELU3RyaW5nRW50cnkCBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwkApQgBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUMX2Nvb3JkaW5hdG9yAhtJbnZhbGlkIGNvb3JkaW5hdG9yIGFkZHJlc3MJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDWtfaW5pdGlhbGl6ZWQGBQNuaWwBaQEFc3Rha2UABAdfc3Rha2VyCQClCAEIBQFpBmNhbGxlcgQHX2Ftb3VudAkBDnVzZG5Ub0RlY2ltYWxzAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDAwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBCnF1b3RlQXNzZXQABgkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABBgkBASEBCQELaW5pdGlhbGl6ZWQACQACAQIVSW52YWxpZCBjYWxsIHRvIHN0YWtlBA0kdDAxMDE3NjEwNDA1CQEMdXBkYXRlUmV3YXJkAgUHX3N0YWtlcgAABBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgFDSR0MDEwMTc2MTA0MDUCXzEEEW5ld0xhc3RVcGRhdGVUaW1lCAUNJHQwMTAxNzYxMDQwNQJfMgQMc3Rha2VyRWFybmVkCAUNJHQwMTAxNzYxMDQwNQJfMwQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAUNJHQwMTAxNzYxMDQwNQJfNAQLY3VycmVudFJhdGUJAQRyYXRlAAQPcHJldkF2ZXJhZ2VSYXRlCQELYXZlcmFnZVJhdGUBBQdfc3Rha2VyBAd2QW1vdW50CQEEZGl2ZAIFB19hbW91bnQFC2N1cnJlbnRSYXRlBA5uZXdBdmVyYWdlUmF0ZQkBBGRpdmQCCQBkAgkBBG11bGQCBQd2QW1vdW50BQtjdXJyZW50UmF0ZQkBBG11bGQCCQEJYmFsYW5jZU9mAQUHX3N0YWtlcgUPcHJldkF2ZXJhZ2VSYXRlCQBkAgUHdkFtb3VudAkBCWJhbGFuY2VPZgEFB19zdGFrZXIED25ld1RvdGFsQmFsYW5jZQkAZAIFB3ZBbW91bnQJAQliYWxhbmNlT2YBBQdfc3Rha2VyBBBuZXdXaXRoZHJhd0xpbWl0CQEEbXVsZAIFD25ld1RvdGFsQmFsYW5jZQUTV0lUSERSQVdfUEVSX1BFUklPRAQFc3Rha2UJAPwHBAkBDm1hbmFnZXJBZGRyZXNzAAIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKcXVvdGVBc3NldAAJARB1c2RuRnJvbURlY2ltYWxzAQUHX2Ftb3VudAUDbmlsAwkAAAIFBXN0YWtlBQVzdGFrZQkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQERdXBkYXRlVXNlclJld2FyZHMDBQdfc3Rha2VyBQxzdGFrZXJFYXJuZWQFGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAkBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkAQUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJAQp1cGRhdGVUaW1lAgURbmV3TGFzdFVwZGF0ZVRpbWUJAQxwZXJpb2RGaW5pc2gACQERdXBkYXRlRnJlZUJhbGFuY2UBBQdfYW1vdW50CQERdXBkYXRlVXNlckJhbGFuY2UCBQdfc3Rha2VyBQd2QW1vdW50CQESc2V0VXNlckF2ZXJhZ2VSYXRlAgUHX3N0YWtlcgUObmV3QXZlcmFnZVJhdGUJARRzZXRVc2VyV2l0aGRyYXdMaW1pdAIFB19zdGFrZXIFEG5ld1dpdGhkcmF3TGltaXQJARF1cGRhdGVUb3RhbFN1cHBseQEFB3ZBbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdW5TdGFrZQEHX2Ftb3VudAQHX3N0YWtlcgkApQgBCAUBaQZjYWxsZXIEEmFtb3VudE9mUXVvdGVBc3NldAkBDnVzZG5Ub0RlY2ltYWxzAQUHX2Ftb3VudAMDAwkBAiE9AggFAWkIcGF5bWVudHMFA25pbAYJAGcCAAAFEmFtb3VudE9mUXVvdGVBc3NldAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECF0ludmFsaWQgY2FsbCB0byB1blN0YWtlBA0kdDAxMTc1ODExOTc0CQEMdXBkYXRlUmV3YXJkAgUHX3N0YWtlcgAABBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgFDSR0MDExNzU4MTE5NzQCXzEEEW5ld0xhc3RVcGRhdGVUaW1lCAUNJHQwMTE3NTgxMTk3NAJfMgQMc3Rha2VyRWFybmVkCAUNJHQwMTE3NTgxMTk3NAJfMwQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAUNJHQwMTE3NTgxMTk3NAJfNAQNJHQwMTE5ODExMjE0OAkBFGdldFdpdGhkcmF3TGltaXRMZWZ0AQUHX3N0YWtlcgQUbmV3TGFzdFdpdGhkcmF3bkRhdGUIBQ0kdDAxMTk4MTEyMTQ4Al8xBBF3aXRoZHJhd0xpbWl0TGVmdAgFDSR0MDExOTgxMTIxNDgCXzIEGGFscmVhZHlXaXRoZHJhd25JblBlcmlvZAgFDSR0MDExOTgxMTIxNDgCXzMEB3ZBbW91bnQJAQRkaXZkAgUSYW1vdW50T2ZRdW90ZUFzc2V0CQEEcmF0ZQADCQBmAgUHdkFtb3VudAURd2l0aGRyYXdMaW1pdExlZnQJAAIBAixJbnZhbGlkIGNhbGwgdG8gdW5TdGFrZTogd2l0aGRyYXcgb3ZlciBsaW1pdAQUbmV3V2l0aGRyYXduSW5QZXJpb2QJAGQCBRhhbHJlYWR5V2l0aGRyYXduSW5QZXJpb2QFB3ZBbW91bnQDCQBmAgUSYW1vdW50T2ZRdW90ZUFzc2V0CQELZnJlZUJhbGFuY2UACQACAQIoSW52YWxpZCBjYWxsIHRvIHVuU3Rha2U6IGJhbGFuY2UgdG9vIGxvdwQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgh3aXRoZHJhdwkAzAgCCQDYBAEJAQpxdW90ZUFzc2V0AAkAzAgCCQEQdXNkbkZyb21EZWNpbWFscwEFEmFtb3VudE9mUXVvdGVBc3NldAUDbmlsBQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQERdXBkYXRlVXNlclJld2FyZHMDBQdfc3Rha2VyBQxzdGFrZXJFYXJuZWQFGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAkBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkAQUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJAQp1cGRhdGVUaW1lAgURbmV3TGFzdFVwZGF0ZVRpbWUJAQxwZXJpb2RGaW5pc2gACQERdXBkYXRlRnJlZUJhbGFuY2UBCQEBLQEFEmFtb3VudE9mUXVvdGVBc3NldAkBEXVwZGF0ZVVzZXJCYWxhbmNlAgUHX3N0YWtlcgkBAS0BBQd2QW1vdW50CQERdXBkYXRlVG90YWxTdXBwbHkBCQEBLQEFB3ZBbW91bnQJARVzZXRVc2VyV2l0aGRyYXdQYXJhbXMDBQdfc3Rha2VyBRRuZXdMYXN0V2l0aGRyYXduRGF0ZQUUbmV3V2l0aGRyYXduSW5QZXJpb2QJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQEQdXNkbkZyb21EZWNpbWFscwEFEmFtb3VudE9mUXVvdGVBc3NldAkBCnF1b3RlQXNzZXQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEPd2l0aGRyYXdSZXdhcmRzAAQHX3N0YWtlcgkApQgBCAUBaQZjYWxsZXIEDSR0MDEzNDg0MTM2MjkJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAAEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCAUNJHQwMTM0ODQxMzYyOQJfMQQRbmV3TGFzdFVwZGF0ZVRpbWUIBQ0kdDAxMzQ4NDEzNjI5Al8yBAxzdGFrZXJFYXJuZWQIBQ0kdDAxMzQ4NDEzNjI5Al8zBBhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQIBQ0kdDAxMzQ4NDEzNjI5Al80AwMJAGcCAAAFDHN0YWtlckVhcm5lZAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECEE5vIHJld2FyZDogVmF1bHQJAM4IAgkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgAABRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBE3VwZGF0ZVJld2FyZEJhbGFuY2UBCQEBLQEFDHN0YWtlckVhcm5lZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDHN0YWtlckVhcm5lZAkBD2dvdmVybmFuY2VBc3NldAAFA25pbAFpAQdhZGRGcmVlAAQHX2Ftb3VudAkBDnVzZG5Ub0RlY2ltYWxzAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDAwMDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQpxdW90ZUFzc2V0AAYJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQEhAQkBC2luaXRpYWxpemVkAAYJAQEhAQMJAQtpc1doaXRlbGlzdAEJAKUIAQgFAWkGY2FsbGVyBgkAAAIIBQFpBmNhbGxlcgkBDGFkbWluQWRkcmVzcwAJAAIBAhZJbnZhbGlkIGFkZEZyZWUgcGFyYW1zBAduZXdSYXRlCQEOY29tcHV0ZU5ld1JhdGUBBQdfYW1vdW50BAVzdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQpxdW90ZUFzc2V0AAkBEHVzZG5Gcm9tRGVjaW1hbHMBBQdfYW1vdW50BQNuaWwDCQAAAgUFc3Rha2UFBXN0YWtlCQDOCAIJARF1cGRhdGVGcmVlQmFsYW5jZQEFB19hbW91bnQJAQp1cGRhdGVSYXRlAQUHbmV3UmF0ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQlhZGRMb2NrZWQABAdfYW1vdW50CQEOdXNkblRvRGVjaW1hbHMBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMDAwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBCnF1b3RlQXNzZXQABgkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABBgkBASEBCQELaW5pdGlhbGl6ZWQABgkBASEBAwkBC2lzV2hpdGVsaXN0AQkApQgBCAUBaQZjYWxsZXIGCQAAAggFAWkGY2FsbGVyCQEMYWRtaW5BZGRyZXNzAAkAAgECGEludmFsaWQgYWRkTG9ja2VkIHBhcmFtcwQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQpxdW90ZUFzc2V0AAkBEHVzZG5Gcm9tRGVjaW1hbHMBBQdfYW1vdW50BQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQkBE3VwZGF0ZUxvY2tlZEJhbGFuY2UBBQdfYW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFWV4Y2hhbmdlRnJlZUFuZExvY2tlZAEHX2Ftb3VudAMDCQEBIQEJAQtpbml0aWFsaXplZAAGAwkBASEBCQELaXNXaGl0ZWxpc3QBCQClCAEIBQFpBmNhbGxlcgkBAiE9AggFAWkGY2FsbGVyCQEMYWRtaW5BZGRyZXNzAAcJAAIBAiRJbnZhbGlkIGV4Y2hhbmdlRnJlZUFuZExvY2tlZCBwYXJhbXMEEmFtb3VudE9mUXVvdGVBc3NldAkBDnVzZG5Ub0RlY2ltYWxzAQUHX2Ftb3VudAQHbmV3UmF0ZQkBDmNvbXB1dGVOZXdSYXRlAQkBAS0BBRJhbW91bnRPZlF1b3RlQXNzZXQJAM4IAgkAzggCCQETdXBkYXRlTG9ja2VkQmFsYW5jZQEFEmFtb3VudE9mUXVvdGVBc3NldAkBEXVwZGF0ZUZyZWVCYWxhbmNlAQkBAS0BBRJhbW91bnRPZlF1b3RlQXNzZXQJAQp1cGRhdGVSYXRlAQUHbmV3UmF0ZQFpAQ53aXRoZHJhd0xvY2tlZAEHX2Ftb3VudAMDAwkBASEBCQELaW5pdGlhbGl6ZWQABgkAZwIAAAUHX2Ftb3VudAYJAQEhAQkBC2lzV2hpdGVsaXN0AQkApQgBCAUBaQZjYWxsZXIJAAIBAh1JbnZhbGlkIHdpdGhkcmF3TG9ja2VkIHBhcmFtcwQSYW1vdW50T2ZRdW90ZUFzc2V0CQEOdXNkblRvRGVjaW1hbHMBBQdfYW1vdW50BAd1bnN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACCHdpdGhkcmF3CQDMCAIJANgEAQkBCnF1b3RlQXNzZXQACQDMCAIJARB1c2RuRnJvbURlY2ltYWxzAQUSYW1vdW50T2ZRdW90ZUFzc2V0BQNuaWwFA25pbAMJAAACBQd1bnN0YWtlBQd1bnN0YWtlCQDOCAIJARN1cGRhdGVMb2NrZWRCYWxhbmNlAQkBAS0BBRJhbW91bnRPZlF1b3RlQXNzZXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQEQdXNkbkZyb21EZWNpbWFscwEFEmFtb3VudE9mUXVvdGVBc3NldAkBCnF1b3RlQXNzZXQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWRkUmV3YXJkcwADAwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBD2dvdmVybmFuY2VBc3NldAAGCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEBIQEJAQtpbml0aWFsaXplZAAJAAIBAhlJbnZhbGlkIGFkZFJld2FyZHMgcGFyYW1zBAdfcmV3YXJkCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQICQEMdXBkYXRlUmV3YXJkAgUKTk9fQUREUkVTUwUJTk9fU1RBS0VSAl8xBAl0aW1lc3RhbXAJARNjdXJyZW50VGltZXN0YW1wU2VjAAQNbmV3UmV3YXJkUmF0ZQMJAGYCBQl0aW1lc3RhbXAJAQxwZXJpb2RGaW5pc2gACQBpAgUHX3Jld2FyZAUIRFVSQVRJT04EDXJlbWFpbmluZ1RpbWUJAGUCCQEMcGVyaW9kRmluaXNoAAUJdGltZXN0YW1wBAhsZWZ0b3ZlcgkAaAIJAQpyZXdhcmRSYXRlAAUNcmVtYWluaW5nVGltZQkAaQIJAGQCBQdfcmV3YXJkBQhsZWZ0b3ZlcgUIRFVSQVRJT04JAM4IAgkAzggCCQDOCAIJARB1cGRhdGVSZXdhcmRSYXRlAQUNbmV3UmV3YXJkUmF0ZQkBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkAQUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJARN1cGRhdGVSZXdhcmRCYWxhbmNlAQUHX3Jld2FyZAkBCnVwZGF0ZVRpbWUCBQl0aW1lc3RhbXAJAGQCBQl0aW1lc3RhbXAFCERVUkFUSU9OAWkBCmFja1Jld2FyZHMABApwcm9maXRSZXNwCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACC2NsYWltUHJvZml0CQDMCAIJANgEAQkBCnF1b3RlQXNzZXQABQNuaWwFA25pbAMJAAACBQpwcm9maXRSZXNwBQpwcm9maXRSZXNwBAZwcm9maXQEByRtYXRjaDAFCnByb2ZpdFJlc3ADCQABAgUHJG1hdGNoMAIDSW50BAFwBQckbWF0Y2gwCQEOdXNkblRvRGVjaW1hbHMBBQFwCQACAQIcSW52YWxpZCBjbGFpbVByb2ZpdCByZXNwb25zZQQGcmVzdWx0AwkAZgIFBnByb2ZpdAAABAduZXdSYXRlCQEOY29tcHV0ZU5ld1JhdGUBBQZwcm9maXQEBXN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBCnF1b3RlQXNzZXQACQEQdXNkbkZyb21EZWNpbWFscwEFBnByb2ZpdAUDbmlsAwkAAAIFBXN0YWtlBQVzdGFrZQkAzggCCQERdXBkYXRlRnJlZUJhbGFuY2UBBQZwcm9maXQJAQp1cGRhdGVSYXRlAQUHbmV3UmF0ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsAwkAAAIFBnJlc3VsdAUGcmVzdWx0BQZyZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELdmlld19yZXdhcmQBB19zdGFrZXIEB2JhbGFuY2UJAQliYWxhbmNlT2YBBQdfc3Rha2VyBA9kZXBvc2l0ZWRBbW91bnQJAQRtdWxkAgkBC2F2ZXJhZ2VSYXRlAQUHX3N0YWtlcgUHYmFsYW5jZQQNY3VycmVudEFtb3VudAkBBG11bGQCCQEEcmF0ZQAFB2JhbGFuY2UEC2Vhcm5lZFF1b3RlCQBlAgUNY3VycmVudEFtb3VudAUPZGVwb3NpdGVkQW1vdW50CQACAQkApAMBBQtlYXJuZWRRdW90ZQFpARJ2aWV3X3N0YWtpbmdSZXdhcmQBB19zdGFrZXIEDHN0YWtlckVhcm5lZAgJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAACXzMJAAIBCQCkAwEJARB1c2RuRnJvbURlY2ltYWxzAQUMc3Rha2VyRWFybmVkAWkBEnZpZXdfd2l0aGRyYXdMaW1pdAEHX3N0YWtlcgQRd2l0aGRyYXdMaW1pdExlZnQICQEUZ2V0V2l0aGRyYXdMaW1pdExlZnQBBQdfc3Rha2VyAl8yBAtsaW1pdEluVXNkbgkBEHVzZG5Gcm9tRGVjaW1hbHMBCQEEbXVsZAIFEXdpdGhkcmF3TGltaXRMZWZ0CQEEcmF0ZQAJAAIBCQCkAwEFC2xpbWl0SW5Vc2RuAQJ0eAEGdmVyaWZ5AAQOY29vcmRpbmF0b3JTdHIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MDCQEJaXNEZWZpbmVkAQUOY29vcmRpbmF0b3JTdHIEBWFkbWluCQCdCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFDmNvb3JkaW5hdG9yU3RyBQ9rX2FkbWluX2FkZHJlc3MDCQEJaXNEZWZpbmVkAQUFYWRtaW4JAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUFYWRtaW4JAKwCAgkArAICCQCsAgICB3N0YXR1c18JAKUIAQUEdGhpcwIBXwkA2AQBCAUCdHgCaWQHCQACAQIudW5hYmxlIHRvIHZlcmlmeTogYWRtaW4gbm90IHNldCBpbiBjb29yZGluYXRvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlebTXJAI=", "height": 2554085, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FZPZdns2cWgvkQjdyteNN77MTtKLjxnJosJeijrK53zZ Next: FgEFR76dKziUVmoiVZAmv74D6YtFhGG2nrJJTfs8H1f Diff:
OldNewDifferences
5252 func y (z,A) = ((z + "_") + A)
5353
5454
55-func B () = valueOrErrorMessage(addressFromString(getStringValue(this, r)), "Coordinator not set")
55+func B () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, r), "Coordinator not set")), "Coordinator address invalid")
5656
5757
58-func C (A) = valueOrElse(getBoolean(B(), y(s, A)), false)
58+func C () = addressFromString(valueOrErrorMessage(getString(B(), v), "Admin address not set"))
5959
6060
61-func D () = fromBase58String(getStringValue(B(), t))
61+func D (A) = valueOrElse(getBoolean(B(), y(s, A)), false)
6262
6363
64-func E () = addressFromString(valueOrErrorMessage(getString(B(), v), "Admin address not set"))
64+func E () = fromBase58String(valueOrErrorMessage(getString(B(), t), "Governance asset not set"))
6565
6666
67-func F () = fromBase58String(getStringValue(B(), u))
67+func F () = fromBase58String(valueOrErrorMessage(getString(B(), u), "Quote asset not set"))
6868
6969
70-func G () = valueOrErrorMessage(addressFromString(getStringValue(B(), w)), "Manager not set")
70+func G () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(B(), w), "Manager address not set")), "Manager address invalid")
7171
7272
7373 let H = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
224224 }
225225
226226
227-func aS (aT,aU) = [IntegerEntry(y(l, aT), (ac(aT) + aU))]
227+func aS (aT,aU) = if (((ac(aT) + aU) >= 0))
228+ then [IntegerEntry(y(l, aT), (ac(aT) + aU))]
229+ else throw(((("Vault: can not update user balance. Balance: " + toString(ac(aT))) + " change: ") + toString(aU)))
228230
229231
230232 func aV (aT,aW) = [IntegerEntry(y(n, aT), aW)]
364366 then true
365367 else !(ar()))
366368 then throw("No reward: Vault")
367- else ((((bp(ad, 0, aR) ++ bn(aN)) ++ bk(aO, an())) ++ bg(-(aQ))) ++ [ScriptTransfer(bs.caller, aQ, D())])
369+ else ((((bp(ad, 0, aR) ++ bn(aN)) ++ bk(aO, an())) ++ bg(-(aQ))) ++ [ScriptTransfer(bs.caller, aQ, E())])
368370 }
369371
370372
378380 then true
379381 else !(ar()))
380382 then true
381- else !(if (C(toString(bs.caller)))
383+ else !(if (D(toString(bs.caller)))
382384 then true
383- else (bs.caller == E())))
385+ else (bs.caller == C())))
384386 then throw("Invalid addFree params")
385387 else {
386388 let aD = aB(M)
402404 then true
403405 else !(ar()))
404406 then true
405- else !(if (C(toString(bs.caller)))
407+ else !(if (D(toString(bs.caller)))
406408 then true
407- else (bs.caller == E())))
409+ else (bs.caller == C())))
408410 then throw("Invalid addLocked params")
409411 else {
410412 let bG = invoke(G(), "deposit", nil, [AttachedPayment(F(), L(M))])
419421 @Callable(bs)
420422 func exchangeFreeAndLocked (M) = if (if (!(ar()))
421423 then true
422- else !(C(toString(bs.caller))))
424+ else if (!(D(toString(bs.caller))))
425+ then (bs.caller != C())
426+ else false)
423427 then throw("Invalid exchangeFreeAndLocked params")
424428 else {
425429 let bC = N(M)
434438 then true
435439 else (0 >= M))
436440 then true
437- else !(C(toString(bs.caller))))
441+ else !(D(toString(bs.caller))))
438442 then throw("Invalid withdrawLocked params")
439443 else {
440444 let bC = N(M)
447451
448452
449453 @Callable(bs)
450-func addRewards () = if (if (if ((bs.payments[0].assetId != D()))
454+func addRewards () = if (if (if ((bs.payments[0].assetId != E()))
451455 then true
452456 else (size(bs.payments) != 1))
453457 then true
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
1010 let d = "k_freeBalance"
1111
1212 let e = "k_rate"
1313
1414 let f = "k_lastUpdateTime"
1515
1616 let g = "k_rewardPerTokenStored"
1717
1818 let h = "k_rewardRate"
1919
2020 let i = "k_periodFinish"
2121
2222 let j = "k_userRewardPerToken"
2323
2424 let k = "k_userReward"
2525
2626 let l = "k_balance"
2727
2828 let m = "k_average_rate"
2929
3030 let n = "k_withdraw_limit"
3131
3232 let o = "k_last_withdraw_date"
3333
3434 let p = "k_withdraw_in_period"
3535
3636 let q = "k_initialized"
3737
3838 let r = "k_coordinatorAddress"
3939
4040 let s = "k_amm"
4141
4242 let t = "k_gov_asset"
4343
4444 let u = "k_quote_asset"
4545
4646 let v = "k_admin_address"
4747
4848 let w = "k_manager_address"
4949
5050 let x = "k_collateral_address"
5151
5252 func y (z,A) = ((z + "_") + A)
5353
5454
55-func B () = valueOrErrorMessage(addressFromString(getStringValue(this, r)), "Coordinator not set")
55+func B () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, r), "Coordinator not set")), "Coordinator address invalid")
5656
5757
58-func C (A) = valueOrElse(getBoolean(B(), y(s, A)), false)
58+func C () = addressFromString(valueOrErrorMessage(getString(B(), v), "Admin address not set"))
5959
6060
61-func D () = fromBase58String(getStringValue(B(), t))
61+func D (A) = valueOrElse(getBoolean(B(), y(s, A)), false)
6262
6363
64-func E () = addressFromString(valueOrErrorMessage(getString(B(), v), "Admin address not set"))
64+func E () = fromBase58String(valueOrErrorMessage(getString(B(), t), "Governance asset not set"))
6565
6666
67-func F () = fromBase58String(getStringValue(B(), u))
67+func F () = fromBase58String(valueOrErrorMessage(getString(B(), u), "Quote asset not set"))
6868
6969
70-func G () = valueOrErrorMessage(addressFromString(getStringValue(B(), w)), "Manager not set")
70+func G () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(B(), w), "Manager address not set")), "Manager address invalid")
7171
7272
7373 let H = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
7474
7575 let I = (((7 * 60) * 60) * 24)
7676
7777 let J = ""
7878
7979 let K = 0
8080
8181 func L (M) = (M / 100)
8282
8383
8484 func N (M) = (M * 100)
8585
8686
8787 func O (P,Q) = fraction(P, H, Q, HALFEVEN)
8888
8989
9090 func R (P,Q) = fraction(P, Q, H, HALFEVEN)
9191
9292
9393 func S (P) = if ((P > 0))
9494 then P
9595 else -(P)
9696
9797
9898 func T (P,Q) = if ((P > Q))
9999 then Q
100100 else P
101101
102102
103103 let U = (86400 * 1000)
104104
105105 let V = O((1 * H), (4 * H))
106106
107107 func W (X) = valueOrErrorMessage(getInteger(this, X), ("no value for " + X))
108108
109109
110110 func Y (X) = valueOrElse(getInteger(this, X), 0)
111111
112112
113113 func Z (X) = valueOrElse(getInteger(this, X), H)
114114
115115
116116 func aa () = Y(a)
117117
118118
119119 func ab () = Z(e)
120120
121121
122122 func ac (ad) = Y(y(l, ad))
123123
124124
125125 func ae (ad) = Y(y(m, ad))
126126
127127
128128 func af (ad) = Y(y(n, ad))
129129
130130
131131 func ag (ad) = Y(y(p, ad))
132132
133133
134134 func ah (ad) = Y(y(o, ad))
135135
136136
137137 func ai () = Y(d)
138138
139139
140140 func aj () = Y(c)
141141
142142
143143 func ak () = Y(g)
144144
145145
146146 func al () = Y(f)
147147
148148
149149 func am () = Y(h)
150150
151151
152152 func an () = Y(i)
153153
154154
155155 func ao () = Y(b)
156156
157157
158158 func ap (ad) = Y(y(k, ad))
159159
160160
161161 func aq (ad) = Y(y(j, ad))
162162
163163
164164 func ar () = valueOrElse(getBoolean(this, q), false)
165165
166166
167167 func as () = lastBlock.timestamp
168168
169169
170170 func at () = (as() / 1000)
171171
172172
173173 func au (ad) = {
174174 let av = as()
175175 let aw = ah(ad)
176176 let ax = if (((av - aw) > U))
177177 then $Tuple3(av, af(ad), 0)
178178 else $Tuple3(aw, (af(ad) - ag(ad)), ag(ad))
179179 let ay = ax._1
180180 let az = ax._2
181181 let aA = ax._3
182182 $Tuple3(ay, az, aA)
183183 }
184184
185185
186186 func aB (aC) = {
187187 let aD = if ((aa() > 0))
188188 then O((ai() + aC), aa())
189189 else H
190190 aD
191191 }
192192
193193
194194 func aE () = T(at(), an())
195195
196196
197197 func aF (aG) = if (((aa() + aG) == 0))
198198 then ak()
199199 else {
200200 let aH = (aE() - al())
201201 let aI = if ((0 > aH))
202202 then 0
203203 else aH
204204 let aJ = O((am() * aI), (aa() + aG))
205205 (ak() + aJ)
206206 }
207207
208208
209209 func aK (ad,aG) = {
210210 let aL = (aF(aG) - aq(ad))
211211 (R((ac(ad) + aG), aL) + ap(ad))
212212 }
213213
214214
215215 func aM (ad,aG) = {
216216 let aN = aF(aG)
217217 let aO = at()
218218 let aP = if ((ad != ""))
219219 then $Tuple2(aK(ad, aG), aN)
220220 else $Tuple2(0, 0)
221221 let aQ = aP._1
222222 let aR = aP._2
223223 $Tuple4(aN, aO, aQ, aR)
224224 }
225225
226226
227-func aS (aT,aU) = [IntegerEntry(y(l, aT), (ac(aT) + aU))]
227+func aS (aT,aU) = if (((ac(aT) + aU) >= 0))
228+ then [IntegerEntry(y(l, aT), (ac(aT) + aU))]
229+ else throw(((("Vault: can not update user balance. Balance: " + toString(ac(aT))) + " change: ") + toString(aU)))
228230
229231
230232 func aV (aT,aW) = [IntegerEntry(y(n, aT), aW)]
231233
232234
233235 func aX (aT,aW) = [IntegerEntry(y(m, aT), aW)]
234236
235237
236238 func aY (aU) = {
237239 let aZ = ai()
238240 if (((aZ + aU) >= 0))
239241 then [IntegerEntry(d, (aZ + aU))]
240242 else throw(((("Vault: can not update free balance. Balance: " + toString(aZ)) + " change: ") + toString(aU)))
241243 }
242244
243245
244246 func ba (aU) = {
245247 let aZ = aj()
246248 if (((aZ + aU) >= 0))
247249 then [IntegerEntry(c, (aZ + aU))]
248250 else throw(((("Vault: can not update locked balance. Balance: " + toString(aZ)) + " change: ") + toString(aU)))
249251 }
250252
251253
252254 func bb (aU) = [IntegerEntry(a, (aa() + aU))]
253255
254256
255257 func bc (aW) = [IntegerEntry(e, aW)]
256258
257259
258260 func bd (aT,be,bf) = [IntegerEntry(y(o, aT), be), IntegerEntry(y(p, aT), bf)]
259261
260262
261263 func bg (bh) = [IntegerEntry(b, (ao() + bh))]
262264
263265
264266 func bi (bj) = [IntegerEntry(h, bj)]
265267
266268
267269 func bk (bl,bm) = [IntegerEntry(f, bl), IntegerEntry(i, bm)]
268270
269271
270272 func bn (bo) = [IntegerEntry(g, bo)]
271273
272274
273275 func bp (ad,bq,br) = [IntegerEntry(y(k, ad), bq), IntegerEntry(y(j, ad), br)]
274276
275277
276278 @Callable(bs)
277279 func initialize (bt) = if (if (ar())
278280 then true
279281 else (bs.caller != this))
280282 then throw("Unable to initialize")
281283 else [StringEntry(r, toString(valueOrErrorMessage(addressFromString(bt), "Invalid coordinator address"))), BooleanEntry(q, true)]
282284
283285
284286
285287 @Callable(bs)
286288 func stake () = {
287289 let ad = toString(bs.caller)
288290 let M = N(bs.payments[0].amount)
289291 if (if (if ((bs.payments[0].assetId != F()))
290292 then true
291293 else (size(bs.payments) != 1))
292294 then true
293295 else !(ar()))
294296 then throw("Invalid call to stake")
295297 else {
296298 let bu = aM(ad, 0)
297299 let aN = bu._1
298300 let aO = bu._2
299301 let aQ = bu._3
300302 let aR = bu._4
301303 let bv = ab()
302304 let bw = ae(ad)
303305 let bx = O(M, bv)
304306 let by = O((R(bx, bv) + R(ac(ad), bw)), (bx + ac(ad)))
305307 let bz = (bx + ac(ad))
306308 let bA = R(bz, V)
307309 let bB = invoke(G(), "deposit", nil, [AttachedPayment(F(), L(M))])
308310 if ((bB == bB))
309311 then (((((((bp(ad, aQ, aR) ++ bn(aN)) ++ bk(aO, an())) ++ aY(M)) ++ aS(ad, bx)) ++ aX(ad, by)) ++ aV(ad, bA)) ++ bb(bx))
310312 else throw("Strict value is not equal to itself.")
311313 }
312314 }
313315
314316
315317
316318 @Callable(bs)
317319 func unStake (M) = {
318320 let ad = toString(bs.caller)
319321 let bC = N(M)
320322 if (if (if ((bs.payments != nil))
321323 then true
322324 else (0 >= bC))
323325 then true
324326 else !(ar()))
325327 then throw("Invalid call to unStake")
326328 else {
327329 let bD = aM(ad, 0)
328330 let aN = bD._1
329331 let aO = bD._2
330332 let aQ = bD._3
331333 let aR = bD._4
332334 let bE = au(ad)
333335 let ay = bE._1
334336 let az = bE._2
335337 let aA = bE._3
336338 let bx = O(bC, ab())
337339 if ((bx > az))
338340 then throw("Invalid call to unStake: withdraw over limit")
339341 else {
340342 let bF = (aA + bx)
341343 if ((bC > ai()))
342344 then throw("Invalid call to unStake: balance too low")
343345 else {
344346 let bG = invoke(G(), "withdraw", [toBase58String(F()), L(bC)], nil)
345347 if ((bG == bG))
346348 then (((((((bp(ad, aQ, aR) ++ bn(aN)) ++ bk(aO, an())) ++ aY(-(bC))) ++ aS(ad, -(bx))) ++ bb(-(bx))) ++ bd(ad, ay, bF)) ++ [ScriptTransfer(bs.caller, L(bC), F())])
347349 else throw("Strict value is not equal to itself.")
348350 }
349351 }
350352 }
351353 }
352354
353355
354356
355357 @Callable(bs)
356358 func withdrawRewards () = {
357359 let ad = toString(bs.caller)
358360 let bH = aM(ad, 0)
359361 let aN = bH._1
360362 let aO = bH._2
361363 let aQ = bH._3
362364 let aR = bH._4
363365 if (if ((0 >= aQ))
364366 then true
365367 else !(ar()))
366368 then throw("No reward: Vault")
367- else ((((bp(ad, 0, aR) ++ bn(aN)) ++ bk(aO, an())) ++ bg(-(aQ))) ++ [ScriptTransfer(bs.caller, aQ, D())])
369+ else ((((bp(ad, 0, aR) ++ bn(aN)) ++ bk(aO, an())) ++ bg(-(aQ))) ++ [ScriptTransfer(bs.caller, aQ, E())])
368370 }
369371
370372
371373
372374 @Callable(bs)
373375 func addFree () = {
374376 let M = N(bs.payments[0].amount)
375377 if (if (if (if ((bs.payments[0].assetId != F()))
376378 then true
377379 else (size(bs.payments) != 1))
378380 then true
379381 else !(ar()))
380382 then true
381- else !(if (C(toString(bs.caller)))
383+ else !(if (D(toString(bs.caller)))
382384 then true
383- else (bs.caller == E())))
385+ else (bs.caller == C())))
384386 then throw("Invalid addFree params")
385387 else {
386388 let aD = aB(M)
387389 let bB = invoke(G(), "deposit", nil, [AttachedPayment(F(), L(M))])
388390 if ((bB == bB))
389391 then (aY(M) ++ bc(aD))
390392 else throw("Strict value is not equal to itself.")
391393 }
392394 }
393395
394396
395397
396398 @Callable(bs)
397399 func addLocked () = {
398400 let M = N(bs.payments[0].amount)
399401 if (if (if (if ((bs.payments[0].assetId != F()))
400402 then true
401403 else (size(bs.payments) != 1))
402404 then true
403405 else !(ar()))
404406 then true
405- else !(if (C(toString(bs.caller)))
407+ else !(if (D(toString(bs.caller)))
406408 then true
407- else (bs.caller == E())))
409+ else (bs.caller == C())))
408410 then throw("Invalid addLocked params")
409411 else {
410412 let bG = invoke(G(), "deposit", nil, [AttachedPayment(F(), L(M))])
411413 if ((bG == bG))
412414 then ba(M)
413415 else throw("Strict value is not equal to itself.")
414416 }
415417 }
416418
417419
418420
419421 @Callable(bs)
420422 func exchangeFreeAndLocked (M) = if (if (!(ar()))
421423 then true
422- else !(C(toString(bs.caller))))
424+ else if (!(D(toString(bs.caller))))
425+ then (bs.caller != C())
426+ else false)
423427 then throw("Invalid exchangeFreeAndLocked params")
424428 else {
425429 let bC = N(M)
426430 let aD = aB(-(bC))
427431 ((ba(bC) ++ aY(-(bC))) ++ bc(aD))
428432 }
429433
430434
431435
432436 @Callable(bs)
433437 func withdrawLocked (M) = if (if (if (!(ar()))
434438 then true
435439 else (0 >= M))
436440 then true
437- else !(C(toString(bs.caller))))
441+ else !(D(toString(bs.caller))))
438442 then throw("Invalid withdrawLocked params")
439443 else {
440444 let bC = N(M)
441445 let bG = invoke(G(), "withdraw", [toBase58String(F()), L(bC)], nil)
442446 if ((bG == bG))
443447 then (ba(-(bC)) ++ [ScriptTransfer(bs.caller, L(bC), F())])
444448 else throw("Strict value is not equal to itself.")
445449 }
446450
447451
448452
449453 @Callable(bs)
450-func addRewards () = if (if (if ((bs.payments[0].assetId != D()))
454+func addRewards () = if (if (if ((bs.payments[0].assetId != E()))
451455 then true
452456 else (size(bs.payments) != 1))
453457 then true
454458 else !(ar()))
455459 then throw("Invalid addRewards params")
456460 else {
457461 let bq = bs.payments[0].amount
458462 let aN = aM(J, K)._1
459463 let bI = at()
460464 let bJ = if ((bI > an()))
461465 then (bq / I)
462466 else {
463467 let bK = (an() - bI)
464468 let bL = (am() * bK)
465469 ((bq + bL) / I)
466470 }
467471 (((bi(bJ) ++ bn(aN)) ++ bg(bq)) ++ bk(bI, (bI + I)))
468472 }
469473
470474
471475
472476 @Callable(bs)
473477 func ackRewards () = {
474478 let bM = invoke(G(), "claimProfit", [toBase58String(F())], nil)
475479 if ((bM == bM))
476480 then {
477481 let bN = {
478482 let bO = bM
479483 if ($isInstanceOf(bO, "Int"))
480484 then {
481485 let bP = bO
482486 N(bP)
483487 }
484488 else throw("Invalid claimProfit response")
485489 }
486490 let bQ = if ((bN > 0))
487491 then {
488492 let aD = aB(bN)
489493 let bB = invoke(G(), "deposit", nil, [AttachedPayment(F(), L(bN))])
490494 if ((bB == bB))
491495 then (aY(bN) ++ bc(aD))
492496 else throw("Strict value is not equal to itself.")
493497 }
494498 else nil
495499 if ((bQ == bQ))
496500 then bQ
497501 else throw("Strict value is not equal to itself.")
498502 }
499503 else throw("Strict value is not equal to itself.")
500504 }
501505
502506
503507
504508 @Callable(bs)
505509 func view_reward (ad) = {
506510 let aZ = ac(ad)
507511 let bR = R(ae(ad), aZ)
508512 let bS = R(ab(), aZ)
509513 let bT = (bS - bR)
510514 throw(toString(bT))
511515 }
512516
513517
514518
515519 @Callable(bs)
516520 func view_stakingReward (ad) = {
517521 let aQ = aM(ad, 0)._3
518522 throw(toString(L(aQ)))
519523 }
520524
521525
522526
523527 @Callable(bs)
524528 func view_withdrawLimit (ad) = {
525529 let az = au(ad)._2
526530 let bU = L(R(az, ab()))
527531 throw(toString(bU))
528532 }
529533
530534
531535 @Verifier(bV)
532536 func bW () = {
533537 let bX = getString(this, r)
534538 if (isDefined(bX))
535539 then {
536540 let bY = getString(addressFromStringValue(value(bX)), v)
537541 if (isDefined(bY))
538542 then valueOrElse(getBoolean(addressFromStringValue(value(bY)), ((("status_" + toString(this)) + "_") + toBase58String(bV.id))), false)
539543 else throw("unable to verify: admin not set in coordinator")
540544 }
541545 else sigVerify(bV.bodyBytes, bV.proofs[0], bV.senderPublicKey)
542546 }
543547

github/deemru/w8io/169f3d6 
93.00 ms