tx · CQRfUyJ1zCG269HVYUjNifJdfuGDFa38VpQdYg9JppP3

3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk:  -0.01700000 Waves

2023.06.15 11:56 [3689129] smart account 3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk > SELF 0.00000000 Waves

{ "type": 13, "id": "CQRfUyJ1zCG269HVYUjNifJdfuGDFa38VpQdYg9JppP3", "fee": 1700000, "feeAssetId": null, "timestamp": 1686819237343, "version": 1, "sender": "3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk", "senderPublicKey": "FwXAX9xcWiwbCejtdF8q1Nz8NpJqaVxXKnKK6JoR24pZ", "proofs": [ "zW7qmPxPE5MQGCKgA5cafi4py1bMxpbZGy23aJ8hAHQ8gr9c7Leh7EcV2zP5zyd36yWsqYN6142tmooErgV27hR" ], "script": "base64:BgIyCAISCwoJCAgICAgICAEIEgASBAoCBAQSBAoCBAQSBQoDAQEEEgQKAgQEEgQKAgEBEgAhAAtmYWN0b3JzQmFzZQDoBwEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQ13cml0ZUNvbnN0SW50AgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQh3cml0ZUludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQhhc1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAkAAgECBHNtOjEBBmFzSW50MgEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACCihJbnQsIEludCkEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAhp3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50MgERYXNVc2VyQmFsYW5jZURhdGEBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAiIoSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEJvb2xlYW4pBAF4BQckbWF0Y2gwBQF4BAF0BQckbWF0Y2gwCQACAQIBMwELdXNlckJhbGFuY2UCA3JzcgR1c2VyCQERYXNVc2VyQmFsYW5jZURhdGEBCQD8BwQFA3JzcgILdXNlckJhbGFuY2UJAMwIAgUEdXNlcgUDbmlsBQNuaWwBB3Rocm93SWYCCWNvbmRpdGlvbgVlcnJvcgMFCWNvbmRpdGlvbgkAAgEFBWVycm9yBgEIY2hhbmdlQnkCA2tleQV2YWx1ZQkBCHdyaXRlSW50AgUDa2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAUFdmFsdWUAC2NvbmZpZ1N0b3JlAgZjb25maWcADWNvbmZpZ0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFC2NvbmZpZ1N0b3JlABV2aXJlc1Zlc3RlZFVzZG5McERhcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQSkZ1OE1tVmEyclNWR000OHdkTG00amhMem5FZ3U2WFNlABJtYXliZU9yYWNsZUFkZHJlc3MEByRtYXRjaDAJAJ0IAgUNY29uZmlnQWRkcmVzcwIOb3JhY2xlX2FkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQABkhFSUdIVAUGaGVpZ2h0AAJ2ZAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEXZpcmVzX2Rpc3RyaWJ1dG9yAhViYWQgdmlyZXMgZGlzdHJpYnV0b3IAEHByb3RlY3RlZFJlc2VydmUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MCEXByb3RlY3RlZF9yZXNlcnZlAAVtYWluMQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIFbWFpbjEAC3VzZHRSZXNlcnZlCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgt1c2R0UmVzZXJ2ZQALdXNkY1Jlc2VydmUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCC3VzZGNSZXNlcnZlAANhY2MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCA2FjYwAOdXNkblZlc3RpbmdBbGwJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCDnVzZG5WZXN0aW5nQWxsAAt1c2RuVmVzdGluZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwILdXNkblZlc3RpbmcAC3VzZG5Bc3NldElkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgt1c2RuQXNzZXRJZAAJdXNkbkJvbnVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAgVib251cwEKbW92ZVN0cmVhbQUDcnNyBmFjdGlvbgRmcm9tBnN0cmluZwNhbXQJAPwHBAUCdmQCBG1vdmUJAMwIAgUDcnNyCQDMCAIFBmFjdGlvbgkAzAgCBQRmcm9tCQDMCAIFBnN0cmluZwkAzAgCBQNhbXQFA25pbAUDbmlsAQlvcEFsbG93ZWQCAm9wCmFzc2V0SWRTdHIEByRtYXRjaDAJAPwHBAUNY29uZmlnQWRkcmVzcwIJb3BBbGxvd2VkCQDMCAIFCmFzc2V0SWRTdHIJAMwIAgUCb3AFA25pbAUDbmlsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDADBQFiBgkAAgECC25vdCBhbGxvd2VkCQACAQIhb3BBbGxvd2VkOiB1bmV4cGVjdGVkIHJlc3VsdCB0eXBlAQphZHZpc2VVc2VyAQNhY2MECWRhdGFXaGFsZQkBCGFzU3RyaW5nAQkA/AcEBQt1c2RuVmVzdGluZwIHYWR2aXNlVQkAzAgCBQNhY2MFA25pbAUDbmlsAwkAAAIFCWRhdGFXaGFsZQUJZGF0YVdoYWxlBAdkYXRhQWxsCQEIYXNTdHJpbmcBCQD8BwQFDnVzZG5WZXN0aW5nQWxsAgdhZHZpc2VVCQDMCAIFA2FjYwUDbmlsBQNuaWwDCQAAAgUHZGF0YUFsbAUHZGF0YUFsbAkArAICCQCsAgIFCWRhdGFXaGFsZQIDIHwgBQdkYXRhQWxsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAtzdXJmQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BHMnZNaEs1Q1Bxc0NEb2R2TEd6UTg0UWtvSFhDSjNvTlAAEHN1cmZTdGFrZUFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQQmlvdEZwcWpSTWtrZUZCY2NuUU5VWFVvcHk3S0ZlejVDAAtzdXJmQXNzZXRJZAkA2QQBAixBdDhENk5GRnBoZUNidktWbmpWb2VMTDg0RW84TlpuNm92TWFueGZMYUZXTAEHYnV5U3VyZgMGY2FsbGVyBXdoYWxlB3JlZ3VsYXIEB2FkZHJlc3MJAKUIAQUGY2FsbGVyBAdyZWdQYXJ0AwUHcmVndWxhcgkBBWFzSW50AQkA/AcEBQ51c2RuVmVzdGluZ0FsbAIWd2l0aGRyYXdBbGxWZXN0ZWRGb3JUbwkAzAgCBQdhZGRyZXNzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwAAAMJAAACBQdyZWdQYXJ0BQdyZWdQYXJ0BAl3aGFsZVBhcnQDBQV3aGFsZQkAAgECD25vdCBpbXBsZW1lbnRlZAAAAwkAAAIFCXdoYWxlUGFydAUJd2hhbGVQYXJ0BAV0b3RhbAkAZAIFCXdoYWxlUGFydAUHcmVnUGFydAQDYnV5CQD8BwQFC3N1cmZBZGRyZXNzAgdidXlTdXJmCQDMCAIAwIQ9CQDMCAIAwIQ9CQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQULdXNkbkFzc2V0SWQFBXRvdGFsBQNuaWwDCQAAAgUDYnV5BQNidXkJAPAHAgUEdGhpcwULc3VyZkFzc2V0SWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4IAWkBBGluaXQJBGNvbmYBdAFjCHZlc3RuQWxsB2FjY291bnQEbWFpbgl1c2RuQXNzZXQFYm9udXMFdmVzdG4DCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhJvbmx5IHNlbGYgY2FuIGluaXQJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCBQtjb25maWdTdG9yZQUEY29uZgkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwICC3VzZHRSZXNlcnZlBQF0CQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgILdXNkY1Jlc2VydmUFAWMJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAg51c2RuVmVzdGluZ0FsbAUIdmVzdG5BbGwJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAgt1c2RuVmVzdGluZwUFdmVzdG4JAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAgNhY2MFB2FjY291bnQJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAgVtYWluMQUEbWFpbgkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwICC3VzZG5Bc3NldElkBQl1c2RuQXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQICBWJvbnVzBQVib251cwUDbmlsAWkBDWNvbnZlcnRUb1VTRE4ABAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgoBB21vdmVSc3IBA3JzcgQHcmVzZXJ2ZQkBEUBleHRyTmF0aXZlKDEwNjIpAQUDcnNyBAdhc3NldElkCQERQGV4dHJOYXRpdmUoMTA1MykCBQdyZXNlcnZlAgdhc3NldElkBAZjaGVja3MJAQlvcEFsbG93ZWQCAg5vcGVuQ29sbGF0ZXJhbAUHYXNzZXRJZAMJAAACBQZjaGVja3MFBmNoZWNrcwMDCQECIT0CBQNyc3IJAKUIAQULdXNkdFJlc2VydmUJAQIhPQIFA3JzcgkApQgBBQt1c2RjUmVzZXJ2ZQcJAAIBAg9pbnZhbGlkIHJlc2VydmUEA3NoQwkA/AcEBQJ2ZAIKc3luY0hlaWdodAkAzAgCBQNyc3IFA25pbAUDbmlsAwkAAAIFA3NoQwUDc2hDBAskdDA1MjI0NTMwOAkBBmFzSW50MgEJAPwHBAUHcmVzZXJ2ZQITc3RvcmVkRGVwb3NpdEJvcnJvdwUDbmlsBQNuaWwEDHRvdGFsRGVwb3NpdAgFCyR0MDUyMjQ1MzA4Al8xBAl0b3RhbERlYnQIBQskdDA1MjI0NTMwOAJfMgQEdXRpbAMJAGYCBQx0b3RhbERlcG9zaXQAAAkAlwMBCQDMCAIFC2ZhY3RvcnNCYXNlCQDMCAIJAGsDBQl0b3RhbERlYnQFC2ZhY3RvcnNCYXNlBQx0b3RhbERlcG9zaXQFA25pbAAABA11dGlsVGhyZXNob2xkCQELdmFsdWVPckVsc2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MJAKwCAgUHYXNzZXRJZAIZX29wZW5fY29sbGF0ZXJhbF90aHJlc29sZADoBwMJAGYCBQ11dGlsVGhyZXNob2xkBQR1dGlsCQACAQIdbm90IGFsbG93ZWQ6IHV0aWwgPCB0aHJlc2hvbGQEA2RlcAkBBWFzSW50AQkA/AcEBQdyZXNlcnZlAg51c2VyRGVwb3NpdFVTRAkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAMJAAACBQNkZXAFA2RlcAQCczMJAQVhc0ludAEJAPwHBAUHcmVzZXJ2ZQISdHJhbnNmZXJBVG9rZW5zRm9yCQDMCAIFB2FkZHJlc3MJAMwIAgUDYWNjCQDMCAIFA2RlcAUDbmlsBQNuaWwDCQAAAgUCczMFAnMzBARwUnczCQEKbW92ZVN0cmVhbQUFA3JzcgIHZGVwb3NpdAUHYWRkcmVzcwUDYWNjBQJzMwMJAAACBQRwUnczBQRwUnczBQJzMwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCbXcJAPwHBAULdXNkblZlc3RpbmcCEnN0YXJ0VmVzdGluZ0FsbEZvcgkAzAgCCQClCAEIBQFpBmNhbGxlcgUDbmlsBQNuaWwDCQAAAgUCbXcFAm13BAJtdAkBBWFzSW50AQkBB21vdmVSc3IBCQClCAEFC3VzZHRSZXNlcnZlAwkAAAIFAm10BQJtdAQCbWMJAQVhc0ludAEJAQdtb3ZlUnNyAQkApQgBBQt1c2RjUmVzZXJ2ZQMJAAACBQJtYwUCbWMECGRlcFRvdGFsCQBkAgUCbXQFAm1jBAVyZWhhYgQHdXNkbkFtdAkAawMFCGRlcFRvdGFsCQBkAgULZmFjdG9yc0Jhc2UFCXVzZG5Cb251cwULZmFjdG9yc0Jhc2UEAndkCQD8BwQFEHByb3RlY3RlZFJlc2VydmUCD3dpdGhkcmF3VG9NYWluMgkAzAgCBQNhY2MJAMwIAgULdXNkbkFzc2V0SWQJAMwIAgUHdXNkbkFtdAUDbmlsBQNuaWwDCQAAAgUCd2QFAndkBAVyZWhhYgkA/AcEBQ51c2RuVmVzdGluZ0FsbAIKYWNjb3VudEZvcgkAzAgCBQdhZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQULdXNkbkFzc2V0SWQFB3VzZG5BbXQFA25pbAMJAAACBQVyZWhhYgUFcmVoYWIFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUFcmVoYWIFBXJlaGFiBAskdDA2NDYyNjUyNAkBBmFzSW50MgEJAPwHBAUFbWFpbjECCGhlYWx0aE9mCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsBAJicAgFCyR0MDY0NjI2NTI0Al8xBANicHUIBQskdDA2NDYyNjUyNAJfMgMJAGYCBQJicAkAaAIAZAkAZQIFAmJwBQNicHUJAAIBAipub3QgZW5vdWdoIGFkZHJlc3MgaGVhbHRoIGFmdGVyIG1vdmU6IDwgMSUJAMwIAgkBCGNoYW5nZUJ5AgkArAICCQCsAgIFB2FkZHJlc3MCCl9taWdyYXRlZF8JARFAZXh0ck5hdGl2ZSgxMDUzKQIFC3VzZHRSZXNlcnZlAgdhc3NldElkBQJtdAkAzAgCCQEIY2hhbmdlQnkCCQCsAgIJAKwCAgUHYWRkcmVzcwIKX21pZ3JhdGVkXwkBEUBleHRyTmF0aXZlKDEwNTMpAgULdXNkY1Jlc2VydmUCB2Fzc2V0SWQFAm1jBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEVd2l0aGRyYXdWZXN0ZWRBbGxVU0ROAgV3aGFsZQdyZWd1bGFyBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQHcmVnUGFydAMFB3JlZ3VsYXIJAQVhc0ludAEJAPwHBAUOdXNkblZlc3RpbmdBbGwCE3dpdGhkcmF3VmVzdGVkRm9yVG8JAMwIAgUHYWRkcmVzcwkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAAAAwkAAAIFB3JlZ1BhcnQFB3JlZ1BhcnQECXdoYWxlUGFydAMFBXdoYWxlCQEFYXNJbnQBCQD8BwQFC3VzZG5WZXN0aW5nAhN3aXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwAAAMJAAACBQl3aGFsZVBhcnQFCXdoYWxlUGFydAkAlAoCBQNuaWwJAGQCBQl3aGFsZVBhcnQFB3JlZ1BhcnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEVd2l0aGRyYXdWZXN0ZWRBbGxTVVJGAgV3aGFsZQdyZWd1bGFyBAZjaGVja3MJAQlvcEFsbG93ZWQCAiFsaXF1aWRhb19hbGxfd2l0aGRyYXdWZXN0ZWRBc1N1cmYJANgEAQULc3VyZkFzc2V0SWQDCQAAAgUGY2hlY2tzBQZjaGVja3MEC3N1cmZCYWxhbmNlCQEHYnV5U3VyZgMIBQFpBmNhbGxlcgUFd2hhbGUFB3JlZ3VsYXIDCQAAAgULc3VyZkJhbGFuY2UFC3N1cmZCYWxhbmNlCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQtzdXJmQmFsYW5jZQULc3VyZkFzc2V0SWQFA25pbAULc3VyZkJhbGFuY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETd2l0aGRyYXdWZXN0ZWRTVVJGMgMFd2hhbGUHcmVndWxhcgVzdGFrZQQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEBmNoZWNrcwkBCW9wQWxsb3dlZAICIWxpcXVpZGFvX2FsbF93aXRoZHJhd1Zlc3RlZEFzU3VyZgkA2AQBBQtzdXJmQXNzZXRJZAMJAAACBQZjaGVja3MFBmNoZWNrcwQHcmVnUGFydAMJAGYCBQdyZWd1bGFyAAAJAQVhc0ludAEJAPwHBAUOdXNkblZlc3RpbmdBbGwCGnBhcnRpYWxXaXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgkApQgBBQR0aGlzCQDMCAIFB3JlZ3VsYXIFA25pbAUDbmlsAAADCQAAAgUHcmVnUGFydAUHcmVnUGFydAQJd2hhbGVQYXJ0AwkAZgIFBXdoYWxlAAAJAQVhc0ludAEJAPwHBAULdXNkblZlc3RpbmcCGnBhcnRpYWxXaXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgkApQgBBQR0aGlzCQDMCAIFBXdoYWxlBQNuaWwFA25pbAAAAwkAAAIFCXdoYWxlUGFydAUJd2hhbGVQYXJ0BAV0b3RhbAkAZAIFCXdoYWxlUGFydAUHcmVnUGFydAQDYnV5CQD8BwQFC3N1cmZBZGRyZXNzAgdidXlTdXJmCQDMCAIAwIQ9CQDMCAIAwIQ9CQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQULdXNkbkFzc2V0SWQFBXRvdGFsBQNuaWwDCQAAAgUDYnV5BQNidXkEC3N1cmZCYWxhbmNlCQDwBwIFBHRoaXMFC3N1cmZBc3NldElkAwkAAAIFC3N1cmZCYWxhbmNlBQtzdXJmQmFsYW5jZQMFBXN0YWtlBAlzdGFrZVN1cmYJAPwHBAUQc3VyZlN0YWtlQWRkcmVzcwITc3Rha2VCeU9yaWdpbkNhbGxlcgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtzdXJmQXNzZXRJZAULc3VyZkJhbGFuY2UFA25pbAMJAAACBQlzdGFrZVN1cmYFCXN0YWtlU3VyZgkAlAoCBQNuaWwFC3N1cmZCYWxhbmNlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQtzdXJmQmFsYW5jZQULc3VyZkFzc2V0SWQFA25pbAULc3VyZkJhbGFuY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEdd2l0aGRyYXdWZXN0ZWRBbGxTVVJGQW5kU3Rha2UCBXdoYWxlB3JlZ3VsYXIEBmNoZWNrcwkBCW9wQWxsb3dlZAICIWxpcXVpZGFvX2FsbF93aXRoZHJhd1Zlc3RlZEFzU3VyZgkA2AQBBQtzdXJmQXNzZXRJZAMJAAACBQZjaGVja3MFBmNoZWNrcwQLc3VyZkJhbGFuY2UJAQdidXlTdXJmAwgFAWkGY2FsbGVyBQV3aGFsZQUHcmVndWxhcgMJAAACBQtzdXJmQmFsYW5jZQULc3VyZkJhbGFuY2UECXN0YWtlU3VyZgkA/AcEBRBzdXJmU3Rha2VBZGRyZXNzAhNzdGFrZUJ5T3JpZ2luQ2FsbGVyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3N1cmZBc3NldElkBQtzdXJmQmFsYW5jZQUDbmlsAwkAAAIFCXN0YWtlU3VyZgUJc3Rha2VTdXJmCQCUCgIFA25pbAULc3VyZkJhbGFuY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMd2l0aGRyYXdBc0xQAgV3aGFsZQdyZWd1bGFyBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQHcmVnUGFydAMJAGYCBQdyZWd1bGFyAAAJAQVhc0ludAEJAPwHBAUOdXNkblZlc3RpbmdBbGwCGnBhcnRpYWxXaXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgkApQgBBQR0aGlzCQDMCAIFB3JlZ3VsYXIFA25pbAUDbmlsAAADCQAAAgUHcmVnUGFydAUHcmVnUGFydAQJd2hhbGVQYXJ0AwkAZgIFBXdoYWxlAAAJAQVhc0ludAEJAPwHBAULdXNkblZlc3RpbmcCGnBhcnRpYWxXaXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgkApQgBBQR0aGlzCQDMCAIFBXdoYWxlBQNuaWwFA25pbAAAAwkAAAIFCXdoYWxlUGFydAUJd2hhbGVQYXJ0BAV0b3RhbAkAZAIFCXdoYWxlUGFydAUHcmVnUGFydAQEdG9McAkA/AcEBRV2aXJlc1Zlc3RlZFVzZG5McERhcHACBm1pbnRUbwkAzAgCBQdhZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQULdXNkbkFzc2V0SWQFBXRvdGFsBQNuaWwDCQAAAgUEdG9McAUEdG9McAkAlAoCBQNuaWwFBXRvdGFsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGltcG9ydExQAAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEB3VzZG5BbXQJAQVhc0ludAEJAPwHBAUVdmlyZXNWZXN0ZWRVc2RuTHBEYXBwAgZpbXBvcnQFA25pbAgFAWkIcGF5bWVudHMDCQAAAgUHdXNkbkFtdAUHdXNkbkFtdAQKYWNjb3VudEZvcgkA/AcEBQ51c2RuVmVzdGluZ0FsbAIKYWNjb3VudEZvcgkAzAgCBQdhZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQULdXNkbkFzc2V0SWQFB3VzZG5BbXQFA25pbAMJAAACBQphY2NvdW50Rm9yBQphY2NvdW50Rm9yCQCUCgIFA25pbAUHdXNkbkFtdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEBEJBU0UA6AcEC3F1b3J1bVJhdGlvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUNY29uZmlnQWRkcmVzcwIVcHJvcG9zYWxfcXVvcnVtX3JhdGlvAiJwcm9wb3NhbFF1b3J1bVJhdGlvIGlzIG5vdCBkZWZpbmVkBAtwYXNzZWRSYXRpbwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MCFXByb3Bvc2FsX3Bhc3NlZF9yYXRpbwIlcHJvcG9zYWxUaHJlc2hvbGRSYXRpbyBpcyBub3QgZGVmaW5lZAQOZ1ZpcmVzQ29udHJhY3QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwISZGl2aWRlbmRzX2NvbnRyYWN0AhVubyBkaXZpZGVuZHNfY29udHJhY3QCGmludmFsaWQgZGl2aWRlbmRzX2NvbnRyYWN0BA52b3RpbmdDb250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAg92b3RpbmdfY29udHJhY3QCEm5vIHZvdGluZ19jb250cmFjdAIXaW52YWxpZCB2b3RpbmdfY29udHJhY3QEAmlkCQDYBAEIBQJ0eAJpZAQIdm90ZXNZZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOdm90aW5nQ29udHJhY3QJAKwCAgINcHJvcG9zYWxfeWVzXwUCaWQAAAQHdm90ZXNObwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ52b3RpbmdDb250cmFjdAkArAICAgxwcm9wb3NhbF9ub18FAmlkAAAEDnByb3Bvc2FsSGVpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUOdm90aW5nQ29udHJhY3QJAKwCAgIQcHJvcG9zYWxfaGVpZ2h0XwUCaWQCF3Byb3Bvc2FsIG5vdCByZWdpc3RlcmVkBAphcHBseVN0YXJ0CQELdmFsdWVPckVsc2UCCQCaCAIFDnZvdGluZ0NvbnRyYWN0CQCsAgICFHByb3Bvc2FsX2FwcGx5c3RhcnRfBQJpZAAABAhhcHBseUVuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ52b3RpbmdDb250cmFjdAkArAICAhJwcm9wb3NhbF9hcHBseWVuZF8FAmlkAAAEC3RvdGFsR1ZpcmVzCQELdmFsdWVPckVsc2UCCQCaCAIFDnZvdGluZ0NvbnRyYWN0CQCsAgICEHByb3Bvc2FsX2d2aXJlc18FAmlkAAAEB2VuYWJsZWQJAQt2YWx1ZU9yRWxzZQIJAJsIAgUNY29uZmlnQWRkcmVzcwIdb3BfZ292ZXJuYW5jZV9hcHBseV90eF9wYXVzZWQHBAd2b3RlWWVzBQh2b3Rlc1llcwQGdm90ZU5vBQd2b3Rlc05vBAp0b3RhbFZvdGVzCQBkAgUHdm90ZVllcwUGdm90ZU5vBAloYXNRdW9ydW0JAGcCCQBpAgkAaAIFCnRvdGFsVm90ZXMFBEJBU0UFC3RvdGFsR1ZpcmVzBQtxdW9ydW1SYXRpbwQJaGFzUGFzc2VkCQBnAgkAaQIJAGgCBQd2b3RlWWVzBQRCQVNFBQp0b3RhbFZvdGVzBQtwYXNzZWRSYXRpbwQIdG9vRWFybHkJAGcCBQphcHBseVN0YXJ0BQZIRUlHSFQEB3Rvb0xhdGUJAGcCBQZIRUlHSFQFCGFwcGx5RW5kBAl0aW1lRGVidWcJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRcHJvcG9zYWxIZWlnaHQgPSAJAKQDAQUOcHJvcG9zYWxIZWlnaHQCDywgYXBwbHlTdGFydCA9IAkApAMBBQphcHBseVN0YXJ0Ag0sIGFwcGx5RW5kID0gCQCkAwEFCGFwcGx5RW5kAgssIEhFSUdIVCA9IAkApAMBBQZIRUlHSFQECGJ5Vm90aW5nAwkBASEBBQdlbmFibGVkCQACAQIrdHggYXBwbGljYXRpb24gdGhyb3cgZ292ZXJuYW5jZSBub3QgZW5hYmxlZAMFCHRvb0Vhcmx5CQACAQkArAICAi5wcm9wb3NhbCBjYW4ndCBiZSBleGVjdXRlZCBhcyBpdCdzIHRvbyBlYXJseTogBQl0aW1lRGVidWcDBQd0b29MYXRlCQACAQkArAICAixwcm9wb3NhbCBjYW4ndCBiZSBleGVjdXRlZCBhcyBpdCdzIHRvbyBsYXRlOgUJdGltZURlYnVnAwkBASEBBQloYXNRdW9ydW0JAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgtubyBxdW9ydW06IAIMdG90YWxWb3RlczogCQCkAwEFCnRvdGFsVm90ZXMCDywgdG90YWxHVmlyZXM6IAkApAMBBQt0b3RhbEdWaXJlcwIPLCBxdW9ydW1SYXRpbzogCQCkAwEFC3F1b3J1bVJhdGlvAwkBASEBBQloYXNQYXNzZWQJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhdubyB0aHJlc2hvbGQgYWNoaWV2ZWQ6IAIJdm90ZVllczogCQCkAwEFB3ZvdGVZZXMCCiwgdm90ZU5vOiAJAKQDAQUGdm90ZU5vAg8sIHBhc3NlZFJhdGlvOiAJAKQDAQULcGFzc2VkUmF0aW8GAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQYFCGJ5Vm90aW5nMfvu0w==", "chainId": 87, "height": 3689129, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E4xDePwJhqJDy13yBdGnHQ5BTZmoSskXzggucJ71TjiX Next: 5tejBeNLtMdVwPANMPswVFBgYMVsTrrg7c1T8jN5wB3v Diff:
OldNewDifferences
259259 let aO = aM._2
260260 if ((aN > (100 * (aN - aO))))
261261 then throw("not enough address health after move: < 1%")
262- else {
263- let aP = l(invoke(D, "healthOf", [G], nil))
264- let aQ = aP._1
265- let aR = aP._2
266- if ((aR > aQ))
267- then throw("not enough acc health after move: < 1%")
268- else [v(((ae + "_migrated_") + getStringValue(E, "assetId")), aG), v(((ae + "_migrated_") + getStringValue(F, "assetId")), aH)]
269- }
262+ else [v(((ae + "_migrated_") + getStringValue(E, "assetId")), aG), v(((ae + "_migrated_") + getStringValue(F, "assetId")), aH)]
270263 }
271264 else throw("Strict value is not equal to itself.")
272265 }
304297 let av = Q("liquidao_all_withdrawVestedAsSurf", toBase58String(Z))
305298 if ((av == av))
306299 then {
307- let aS = aa(aj.caller, ac, ad)
308- if ((aS == aS))
309- then $Tuple2([ScriptTransfer(aj.caller, aS, Z)], aS)
300+ let aP = aa(aj.caller, ac, ad)
301+ if ((aP == aP))
302+ then $Tuple2([ScriptTransfer(aj.caller, aP, Z)], aP)
310303 else throw("Strict value is not equal to itself.")
311304 }
312305 else throw("Strict value is not equal to itself.")
315308
316309
317310 @Callable(aj)
318-func withdrawVestedSURF2 (ac,ad,aT) = {
311+func withdrawVestedSURF2 (ac,ad,aQ) = {
319312 let ae = toString(aj.caller)
320313 let av = Q("liquidao_all_withdrawVestedAsSurf", toBase58String(Z))
321314 if ((av == av))
334327 let ai = invoke(X, "buySurf", [1000000, 1000000, false], [AttachedPayment(fromBase58String(J), ah)])
335328 if ((ai == ai))
336329 then {
337- let aS = assetBalance(this, Z)
338- if ((aS == aS))
339- then if (aT)
330+ let aP = assetBalance(this, Z)
331+ if ((aP == aP))
332+ then if (aQ)
340333 then {
341- let aU = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aS)])
342- if ((aU == aU))
343- then $Tuple2(nil, aS)
334+ let aR = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aP)])
335+ if ((aR == aR))
336+ then $Tuple2(nil, aP)
344337 else throw("Strict value is not equal to itself.")
345338 }
346- else $Tuple2([ScriptTransfer(aj.caller, aS, Z)], aS)
339+ else $Tuple2([ScriptTransfer(aj.caller, aP, Z)], aP)
347340 else throw("Strict value is not equal to itself.")
348341 }
349342 else throw("Strict value is not equal to itself.")
362355 let av = Q("liquidao_all_withdrawVestedAsSurf", toBase58String(Z))
363356 if ((av == av))
364357 then {
365- let aS = aa(aj.caller, ac, ad)
366- if ((aS == aS))
358+ let aP = aa(aj.caller, ac, ad)
359+ if ((aP == aP))
367360 then {
368- let aU = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aS)])
369- if ((aU == aU))
370- then $Tuple2(nil, aS)
361+ let aR = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aP)])
362+ if ((aR == aR))
363+ then $Tuple2(nil, aP)
371364 else throw("Strict value is not equal to itself.")
372365 }
373366 else throw("Strict value is not equal to itself.")
391384 if ((ag == ag))
392385 then {
393386 let ah = (ag + af)
394- let aV = invoke(y, "mintTo", [ae], [AttachedPayment(fromBase58String(J), ah)])
395- if ((aV == aV))
387+ let aS = invoke(y, "mintTo", [ae], [AttachedPayment(fromBase58String(J), ah)])
388+ if ((aS == aS))
396389 then $Tuple2(nil, ah)
397390 else throw("Strict value is not equal to itself.")
398391 }
409402 let aK = j(invoke(y, "import", nil, aj.payments))
410403 if ((aK == aK))
411404 then {
412- let aW = invoke(H, "accountFor", [ae], [AttachedPayment(fromBase58String(J), aK)])
413- if ((aW == aW))
405+ let aT = invoke(H, "accountFor", [ae], [AttachedPayment(fromBase58String(J), aK)])
406+ if ((aT == aT))
414407 then $Tuple2(nil, aK)
415408 else throw("Strict value is not equal to itself.")
416409 }
418411 }
419412
420413
421-@Verifier(aX)
422-func aY () = {
423- let aZ = 1000
424- let ba = valueOrErrorMessage(getInteger(x, "proposal_quorum_ratio"), "proposalQuorumRatio is not defined")
425- let bb = valueOrErrorMessage(getInteger(x, "proposal_passed_ratio"), "proposalThresholdRatio is not defined")
426- let bc = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "dividends_contract"), "no dividends_contract")), "invalid dividends_contract")
427- let bd = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "voting_contract"), "no voting_contract")), "invalid voting_contract")
428- let be = toBase58String(aX.id)
429- let bf = valueOrElse(getInteger(bd, ("proposal_yes_" + be)), 0)
430- let bg = valueOrElse(getInteger(bd, ("proposal_no_" + be)), 0)
431- let bh = valueOrErrorMessage(getInteger(bd, ("proposal_height_" + be)), "proposal not registered")
432- let bi = valueOrElse(getInteger(bd, ("proposal_applystart_" + be)), 0)
433- let bj = valueOrElse(getInteger(bd, ("proposal_applyend_" + be)), 0)
434- let bk = valueOrElse(getInteger(bd, ("proposal_gvires_" + be)), 0)
435- let bl = valueOrElse(getBoolean(x, "op_governance_apply_tx_paused"), false)
436- let bm = bf
437- let bn = bg
438- let bo = (bm + bn)
439- let bp = (((bo * aZ) / bk) >= ba)
440- let bq = (((bm * aZ) / bo) >= bb)
441- let br = (bi >= A)
442- let bs = (A >= bj)
443- let bt = ((((((("proposalHeight = " + toString(bh)) + ", applyStart = ") + toString(bi)) + ", applyEnd = ") + toString(bj)) + ", HEIGHT = ") + toString(A))
444- let bu = if (!(bl))
414+@Verifier(aU)
415+func aV () = {
416+ let aW = 1000
417+ let aX = valueOrErrorMessage(getInteger(x, "proposal_quorum_ratio"), "proposalQuorumRatio is not defined")
418+ let aY = valueOrErrorMessage(getInteger(x, "proposal_passed_ratio"), "proposalThresholdRatio is not defined")
419+ let aZ = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "dividends_contract"), "no dividends_contract")), "invalid dividends_contract")
420+ let ba = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "voting_contract"), "no voting_contract")), "invalid voting_contract")
421+ let bb = toBase58String(aU.id)
422+ let bc = valueOrElse(getInteger(ba, ("proposal_yes_" + bb)), 0)
423+ let bd = valueOrElse(getInteger(ba, ("proposal_no_" + bb)), 0)
424+ let be = valueOrErrorMessage(getInteger(ba, ("proposal_height_" + bb)), "proposal not registered")
425+ let bf = valueOrElse(getInteger(ba, ("proposal_applystart_" + bb)), 0)
426+ let bg = valueOrElse(getInteger(ba, ("proposal_applyend_" + bb)), 0)
427+ let bh = valueOrElse(getInteger(ba, ("proposal_gvires_" + bb)), 0)
428+ let bi = valueOrElse(getBoolean(x, "op_governance_apply_tx_paused"), false)
429+ let bj = bc
430+ let bk = bd
431+ let bl = (bj + bk)
432+ let bm = (((bl * aW) / bh) >= aX)
433+ let bn = (((bj * aW) / bl) >= aY)
434+ let bo = (bf >= A)
435+ let bp = (A >= bg)
436+ let bq = ((((((("proposalHeight = " + toString(be)) + ", applyStart = ") + toString(bf)) + ", applyEnd = ") + toString(bg)) + ", HEIGHT = ") + toString(A))
437+ let br = if (!(bi))
445438 then throw("tx application throw governance not enabled")
446- else if (br)
447- then throw(("proposal can't be executed as it's too early: " + bt))
448- else if (bs)
449- then throw(("proposal can't be executed as it's too late:" + bt))
450- else if (!(bp))
451- then throw((((((("no quorum: " + "totalVotes: ") + toString(bo)) + ", totalGVires: ") + toString(bk)) + ", quorumRatio: ") + toString(ba)))
452- else if (!(bq))
453- then throw((((((("no threshold achieved: " + "voteYes: ") + toString(bm)) + ", voteNo: ") + toString(bn)) + ", passedRatio: ") + toString(bb)))
439+ else if (bo)
440+ then throw(("proposal can't be executed as it's too early: " + bq))
441+ else if (bp)
442+ then throw(("proposal can't be executed as it's too late:" + bq))
443+ else if (!(bm))
444+ then throw((((((("no quorum: " + "totalVotes: ") + toString(bl)) + ", totalGVires: ") + toString(bh)) + ", quorumRatio: ") + toString(aX)))
445+ else if (!(bn))
446+ then throw((((((("no threshold achieved: " + "voteYes: ") + toString(bj)) + ", voteNo: ") + toString(bk)) + ", passedRatio: ") + toString(aY)))
454447 else true
455- if (sigVerify(aX.bodyBytes, aX.proofs[0], aX.senderPublicKey))
448+ if (sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey))
456449 then true
457- else bu
450+ else br
458451 }
459452
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000
55
66 func b (c,d) = if (!(isDefined(getString(this, c))))
77 then StringEntry(c, d)
88 else throw(("already initialized: " + c))
99
1010
1111 func e (c,d) = if (!(isDefined(getInteger(this, c))))
1212 then IntegerEntry(c, d)
1313 else throw(("already initialized: " + c))
1414
1515
1616 func f (c,d) = if ((0 > d))
1717 then throw(((("writing negative value " + toString(d)) + " for key ") + c))
1818 else IntegerEntry(c, d)
1919
2020
2121 func g (d) = {
2222 let h = d
2323 if ($isInstanceOf(h, "String"))
2424 then {
2525 let i = h
2626 i
2727 }
2828 else throw("wrong type, expected: String")
2929 }
3030
3131
3232 func j (d) = {
3333 let h = d
3434 if ($isInstanceOf(h, "Int"))
3535 then {
3636 let k = h
3737 k
3838 }
3939 else throw("sm:1")
4040 }
4141
4242
4343 func l (d) = {
4444 let h = d
4545 if ($isInstanceOf(h, "(Int, Int)"))
4646 then {
4747 let m = h
4848 m
4949 }
5050 else {
5151 let n = h
5252 throw("wrong type, expected: Int2")
5353 }
5454 }
5555
5656
5757 func o (d) = {
5858 let h = d
5959 if ($isInstanceOf(h, "(Int, Int, Int, Int, Int, Boolean)"))
6060 then {
6161 let m = h
6262 m
6363 }
6464 else {
6565 let n = h
6666 throw("3")
6767 }
6868 }
6969
7070
7171 func p (q,r) = o(invoke(q, "userBalance", [r], nil))
7272
7373
7474 func s (t,u) = if (t)
7575 then throw(u)
7676 else true
7777
7878
7979 func v (c,d) = f(c, (valueOrElse(getInteger(this, c), 0) + d))
8080
8181
8282 let w = "config"
8383
8484 let x = addressFromStringValue(getStringValue(this, w))
8585
8686 let y = addressFromStringValue("3PJFu8MmVa2rSVGM48wdLm4jhLznEgu6XSe")
8787
8888 let z = {
8989 let h = getString(x, "oracle_address")
9090 if ($isInstanceOf(h, "String"))
9191 then {
9292 let i = h
9393 addressFromString(i)
9494 }
9595 else unit
9696 }
9797
9898 let A = height
9999
100100 let B = addressFromStringValue(valueOrErrorMessage(getString(x, "vires_distributor"), "bad vires distributor"))
101101
102102 let C = addressFromStringValue(getStringValue(x, "protected_reserve"))
103103
104104 let D = addressFromStringValue(getStringValue(this, "main1"))
105105
106106 let E = addressFromStringValue(getStringValue(this, "usdtReserve"))
107107
108108 let F = addressFromStringValue(getStringValue(this, "usdcReserve"))
109109
110110 let G = getStringValue(this, "acc")
111111
112112 let H = addressFromStringValue(getStringValue(this, "usdnVestingAll"))
113113
114114 let I = addressFromStringValue(getStringValue(this, "usdnVesting"))
115115
116116 let J = getStringValue(this, "usdnAssetId")
117117
118118 let K = getIntegerValue(this, "bonus")
119119
120120 func L (q,M,N,O,P) = invoke(B, "move", [q, M, N, O, P], nil)
121121
122122
123123 func Q (R,S) = {
124124 let h = invoke(x, "opAllowed", [S, R], nil)
125125 if ($isInstanceOf(h, "Boolean"))
126126 then {
127127 let T = h
128128 if (T)
129129 then true
130130 else throw("not allowed")
131131 }
132132 else throw("opAllowed: unexpected result type")
133133 }
134134
135135
136136 func U (G) = {
137137 let V = g(invoke(I, "adviseU", [G], nil))
138138 if ((V == V))
139139 then {
140140 let W = g(invoke(H, "adviseU", [G], nil))
141141 if ((W == W))
142142 then ((V + " | ") + W)
143143 else throw("Strict value is not equal to itself.")
144144 }
145145 else throw("Strict value is not equal to itself.")
146146 }
147147
148148
149149 let X = addressFromStringValue("3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP")
150150
151151 let Y = addressFromStringValue("3PBiotFpqjRMkkeFBccnQNUXUopy7KFez5C")
152152
153153 let Z = fromBase58String("At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL")
154154
155155 func aa (ab,ac,ad) = {
156156 let ae = toString(ab)
157157 let af = if (ad)
158158 then j(invoke(H, "withdrawAllVestedForTo", [ae, toString(this)], nil))
159159 else 0
160160 if ((af == af))
161161 then {
162162 let ag = if (ac)
163163 then throw("not implemented")
164164 else 0
165165 if ((ag == ag))
166166 then {
167167 let ah = (ag + af)
168168 let ai = invoke(X, "buySurf", [1000000, 1000000, false], [AttachedPayment(fromBase58String(J), ah)])
169169 if ((ai == ai))
170170 then assetBalance(this, Z)
171171 else throw("Strict value is not equal to itself.")
172172 }
173173 else throw("Strict value is not equal to itself.")
174174 }
175175 else throw("Strict value is not equal to itself.")
176176 }
177177
178178
179179 @Callable(aj)
180180 func init (ak,n,al,am,an,ao,ap,aq,ar) = if ((aj.caller != this))
181181 then throw("only self can init")
182182 else [b(w, ak), b("usdtReserve", n), b("usdcReserve", al), b("usdnVestingAll", am), b("usdnVesting", ar), b("acc", an), b("main1", ao), b("usdnAssetId", ap), IntegerEntry("bonus", aq)]
183183
184184
185185
186186 @Callable(aj)
187187 func convertToUSDN () = {
188188 let ae = toString(aj.caller)
189189 func as (q) = {
190190 let at = addressFromStringValue(q)
191191 let au = getStringValue(at, "assetId")
192192 let av = Q("openCollateral", au)
193193 if ((av == av))
194194 then if (if ((q != toString(E)))
195195 then (q != toString(F))
196196 else false)
197197 then throw("invalid reserve")
198198 else {
199199 let aw = invoke(B, "syncHeight", [q], nil)
200200 if ((aw == aw))
201201 then {
202202 let ax = l(invoke(at, "storedDepositBorrow", nil, nil))
203203 let ay = ax._1
204204 let az = ax._2
205205 let aA = if ((ay > 0))
206206 then min([a, fraction(az, a, ay)])
207207 else 0
208208 let aB = valueOrElse(getInteger(x, (au + "_open_collateral_thresold")), 1000)
209209 if ((aB > aA))
210210 then throw("not allowed: util < threshold")
211211 else {
212212 let aC = j(invoke(at, "userDepositUSD", [ae], nil))
213213 if ((aC == aC))
214214 then {
215215 let aD = j(invoke(at, "transferATokensFor", [ae, G, aC], nil))
216216 if ((aD == aD))
217217 then {
218218 let aE = L(q, "deposit", ae, G, aD)
219219 if ((aE == aE))
220220 then aD
221221 else throw("Strict value is not equal to itself.")
222222 }
223223 else throw("Strict value is not equal to itself.")
224224 }
225225 else throw("Strict value is not equal to itself.")
226226 }
227227 }
228228 else throw("Strict value is not equal to itself.")
229229 }
230230 else throw("Strict value is not equal to itself.")
231231 }
232232
233233 let aF = invoke(I, "startVestingAllFor", [toString(aj.caller)], nil)
234234 if ((aF == aF))
235235 then {
236236 let aG = j(as(toString(E)))
237237 if ((aG == aG))
238238 then {
239239 let aH = j(as(toString(F)))
240240 if ((aH == aH))
241241 then {
242242 let aI = (aG + aH)
243243 let aJ = {
244244 let aK = fraction(aI, (a + K), a)
245245 let aL = invoke(C, "withdrawToMain2", [G, J, aK], nil)
246246 if ((aL == aL))
247247 then {
248248 let aJ = invoke(H, "accountFor", [ae], [AttachedPayment(fromBase58String(J), aK)])
249249 if ((aJ == aJ))
250250 then unit
251251 else throw("Strict value is not equal to itself.")
252252 }
253253 else throw("Strict value is not equal to itself.")
254254 }
255255 if ((aJ == aJ))
256256 then {
257257 let aM = l(invoke(D, "healthOf", [ae], nil))
258258 let aN = aM._1
259259 let aO = aM._2
260260 if ((aN > (100 * (aN - aO))))
261261 then throw("not enough address health after move: < 1%")
262- else {
263- let aP = l(invoke(D, "healthOf", [G], nil))
264- let aQ = aP._1
265- let aR = aP._2
266- if ((aR > aQ))
267- then throw("not enough acc health after move: < 1%")
268- else [v(((ae + "_migrated_") + getStringValue(E, "assetId")), aG), v(((ae + "_migrated_") + getStringValue(F, "assetId")), aH)]
269- }
262+ else [v(((ae + "_migrated_") + getStringValue(E, "assetId")), aG), v(((ae + "_migrated_") + getStringValue(F, "assetId")), aH)]
270263 }
271264 else throw("Strict value is not equal to itself.")
272265 }
273266 else throw("Strict value is not equal to itself.")
274267 }
275268 else throw("Strict value is not equal to itself.")
276269 }
277270 else throw("Strict value is not equal to itself.")
278271 }
279272
280273
281274
282275 @Callable(aj)
283276 func withdrawVestedAllUSDN (ac,ad) = {
284277 let ae = toString(aj.caller)
285278 let af = if (ad)
286279 then j(invoke(H, "withdrawVestedForTo", [ae, ae], nil))
287280 else 0
288281 if ((af == af))
289282 then {
290283 let ag = if (ac)
291284 then j(invoke(I, "withdrawVestedForTo", [ae, ae], nil))
292285 else 0
293286 if ((ag == ag))
294287 then $Tuple2(nil, (ag + af))
295288 else throw("Strict value is not equal to itself.")
296289 }
297290 else throw("Strict value is not equal to itself.")
298291 }
299292
300293
301294
302295 @Callable(aj)
303296 func withdrawVestedAllSURF (ac,ad) = {
304297 let av = Q("liquidao_all_withdrawVestedAsSurf", toBase58String(Z))
305298 if ((av == av))
306299 then {
307- let aS = aa(aj.caller, ac, ad)
308- if ((aS == aS))
309- then $Tuple2([ScriptTransfer(aj.caller, aS, Z)], aS)
300+ let aP = aa(aj.caller, ac, ad)
301+ if ((aP == aP))
302+ then $Tuple2([ScriptTransfer(aj.caller, aP, Z)], aP)
310303 else throw("Strict value is not equal to itself.")
311304 }
312305 else throw("Strict value is not equal to itself.")
313306 }
314307
315308
316309
317310 @Callable(aj)
318-func withdrawVestedSURF2 (ac,ad,aT) = {
311+func withdrawVestedSURF2 (ac,ad,aQ) = {
319312 let ae = toString(aj.caller)
320313 let av = Q("liquidao_all_withdrawVestedAsSurf", toBase58String(Z))
321314 if ((av == av))
322315 then {
323316 let af = if ((ad > 0))
324317 then j(invoke(H, "partialWithdrawVestedForTo", [ae, toString(this), ad], nil))
325318 else 0
326319 if ((af == af))
327320 then {
328321 let ag = if ((ac > 0))
329322 then j(invoke(I, "partialWithdrawVestedForTo", [ae, toString(this), ac], nil))
330323 else 0
331324 if ((ag == ag))
332325 then {
333326 let ah = (ag + af)
334327 let ai = invoke(X, "buySurf", [1000000, 1000000, false], [AttachedPayment(fromBase58String(J), ah)])
335328 if ((ai == ai))
336329 then {
337- let aS = assetBalance(this, Z)
338- if ((aS == aS))
339- then if (aT)
330+ let aP = assetBalance(this, Z)
331+ if ((aP == aP))
332+ then if (aQ)
340333 then {
341- let aU = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aS)])
342- if ((aU == aU))
343- then $Tuple2(nil, aS)
334+ let aR = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aP)])
335+ if ((aR == aR))
336+ then $Tuple2(nil, aP)
344337 else throw("Strict value is not equal to itself.")
345338 }
346- else $Tuple2([ScriptTransfer(aj.caller, aS, Z)], aS)
339+ else $Tuple2([ScriptTransfer(aj.caller, aP, Z)], aP)
347340 else throw("Strict value is not equal to itself.")
348341 }
349342 else throw("Strict value is not equal to itself.")
350343 }
351344 else throw("Strict value is not equal to itself.")
352345 }
353346 else throw("Strict value is not equal to itself.")
354347 }
355348 else throw("Strict value is not equal to itself.")
356349 }
357350
358351
359352
360353 @Callable(aj)
361354 func withdrawVestedAllSURFAndStake (ac,ad) = {
362355 let av = Q("liquidao_all_withdrawVestedAsSurf", toBase58String(Z))
363356 if ((av == av))
364357 then {
365- let aS = aa(aj.caller, ac, ad)
366- if ((aS == aS))
358+ let aP = aa(aj.caller, ac, ad)
359+ if ((aP == aP))
367360 then {
368- let aU = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aS)])
369- if ((aU == aU))
370- then $Tuple2(nil, aS)
361+ let aR = invoke(Y, "stakeByOriginCaller", nil, [AttachedPayment(Z, aP)])
362+ if ((aR == aR))
363+ then $Tuple2(nil, aP)
371364 else throw("Strict value is not equal to itself.")
372365 }
373366 else throw("Strict value is not equal to itself.")
374367 }
375368 else throw("Strict value is not equal to itself.")
376369 }
377370
378371
379372
380373 @Callable(aj)
381374 func withdrawAsLP (ac,ad) = {
382375 let ae = toString(aj.caller)
383376 let af = if ((ad > 0))
384377 then j(invoke(H, "partialWithdrawVestedForTo", [ae, toString(this), ad], nil))
385378 else 0
386379 if ((af == af))
387380 then {
388381 let ag = if ((ac > 0))
389382 then j(invoke(I, "partialWithdrawVestedForTo", [ae, toString(this), ac], nil))
390383 else 0
391384 if ((ag == ag))
392385 then {
393386 let ah = (ag + af)
394- let aV = invoke(y, "mintTo", [ae], [AttachedPayment(fromBase58String(J), ah)])
395- if ((aV == aV))
387+ let aS = invoke(y, "mintTo", [ae], [AttachedPayment(fromBase58String(J), ah)])
388+ if ((aS == aS))
396389 then $Tuple2(nil, ah)
397390 else throw("Strict value is not equal to itself.")
398391 }
399392 else throw("Strict value is not equal to itself.")
400393 }
401394 else throw("Strict value is not equal to itself.")
402395 }
403396
404397
405398
406399 @Callable(aj)
407400 func importLP () = {
408401 let ae = toString(aj.caller)
409402 let aK = j(invoke(y, "import", nil, aj.payments))
410403 if ((aK == aK))
411404 then {
412- let aW = invoke(H, "accountFor", [ae], [AttachedPayment(fromBase58String(J), aK)])
413- if ((aW == aW))
405+ let aT = invoke(H, "accountFor", [ae], [AttachedPayment(fromBase58String(J), aK)])
406+ if ((aT == aT))
414407 then $Tuple2(nil, aK)
415408 else throw("Strict value is not equal to itself.")
416409 }
417410 else throw("Strict value is not equal to itself.")
418411 }
419412
420413
421-@Verifier(aX)
422-func aY () = {
423- let aZ = 1000
424- let ba = valueOrErrorMessage(getInteger(x, "proposal_quorum_ratio"), "proposalQuorumRatio is not defined")
425- let bb = valueOrErrorMessage(getInteger(x, "proposal_passed_ratio"), "proposalThresholdRatio is not defined")
426- let bc = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "dividends_contract"), "no dividends_contract")), "invalid dividends_contract")
427- let bd = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "voting_contract"), "no voting_contract")), "invalid voting_contract")
428- let be = toBase58String(aX.id)
429- let bf = valueOrElse(getInteger(bd, ("proposal_yes_" + be)), 0)
430- let bg = valueOrElse(getInteger(bd, ("proposal_no_" + be)), 0)
431- let bh = valueOrErrorMessage(getInteger(bd, ("proposal_height_" + be)), "proposal not registered")
432- let bi = valueOrElse(getInteger(bd, ("proposal_applystart_" + be)), 0)
433- let bj = valueOrElse(getInteger(bd, ("proposal_applyend_" + be)), 0)
434- let bk = valueOrElse(getInteger(bd, ("proposal_gvires_" + be)), 0)
435- let bl = valueOrElse(getBoolean(x, "op_governance_apply_tx_paused"), false)
436- let bm = bf
437- let bn = bg
438- let bo = (bm + bn)
439- let bp = (((bo * aZ) / bk) >= ba)
440- let bq = (((bm * aZ) / bo) >= bb)
441- let br = (bi >= A)
442- let bs = (A >= bj)
443- let bt = ((((((("proposalHeight = " + toString(bh)) + ", applyStart = ") + toString(bi)) + ", applyEnd = ") + toString(bj)) + ", HEIGHT = ") + toString(A))
444- let bu = if (!(bl))
414+@Verifier(aU)
415+func aV () = {
416+ let aW = 1000
417+ let aX = valueOrErrorMessage(getInteger(x, "proposal_quorum_ratio"), "proposalQuorumRatio is not defined")
418+ let aY = valueOrErrorMessage(getInteger(x, "proposal_passed_ratio"), "proposalThresholdRatio is not defined")
419+ let aZ = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "dividends_contract"), "no dividends_contract")), "invalid dividends_contract")
420+ let ba = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(x, "voting_contract"), "no voting_contract")), "invalid voting_contract")
421+ let bb = toBase58String(aU.id)
422+ let bc = valueOrElse(getInteger(ba, ("proposal_yes_" + bb)), 0)
423+ let bd = valueOrElse(getInteger(ba, ("proposal_no_" + bb)), 0)
424+ let be = valueOrErrorMessage(getInteger(ba, ("proposal_height_" + bb)), "proposal not registered")
425+ let bf = valueOrElse(getInteger(ba, ("proposal_applystart_" + bb)), 0)
426+ let bg = valueOrElse(getInteger(ba, ("proposal_applyend_" + bb)), 0)
427+ let bh = valueOrElse(getInteger(ba, ("proposal_gvires_" + bb)), 0)
428+ let bi = valueOrElse(getBoolean(x, "op_governance_apply_tx_paused"), false)
429+ let bj = bc
430+ let bk = bd
431+ let bl = (bj + bk)
432+ let bm = (((bl * aW) / bh) >= aX)
433+ let bn = (((bj * aW) / bl) >= aY)
434+ let bo = (bf >= A)
435+ let bp = (A >= bg)
436+ let bq = ((((((("proposalHeight = " + toString(be)) + ", applyStart = ") + toString(bf)) + ", applyEnd = ") + toString(bg)) + ", HEIGHT = ") + toString(A))
437+ let br = if (!(bi))
445438 then throw("tx application throw governance not enabled")
446- else if (br)
447- then throw(("proposal can't be executed as it's too early: " + bt))
448- else if (bs)
449- then throw(("proposal can't be executed as it's too late:" + bt))
450- else if (!(bp))
451- then throw((((((("no quorum: " + "totalVotes: ") + toString(bo)) + ", totalGVires: ") + toString(bk)) + ", quorumRatio: ") + toString(ba)))
452- else if (!(bq))
453- then throw((((((("no threshold achieved: " + "voteYes: ") + toString(bm)) + ", voteNo: ") + toString(bn)) + ", passedRatio: ") + toString(bb)))
439+ else if (bo)
440+ then throw(("proposal can't be executed as it's too early: " + bq))
441+ else if (bp)
442+ then throw(("proposal can't be executed as it's too late:" + bq))
443+ else if (!(bm))
444+ then throw((((((("no quorum: " + "totalVotes: ") + toString(bl)) + ", totalGVires: ") + toString(bh)) + ", quorumRatio: ") + toString(aX)))
445+ else if (!(bn))
446+ then throw((((((("no threshold achieved: " + "voteYes: ") + toString(bj)) + ", voteNo: ") + toString(bk)) + ", passedRatio: ") + toString(aY)))
454447 else true
455- if (sigVerify(aX.bodyBytes, aX.proofs[0], aX.senderPublicKey))
448+ if (sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey))
456449 then true
457- else bu
450+ else br
458451 }
459452

github/deemru/w8io/3ef1775 
93.36 ms