tx · c9okMe8f9WB98km9MkqULxiBt4M2WYrzNreEdzQSFY2

3P3VTtUiwJ91Ly7vwtRVKv5NkNNiPoWe7oP:  -0.00700000 Waves

2022.09.01 16:56 [3275644] smart account 3P3VTtUiwJ91Ly7vwtRVKv5NkNNiPoWe7oP > SELF 0.00000000 Waves

{ "type": 13, "id": "c9okMe8f9WB98km9MkqULxiBt4M2WYrzNreEdzQSFY2", "fee": 700000, "feeAssetId": null, "timestamp": 1662040634923, "version": 1, "sender": "3P3VTtUiwJ91Ly7vwtRVKv5NkNNiPoWe7oP", "senderPublicKey": "5q25v77G7b2qAcdzH88H2Y7mxXnddbN9ZYKCn3Q8W6Pi", "proofs": [ "3Ggdu3h1bJ7Q1BDqhH7dFxNLEKpfsekqWhsGsSvBioZoCax4286YR9DmdR6wTJhLuGnygVM4vhXkY1bWNP1kodae" ], "script": "base64:BgIeCAISBgoECAgICBIAEgMKAQgSABIECgIICBIDCgEIIAEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQ13cml0ZUNvbnN0SW50AgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQh3cml0ZUludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQhjaGFuZ2VCeQIDa2V5BXZhbHVlCQEId3JpdGVJbnQCBQNrZXkJAGQCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAABQV2YWx1ZQALY29uZmlnU3RvcmUCBmNvbmZpZwANY29uZmlnQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwULY29uZmlnU3RvcmUAEm1heWJlT3JhY2xlQWRkcmVzcwQHJG1hdGNoMAkAnQgCBQ1jb25maWdBZGRyZXNzAg5vcmFjbGVfYWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAAGSEVJR0hUBQZoZWlnaHQBCW9wQWxsb3dlZAECb3AEByRtYXRjaDAJAPwHBAUNY29uZmlnQWRkcmVzcwIJb3BBbGxvd2VkCQDMCAICBHVzZG4JAMwIAgUCb3AFA25pbAUDbmlsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDADBQFiBgkAAgECC25vdCBhbGxvd2VkCQACAQIhb3BBbGxvd2VkOiB1bmV4cGVjdGVkIHJlc3VsdCB0eXBlAQhtYWluT25seQEBaQMJAQhjb250YWlucwIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MCBG1haW4JAKUIAQgFAWkGY2FsbGVyBgkAAgECEG9ubHkgbWFpbiBjYW4gZG8BB3Rocm93SWYCCWNvbmRpdGlvbgVlcnJvcgMFCWNvbmRpdGlvbgkAAgEFBWVycm9yBgAJVElNRUZSQU1FAKALAAR1c2RjCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgR1c2RjAAR1c2R0CQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgR1c2R0AAR1c2RuCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgR1c2RuARFhZGRyZXNzQXNzZXRTdG9yZQIHYWRkcmVzcwdhc3NldElkCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwUHYXNzZXRJZAEVYWRkcmVzc0Fzc2V0VVNETlN0b3JlAgdhZGRyZXNzB2Fzc2V0SWQJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAV8FB2Fzc2V0SWQCBV91c2RuARVhZGRyZXNzVG90YWxVU0ROU3RvcmUBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIFX3VzZG4BD3RvdGFsQXNzZXRTdG9yZQEHYXNzZXRJZAkArAICAgZ0b3RhbF8FB2Fzc2V0SWQBEXZlc3RpbmdTdGFydFN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCDl92ZXN0aW5nX3N0YXJ0ARN2ZXN0aW5nQ2xhaW1lZFN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCCF9jbGFpbWVkARl3aXRoZHJhd25XaXRoaW5FcG9jaFN0b3JlAwplcG9jaFN0YXJ0B2FkZHJlc3MHYXNzZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAV8FB2Fzc2V0SWQCAV8JAKQDAQUKZXBvY2hTdGFydAIXX3dpdGhkcmF3bl93aXRoaW5fZXBvY2gAEWN1cnJlbnRFcG9jaFN0YXJ0CQBoAgkAaQIFBkhFSUdIVAUJVElNRUZSQU1FBQlUSU1FRlJBTUUAEG1pbmlNYXhDbGFpbVVzZG4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUNY29uZmlnQWRkcmVzcwISbWluaW1heFZlc3RpbmdVc2RuCQBoAgDoBwDAhD0ADnRvdGFsVVNETlN0b3JlAgp0b3RhbF91c2RuAA12ZXN0aW5nUGVyaW9kCQBoAgCgCwDtAgETd2l0aGRyYXduVG9kYXlTdG9yZQEHYWRkcmVzcwkBGXdpdGhkcmF3bldpdGhpbkVwb2NoU3RvcmUDBRFjdXJyZW50RXBvY2hTdGFydAUHYWRkcmVzcwUEdXNkbgEOd2l0aGRyYXduVG9kYXkBB2FkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBE3dpdGhkcmF3blRvZGF5U3RvcmUBBQdhZGRyZXNzAAABEnVzZXJWZXN0aW5nQmFsYW5jZQEHYWRkcmVzcwQFY1VTRE4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFWFkZHJlc3NBc3NldFVTRE5TdG9yZQIFB2FkZHJlc3MFBHVzZGMAAAQFdFVTRE4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFWFkZHJlc3NBc3NldFVTRE5TdG9yZQIFB2FkZHJlc3MFBHVzZHQAAAQMdG90YWxWZXN0aW5nCQBkAgUFY1VTRE4FBXRVU0ROBA5hbHJlYWR5Q2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETdmVzdGluZ0NsYWltZWRTdG9yZQEFB2FkZHJlc3MAAAQMY2xhaW1lZFRvZGF5CQEOd2l0aGRyYXduVG9kYXkBBQdhZGRyZXNzBAckbWF0Y2gwCQCaCAIFBHRoaXMJARF2ZXN0aW5nU3RhcnRTdG9yZQEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIDSW50BAx2ZXN0aW5nU3RhcnQFByRtYXRjaDAECGVsaWdpYmxlAwkAZgIFBkhFSUdIVAkAZAIFDHZlc3RpbmdTdGFydAUNdmVzdGluZ1BlcmlvZAUMdG90YWxWZXN0aW5nCQBrAwUMdG90YWxWZXN0aW5nCQBlAgUGSEVJR0hUBQx2ZXN0aW5nU3RhcnQFDXZlc3RpbmdQZXJpb2QEDmF2YWlsYWJsZVRvZGF5CQCXAwEJAMwIAgkAZQIFCGVsaWdpYmxlBQ5hbHJlYWR5Q2xhaW1lZAkAzAgCCQBlAgkAlgMBCQDMCAIFEG1pbmlNYXhDbGFpbVVzZG4JAMwIAgkAaQIFDHRvdGFsVmVzdGluZwDtAgUDbmlsBQxjbGFpbWVkVG9kYXkFA25pbAkAmQoHBQx0b3RhbFZlc3RpbmcFDmFscmVhZHlDbGFpbWVkBQhlbGlnaWJsZQUMdmVzdGluZ1N0YXJ0CQBkAgUMdmVzdGluZ1N0YXJ0BQ12ZXN0aW5nUGVyaW9kBQxjbGFpbWVkVG9kYXkFDmF2YWlsYWJsZVRvZGF5CQCZCgcFDHRvdGFsVmVzdGluZwAAAP///////////wEA////////////AQD///////////8BAP///////////wEA////////////AQEKYWR2aXNlVXNlcgEHYWRkcmVzcwQLJHQwMzYyOTM3NDUJARJ1c2VyVmVzdGluZ0JhbGFuY2UBBQdhZGRyZXNzBAx0b3RhbFZlc3RpbmcIBQskdDAzNjI5Mzc0NQJfMQQOYWxyZWFkeUNsYWltZWQIBQskdDAzNjI5Mzc0NQJfMgQIZWxpZ2libGUIBQskdDAzNjI5Mzc0NQJfMwQFc3RhcnQIBQskdDAzNjI5Mzc0NQJfNAQDZW5kCAULJHQwMzYyOTM3NDUCXzUEDGNsYWltZWRUb2RheQgFCyR0MDM2MjkzNzQ1Al82BA5hdmFpbGFibGVUb2RheQgFCyR0MDM2MjkzNzQ1Al83BAFjCQELdmFsdWVPckVsc2UCCQCfCAEJARFhZGRyZXNzQXNzZXRTdG9yZQIFB2FkZHJlc3MFBHVzZGMAAAQBdAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQERYWRkcmVzc0Fzc2V0U3RvcmUCBQdhZGRyZXNzBQR1c2R0AAAJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCWFkZHJlc3M6IAUHYWRkcmVzcwIQLCB0b3RhbFZlc3Rpbmc6IAkApAMBBQx0b3RhbFZlc3RpbmcCEiwgYWxyZWFkeUNsYWltZWQ6IAkApAMBBQ5hbHJlYWR5Q2xhaW1lZAIMLCBlbGlnaWJsZTogCQCkAwEFCGVsaWdpYmxlAg8sIHN0YXJ0SGVpZ2h0OiAJAKQDAQUFc3RhcnQCDSwgZW5kSGVpZ2h0OiAJAKQDAQUDZW5kAg0sIG5vd0hlaWdodDogCQCkAwEFBkhFSUdIVAIRLCB1c2RjX21pZ3JhdGVkOiAJAKQDAQUBYwIRLCB1c2R0X21pZ3JhdGVkOiAJAKQDAQUBdAIQLCB1c2RjX2Fzc2V0SWQ6IAUEdXNkYwIQLCB1c2R0X2Fzc2V0SWQ6IAUEdXNkdAIOLCBkYWlseUxpbWl0OiAJAKQDAQkAlgMBCQDMCAIJAGkCBQx0b3RhbFZlc3RpbmcA7QIJAMwIAgUQbWluaU1heENsYWltVXNkbgUDbmlsAhAsIGNsYWltZWRUb2RheTogCQCkAwEFDGNsYWltZWRUb2RheQISLCBhdmFpbGFibGVUb2RheTogCQCkAwEFDmF2YWlsYWJsZVRvZGF5ARZ3aXRoZHJhd1Zlc3RlZEludGVybmFsAgdhZGRyZXNzAnRvBAZjaGVja3MJAQlvcEFsbG93ZWQBAhdsaXF1aWRhb193aXRoZHJhd1Zlc3RlZAMJAAACBQZjaGVja3MFBmNoZWNrcwQLJHQwNDY4NzQ4MDMJARJ1c2VyVmVzdGluZ0JhbGFuY2UBBQdhZGRyZXNzBAx0b3RhbFZlc3RpbmcIBQskdDA0Njg3NDgwMwJfMQQOYWxyZWFkeUNsYWltZWQIBQskdDA0Njg3NDgwMwJfMgQIZWxpZ2libGUIBQskdDA0Njg3NDgwMwJfMwQFc3RhcnQIBQskdDA0Njg3NDgwMwJfNAQDZW5kCAULJHQwNDY4NzQ4MDMCXzUEDGNsYWltZWRUb2RheQgFCyR0MDQ2ODc0ODAzAl82BA5hdmFpbGFibGVUb2RheQgFCyR0MDQ2ODc0ODAzAl83AwkAZgIAAAUFc3RhcnQJAAIBAhJubyB2ZXN0aW5nIGVuYWJsZWQDCQBnAgAABQ5hdmFpbGFibGVUb2RheQkAAgECEW5vdGhpbmcgYXZhaWxhYmxlCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCdG8FDmF2YWlsYWJsZVRvZGF5CQDZBAEFBHVzZG4JAMwIAgkBDEludGVnZXJFbnRyeQIJARN2ZXN0aW5nQ2xhaW1lZFN0b3JlAQUHYWRkcmVzcwkAZAIFDmFscmVhZHlDbGFpbWVkBQ5hdmFpbGFibGVUb2RheQkAzAgCCQEIY2hhbmdlQnkCCQETd2l0aGRyYXduVG9kYXlTdG9yZQEFB2FkZHJlc3MFDmF2YWlsYWJsZVRvZGF5BQNuaWwFDmF2YWlsYWJsZVRvZGF5CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJzdgEHYWRkcmVzcwQGY2hlY2tzCQEJb3BBbGxvd2VkAQIVbGlxdWlkYW9fc3RhcnRWZXN0aW5nAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAp1c2VyVFN0b3JlCQERYWRkcmVzc0Fzc2V0U3RvcmUCBQdhZGRyZXNzBQR1c2R0BAp1c2VyQ1N0b3JlCQERYWRkcmVzc0Fzc2V0U3RvcmUCBQdhZGRyZXNzBQR1c2RjBApjb252ZXJ0ZWRDCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCnVzZXJDU3RvcmUAAAQKY29udmVydGVkVAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQp1c2VyVFN0b3JlAAADCQEJaXNEZWZpbmVkAQkAmggCBQR0aGlzCQERdmVzdGluZ1N0YXJ0U3RvcmUBBQdhZGRyZXNzBQNuaWwEByRtYXRjaDAJAJoIAgUEdGhpcwkBFWFkZHJlc3NUb3RhbFVTRE5TdG9yZQEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIDSW50BA5zdGFydGVkVmVzdGluZwUHJG1hdGNoMAkAzAgCCQEIY2hhbmdlQnkCAg1jb21taXR0ZWRVU0ROBQ5zdGFydGVkVmVzdGluZwkAzAgCCQENd3JpdGVDb25zdEludAIJARF2ZXN0aW5nU3RhcnRTdG9yZQEFB2FkZHJlc3MFBkhFSUdIVAkAzAgCCQEIY2hhbmdlQnkCCQEPdG90YWxBc3NldFN0b3JlAQUEdXNkYwkBAS0BBQpjb252ZXJ0ZWRDCQDMCAIJAQtEZWxldGVFbnRyeQEFCnVzZXJDU3RvcmUJAMwIAgkBCGNoYW5nZUJ5AgkBD3RvdGFsQXNzZXRTdG9yZQEFBHVzZHQJAQEtAQUKY29udmVydGVkVAkAzAgCCQELRGVsZXRlRW50cnkBBQp1c2VyVFN0b3JlBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgYBaQEEaW5pdAQEY29uZgN0SWQDY0lkA25JZAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEm9ubHkgc2VsZiBjYW4gaW5pdAkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwIFC2NvbmZpZ1N0b3JlBQRjb25mCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIEdXNkdAUDdElkCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIEdXNkYwUDY0lkCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIEdXNkbgUDbklkBQNuaWwBaQEPc3RhcnRWZXN0aW5nQWxsAAkBAnN2AQkApQgBCAUBaQZjYWxsZXIBaQESc3RhcnRWZXN0aW5nQWxsRm9yAQdhZGRyZXNzBAdjaGVja3MwCQEIbWFpbk9ubHkBBQFpAwkAAAIFB2NoZWNrczAFB2NoZWNrczAJAQJzdgEFB2FkZHJlc3MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOd2l0aGRyYXdWZXN0ZWQABAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBFndpdGhkcmF3VmVzdGVkSW50ZXJuYWwCBQdhZGRyZXNzBQdhZGRyZXNzAWkBE3dpdGhkcmF3VmVzdGVkRm9yVG8CA2FjYwJ0bwQHY2hlY2tzMAkBCG1haW5Pbmx5AQUBaQMJAAACBQdjaGVja3MwBQdjaGVja3MwCQEWd2l0aGRyYXdWZXN0ZWRJbnRlcm5hbAIFA2FjYwUCdG8JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHYWR2aXNlVQEDYWNjCQCUCgIFA25pbAkBCmFkdmlzZVVzZXIBBQNhY2MA5VLeZA==", "chainId": 87, "height": 3275644, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HWQ5bBtUFi2Bh4KswDryoi3JKQzz9Sjn15FwnWG2A4dX Next: ENhpdGXWkxmAFgW6MXcm48mYyc2aqYsYp8Sp4MWnQXdA Diff:
OldNewDifferences
136136 }
137137
138138
139-@Callable(q)
140-func init (ad,ae,af,ag) = if ((q.caller != this))
141- then throw("only self can init")
142- else [a(g, ad), a("usdt", ae), a("usdc", af), a("usdn", ag)]
139+func ad (z,ae) = {
140+ let af = m("liquidao_withdrawVested")
141+ if ((af == af))
142+ then {
143+ let ag = O(z)
144+ let R = ag._1
145+ let S = ag._2
146+ let V = ag._3
147+ let Z = ag._4
148+ let aa = ag._5
149+ let T = ag._6
150+ let W = ag._7
151+ if ((0 > Z))
152+ then throw("no vesting enabled")
153+ else if ((0 >= W))
154+ then throw("nothing available")
155+ else $Tuple2([ScriptTransfer(addressFromStringValue(ae), W, fromBase58String(x)), IntegerEntry(F(z), (S + W)), f(M(z), W)], W)
156+ }
157+ else throw("Strict value is not equal to itself.")
158+ }
143159
144160
145-
146-@Callable(q)
147-func startVestingAll () = {
148- let z = toString(q.caller)
149- let ah = m("liquidao_startVesting")
150- if ((ah == ah))
161+func ah (z) = {
162+ let af = m("liquidao_startVesting")
163+ if ((af == af))
151164 then {
152165 let ai = y(z, w)
153166 let aj = y(z, v)
154167 let ak = valueOrElse(getInteger(this, aj), 0)
155168 let al = valueOrElse(getInteger(this, ai), 0)
156- let am = valueOrErrorMessage(getInteger(this, C(z)), "no accounted for user")
169+ if (isDefined(getInteger(this, E(z))))
170+ then nil
171+ else {
172+ let j = getInteger(this, C(z))
173+ if ($isInstanceOf(j, "Int"))
174+ then {
175+ let am = j
157176 [f("committedUSDN", am), d(E(z), l), f(D(v), -(ak)), DeleteEntry(aj), f(D(w), -(al)), DeleteEntry(ai)]
177+ }
178+ else nil
179+ }
158180 }
181+ else throw("Strict value is not equal to itself.")
182+ }
183+
184+
185+@Callable(q)
186+func init (an,ao,ap,aq) = if ((q.caller != this))
187+ then throw("only self can init")
188+ else [a(g, an), a("usdt", ao), a("usdc", ap), a("usdn", aq)]
189+
190+
191+
192+@Callable(q)
193+func startVestingAll () = ah(toString(q.caller))
194+
195+
196+
197+@Callable(q)
198+func startVestingAllFor (z) = {
199+ let ar = p(q)
200+ if ((ar == ar))
201+ then ah(z)
159202 else throw("Strict value is not equal to itself.")
160203 }
161204
163206
164207 @Callable(q)
165208 func withdrawVested () = {
166- let ah = m("liquidao_withdrawVested")
167- if ((ah == ah))
168- then {
169- let z = toString(q.caller)
170- let an = O(z)
171- let R = an._1
172- let S = an._2
173- let V = an._3
174- let Z = an._4
175- let aa = an._5
176- let T = an._6
177- let W = an._7
178- if ((0 > Z))
179- then throw("no vesting enabled")
180- else if ((0 >= W))
181- then throw("nothing available")
182- else $Tuple2([ScriptTransfer(q.caller, W, fromBase58String(x)), IntegerEntry(F(z), (S + W)), f(M(z), W)], W)
183- }
209+ let z = toString(q.caller)
210+ ad(z, z)
211+ }
212+
213+
214+
215+@Callable(q)
216+func withdrawVestedForTo (as,ae) = {
217+ let ar = p(q)
218+ if ((ar == ar))
219+ then ad(as, ae)
184220 else throw("Strict value is not equal to itself.")
185221 }
186222
187223
188224
189225 @Callable(q)
190-func accountFor (z,A,ao) = {
191- let ap = q.payments[0]
192- let ah = if (if (if (if (p(q))
193- then m("liquidao_move")
194- else false)
195- then r((toBase58String(value(ap.assetId)) != x), "usdn must be attached")
196- else false)
197- then r((ao > ap.amount), "not enough supplied")
198- else false)
199- then r(if ((A != v))
200- then (A != w)
201- else false, "only t or c")
202- else false
203- if ((ah == ah))
204- then [d(y(z, A), ao), f(B(z, A), ap.amount), f(C(z), ap.amount), f(D(A), ao), f(K, ap.amount)]
205- else throw("Strict value is not equal to itself.")
206- }
226+func adviseU (as) = $Tuple2(nil, X(as))
207227
208228
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = if (!(isDefined(getString(this, b))))
55 then StringEntry(b, c)
66 else throw(("already initialized: " + b))
77
88
99 func d (b,c) = if (!(isDefined(getInteger(this, b))))
1010 then IntegerEntry(b, c)
1111 else throw(("already initialized: " + b))
1212
1313
1414 func e (b,c) = if ((0 > c))
1515 then throw(((("writing negative value " + toString(c)) + " for key ") + b))
1616 else IntegerEntry(b, c)
1717
1818
1919 func f (b,c) = e(b, (valueOrElse(getInteger(this, b), 0) + c))
2020
2121
2222 let g = "config"
2323
2424 let h = addressFromStringValue(getStringValue(this, g))
2525
2626 let i = {
2727 let j = getString(h, "oracle_address")
2828 if ($isInstanceOf(j, "String"))
2929 then {
3030 let k = j
3131 addressFromString(k)
3232 }
3333 else unit
3434 }
3535
3636 let l = height
3737
3838 func m (n) = {
3939 let j = invoke(h, "opAllowed", ["usdn", n], nil)
4040 if ($isInstanceOf(j, "Boolean"))
4141 then {
4242 let o = j
4343 if (o)
4444 then true
4545 else throw("not allowed")
4646 }
4747 else throw("opAllowed: unexpected result type")
4848 }
4949
5050
5151 func p (q) = if (contains(getStringValue(h, "main"), toString(q.caller)))
5252 then true
5353 else throw("only main can do")
5454
5555
5656 func r (s,t) = if (s)
5757 then throw(t)
5858 else true
5959
6060
6161 let u = 1440
6262
6363 let v = getStringValue(this, "usdc")
6464
6565 let w = getStringValue(this, "usdt")
6666
6767 let x = getStringValue(this, "usdn")
6868
6969 func y (z,A) = ((z + "_") + A)
7070
7171
7272 func B (z,A) = (((z + "_") + A) + "_usdn")
7373
7474
7575 func C (z) = (z + "_usdn")
7676
7777
7878 func D (A) = ("total_" + A)
7979
8080
8181 func E (z) = (z + "_vesting_start")
8282
8383
8484 func F (z) = (z + "_claimed")
8585
8686
8787 func G (H,z,A) = (((((z + "_") + A) + "_") + toString(H)) + "_withdrawn_within_epoch")
8888
8989
9090 let I = ((l / u) * u)
9191
9292 let J = valueOrElse(getInteger(h, "minimaxVestingUsdn"), (1000 * 1000000))
9393
9494 let K = "total_usdn"
9595
9696 let L = (1440 * 365)
9797
9898 func M (z) = G(I, z, x)
9999
100100
101101 func N (z) = valueOrElse(getInteger(M(z)), 0)
102102
103103
104104 func O (z) = {
105105 let P = valueOrElse(getInteger(B(z, v)), 0)
106106 let Q = valueOrElse(getInteger(B(z, w)), 0)
107107 let R = (P + Q)
108108 let S = valueOrElse(getInteger(F(z)), 0)
109109 let T = N(z)
110110 let j = getInteger(this, E(z))
111111 if ($isInstanceOf(j, "Int"))
112112 then {
113113 let U = j
114114 let V = if ((l > (U + L)))
115115 then R
116116 else fraction(R, (l - U), L)
117117 let W = min([(V - S), (max([J, (R / 365)]) - T)])
118118 $Tuple7(R, S, V, U, (U + L), T, W)
119119 }
120120 else $Tuple7(R, 0, -1, -1, -1, -1, -1)
121121 }
122122
123123
124124 func X (z) = {
125125 let Y = O(z)
126126 let R = Y._1
127127 let S = Y._2
128128 let V = Y._3
129129 let Z = Y._4
130130 let aa = Y._5
131131 let T = Y._6
132132 let W = Y._7
133133 let ab = valueOrElse(getInteger(y(z, v)), 0)
134134 let ac = valueOrElse(getInteger(y(z, w)), 0)
135135 ((((((((((((((((((((((((((("address: " + z) + ", totalVesting: ") + toString(R)) + ", alreadyClaimed: ") + toString(S)) + ", eligible: ") + toString(V)) + ", startHeight: ") + toString(Z)) + ", endHeight: ") + toString(aa)) + ", nowHeight: ") + toString(l)) + ", usdc_migrated: ") + toString(ab)) + ", usdt_migrated: ") + toString(ac)) + ", usdc_assetId: ") + v) + ", usdt_assetId: ") + w) + ", dailyLimit: ") + toString(max([(R / 365), J]))) + ", claimedToday: ") + toString(T)) + ", availableToday: ") + toString(W))
136136 }
137137
138138
139-@Callable(q)
140-func init (ad,ae,af,ag) = if ((q.caller != this))
141- then throw("only self can init")
142- else [a(g, ad), a("usdt", ae), a("usdc", af), a("usdn", ag)]
139+func ad (z,ae) = {
140+ let af = m("liquidao_withdrawVested")
141+ if ((af == af))
142+ then {
143+ let ag = O(z)
144+ let R = ag._1
145+ let S = ag._2
146+ let V = ag._3
147+ let Z = ag._4
148+ let aa = ag._5
149+ let T = ag._6
150+ let W = ag._7
151+ if ((0 > Z))
152+ then throw("no vesting enabled")
153+ else if ((0 >= W))
154+ then throw("nothing available")
155+ else $Tuple2([ScriptTransfer(addressFromStringValue(ae), W, fromBase58String(x)), IntegerEntry(F(z), (S + W)), f(M(z), W)], W)
156+ }
157+ else throw("Strict value is not equal to itself.")
158+ }
143159
144160
145-
146-@Callable(q)
147-func startVestingAll () = {
148- let z = toString(q.caller)
149- let ah = m("liquidao_startVesting")
150- if ((ah == ah))
161+func ah (z) = {
162+ let af = m("liquidao_startVesting")
163+ if ((af == af))
151164 then {
152165 let ai = y(z, w)
153166 let aj = y(z, v)
154167 let ak = valueOrElse(getInteger(this, aj), 0)
155168 let al = valueOrElse(getInteger(this, ai), 0)
156- let am = valueOrErrorMessage(getInteger(this, C(z)), "no accounted for user")
169+ if (isDefined(getInteger(this, E(z))))
170+ then nil
171+ else {
172+ let j = getInteger(this, C(z))
173+ if ($isInstanceOf(j, "Int"))
174+ then {
175+ let am = j
157176 [f("committedUSDN", am), d(E(z), l), f(D(v), -(ak)), DeleteEntry(aj), f(D(w), -(al)), DeleteEntry(ai)]
177+ }
178+ else nil
179+ }
158180 }
181+ else throw("Strict value is not equal to itself.")
182+ }
183+
184+
185+@Callable(q)
186+func init (an,ao,ap,aq) = if ((q.caller != this))
187+ then throw("only self can init")
188+ else [a(g, an), a("usdt", ao), a("usdc", ap), a("usdn", aq)]
189+
190+
191+
192+@Callable(q)
193+func startVestingAll () = ah(toString(q.caller))
194+
195+
196+
197+@Callable(q)
198+func startVestingAllFor (z) = {
199+ let ar = p(q)
200+ if ((ar == ar))
201+ then ah(z)
159202 else throw("Strict value is not equal to itself.")
160203 }
161204
162205
163206
164207 @Callable(q)
165208 func withdrawVested () = {
166- let ah = m("liquidao_withdrawVested")
167- if ((ah == ah))
168- then {
169- let z = toString(q.caller)
170- let an = O(z)
171- let R = an._1
172- let S = an._2
173- let V = an._3
174- let Z = an._4
175- let aa = an._5
176- let T = an._6
177- let W = an._7
178- if ((0 > Z))
179- then throw("no vesting enabled")
180- else if ((0 >= W))
181- then throw("nothing available")
182- else $Tuple2([ScriptTransfer(q.caller, W, fromBase58String(x)), IntegerEntry(F(z), (S + W)), f(M(z), W)], W)
183- }
209+ let z = toString(q.caller)
210+ ad(z, z)
211+ }
212+
213+
214+
215+@Callable(q)
216+func withdrawVestedForTo (as,ae) = {
217+ let ar = p(q)
218+ if ((ar == ar))
219+ then ad(as, ae)
184220 else throw("Strict value is not equal to itself.")
185221 }
186222
187223
188224
189225 @Callable(q)
190-func accountFor (z,A,ao) = {
191- let ap = q.payments[0]
192- let ah = if (if (if (if (p(q))
193- then m("liquidao_move")
194- else false)
195- then r((toBase58String(value(ap.assetId)) != x), "usdn must be attached")
196- else false)
197- then r((ao > ap.amount), "not enough supplied")
198- else false)
199- then r(if ((A != v))
200- then (A != w)
201- else false, "only t or c")
202- else false
203- if ((ah == ah))
204- then [d(y(z, A), ao), f(B(z, A), ap.amount), f(C(z), ap.amount), f(D(A), ao), f(K, ap.amount)]
205- else throw("Strict value is not equal to itself.")
206- }
226+func adviseU (as) = $Tuple2(nil, X(as))
207227
208228

github/deemru/w8io/3ef1775 
44.34 ms