tx · 3LB3tmSRUfrmX3LjX6WwGzUsF7o4VWnoYtGsiBYNjQcU

3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1:  -0.01000000 Waves

2024.01.09 14:07 [2923854] smart account 3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1 > SELF 0.00000000 Waves

{ "type": 13, "id": "3LB3tmSRUfrmX3LjX6WwGzUsF7o4VWnoYtGsiBYNjQcU", "fee": 1000000, "feeAssetId": null, "timestamp": 1704798458550, "version": 2, "chainId": 84, "sender": "3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1", "senderPublicKey": "7c3qLtcJ7EaPS2JDjXv8MBbd4kpyc6R27wcn5GgvZhur", "proofs": [ "2MWEvck6aaya2U5XDx33AfMFcxHVPNJadrCqMnowVAaoGJocSDG3PMPDVbXj7HFWKENUyA6i1Djq2MPRExvVodKJ" ], "script": "base64:BgIKCAISBgoECAEBARUADGNvbnRyYWN0RmlsZQIQdmVzdGluZ19uZW8ucmlkZQADU0VQAgJfXwAISURTX0xJU1QJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEJAMwIAgASCQDMCAIAEwkAzAgCABQJAMwIAgAVCQDMCAIAFgkAzAgCABcJAMwIAgAYCQDMCAIAGQkAzAgCABoJAMwIAgAbCQDMCAIAHAkAzAgCAB0FA25pbAARTUFYX1ZFU1RJTkdfQ09VTlQJAJADAQUISURTX0xJU1QBCHRocm93RXJyAQNtc2cJAAIBCQCsAgIJAKwCAgUMY29udHJhY3RGaWxlAgI6IAUDbXNnAAprZXlBc3NldElkCQC5CQIJAMwIAgICJXMJAMwIAgIHYXNzZXRJZAUDbmlsBQNTRVAADWFzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKa2V5QXNzZXRJZAIFV0FWRVMADGFzc2V0SWRCeXRlcwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nAAxrZXlBZG1pbkxpc3QJALkJAgkAzAgCAgIlcwkAzAgCAglhZG1pbkxpc3QFA25pbAUDU0VQAAlhZG1pbkxpc3QEByRtYXRjaDAJAJ0IAgUEdGhpcwUMa2V5QWRtaW5MaXN0AwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkAtQkCBQFzBQNTRVAFA25pbAEUaXNWYWxpZEFkZHJlc3NTdHJpbmcBDWFkZHJlc3NTdHJpbmcEByRtYXRjaDAJAKYIAQUNYWRkcmVzc1N0cmluZwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgcBDmtleVVzZXJWZXN0aW5nAgt1c2VyQWRkcmVzcwJpZAQGY2hlY2tzCQDMCAIDCQEUaXNWYWxpZEFkZHJlc3NTdHJpbmcBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhVhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAkAzAgCAwMJAGcCBQJpZAAACQBmAgURTUFYX1ZFU1RJTkdfQ09VTlQFAmlkBwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhZpZCBzaG91bGQgYmUgbGVzcyB0aGFuCQDMCAIJAKQDAQURTUFYX1ZFU1RJTkdfQ09VTlQJAMwIAgIEZ290OgkAzAgCCQCkAwEFAmlkBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAuQkCCQDMCAICBCVzJWQJAMwIAgULdXNlckFkZHJlc3MJAMwIAgkApAMBBQJpZAUDbmlsBQNTRVAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEWZvcm1hdFVzZXJWZXN0aW5nAw12ZXN0aW5nQW1vdW50CnN0YXJ0QmxvY2sKbG9ja0xlbmd0aAQGY2hlY2tzCQDMCAIDCQBnAgUNdmVzdGluZ0Ftb3VudAAABgkBCHRocm93RXJyAQIhdmVzdGluZyBhbW91bnQgY2Fubm90IGJlIG5lZ2F0aXZlCQDMCAIDCQBnAgUKc3RhcnRCbG9jawAABgkBCHRocm93RXJyAQIec3RhcnQgYmxvY2sgY2Fubm90IGJlIG5lZ2F0aXZlCQDMCAIDCQBnAgUKbG9ja0xlbmd0aAAABgkBCHRocm93RXJyAQIebG9jayBsZW5ndGggY2Fubm90IGJlIG5lZ2F0aXZlBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJALkJAgkAzAgCAgolZCVkJWQlZCVkCQDMCAIJAKQDAQUNdmVzdGluZ0Ftb3VudAkAzAgCCQCkAwEFCnN0YXJ0QmxvY2sJAMwIAgkApAMBBQpsb2NrTGVuZ3RoBQNuaWwFA1NFUAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEQcGFyc2VVc2VyVmVzdGluZwILdXNlckFkZHJlc3MCaWQEByRtYXRjaDAJAJ0IAgUEdGhpcwkBDmtleVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkAwkAAQIFByRtYXRjaDACBlN0cmluZwQJcmF3U3RyaW5nBQckbWF0Y2gwBAtzcGxpdFN0cmluZwkAtQkCBQlyYXdTdHJpbmcFA1NFUAQNdmVzdGluZ0Ftb3VudAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NwbGl0U3RyaW5nAAEECnN0YXJ0QmxvY2sJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtzcGxpdFN0cmluZwACBApsb2NrTGVuZ3RoCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc3BsaXRTdHJpbmcAAwkAlQoDBQ12ZXN0aW5nQW1vdW50BQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoCQCVCgMAAAAAAAABEWtleVZlc3RpbmdIaXN0b3J5AwZhY3Rpb24LdXNlckFkZHJlc3MEdHhJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQZhY3Rpb24JAMwIAgULdXNlckFkZHJlc3MJAMwIAgUEdHhJZAUDbmlsBQNTRVABEmNhbGNVbmxvY2tlZEFtb3VudAMGYW1vdW50CnN0YXJ0QmxvY2sKbG9ja0xlbmd0aAQNZWxhcHNlZEJsb2NrcwkAZQIFBmhlaWdodAUKc3RhcnRCbG9jawQOdW5sb2NrZWRBbW91bnQDAwkBAiE9AgUKbG9ja0xlbmd0aAAACQBmAgUNZWxhcHNlZEJsb2NrcwAABwkAlwMBCQDMCAIJAGsDBQZhbW91bnQFDWVsYXBzZWRCbG9ja3MFCmxvY2tMZW5ndGgJAMwIAgUGYW1vdW50BQNuaWwAAAkAlAoCBQ51bmxvY2tlZEFtb3VudAkAZQIFBmFtb3VudAUOdW5sb2NrZWRBbW91bnQBFWdldFVzZXJVbmxvY2tlZEFtb3VudAILdXNlckFkZHJlc3MCaWQECyR0MDI3NDcyODI2CQEQcGFyc2VVc2VyVmVzdGluZwIFC3VzZXJBZGRyZXNzBQJpZAQNdmVzdGluZ0Ftb3VudAgFCyR0MDI3NDcyODI2Al8xBApzdGFydEJsb2NrCAULJHQwMjc0NzI4MjYCXzIECmxvY2tMZW5ndGgIBQskdDAyNzQ3MjgyNgJfMwQLJHQwMjgyOTI5MjYJARJjYWxjVW5sb2NrZWRBbW91bnQDBQ12ZXN0aW5nQW1vdW50BQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoBA51bmxvY2tlZEFtb3VudAgFCyR0MDI4MjkyOTI2Al8xBA9yZW1haW5pbmdBbW91bnQIBQskdDAyODI5MjkyNgJfMgkAlAoCBQ51bmxvY2tlZEFtb3VudAUPcmVtYWluaW5nQW1vdW50ARNnZXRVc2VyQ2xhaW1BY3Rpb25zAgt1c2VyQWRkcmVzcwJpZAQLJHQwMzAyOTMxMDgJARBwYXJzZVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkBA12ZXN0aW5nQW1vdW50CAULJHQwMzAyOTMxMDgCXzEECnN0YXJ0QmxvY2sIBQskdDAzMDI5MzEwOAJfMgQKbG9ja0xlbmd0aAgFCyR0MDMwMjkzMTA4Al8zBAskdDAzMTExMzE4OQkBFWdldFVzZXJVbmxvY2tlZEFtb3VudAIFC3VzZXJBZGRyZXNzBQJpZAQOdW5sb2NrZWRBbW91bnQIBQskdDAzMTExMzE4OQJfMQQPcmVtYWluaW5nQW1vdW50CAULJHQwMzExMTMxODkCXzIED3JlbWFpbmluZ0Jsb2NrcwkAlgMBCQDMCAIJAGUCCQBkAgUKc3RhcnRCbG9jawUKbG9ja0xlbmd0aAUGaGVpZ2h0CQDMCAIAAAUDbmlsBAdhY3Rpb25zAwkBAiE9AgUOdW5sb2NrZWRBbW91bnQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQt1c2VyQWRkcmVzcwUOdW5sb2NrZWRBbW91bnQFDGFzc2V0SWRCeXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5VXNlclZlc3RpbmcCBQt1c2VyQWRkcmVzcwUCaWQJARFmb3JtYXRVc2VyVmVzdGluZwMFD3JlbWFpbmluZ0Ftb3VudAUGaGVpZ2h0BQ9yZW1haW5pbmdCbG9ja3MFA25pbAUDbmlsCQCUCgIFB2FjdGlvbnMFDnVubG9ja2VkQW1vdW50ARRnZXROZXdWZXN0aW5nQWN0aW9ucwULdXNlckFkZHJlc3MCaWQNdmVzdGluZ0Ftb3VudApzdGFydEJsb2NrCmxvY2tMZW5ndGgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkCQERZm9ybWF0VXNlclZlc3RpbmcDBQ12ZXN0aW5nQW1vdW50BQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoBQNuaWwBFmdldEFsbFVzZXJDbGFpbUFjdGlvbnMBC3VzZXJBZGRyZXNzCgENYWN0aW9uc0hlbHBlcgIDYWNjAWEECyR0MDM5MTIzOTM5BQNhY2MECmFsbEFjdGlvbnMIBQskdDAzOTEyMzkzOQJfMQQDc3VtCAULJHQwMzkxMjM5MzkCXzIECyR0MDM5NDQ0MDEzCQETZ2V0VXNlckNsYWltQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQFhBAxjbGFpbUFjdGlvbnMIBQskdDAzOTQ0NDAxMwJfMQQLY2xhaW1BbW91bnQIBQskdDAzOTQ0NDAxMwJfMgkAlAoCCQDOCAIFCmFsbEFjdGlvbnMFDGNsYWltQWN0aW9ucwkAZAIFA3N1bQULY2xhaW1BbW91bnQKAAIkbAUISURTX0xJU1QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ1hY3Rpb25zSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAzMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgEVZ2V0QXZhaWxhYmxlVmVzdGluZ0lkAQt1c2VyQWRkcmVzcwoBBmhlbHBlcgILYXZhaWxhYmxlSWQCaWQECyR0MDQyMjE0MzAwCQEQcGFyc2VVc2VyVmVzdGluZwIFC3VzZXJBZGRyZXNzBQJpZAQNdmVzdGluZ0Ftb3VudAgFCyR0MDQyMjE0MzAwAl8xBApzdGFydEJsb2NrCAULJHQwNDIyMTQzMDACXzIECmxvY2tMZW5ndGgIBQskdDA0MjIxNDMwMAJfMwMJAGYCBQ12ZXN0aW5nQW1vdW50AAAFC2F2YWlsYWJsZUlkAwkAAAIFC2F2YWlsYWJsZUlkAP///////////wEFAmlkCQCXAwEJAMwIAgULYXZhaWxhYmxlSWQJAMwIAgUCaWQFA25pbAQLYXZhaWxhYmxlSWQKAAIkbAUISURTX0xJU1QKAAIkcwkAkAMBBQIkbAoABSRhY2MwAP///////////wEKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBmhlbHBlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMzAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4DCQAAAgULYXZhaWxhYmxlSWQA////////////AQkBCHRocm93RXJyAQkAuQkCCQDMCAICKHVzZXIgZXhjZWVkZWQgbWF4IGFjdGl2ZSB2ZXN0aW5nIGNvdW50OiAJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAULYXZhaWxhYmxlSWQBAWkBDnZlc3RpbmdGb3JVc2VyBAt1c2VyQWRkcmVzcw12ZXN0aW5nQW1vdW50CnN0YXJ0QmxvY2sKbG9ja0xlbmd0aAQFY2hlY2sJAMwIAgMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEIdGhyb3dFcnIBAiBzaG91bGQgYmUgd2l0aCBleGFjdGx5IDEgcGF5bWVudAkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMYXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICG3BheW1lbnQgYXNzZXRJZCBzaG91bGQgYmU6IAkAzAgCBQ1hc3NldElkU3RyaW5nBQNuaWwCASAJAMwIAgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUNdmVzdGluZ0Ftb3VudAYJAQh0aHJvd0VycgECL3BheW1lbnQgYW1vdW50IHNob3VsZCBiZSBlcXVhbCB0byB2ZXN0aW5nQW1vdW50CQDMCAIDAwkAAAIFCWFkbWluTGlzdAUDbmlsBgkBD2NvbnRhaW5zRWxlbWVudAIFCWFkbWluTGlzdAkApQgBCAUBaQZjYWxsZXIGCQEIdGhyb3dFcnIBAhF5b3UgbXVzdCBiZSBhZG1pbgUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawQCaWQJARVnZXRBdmFpbGFibGVWZXN0aW5nSWQBBQt1c2VyQWRkcmVzcwkBFGdldE5ld1Zlc3RpbmdBY3Rpb25zBQULdXNlckFkZHJlc3MFAmlkBQ12ZXN0aW5nQW1vdW50BQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAKvcLH4=", "height": 2923854, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5agNi1tt7hGX1nBzZTBUtRAUeH4MeQMkT7rW9gU7DyfJ Next: Cn926qYzCguhiwet5fkjp8W14KPi4eEL1QDpW6xiatLh Diff:
OldNewDifferences
185185 ah(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
186186 }
187187 if ((ak == -1))
188- then e(makeString(["user exceeded max vesting count: ", r], " "))
188+ then e(makeString(["user exceeded max active vesting count: ", r], " "))
189189 else ak
190190 }
191191
194194 func vestingForUser (r,v,w,x) = {
195195 let an = [if ((size(am.payments) == 1))
196196 then true
197- else e("should be only 1 payment"), if ((am.payments[0].assetId == i))
197+ else e("should be with exactly 1 payment"), if ((am.payments[0].assetId == i))
198198 then true
199199 else e(makeString(["payment assetId should be: ", h], " ")), if ((am.payments[0].amount == v))
200200 then true
201- else e("payment amount should be equal to vestingAmount"), if (if ((k != nil))
201+ else e("payment amount should be equal to vestingAmount"), if (if ((k == nil))
202202 then true
203203 else containsElement(k, toString(am.caller)))
204204 then true
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "vesting_neo.ride"
55
66 let b = "__"
77
88 let c = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
99
1010 let d = size(c)
1111
1212 func e (f) = throw(((a + ": ") + f))
1313
1414
1515 let g = makeString(["%s", "assetId"], b)
1616
1717 let h = valueOrElse(getString(this, g), "WAVES")
1818
1919 let i = if ((h == "WAVES"))
2020 then unit
2121 else fromBase58String(h)
2222
2323 let j = makeString(["%s", "adminList"], b)
2424
2525 let k = {
2626 let l = getString(this, j)
2727 if ($isInstanceOf(l, "String"))
2828 then {
2929 let m = l
3030 split(m, b)
3131 }
3232 else nil
3333 }
3434
3535 func n (o) = {
3636 let l = addressFromString(o)
3737 if ($isInstanceOf(l, "Address"))
3838 then {
3939 let p = l
4040 true
4141 }
4242 else false
4343 }
4444
4545
4646 func q (r,s) = {
4747 let t = [if (n(r))
4848 then true
4949 else e(makeString(["address is not valid:", r], " ")), if (if ((s >= 0))
5050 then (d > s)
5151 else false)
5252 then true
5353 else e(makeString(["id should be less than", toString(d), "got:", toString(s)], " "))]
5454 if ((t == t))
5555 then makeString(["%s%d", r, toString(s)], b)
5656 else throw("Strict value is not equal to itself.")
5757 }
5858
5959
6060 func u (v,w,x) = {
6161 let t = [if ((v >= 0))
6262 then true
6363 else e("vesting amount cannot be negative"), if ((w >= 0))
6464 then true
6565 else e("start block cannot be negative"), if ((x >= 0))
6666 then true
6767 else e("lock length cannot be negative")]
6868 if ((t == t))
6969 then makeString(["%d%d%d%d%d", toString(v), toString(w), toString(x)], b)
7070 else throw("Strict value is not equal to itself.")
7171 }
7272
7373
7474 func y (r,s) = {
7575 let l = getString(this, q(r, s))
7676 if ($isInstanceOf(l, "String"))
7777 then {
7878 let z = l
7979 let A = split(z, b)
8080 let v = parseIntValue(A[1])
8181 let w = parseIntValue(A[2])
8282 let x = parseIntValue(A[3])
8383 $Tuple3(v, w, x)
8484 }
8585 else $Tuple3(0, 0, 0)
8686 }
8787
8888
8989 func B (C,r,D) = makeString(["%s%s%s", C, r, D], b)
9090
9191
9292 func E (F,w,x) = {
9393 let G = (height - w)
9494 let H = if (if ((x != 0))
9595 then (G > 0)
9696 else false)
9797 then min([fraction(F, G, x), F])
9898 else 0
9999 $Tuple2(H, (F - H))
100100 }
101101
102102
103103 func I (r,s) = {
104104 let J = y(r, s)
105105 let v = J._1
106106 let w = J._2
107107 let x = J._3
108108 let K = E(v, w, x)
109109 let H = K._1
110110 let L = K._2
111111 $Tuple2(H, L)
112112 }
113113
114114
115115 func M (r,s) = {
116116 let N = y(r, s)
117117 let v = N._1
118118 let w = N._2
119119 let x = N._3
120120 let O = I(r, s)
121121 let H = O._1
122122 let L = O._2
123123 let P = max([((w + x) - height), 0])
124124 let Q = if ((H != 0))
125125 then [ScriptTransfer(addressFromStringValue(r), H, i), StringEntry(q(r, s), u(L, height, P))]
126126 else nil
127127 $Tuple2(Q, H)
128128 }
129129
130130
131131 func R (r,s,v,w,x) = [StringEntry(q(r, s), u(v, w, x))]
132132
133133
134134 func S (r) = {
135135 func T (U,p) = {
136136 let V = U
137137 let W = V._1
138138 let X = V._2
139139 let Y = M(r, p)
140140 let Z = Y._1
141141 let aa = Y._2
142142 $Tuple2((W ++ Z), (X + aa))
143143 }
144144
145145 let ab = c
146146 let ac = size(ab)
147147 let ad = $Tuple2(nil, 0)
148148 func ae (af,ag) = if ((ag >= ac))
149149 then af
150150 else T(af, ab[ag])
151151
152152 func ah (af,ag) = if ((ag >= ac))
153153 then af
154154 else throw("List size exceeds 30")
155155
156156 ah(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
157157 }
158158
159159
160160 func ai (r) = {
161161 func aj (ak,s) = {
162162 let al = y(r, s)
163163 let v = al._1
164164 let w = al._2
165165 let x = al._3
166166 if ((v > 0))
167167 then ak
168168 else if ((ak == -1))
169169 then s
170170 else min([ak, s])
171171 }
172172
173173 let ak = {
174174 let ab = c
175175 let ac = size(ab)
176176 let ad = -1
177177 func ae (af,ag) = if ((ag >= ac))
178178 then af
179179 else aj(af, ab[ag])
180180
181181 func ah (af,ag) = if ((ag >= ac))
182182 then af
183183 else throw("List size exceeds 30")
184184
185185 ah(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
186186 }
187187 if ((ak == -1))
188- then e(makeString(["user exceeded max vesting count: ", r], " "))
188+ then e(makeString(["user exceeded max active vesting count: ", r], " "))
189189 else ak
190190 }
191191
192192
193193 @Callable(am)
194194 func vestingForUser (r,v,w,x) = {
195195 let an = [if ((size(am.payments) == 1))
196196 then true
197- else e("should be only 1 payment"), if ((am.payments[0].assetId == i))
197+ else e("should be with exactly 1 payment"), if ((am.payments[0].assetId == i))
198198 then true
199199 else e(makeString(["payment assetId should be: ", h], " ")), if ((am.payments[0].amount == v))
200200 then true
201- else e("payment amount should be equal to vestingAmount"), if (if ((k != nil))
201+ else e("payment amount should be equal to vestingAmount"), if (if ((k == nil))
202202 then true
203203 else containsElement(k, toString(am.caller)))
204204 then true
205205 else e("you must be admin")]
206206 if ((an == an))
207207 then {
208208 let s = ai(r)
209209 R(r, s, v, w, x)
210210 }
211211 else throw("Strict value is not equal to itself.")
212212 }
213213
214214

github/deemru/w8io/026f985 
29.85 ms