tx · 7ctNQmAtX49AkkmnjyqnCmvo3JiTNp8BYw8EdJb42Vmm

3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk:  -0.01000000 Waves

2022.12.01 19:36 [3406993] smart account 3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk > SELF 0.00000000 Waves

{ "type": 13, "id": "7ctNQmAtX49AkkmnjyqnCmvo3JiTNp8BYw8EdJb42Vmm", "fee": 1000000, "feeAssetId": null, "timestamp": 1669912498965, "version": 1, "sender": "3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk", "senderPublicKey": "FwXAX9xcWiwbCejtdF8q1Nz8NpJqaVxXKnKK6JoR24pZ", "proofs": [ "4zjhhdVYMaDVgwNBbxRs6Zmvi2r5tZafAydMJeLjH6cYFwmHdq1tpLj58RRkqXVx7fsKS3dUjkt7jJ3cUSuapJcK" ], "script": "base64:BgIwCAISCwoJCAgICAgICAEIEgASBAoCBAQSBAoCBAQSBQoDAQEEEgQKAgQEEgQKAgEBIAALZmFjdG9yc0Jhc2UA6AcBEHdyaXRlQ29uc3RTdHJpbmcCA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUDa2V5CQELU3RyaW5nRW50cnkCBQNrZXkFBXZhbHVlCQACAQkArAICAhVhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQENd3JpdGVDb25zdEludAIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAmggCBQR0aGlzBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlCQACAQkArAICAhVhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQEId3JpdGVJbnQCA2tleQV2YWx1ZQMJAGYCAAAFBXZhbHVlCQACAQkArAICCQCsAgIJAKwCAgIXd3JpdGluZyBuZWdhdGl2ZSB2YWx1ZSAJAKQDAQUFdmFsdWUCCSBmb3Iga2V5IAUDa2V5CQEMSW50ZWdlckVudHJ5AgUDa2V5BQV2YWx1ZQEIYXNTdHJpbmcBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBAhx3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAgRzbToxAQZhc0ludDIBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgooSW50LCBJbnQpBAF4BQckbWF0Y2gwBQF4BAF0BQckbWF0Y2gwCQACAQIad3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludDIBEWFzVXNlckJhbGFuY2VEYXRhAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIiKEludCwgSW50LCBJbnQsIEludCwgSW50LCBCb29sZWFuKQQBeAUHJG1hdGNoMAUBeAQBdAUHJG1hdGNoMAkAAgECATMBC3VzZXJCYWxhbmNlAgNyc3IEdXNlcgkBEWFzVXNlckJhbGFuY2VEYXRhAQkA/AcEBQNyc3ICC3VzZXJCYWxhbmNlCQDMCAIFBHVzZXIFA25pbAUDbmlsAQd0aHJvd0lmAgljb25kaXRpb24FZXJyb3IDBQljb25kaXRpb24JAAIBBQVlcnJvcgYBCGNoYW5nZUJ5AgNrZXkFdmFsdWUJAQh3cml0ZUludAIFA2tleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5AAAFBXZhbHVlAAtjb25maWdTdG9yZQIGY29uZmlnAA1jb25maWdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQtjb25maWdTdG9yZQASbWF5YmVPcmFjbGVBZGRyZXNzBAckbWF0Y2gwCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDm9yYWNsZV9hZGRyZXNzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzBQR1bml0AAZIRUlHSFQFBmhlaWdodAACdmQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAhF2aXJlc19kaXN0cmlidXRvcgIVYmFkIHZpcmVzIGRpc3RyaWJ1dG9yABBwcm90ZWN0ZWRSZXNlcnZlCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQ1jb25maWdBZGRyZXNzAhFwcm90ZWN0ZWRfcmVzZXJ2ZQAFbWFpbjEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCBW1haW4xAAt1c2R0UmVzZXJ2ZQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwILdXNkdFJlc2VydmUAC3VzZGNSZXNlcnZlCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgt1c2RjUmVzZXJ2ZQADYWNjCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgNhY2MADnVzZG5WZXN0aW5nQWxsCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAg51c2RuVmVzdGluZ0FsbAALdXNkblZlc3RpbmcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCC3VzZG5WZXN0aW5nAAt1c2RuQXNzZXRJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwILdXNkbkFzc2V0SWQACXVzZG5Cb251cwkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIFYm9udXMBCm1vdmVTdHJlYW0FA3JzcgZhY3Rpb24EZnJvbQZzdHJpbmcDYW10CQD8BwQFAnZkAgRtb3ZlCQDMCAIFA3JzcgkAzAgCBQZhY3Rpb24JAMwIAgUEZnJvbQkAzAgCBQZzdHJpbmcJAMwIAgUDYW10BQNuaWwFA25pbAEJb3BBbGxvd2VkAgJvcAphc3NldElkU3RyBAckbWF0Y2gwCQD8BwQFDWNvbmZpZ0FkZHJlc3MCCW9wQWxsb3dlZAkAzAgCBQphc3NldElkU3RyCQDMCAIFAm9wBQNuaWwFA25pbAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwAwUBYgYJAAIBAgtub3QgYWxsb3dlZAkAAgECIW9wQWxsb3dlZDogdW5leHBlY3RlZCByZXN1bHQgdHlwZQEKYWR2aXNlVXNlcgEDYWNjBAlkYXRhV2hhbGUJAQhhc1N0cmluZwEJAPwHBAULdXNkblZlc3RpbmcCB2FkdmlzZVUJAMwIAgUDYWNjBQNuaWwFA25pbAMJAAACBQlkYXRhV2hhbGUFCWRhdGFXaGFsZQQHZGF0YUFsbAkBCGFzU3RyaW5nAQkA/AcEBQ51c2RuVmVzdGluZ0FsbAIHYWR2aXNlVQkAzAgCBQNhY2MFA25pbAUDbmlsAwkAAAIFB2RhdGFBbGwFB2RhdGFBbGwJAKwCAgkArAICBQlkYXRhV2hhbGUCAyB8IAUHZGF0YUFsbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgALc3VyZkFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQRzJ2TWhLNUNQcXNDRG9kdkxHelE4NFFrb0hYQ0ozb05QABBzdXJmU3Rha2VBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEJpb3RGcHFqUk1ra2VGQmNjblFOVVhVb3B5N0tGZXo1QwALc3VyZkFzc2V0SWQJANkEAQIsQXQ4RDZORkZwaGVDYnZLVm5qVm9lTEw4NEVvOE5abjZvdk1hbnhmTGFGV0wBB2J1eVN1cmYDBmNhbGxlcgV3aGFsZQdyZWd1bGFyBAdhZGRyZXNzCQClCAEFBmNhbGxlcgQHcmVnUGFydAMFB3JlZ3VsYXIJAQVhc0ludAEJAPwHBAUOdXNkblZlc3RpbmdBbGwCFndpdGhkcmF3QWxsVmVzdGVkRm9yVG8JAMwIAgUHYWRkcmVzcwkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAAADCQAAAgUHcmVnUGFydAUHcmVnUGFydAQJd2hhbGVQYXJ0AwUFd2hhbGUJAAIBAg9ub3QgaW1wbGVtZW50ZWQAAAMJAAACBQl3aGFsZVBhcnQFCXdoYWxlUGFydAQFdG90YWwJAGQCBQl3aGFsZVBhcnQFB3JlZ1BhcnQEA2J1eQkA/AcEBQtzdXJmQWRkcmVzcwIHYnV5U3VyZgkAzAgCAMCEPQkAzAgCAMCEPQkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFC3VzZG5Bc3NldElkBQV0b3RhbAUDbmlsAwkAAAIFA2J1eQUDYnV5CQDwBwIFBHRoaXMFC3N1cmZBc3NldElkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBwFpAQRpbml0CQRjb25mAXQBYwh2ZXN0bkFsbAdhY2NvdW50BG1haW4JdXNkbkFzc2V0BWJvbnVzBXZlc3RuAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQISb25seSBzZWxmIGNhbiBpbml0CQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgULY29uZmlnU3RvcmUFBGNvbmYJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAgt1c2R0UmVzZXJ2ZQUBdAkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwICC3VzZGNSZXNlcnZlBQFjCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIOdXNkblZlc3RpbmdBbGwFCHZlc3RuQWxsCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgILdXNkblZlc3RpbmcFBXZlc3RuCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIDYWNjBQdhY2NvdW50CQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIFbWFpbjEFBG1haW4JAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAgt1c2RuQXNzZXRJZAUJdXNkbkFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgVib251cwUFYm9udXMFA25pbAFpAQ1jb252ZXJ0VG9VU0ROAAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIKAQdtb3ZlUnNyAQNyc3IEB3Jlc2VydmUJARFAZXh0ck5hdGl2ZSgxMDYyKQEFA3JzcgQHYXNzZXRJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUHcmVzZXJ2ZQIHYXNzZXRJZAQGY2hlY2tzCQEJb3BBbGxvd2VkAgIOb3BlbkNvbGxhdGVyYWwFB2Fzc2V0SWQDCQAAAgUGY2hlY2tzBQZjaGVja3MDAwkBAiE9AgUDcnNyCQClCAEFC3VzZHRSZXNlcnZlCQECIT0CBQNyc3IJAKUIAQULdXNkY1Jlc2VydmUHCQACAQIPaW52YWxpZCByZXNlcnZlBANzaEMJAPwHBAUCdmQCCnN5bmNIZWlnaHQJAMwIAgUDcnNyBQNuaWwFA25pbAMJAAACBQNzaEMFA3NoQwQLJHQwNTEzMzUyMTcJAQZhc0ludDIBCQD8BwQFB3Jlc2VydmUCE3N0b3JlZERlcG9zaXRCb3Jyb3cFA25pbAUDbmlsBAx0b3RhbERlcG9zaXQIBQskdDA1MTMzNTIxNwJfMQQJdG90YWxEZWJ0CAULJHQwNTEzMzUyMTcCXzIEBHV0aWwDCQBmAgUMdG90YWxEZXBvc2l0AAAJAJcDAQkAzAgCBQtmYWN0b3JzQmFzZQkAzAgCCQBrAwUJdG90YWxEZWJ0BQtmYWN0b3JzQmFzZQUMdG90YWxEZXBvc2l0BQNuaWwAAAQNdXRpbFRocmVzaG9sZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1jb25maWdBZGRyZXNzCQCsAgIFB2Fzc2V0SWQCGV9vcGVuX2NvbGxhdGVyYWxfdGhyZXNvbGQA6AcDCQBmAgUNdXRpbFRocmVzaG9sZAUEdXRpbAkAAgECHW5vdCBhbGxvd2VkOiB1dGlsIDwgdGhyZXNob2xkBANkZXAJAQVhc0ludAEJAPwHBAUHcmVzZXJ2ZQIOdXNlckRlcG9zaXRVU0QJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwDCQAAAgUDZGVwBQNkZXAEAnMzCQEFYXNJbnQBCQD8BwQFB3Jlc2VydmUCEnRyYW5zZmVyQVRva2Vuc0ZvcgkAzAgCBQdhZGRyZXNzCQDMCAIFA2FjYwkAzAgCBQNkZXAFA25pbAUDbmlsAwkAAAIFAnMzBQJzMwQEcFJ3MwkBCm1vdmVTdHJlYW0FBQNyc3ICB2RlcG9zaXQFB2FkZHJlc3MFA2FjYwUCczMDCQAAAgUEcFJ3MwUEcFJ3MwUCczMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAm13CQD8BwQFC3VzZG5WZXN0aW5nAhJzdGFydFZlc3RpbmdBbGxGb3IJAMwIAgkApQgBCAUBaQZjYWxsZXIFA25pbAUDbmlsAwkAAAIFAm13BQJtdwQCbXQJAQVhc0ludAEJAQdtb3ZlUnNyAQkApQgBBQt1c2R0UmVzZXJ2ZQMJAAACBQJtdAUCbXQEAm1jCQEFYXNJbnQBCQEHbW92ZVJzcgEJAKUIAQULdXNkY1Jlc2VydmUDCQAAAgUCbWMFAm1jBAhkZXBUb3RhbAkAZAIFAm10BQJtYwQFcmVoYWIEB3VzZG5BbXQJAGsDBQhkZXBUb3RhbAkAZAIFC2ZhY3RvcnNCYXNlBQl1c2RuQm9udXMFC2ZhY3RvcnNCYXNlBAJ3ZAkA/AcEBRBwcm90ZWN0ZWRSZXNlcnZlAg93aXRoZHJhd1RvTWFpbjIJAMwIAgUDYWNjCQDMCAIFC3VzZG5Bc3NldElkCQDMCAIFB3VzZG5BbXQFA25pbAUDbmlsAwkAAAIFAndkBQJ3ZAQFcmVoYWIJAPwHBAUOdXNkblZlc3RpbmdBbGwCCmFjY291bnRGb3IJAMwIAgUHYWRkcmVzcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFC3VzZG5Bc3NldElkBQd1c2RuQW10BQNuaWwDCQAAAgUFcmVoYWIFBXJlaGFiBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBXJlaGFiBQVyZWhhYgQLJHQwNjM3MTY0MzMJAQZhc0ludDIBCQD8BwQFBW1haW4xAghoZWFsdGhPZgkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAQCYnAIBQskdDA2MzcxNjQzMwJfMQQDYnB1CAULJHQwNjM3MTY0MzMCXzIDCQBmAgUCYnAJAGgCAGQJAGUCBQJicAUDYnB1CQACAQIqbm90IGVub3VnaCBhZGRyZXNzIGhlYWx0aCBhZnRlciBtb3ZlOiA8IDElBAskdDA2NTMxNjU5NwkBBmFzSW50MgEJAPwHBAUFbWFpbjECCGhlYWx0aE9mCQDMCAIFA2FjYwUDbmlsBQNuaWwEBmJwX2FjYwgFCyR0MDY1MzE2NTk3Al8xBAdicHVfYWNjCAULJHQwNjUzMTY1OTcCXzIDCQBmAgUGYnBfYWNjCQBoAgBkCQBlAgUGYnBfYWNjBQdicHVfYWNjCQACAQImbm90IGVub3VnaCBhY2MgaGVhbHRoIGFmdGVyIG1vdmU6IDwgMSUJAMwIAgkBCGNoYW5nZUJ5AgkArAICCQCsAgIFB2FkZHJlc3MCCl9taWdyYXRlZF8JARFAZXh0ck5hdGl2ZSgxMDUzKQIFC3VzZHRSZXNlcnZlAgdhc3NldElkBQJtdAkAzAgCCQEIY2hhbmdlQnkCCQCsAgIJAKwCAgUHYWRkcmVzcwIKX21pZ3JhdGVkXwkBEUBleHRyTmF0aXZlKDEwNTMpAgULdXNkY1Jlc2VydmUCB2Fzc2V0SWQFAm1jBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEVd2l0aGRyYXdWZXN0ZWRBbGxVU0ROAgV3aGFsZQdyZWd1bGFyBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQHcmVnUGFydAMFB3JlZ3VsYXIJAQVhc0ludAEJAPwHBAUOdXNkblZlc3RpbmdBbGwCE3dpdGhkcmF3VmVzdGVkRm9yVG8JAMwIAgUHYWRkcmVzcwkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAAAAwkAAAIFB3JlZ1BhcnQFB3JlZ1BhcnQECXdoYWxlUGFydAMFBXdoYWxlCQEFYXNJbnQBCQD8BwQFC3VzZG5WZXN0aW5nAhN3aXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwAAAMJAAACBQl3aGFsZVBhcnQFCXdoYWxlUGFydAkAlAoCBQNuaWwJAGQCBQl3aGFsZVBhcnQFB3JlZ1BhcnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEVd2l0aGRyYXdWZXN0ZWRBbGxTVVJGAgV3aGFsZQdyZWd1bGFyBAtzdXJmQmFsYW5jZQkBB2J1eVN1cmYDCAUBaQZjYWxsZXIFBXdoYWxlBQdyZWd1bGFyAwkAAAIFC3N1cmZCYWxhbmNlBQtzdXJmQmFsYW5jZQkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULc3VyZkJhbGFuY2UFC3N1cmZBc3NldElkBQNuaWwFC3N1cmZCYWxhbmNlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3dpdGhkcmF3VmVzdGVkU1VSRjIDBXdoYWxlB3JlZ3VsYXIFc3Rha2UEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBAdyZWdQYXJ0AwkAZgIFB3JlZ3VsYXIAAAkBBWFzSW50AQkA/AcEBQ51c2RuVmVzdGluZ0FsbAIacGFydGlhbFdpdGhkcmF3VmVzdGVkRm9yVG8JAMwIAgUHYWRkcmVzcwkAzAgCCQClCAEFBHRoaXMJAMwIAgUHcmVndWxhcgUDbmlsBQNuaWwAAAMJAAACBQdyZWdQYXJ0BQdyZWdQYXJ0BAl3aGFsZVBhcnQDCQBmAgUFd2hhbGUAAAkBBWFzSW50AQkA/AcEBQt1c2RuVmVzdGluZwIacGFydGlhbFdpdGhkcmF3VmVzdGVkRm9yVG8JAMwIAgUHYWRkcmVzcwkAzAgCCQClCAEFBHRoaXMJAMwIAgUFd2hhbGUFA25pbAUDbmlsAAADCQAAAgUJd2hhbGVQYXJ0BQl3aGFsZVBhcnQEBXRvdGFsCQBkAgUJd2hhbGVQYXJ0BQdyZWdQYXJ0BANidXkJAPwHBAULc3VyZkFkZHJlc3MCB2J1eVN1cmYJAMwIAgDAhD0JAMwIAgDAhD0JAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQt1c2RuQXNzZXRJZAUFdG90YWwFA25pbAMJAAACBQNidXkFA2J1eQQLc3VyZkJhbGFuY2UJAPAHAgUEdGhpcwULc3VyZkFzc2V0SWQDCQAAAgULc3VyZkJhbGFuY2UFC3N1cmZCYWxhbmNlAwUFc3Rha2UECXN0YWtlU3VyZgkA/AcEBRBzdXJmU3Rha2VBZGRyZXNzAhNzdGFrZUJ5T3JpZ2luQ2FsbGVyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3N1cmZBc3NldElkBQtzdXJmQmFsYW5jZQUDbmlsAwkAAAIFCXN0YWtlU3VyZgUJc3Rha2VTdXJmCQCUCgIFA25pbAULc3VyZkJhbGFuY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFC3N1cmZCYWxhbmNlBQtzdXJmQXNzZXRJZAUDbmlsBQtzdXJmQmFsYW5jZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAR13aXRoZHJhd1Zlc3RlZEFsbFNVUkZBbmRTdGFrZQIFd2hhbGUHcmVndWxhcgQLc3VyZkJhbGFuY2UJAQdidXlTdXJmAwgFAWkGY2FsbGVyBQV3aGFsZQUHcmVndWxhcgMJAAACBQtzdXJmQmFsYW5jZQULc3VyZkJhbGFuY2UECXN0YWtlU3VyZgkA/AcEBRBzdXJmU3Rha2VBZGRyZXNzAhNzdGFrZUJ5T3JpZ2luQ2FsbGVyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3N1cmZBc3NldElkBQtzdXJmQmFsYW5jZQUDbmlsAwkAAAIFCXN0YWtlU3VyZgUJc3Rha2VTdXJmCQCUCgIFA25pbAULc3VyZkJhbGFuY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMd2l0aGRyYXdBc0xQAgV3aGFsZQdyZWd1bGFyBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQHcmVnUGFydAMJAGYCBQdyZWd1bGFyAAAJAQVhc0ludAEJAPwHBAUOdXNkblZlc3RpbmdBbGwCGnBhcnRpYWxXaXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgkApQgBBQR0aGlzCQDMCAIFB3JlZ3VsYXIFA25pbAUDbmlsAAADCQAAAgUHcmVnUGFydAUHcmVnUGFydAQJd2hhbGVQYXJ0AwkAZgIFBXdoYWxlAAAJAQVhc0ludAEJAPwHBAULdXNkblZlc3RpbmcCGnBhcnRpYWxXaXRoZHJhd1Zlc3RlZEZvclRvCQDMCAIFB2FkZHJlc3MJAMwIAgkApQgBBQR0aGlzCQDMCAIFBXdoYWxlBQNuaWwFA25pbAAAAwkAAAIFCXdoYWxlUGFydAUJd2hhbGVQYXJ0BBV2aXJlc1Zlc3RlZFVzZG5McERhcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQSkZ1OE1tVmEyclNWR000OHdkTG00amhMem5FZ3U2WFNlBAV0b3RhbAkAZAIFCXdoYWxlUGFydAUHcmVnUGFydAQEdG9McAkA/AcEBRV2aXJlc1Zlc3RlZFVzZG5McERhcHACBm1pbnRUbwkAzAgCBQdhZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQULdXNkbkFzc2V0SWQFBXRvdGFsBQNuaWwDCQAAAgUEdG9McAUEdG9McAkAlAoCBQNuaWwFBXRvdGFsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuALojmEA=", "chainId": 87, "height": 3406993, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AXi6SK4S2Zfp78rmxuKvCDjbYFr58sGQi1x9QWGMMBbo Next: H6xosB8CxgYKLoW46ELzqxyYY7KzMsRPcGwRYPYeALbY Diff:
OldNewDifferences
173173 let shC = invoke(vd, "syncHeight", [rsr], nil)
174174 if ((shC == shC))
175175 then {
176- let $t051315215 = asInt2(invoke(reserve, "storedDepositBorrow", nil, nil))
177- let totalDeposit = $t051315215._1
178- let totalDebt = $t051315215._2
176+ let $t051335217 = asInt2(invoke(reserve, "storedDepositBorrow", nil, nil))
177+ let totalDeposit = $t051335217._1
178+ let totalDebt = $t051335217._2
179179 let util = if ((totalDeposit > 0))
180180 then min([factorsBase, fraction(totalDebt, factorsBase, totalDeposit)])
181181 else 0
228228 }
229229 if ((rehab == rehab))
230230 then {
231- let $t063696431 = asInt2(invoke(main1, "healthOf", [address], nil))
232- let bp = $t063696431._1
233- let bpu = $t063696431._2
231+ let $t063716433 = asInt2(invoke(main1, "healthOf", [address], nil))
232+ let bp = $t063716433._1
233+ let bpu = $t063716433._2
234234 if ((bp > (100 * (bp - bpu))))
235235 then throw("not enough address health after move: < 1%")
236236 else {
237- let $t065296595 = asInt2(invoke(main1, "healthOf", [acc], nil))
238- let bp_acc = $t065296595._1
239- let bpu_acc = $t065296595._2
237+ let $t065316597 = asInt2(invoke(main1, "healthOf", [acc], nil))
238+ let bp_acc = $t065316597._1
239+ let bpu_acc = $t065316597._2
240240 if ((bp_acc > (100 * (bp_acc - bpu_acc))))
241241 then throw("not enough acc health after move: < 1%")
242242 else [changeBy(((address + "_migrated_") + getStringValue(usdtReserve, "assetId")), mt), changeBy(((address + "_migrated_") + getStringValue(usdcReserve, "assetId")), mc)]
278278 let surfBalance = buySurf(i.caller, whale, regular)
279279 if ((surfBalance == surfBalance))
280280 then $Tuple2([ScriptTransfer(i.caller, surfBalance, surfAssetId)], surfBalance)
281+ else throw("Strict value is not equal to itself.")
282+ }
283+
284+
285+
286+@Callable(i)
287+func withdrawVestedSURF2 (whale,regular,stake) = {
288+ let address = toString(i.caller)
289+ let regPart = if ((regular > 0))
290+ then asInt(invoke(usdnVestingAll, "partialWithdrawVestedForTo", [address, toString(this), regular], nil))
291+ else 0
292+ if ((regPart == regPart))
293+ then {
294+ let whalePart = if ((whale > 0))
295+ then asInt(invoke(usdnVesting, "partialWithdrawVestedForTo", [address, toString(this), whale], nil))
296+ else 0
297+ if ((whalePart == whalePart))
298+ then {
299+ let total = (whalePart + regPart)
300+ let buy = invoke(surfAddress, "buySurf", [1000000, 1000000, false], [AttachedPayment(fromBase58String(usdnAssetId), total)])
301+ if ((buy == buy))
302+ then {
303+ let surfBalance = assetBalance(this, surfAssetId)
304+ if ((surfBalance == surfBalance))
305+ then if (stake)
306+ then {
307+ let stakeSurf = invoke(surfStakeAddress, "stakeByOriginCaller", nil, [AttachedPayment(surfAssetId, surfBalance)])
308+ if ((stakeSurf == stakeSurf))
309+ then $Tuple2(nil, surfBalance)
310+ else throw("Strict value is not equal to itself.")
311+ }
312+ else $Tuple2([ScriptTransfer(i.caller, surfBalance, surfAssetId)], surfBalance)
313+ else throw("Strict value is not equal to itself.")
314+ }
315+ else throw("Strict value is not equal to itself.")
316+ }
317+ else throw("Strict value is not equal to itself.")
318+ }
281319 else throw("Strict value is not equal to itself.")
282320 }
283321
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let factorsBase = 1000
55
66 func writeConstString (key,value) = if (!(isDefined(getString(this, key))))
77 then StringEntry(key, value)
88 else throw(("already initialized: " + key))
99
1010
1111 func writeConstInt (key,value) = if (!(isDefined(getInteger(this, key))))
1212 then IntegerEntry(key, value)
1313 else throw(("already initialized: " + key))
1414
1515
1616 func writeInt (key,value) = if ((0 > value))
1717 then throw(((("writing negative value " + toString(value)) + " for key ") + key))
1818 else IntegerEntry(key, value)
1919
2020
2121 func asString (value) = match value {
2222 case s: String =>
2323 s
2424 case _ =>
2525 throw("wrong type, expected: String")
2626 }
2727
2828
2929 func asInt (value) = match value {
3030 case int: Int =>
3131 int
3232 case _ =>
3333 throw("sm:1")
3434 }
3535
3636
3737 func asInt2 (value) = match value {
3838 case x: (Int, Int) =>
3939 x
4040 case t =>
4141 throw("wrong type, expected: Int2")
4242 }
4343
4444
4545 func asUserBalanceData (value) = match value {
4646 case x: (Int, Int, Int, Int, Int, Boolean) =>
4747 x
4848 case t =>
4949 throw("3")
5050 }
5151
5252
5353 func userBalance (rsr,user) = asUserBalanceData(invoke(rsr, "userBalance", [user], nil))
5454
5555
5656 func throwIf (condition,error) = if (condition)
5757 then throw(error)
5858 else true
5959
6060
6161 func changeBy (key,value) = writeInt(key, (valueOrElse(getInteger(this, key), 0) + value))
6262
6363
6464 let configStore = "config"
6565
6666 let configAddress = addressFromStringValue(getStringValue(this, configStore))
6767
6868 let maybeOracleAddress = match getString(configAddress, "oracle_address") {
6969 case s: String =>
7070 addressFromString(s)
7171 case _ =>
7272 unit
7373 }
7474
7575 let HEIGHT = height
7676
7777 let vd = addressFromStringValue(valueOrErrorMessage(getString(configAddress, "vires_distributor"), "bad vires distributor"))
7878
7979 let protectedReserve = addressFromStringValue(getStringValue(configAddress, "protected_reserve"))
8080
8181 let main1 = addressFromStringValue(getStringValue(this, "main1"))
8282
8383 let usdtReserve = addressFromStringValue(getStringValue(this, "usdtReserve"))
8484
8585 let usdcReserve = addressFromStringValue(getStringValue(this, "usdcReserve"))
8686
8787 let acc = getStringValue(this, "acc")
8888
8989 let usdnVestingAll = addressFromStringValue(getStringValue(this, "usdnVestingAll"))
9090
9191 let usdnVesting = addressFromStringValue(getStringValue(this, "usdnVesting"))
9292
9393 let usdnAssetId = getStringValue(this, "usdnAssetId")
9494
9595 let usdnBonus = getIntegerValue(this, "bonus")
9696
9797 func moveStream (rsr,action,from,string,amt) = invoke(vd, "move", [rsr, action, from, string, amt], nil)
9898
9999
100100 func opAllowed (op,assetIdStr) = match invoke(configAddress, "opAllowed", [assetIdStr, op], nil) {
101101 case b: Boolean =>
102102 if (b)
103103 then true
104104 else throw("not allowed")
105105 case _ =>
106106 throw("opAllowed: unexpected result type")
107107 }
108108
109109
110110 func adviseUser (acc) = {
111111 let dataWhale = asString(invoke(usdnVesting, "adviseU", [acc], nil))
112112 if ((dataWhale == dataWhale))
113113 then {
114114 let dataAll = asString(invoke(usdnVestingAll, "adviseU", [acc], nil))
115115 if ((dataAll == dataAll))
116116 then ((dataWhale + " | ") + dataAll)
117117 else throw("Strict value is not equal to itself.")
118118 }
119119 else throw("Strict value is not equal to itself.")
120120 }
121121
122122
123123 let surfAddress = addressFromStringValue("3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP")
124124
125125 let surfStakeAddress = addressFromStringValue("3PBiotFpqjRMkkeFBccnQNUXUopy7KFez5C")
126126
127127 let surfAssetId = fromBase58String("At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL")
128128
129129 func buySurf (caller,whale,regular) = {
130130 let address = toString(caller)
131131 let regPart = if (regular)
132132 then asInt(invoke(usdnVestingAll, "withdrawAllVestedForTo", [address, toString(this)], nil))
133133 else 0
134134 if ((regPart == regPart))
135135 then {
136136 let whalePart = if (whale)
137137 then throw("not implemented")
138138 else 0
139139 if ((whalePart == whalePart))
140140 then {
141141 let total = (whalePart + regPart)
142142 let buy = invoke(surfAddress, "buySurf", [1000000, 1000000, false], [AttachedPayment(fromBase58String(usdnAssetId), total)])
143143 if ((buy == buy))
144144 then assetBalance(this, surfAssetId)
145145 else throw("Strict value is not equal to itself.")
146146 }
147147 else throw("Strict value is not equal to itself.")
148148 }
149149 else throw("Strict value is not equal to itself.")
150150 }
151151
152152
153153 @Callable(i)
154154 func init (conf,t,c,vestnAll,account,main,usdnAsset,bonus,vestn) = if ((i.caller != this))
155155 then throw("only self can init")
156156 else [writeConstString(configStore, conf), writeConstString("usdtReserve", t), writeConstString("usdcReserve", c), writeConstString("usdnVestingAll", vestnAll), writeConstString("usdnVesting", vestn), writeConstString("acc", account), writeConstString("main1", main), writeConstString("usdnAssetId", usdnAsset), IntegerEntry("bonus", bonus)]
157157
158158
159159
160160 @Callable(i)
161161 func convertToUSDN () = {
162162 let address = toString(i.caller)
163163 func moveRsr (rsr) = {
164164 let reserve = addressFromStringValue(rsr)
165165 let assetId = getStringValue(reserve, "assetId")
166166 let checks = opAllowed("openCollateral", assetId)
167167 if ((checks == checks))
168168 then if (if ((rsr != toString(usdtReserve)))
169169 then (rsr != toString(usdcReserve))
170170 else false)
171171 then throw("invalid reserve")
172172 else {
173173 let shC = invoke(vd, "syncHeight", [rsr], nil)
174174 if ((shC == shC))
175175 then {
176- let $t051315215 = asInt2(invoke(reserve, "storedDepositBorrow", nil, nil))
177- let totalDeposit = $t051315215._1
178- let totalDebt = $t051315215._2
176+ let $t051335217 = asInt2(invoke(reserve, "storedDepositBorrow", nil, nil))
177+ let totalDeposit = $t051335217._1
178+ let totalDebt = $t051335217._2
179179 let util = if ((totalDeposit > 0))
180180 then min([factorsBase, fraction(totalDebt, factorsBase, totalDeposit)])
181181 else 0
182182 let utilThreshold = valueOrElse(getInteger(configAddress, (assetId + "_open_collateral_thresold")), 1000)
183183 if ((utilThreshold > util))
184184 then throw("not allowed: util < threshold")
185185 else {
186186 let dep = asInt(invoke(reserve, "userDepositUSD", [address], nil))
187187 if ((dep == dep))
188188 then {
189189 let s3 = asInt(invoke(reserve, "transferATokensFor", [address, acc, dep], nil))
190190 if ((s3 == s3))
191191 then {
192192 let pRw3 = moveStream(rsr, "deposit", address, acc, s3)
193193 if ((pRw3 == pRw3))
194194 then s3
195195 else throw("Strict value is not equal to itself.")
196196 }
197197 else throw("Strict value is not equal to itself.")
198198 }
199199 else throw("Strict value is not equal to itself.")
200200 }
201201 }
202202 else throw("Strict value is not equal to itself.")
203203 }
204204 else throw("Strict value is not equal to itself.")
205205 }
206206
207207 let mw = invoke(usdnVesting, "startVestingAllFor", [toString(i.caller)], nil)
208208 if ((mw == mw))
209209 then {
210210 let mt = asInt(moveRsr(toString(usdtReserve)))
211211 if ((mt == mt))
212212 then {
213213 let mc = asInt(moveRsr(toString(usdcReserve)))
214214 if ((mc == mc))
215215 then {
216216 let depTotal = (mt + mc)
217217 let rehab = {
218218 let usdnAmt = fraction(depTotal, (factorsBase + usdnBonus), factorsBase)
219219 let wd = invoke(protectedReserve, "withdrawToMain2", [acc, usdnAssetId, usdnAmt], nil)
220220 if ((wd == wd))
221221 then {
222222 let rehab = invoke(usdnVestingAll, "accountFor", [address], [AttachedPayment(fromBase58String(usdnAssetId), usdnAmt)])
223223 if ((rehab == rehab))
224224 then unit
225225 else throw("Strict value is not equal to itself.")
226226 }
227227 else throw("Strict value is not equal to itself.")
228228 }
229229 if ((rehab == rehab))
230230 then {
231- let $t063696431 = asInt2(invoke(main1, "healthOf", [address], nil))
232- let bp = $t063696431._1
233- let bpu = $t063696431._2
231+ let $t063716433 = asInt2(invoke(main1, "healthOf", [address], nil))
232+ let bp = $t063716433._1
233+ let bpu = $t063716433._2
234234 if ((bp > (100 * (bp - bpu))))
235235 then throw("not enough address health after move: < 1%")
236236 else {
237- let $t065296595 = asInt2(invoke(main1, "healthOf", [acc], nil))
238- let bp_acc = $t065296595._1
239- let bpu_acc = $t065296595._2
237+ let $t065316597 = asInt2(invoke(main1, "healthOf", [acc], nil))
238+ let bp_acc = $t065316597._1
239+ let bpu_acc = $t065316597._2
240240 if ((bp_acc > (100 * (bp_acc - bpu_acc))))
241241 then throw("not enough acc health after move: < 1%")
242242 else [changeBy(((address + "_migrated_") + getStringValue(usdtReserve, "assetId")), mt), changeBy(((address + "_migrated_") + getStringValue(usdcReserve, "assetId")), mc)]
243243 }
244244 }
245245 else throw("Strict value is not equal to itself.")
246246 }
247247 else throw("Strict value is not equal to itself.")
248248 }
249249 else throw("Strict value is not equal to itself.")
250250 }
251251 else throw("Strict value is not equal to itself.")
252252 }
253253
254254
255255
256256 @Callable(i)
257257 func withdrawVestedAllUSDN (whale,regular) = {
258258 let address = toString(i.caller)
259259 let regPart = if (regular)
260260 then asInt(invoke(usdnVestingAll, "withdrawVestedForTo", [address, address], nil))
261261 else 0
262262 if ((regPart == regPart))
263263 then {
264264 let whalePart = if (whale)
265265 then asInt(invoke(usdnVesting, "withdrawVestedForTo", [address, address], nil))
266266 else 0
267267 if ((whalePart == whalePart))
268268 then $Tuple2(nil, (whalePart + regPart))
269269 else throw("Strict value is not equal to itself.")
270270 }
271271 else throw("Strict value is not equal to itself.")
272272 }
273273
274274
275275
276276 @Callable(i)
277277 func withdrawVestedAllSURF (whale,regular) = {
278278 let surfBalance = buySurf(i.caller, whale, regular)
279279 if ((surfBalance == surfBalance))
280280 then $Tuple2([ScriptTransfer(i.caller, surfBalance, surfAssetId)], surfBalance)
281+ else throw("Strict value is not equal to itself.")
282+ }
283+
284+
285+
286+@Callable(i)
287+func withdrawVestedSURF2 (whale,regular,stake) = {
288+ let address = toString(i.caller)
289+ let regPart = if ((regular > 0))
290+ then asInt(invoke(usdnVestingAll, "partialWithdrawVestedForTo", [address, toString(this), regular], nil))
291+ else 0
292+ if ((regPart == regPart))
293+ then {
294+ let whalePart = if ((whale > 0))
295+ then asInt(invoke(usdnVesting, "partialWithdrawVestedForTo", [address, toString(this), whale], nil))
296+ else 0
297+ if ((whalePart == whalePart))
298+ then {
299+ let total = (whalePart + regPart)
300+ let buy = invoke(surfAddress, "buySurf", [1000000, 1000000, false], [AttachedPayment(fromBase58String(usdnAssetId), total)])
301+ if ((buy == buy))
302+ then {
303+ let surfBalance = assetBalance(this, surfAssetId)
304+ if ((surfBalance == surfBalance))
305+ then if (stake)
306+ then {
307+ let stakeSurf = invoke(surfStakeAddress, "stakeByOriginCaller", nil, [AttachedPayment(surfAssetId, surfBalance)])
308+ if ((stakeSurf == stakeSurf))
309+ then $Tuple2(nil, surfBalance)
310+ else throw("Strict value is not equal to itself.")
311+ }
312+ else $Tuple2([ScriptTransfer(i.caller, surfBalance, surfAssetId)], surfBalance)
313+ else throw("Strict value is not equal to itself.")
314+ }
315+ else throw("Strict value is not equal to itself.")
316+ }
317+ else throw("Strict value is not equal to itself.")
318+ }
281319 else throw("Strict value is not equal to itself.")
282320 }
283321
284322
285323
286324 @Callable(i)
287325 func withdrawVestedAllSURFAndStake (whale,regular) = {
288326 let surfBalance = buySurf(i.caller, whale, regular)
289327 if ((surfBalance == surfBalance))
290328 then {
291329 let stakeSurf = invoke(surfStakeAddress, "stakeByOriginCaller", nil, [AttachedPayment(surfAssetId, surfBalance)])
292330 if ((stakeSurf == stakeSurf))
293331 then $Tuple2(nil, surfBalance)
294332 else throw("Strict value is not equal to itself.")
295333 }
296334 else throw("Strict value is not equal to itself.")
297335 }
298336
299337
300338
301339 @Callable(i)
302340 func withdrawAsLP (whale,regular) = {
303341 let address = toString(i.caller)
304342 let regPart = if ((regular > 0))
305343 then asInt(invoke(usdnVestingAll, "partialWithdrawVestedForTo", [address, toString(this), regular], nil))
306344 else 0
307345 if ((regPart == regPart))
308346 then {
309347 let whalePart = if ((whale > 0))
310348 then asInt(invoke(usdnVesting, "partialWithdrawVestedForTo", [address, toString(this), whale], nil))
311349 else 0
312350 if ((whalePart == whalePart))
313351 then {
314352 let viresVestedUsdnLpDapp = addressFromStringValue("3PJFu8MmVa2rSVGM48wdLm4jhLznEgu6XSe")
315353 let total = (whalePart + regPart)
316354 let toLp = invoke(viresVestedUsdnLpDapp, "mintTo", [address], [AttachedPayment(fromBase58String(usdnAssetId), total)])
317355 if ((toLp == toLp))
318356 then $Tuple2(nil, total)
319357 else throw("Strict value is not equal to itself.")
320358 }
321359 else throw("Strict value is not equal to itself.")
322360 }
323361 else throw("Strict value is not equal to itself.")
324362 }
325363
326364

github/deemru/w8io/6500d08 
57.40 ms