tx · 6TnXtjpWdaDvQJKtdRt4SMzC8HFm3mGQ5fuBPVEcVDK9

3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk:  -0.00700000 Waves

2022.09.05 15:45 [3281358] smart account 3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk > SELF 0.00000000 Waves

{ "type": 13, "id": "6TnXtjpWdaDvQJKtdRt4SMzC8HFm3mGQ5fuBPVEcVDK9", "fee": 700000, "feeAssetId": null, "timestamp": 1662382000192, "version": 1, "sender": "3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk", "senderPublicKey": "FwXAX9xcWiwbCejtdF8q1Nz8NpJqaVxXKnKK6JoR24pZ", "proofs": [ "2RcvdRhExDrrc81pAQzcYNghYMYKxC4CxKMLXeJuoANzJ256JJmrFDFHAVpfT9FYy9o59FPiLiG8UsvmYtZfEqGs" ], "script": "base64:BgIdCAISCwoJCAgICAgICAEIEgASBAoCBAQSBAoCBAQcAAtmYWN0b3JzQmFzZQDoBwEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQ13cml0ZUNvbnN0SW50AgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQh3cml0ZUludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQhhc1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAkAAgECBHNtOjEBBmFzSW50MgEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACCihJbnQsIEludCkEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAhp3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50MgERYXNVc2VyQmFsYW5jZURhdGEBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAiIoSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEJvb2xlYW4pBAF4BQckbWF0Y2gwBQF4BAF0BQckbWF0Y2gwCQACAQIBMwELdXNlckJhbGFuY2UCA3JzcgR1c2VyCQERYXNVc2VyQmFsYW5jZURhdGEBCQD8BwQFA3JzcgILdXNlckJhbGFuY2UJAMwIAgUEdXNlcgUDbmlsBQNuaWwBB3Rocm93SWYCCWNvbmRpdGlvbgVlcnJvcgMFCWNvbmRpdGlvbgkAAgEFBWVycm9yBgEIY2hhbmdlQnkCA2tleQV2YWx1ZQkBCHdyaXRlSW50AgUDa2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAUFdmFsdWUAC2NvbmZpZ1N0b3JlAgZjb25maWcADWNvbmZpZ0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFC2NvbmZpZ1N0b3JlABJtYXliZU9yYWNsZUFkZHJlc3MEByRtYXRjaDAJAJ0IAgUNY29uZmlnQWRkcmVzcwIOb3JhY2xlX2FkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQABkhFSUdIVAUGaGVpZ2h0AAJ2ZAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEXZpcmVzX2Rpc3RyaWJ1dG9yAhViYWQgdmlyZXMgZGlzdHJpYnV0b3IAEHByb3RlY3RlZFJlc2VydmUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MCEXByb3RlY3RlZF9yZXNlcnZlAAVtYWluMQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIFbWFpbjEAC3VzZHRSZXNlcnZlCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgt1c2R0UmVzZXJ2ZQALdXNkY1Jlc2VydmUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCC3VzZGNSZXNlcnZlAANhY2MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCA2FjYwAOdXNkblZlc3RpbmdBbGwJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCDnVzZG5WZXN0aW5nQWxsAAt1c2RuVmVzdGluZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwILdXNkblZlc3RpbmcAC3VzZG5Bc3NldElkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgt1c2RuQXNzZXRJZAAJdXNkbkJvbnVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAgVib251cwEKbW92ZVN0cmVhbQUDcnNyBmFjdGlvbgRmcm9tBnN0cmluZwNhbXQJAPwHBAUCdmQCBG1vdmUJAMwIAgUDcnNyCQDMCAIFBmFjdGlvbgkAzAgCBQRmcm9tCQDMCAIFBnN0cmluZwkAzAgCBQNhbXQFA25pbAUDbmlsAQlvcEFsbG93ZWQCAm9wCmFzc2V0SWRTdHIEByRtYXRjaDAJAPwHBAUNY29uZmlnQWRkcmVzcwIJb3BBbGxvd2VkCQDMCAIFCmFzc2V0SWRTdHIJAMwIAgUCb3AFA25pbAUDbmlsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDADBQFiBgkAAgECC25vdCBhbGxvd2VkCQACAQIhb3BBbGxvd2VkOiB1bmV4cGVjdGVkIHJlc3VsdCB0eXBlAQphZHZpc2VVc2VyAQNhY2MECWRhdGFXaGFsZQkBCGFzU3RyaW5nAQkA/AcEBQt1c2RuVmVzdGluZwIHYWR2aXNlVQkAzAgCBQNhY2MFA25pbAUDbmlsAwkAAAIFCWRhdGFXaGFsZQUJZGF0YVdoYWxlBAdkYXRhQWxsCQEIYXNTdHJpbmcBCQD8BwQFDnVzZG5WZXN0aW5nQWxsAgdhZHZpc2VVCQDMCAIFA2FjYwUDbmlsBQNuaWwDCQAAAgUHZGF0YUFsbAUHZGF0YUFsbAkArAICCQCsAgIFCWRhdGFXaGFsZQIDIHwgBQdkYXRhQWxsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAFpAQRpbml0CQRjb25mAXQBYwh2ZXN0bkFsbAdhY2NvdW50BG1haW4JdXNkbkFzc2V0BWJvbnVzBXZlc3RuAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQISb25seSBzZWxmIGNhbiBpbml0CQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgULY29uZmlnU3RvcmUFBGNvbmYJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAgt1c2R0UmVzZXJ2ZQUBdAkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwICC3VzZGNSZXNlcnZlBQFjCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIOdXNkblZlc3RpbmdBbGwFCHZlc3RuQWxsCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgILdXNkblZlc3RpbmcFBXZlc3RuCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIDYWNjBQdhY2NvdW50CQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIFbWFpbjEFBG1haW4JAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCAgt1c2RuQXNzZXRJZAUJdXNkbkFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgVib251cwUFYm9udXMFA25pbAFpAQ1jb252ZXJ0VG9VU0ROAAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIKAQdtb3ZlUnNyAQNyc3IEB3Jlc2VydmUJARFAZXh0ck5hdGl2ZSgxMDYyKQEFA3JzcgQHYXNzZXRJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUHcmVzZXJ2ZQIHYXNzZXRJZAQGY2hlY2tzCQEJb3BBbGxvd2VkAgIOb3BlbkNvbGxhdGVyYWwFB2Fzc2V0SWQDCQAAAgUGY2hlY2tzBQZjaGVja3MDAwkBAiE9AgUDcnNyCQClCAEFC3VzZHRSZXNlcnZlCQECIT0CBQNyc3IJAKUIAQULdXNkY1Jlc2VydmUHCQACAQIPaW52YWxpZCByZXNlcnZlBANzaEMJAPwHBAUCdmQCCnN5bmNIZWlnaHQJAMwIAgUDcnNyBQNuaWwFA25pbAMJAAACBQNzaEMFA3NoQwQLJHQwNDIzMDQzMTQJAQZhc0ludDIBCQD8BwQFB3Jlc2VydmUCE3N0b3JlZERlcG9zaXRCb3Jyb3cFA25pbAUDbmlsBAx0b3RhbERlcG9zaXQIBQskdDA0MjMwNDMxNAJfMQQJdG90YWxEZWJ0CAULJHQwNDIzMDQzMTQCXzIEBHV0aWwDCQBmAgUMdG90YWxEZXBvc2l0AAAJAJcDAQkAzAgCBQtmYWN0b3JzQmFzZQkAzAgCCQBrAwUJdG90YWxEZWJ0BQtmYWN0b3JzQmFzZQUMdG90YWxEZXBvc2l0BQNuaWwAAAQNdXRpbFRocmVzaG9sZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1jb25maWdBZGRyZXNzCQCsAgIFB2Fzc2V0SWQCGV9vcGVuX2NvbGxhdGVyYWxfdGhyZXNvbGQA6AcDCQBmAgUNdXRpbFRocmVzaG9sZAUEdXRpbAkAAgECHW5vdCBhbGxvd2VkOiB1dGlsIDwgdGhyZXNob2xkBANkZXAJAQVhc0ludAEJAPwHBAUHcmVzZXJ2ZQIOdXNlckRlcG9zaXRVU0QJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwEBG1vdmUEAnMzCQD8BwQFB3Jlc2VydmUCEnRyYW5zZmVyQVRva2Vuc0ZvcgkAzAgCBQdhZGRyZXNzCQDMCAIFA2FjYwkAzAgCBQNkZXAFA25pbAUDbmlsAwkAAAIFAnMzBQJzMwQEcFJ3MwkBCm1vdmVTdHJlYW0FBQNyc3ICB2RlcG9zaXQFB2FkZHJlc3MFA2FjYwUDZGVwAwkAAAIFBHBSdzMFBHBSdzMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUEbW92ZQUEbW92ZQUDZGVwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJtdwkA/AcEBQt1c2RuVmVzdGluZwISc3RhcnRWZXN0aW5nQWxsRm9yCQDMCAIJAKUIAQgFAWkGY2FsbGVyBQNuaWwFA25pbAMJAAACBQJtdwUCbXcEAm10CQEFYXNJbnQBCQEHbW92ZVJzcgEJAKUIAQULdXNkdFJlc2VydmUDCQAAAgUCbXQFAm10BAJtYwkBBWFzSW50AQkBB21vdmVSc3IBCQClCAEFC3VzZGNSZXNlcnZlAwkAAAIFAm1jBQJtYwQIZGVwVG90YWwJAGQCBQJtdAUCbWMEBXJlaGFiBAd1c2RuQW10CQBrAwUIZGVwVG90YWwJAGQCBQtmYWN0b3JzQmFzZQUJdXNkbkJvbnVzBQtmYWN0b3JzQmFzZQQCd2QJAPwHBAUQcHJvdGVjdGVkUmVzZXJ2ZQIPd2l0aGRyYXdUb01haW4yCQDMCAIFA2FjYwkAzAgCBQt1c2RuQXNzZXRJZAkAzAgCBQd1c2RuQW10BQNuaWwFA25pbAMJAAACBQJ3ZAUCd2QEBXJlaGFiCQD8BwQFDnVzZG5WZXN0aW5nQWxsAgphY2NvdW50Rm9yCQDMCAIFB2FkZHJlc3MFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQt1c2RuQXNzZXRJZAUHdXNkbkFtdAUDbmlsAwkAAAIFBXJlaGFiBQVyZWhhYgUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQVyZWhhYgUFcmVoYWIECyR0MDU1NDY1NjA4CQEGYXNJbnQyAQkA/AcEBQVtYWluMQIIaGVhbHRoT2YJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwEAmJwCAULJHQwNTU0NjU2MDgCXzEEA2JwdQgFCyR0MDU1NDY1NjA4Al8yAwkAZgIFAmJwCQBoAgBkCQBlAgUCYnAFA2JwdQkAAgECKm5vdCBlbm91Z2ggYWRkcmVzcyBoZWFsdGggYWZ0ZXIgbW92ZTogPCAxJQQLJHQwNTcwNjU3NzIJAQZhc0ludDIBCQD8BwQFBW1haW4xAghoZWFsdGhPZgkAzAgCBQNhY2MFA25pbAUDbmlsBAZicF9hY2MIBQskdDA1NzA2NTc3MgJfMQQHYnB1X2FjYwgFCyR0MDU3MDY1NzcyAl8yAwkAZgIFBmJwX2FjYwkAaAIAZAkAZQIFBmJwX2FjYwUHYnB1X2FjYwkAAgECJm5vdCBlbm91Z2ggYWNjIGhlYWx0aCBhZnRlciBtb3ZlOiA8IDElCQDMCAIJAQhjaGFuZ2VCeQIJAKwCAgkArAICBQdhZGRyZXNzAgpfbWlncmF0ZWRfCQERQGV4dHJOYXRpdmUoMTA1MykCBQt1c2R0UmVzZXJ2ZQIHYXNzZXRJZAUCbXQJAMwIAgkBCGNoYW5nZUJ5AgkArAICCQCsAgIFB2FkZHJlc3MCCl9taWdyYXRlZF8JARFAZXh0ck5hdGl2ZSgxMDUzKQIFC3VzZGNSZXNlcnZlAgdhc3NldElkBQJtYwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFXdpdGhkcmF3VmVzdGVkQWxsVVNETgIFd2hhbGUHcmVndWxhcgQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIECXdoYWxlUGFydAMFB3JlZ3VsYXIJAQVhc0ludAEJAPwHBAUOdXNkblZlc3RpbmdBbGwCE3dpdGhkcmF3VmVzdGVkRm9yVG8JAMwIAgUHYWRkcmVzcwkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAAAAwkAAAIFCXdoYWxlUGFydAUJd2hhbGVQYXJ0BAdyZWdQYXJ0AwUFd2hhbGUJAQVhc0ludAEJAPwHBAULdXNkblZlc3RpbmcCE3dpdGhkcmF3VmVzdGVkRm9yVG8JAMwIAgUHYWRkcmVzcwkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAAAAwkAAAIFB3JlZ1BhcnQFB3JlZ1BhcnQJAJQKAgUDbmlsCQBkAgUJd2hhbGVQYXJ0BQdyZWdQYXJ0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFXdpdGhkcmF3VmVzdGVkQWxsU1VSRgIFd2hhbGUHcmVndWxhcgkAAgECBHRvZG8At7yqUg==", "chainId": 87, "height": 3281358, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4jodhEYGkCwQb2G2HEeBuw2xN4oya1H8JWoLxdFsaMtB Next: 4Tfr9dFptSy2Lz2ckrKXiQkHfXcCFvp7KKaZo4rhzbei Diff:
OldNewDifferences
210210 let bpu_acc = $t057065772._2
211211 if ((bp_acc > (100 * (bp_acc - bpu_acc))))
212212 then throw("not enough acc health after move: < 1%")
213- else [writeConstInt(((address + "_migrated_") + getStringValue(usdtReserve, "assetId")), mt), writeConstInt(((address + "_migrated_") + getStringValue(usdcReserve, "assetId")), mc)]
213+ else [changeBy(((address + "_migrated_") + getStringValue(usdtReserve, "assetId")), mt), changeBy(((address + "_migrated_") + getStringValue(usdcReserve, "assetId")), mc)]
214214 }
215215 }
216216 else throw("Strict value is not equal to itself.")
245245
246246
247247 @Callable(i)
248-func withdrawVestedAllSURF (whale,regular) = throw("tbd")
248+func withdrawVestedAllSURF (whale,regular) = throw("todo")
249249
250250
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 @Callable(i)
124124 func init (conf,t,c,vestnAll,account,main,usdnAsset,bonus,vestn) = if ((i.caller != this))
125125 then throw("only self can init")
126126 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)]
127127
128128
129129
130130 @Callable(i)
131131 func convertToUSDN () = {
132132 let address = toString(i.caller)
133133 func moveRsr (rsr) = {
134134 let reserve = addressFromStringValue(rsr)
135135 let assetId = getStringValue(reserve, "assetId")
136136 let checks = opAllowed("openCollateral", assetId)
137137 if ((checks == checks))
138138 then if (if ((rsr != toString(usdtReserve)))
139139 then (rsr != toString(usdcReserve))
140140 else false)
141141 then throw("invalid reserve")
142142 else {
143143 let shC = invoke(vd, "syncHeight", [rsr], nil)
144144 if ((shC == shC))
145145 then {
146146 let $t042304314 = asInt2(invoke(reserve, "storedDepositBorrow", nil, nil))
147147 let totalDeposit = $t042304314._1
148148 let totalDebt = $t042304314._2
149149 let util = if ((totalDeposit > 0))
150150 then min([factorsBase, fraction(totalDebt, factorsBase, totalDeposit)])
151151 else 0
152152 let utilThreshold = valueOrElse(getInteger(configAddress, (assetId + "_open_collateral_thresold")), 1000)
153153 if ((utilThreshold > util))
154154 then throw("not allowed: util < threshold")
155155 else {
156156 let dep = asInt(invoke(reserve, "userDepositUSD", [address], nil))
157157 let move = {
158158 let s3 = invoke(reserve, "transferATokensFor", [address, acc, dep], nil)
159159 if ((s3 == s3))
160160 then {
161161 let pRw3 = moveStream(rsr, "deposit", address, acc, dep)
162162 if ((pRw3 == pRw3))
163163 then unit
164164 else throw("Strict value is not equal to itself.")
165165 }
166166 else throw("Strict value is not equal to itself.")
167167 }
168168 if ((move == move))
169169 then dep
170170 else throw("Strict value is not equal to itself.")
171171 }
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 let mw = invoke(usdnVesting, "startVestingAllFor", [toString(i.caller)], nil)
179179 if ((mw == mw))
180180 then {
181181 let mt = asInt(moveRsr(toString(usdtReserve)))
182182 if ((mt == mt))
183183 then {
184184 let mc = asInt(moveRsr(toString(usdcReserve)))
185185 if ((mc == mc))
186186 then {
187187 let depTotal = (mt + mc)
188188 let rehab = {
189189 let usdnAmt = fraction(depTotal, (factorsBase + usdnBonus), factorsBase)
190190 let wd = invoke(protectedReserve, "withdrawToMain2", [acc, usdnAssetId, usdnAmt], nil)
191191 if ((wd == wd))
192192 then {
193193 let rehab = invoke(usdnVestingAll, "accountFor", [address], [AttachedPayment(fromBase58String(usdnAssetId), usdnAmt)])
194194 if ((rehab == rehab))
195195 then unit
196196 else throw("Strict value is not equal to itself.")
197197 }
198198 else throw("Strict value is not equal to itself.")
199199 }
200200 if ((rehab == rehab))
201201 then {
202202 let $t055465608 = asInt2(invoke(main1, "healthOf", [address], nil))
203203 let bp = $t055465608._1
204204 let bpu = $t055465608._2
205205 if ((bp > (100 * (bp - bpu))))
206206 then throw("not enough address health after move: < 1%")
207207 else {
208208 let $t057065772 = asInt2(invoke(main1, "healthOf", [acc], nil))
209209 let bp_acc = $t057065772._1
210210 let bpu_acc = $t057065772._2
211211 if ((bp_acc > (100 * (bp_acc - bpu_acc))))
212212 then throw("not enough acc health after move: < 1%")
213- else [writeConstInt(((address + "_migrated_") + getStringValue(usdtReserve, "assetId")), mt), writeConstInt(((address + "_migrated_") + getStringValue(usdcReserve, "assetId")), mc)]
213+ else [changeBy(((address + "_migrated_") + getStringValue(usdtReserve, "assetId")), mt), changeBy(((address + "_migrated_") + getStringValue(usdcReserve, "assetId")), mc)]
214214 }
215215 }
216216 else throw("Strict value is not equal to itself.")
217217 }
218218 else throw("Strict value is not equal to itself.")
219219 }
220220 else throw("Strict value is not equal to itself.")
221221 }
222222 else throw("Strict value is not equal to itself.")
223223 }
224224
225225
226226
227227 @Callable(i)
228228 func withdrawVestedAllUSDN (whale,regular) = {
229229 let address = toString(i.caller)
230230 let whalePart = if (regular)
231231 then asInt(invoke(usdnVestingAll, "withdrawVestedForTo", [address, address], nil))
232232 else 0
233233 if ((whalePart == whalePart))
234234 then {
235235 let regPart = if (whale)
236236 then asInt(invoke(usdnVesting, "withdrawVestedForTo", [address, address], nil))
237237 else 0
238238 if ((regPart == regPart))
239239 then $Tuple2(nil, (whalePart + regPart))
240240 else throw("Strict value is not equal to itself.")
241241 }
242242 else throw("Strict value is not equal to itself.")
243243 }
244244
245245
246246
247247 @Callable(i)
248-func withdrawVestedAllSURF (whale,regular) = throw("tbd")
248+func withdrawVestedAllSURF (whale,regular) = throw("todo")
249249
250250

github/deemru/w8io/6500d08 
36.02 ms