tx · Eh4JLzabPA8AzVPjEcfj9V8sMt8xCEzA8fRbiiqmRfY8

3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h:  -0.01300000 Waves

2024.02.14 09:54 [2975559] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves

{ "type": 13, "id": "Eh4JLzabPA8AzVPjEcfj9V8sMt8xCEzA8fRbiiqmRfY8", "fee": 1300000, "feeAssetId": null, "timestamp": 1707893655847, "version": 2, "chainId": 84, "sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h", "senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2", "proofs": [ "VSAfuztj954gxHaD8WXG9E2WDDRSdGXgWkqN92EsvvcYGiMPBQ9VQmtKucNqwjuCPAqdAQdLEHDtRzArFkHxNr6" ], "script": "base64:BgI0CAISAwoBARIDCgEEEgMKAQgSAwoBCBIECgIICBIDCgEIEgQKAggBEgQKAggBEgMKAQESACgADGNvbnRyYWN0RmlsZQIRbDJtcF9sZWFzaW5nLnJpZGUAA1NFUAICX18BCHRocm93RXJyAQNtc2cJAAIBCQCsAgIJAKwCAgUMY29udHJhY3RGaWxlAgI6IAUDbXNnAAprZXlBc3NldElkCQC5CQIJAMwIAgICJXMJAMwIAgIHYXNzZXRJZAUDbmlsBQNTRVAADGtleUFkbWluTGlzdAkAuQkCCQDMCAICAiVzCQDMCAICCWFkbWluTGlzdAUDbmlsBQNTRVAADGtleUZvcmNlU3RvcAkAuQkCCQDMCAICAiVzCQDMCAICCWZvcmNlU3RvcAUDbmlsBQNTRVAAEWtleVBlcmlvZE9mZnNldElkCQC5CQIJAMwIAgICJXMJAMwIAgIIb2Zmc2V0SWQFA25pbAUDU0VQABVrZXlQZXJpb2RPZmZzZXRIZWlnaHQJALkJAgkAzAgCAgIlcwkAzAgCAgxvZmZzZXRIZWlnaHQFA25pbAUDU0VQAA9rZXlQZXJpb2RMZW5ndGgJALkJAgkAzAgCAgIlcwkAzAgCAgxwZXJpb2RMZW5ndGgFA25pbAUDU0VQAA5wZXJpb2RPZmZzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRFrZXlQZXJpb2RPZmZzZXRJZAAAAAxwZXJpb2RMZW5ndGgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa2V5UGVyaW9kTGVuZ3RoAJBOABJwZXJpb2RPZmZzZXRIZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUVa2V5UGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEAD2N1cnJlbnRQZXJpb2RJZAMDCQBmAgUGaGVpZ2h0BRJwZXJpb2RPZmZzZXRIZWlnaHQJAQIhPQIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BBwkAZAIJAGkCCQBlAgUGaGVpZ2h0BRJwZXJpb2RPZmZzZXRIZWlnaHQFDHBlcmlvZExlbmd0aAUOcGVyaW9kT2Zmc2V0SWQJAJYDAQkAzAgCAAAJAMwIAgkAZQIFDnBlcmlvZE9mZnNldElkAAEFA25pbAATY3VycmVudFBlcmlvZEhlaWdodAkAZAIFEnBlcmlvZE9mZnNldEhlaWdodAkAaAIJAGUCBQ9jdXJyZW50UGVyaW9kSWQFDnBlcmlvZE9mZnNldElkBQxwZXJpb2RMZW5ndGgAEG5leHRQZXJpb2RIZWlnaHQJAGQCBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQxwZXJpb2RMZW5ndGgBEmtleUxlYXNpbmdOb2RlRGF0YQELbm9kZUFkZHJlc3MJALkJAgkAzAgCAgIlcwkAzAgCBQtub2RlQWRkcmVzcwUDbmlsBQNTRVABFmtleVVzZXJMZWFzaW5nTm9kZURhdGECC3VzZXJBZGRyZXNzC25vZGVBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCBQtub2RlQWRkcmVzcwkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABDmtleVVzZXJUb0NsYWltAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIHdG9DbGFpbQkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABEmtleVVzZXJUb3RhbExvY2tlZAELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICD3VzZXJUb3RhbExvY2tlZAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABFmtleU5vZGVMZWFzaW5nQnlIZWlnaHQBC25vZGVBZGRyZXNzCQC5CQIJAMwIAgIEJXMlZAkAzAgCBQtub2RlQWRkcmVzcwkAzAgCCQCkAwEFBmhlaWdodAUDbmlsBQNTRVABFmtleVVzZXJMZWFzaW5nQnlIZWlnaHQCC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAIFC25vZGVBZGRyZXNzCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwFA1NFUAANYXNzZXRJZFN0cmluZwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQprZXlBc3NldElkAgVXQVZFUwAMYXNzZXRJZEJ5dGVzAwkAAAIFDWFzc2V0SWRTdHJpbmcCBVdBVkVTBQR1bml0CQDZBAEFDWFzc2V0SWRTdHJpbmcADGFkbWluTGlzdFJhdwkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFDGtleUFkbWluTGlzdAIABQNTRVAAC2lzRm9yY2VTdG9wCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDGtleUZvcmNlU3RvcAcBB2lzQWRtaW4BB2FkZHJlc3MJAQ9jb250YWluc0VsZW1lbnQCBQxhZG1pbkxpc3RSYXcFB2FkZHJlc3MBDmlzVmFsaWRBZGRyZXNzAQdhZGRyZXNzBAckbWF0Y2gwCQCmCAEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYHARNnZXRMZWFzaW5nTm9kZUVudHJ5Awtub2RlQWRkcmVzcw1jdXJyZW50TGVhc2VkCm5leHRMZWFzZWQEC3ZhbHVlU3RyaW5nCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUNY3VycmVudExlYXNlZAkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQpuZXh0TGVhc2VkBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgkBEmtleUxlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBQt2YWx1ZVN0cmluZwESZ2V0TGVhc2luZ05vZGVEYXRhAQtub2RlQWRkcmVzcwQYbGVhc2luZ05vZGVEYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJARJrZXlMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQHJG1hdGNoMAUYbGVhc2luZ05vZGVEYXRhU3RyaW5nUmF3AwkAAQIFByRtYXRjaDACBlN0cmluZwQCZHMFByRtYXRjaDAECGRhdGFMaXN0CQC1CQIFAmRzBQNTRVAEEW5vZGVDdXJyZW50UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAQQRbm9kZUN1cnJlbnRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAACBA5ub2RlTmV4dFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAMEDm5vZGVOZXh0TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QABAMJAGYCBQ5ub2RlTmV4dFBlcmlvZAUGaGVpZ2h0CQCUCgIFEW5vZGVDdXJyZW50TGVhc2VkBQ5ub2RlTmV4dExlYXNlZAkAlAoCBQ5ub2RlTmV4dExlYXNlZAUObm9kZU5leHRMZWFzZWQJAJQKAgAAAAABE2dldFVzZXJMZWFzaW5nRW50cnkEC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzEXVzZXJDdXJyZW50TGVhc2VkDnVzZXJOZXh0TGVhc2VkBAt2YWx1ZVN0cmluZwkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQUTY3VycmVudFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFEXVzZXJDdXJyZW50TGVhc2VkCQDMCAIJAKQDAQUQbmV4dFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFDnVzZXJOZXh0TGVhc2VkBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgkBFmtleVVzZXJMZWFzaW5nTm9kZURhdGECBQt1c2VyQWRkcmVzcwULbm9kZUFkZHJlc3MFC3ZhbHVlU3RyaW5nARJnZXRVc2VyTGVhc2luZ0RhdGECC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzBBhsZWFzaW5nVXNlckRhdGFTdHJpbmdSYXcJAJ0IAgUEdGhpcwkBFmtleVVzZXJMZWFzaW5nTm9kZURhdGECBQt1c2VyQWRkcmVzcwULbm9kZUFkZHJlc3MEByRtYXRjaDAFGGxlYXNpbmdVc2VyRGF0YVN0cmluZ1JhdwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAmRzBQckbWF0Y2gwBAhkYXRhTGlzdAkAtQkCBQJkcwUDU0VQBBF1c2VyQ3VycmVudFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAEEEXVzZXJDdXJyZW50TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAgQOdXNlck5leHRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAADBA51c2VyTmV4dExlYXNlZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAQDCQBmAgUOdXNlck5leHRQZXJpb2QFBmhlaWdodAkAlAoCBRF1c2VyQ3VycmVudExlYXNlZAUOdXNlck5leHRMZWFzZWQJAJQKAgUOdXNlck5leHRMZWFzZWQFDnVzZXJOZXh0TGVhc2VkCQCUCgIAAAAAARNnZXRVc2VyVG9DbGFpbUVudHJ5Awt1c2VyQWRkcmVzcwd0b0NsYWltCHRvVW5sb2NrBAt2YWx1ZVN0cmluZwkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQUTY3VycmVudFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFB3RvQ2xhaW0JAMwIAgkApAMBBRBuZXh0UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUIdG9VbmxvY2sFA25pbAUDU0VQCQELU3RyaW5nRW50cnkCCQEOa2V5VXNlclRvQ2xhaW0BBQt1c2VyQWRkcmVzcwULdmFsdWVTdHJpbmcBFWdldFVzZXJUb0NsYWltQmFsYW5jZQELdXNlckFkZHJlc3MEGHVzZXJUb0NsYWltRGF0YVN0cmluZ1JhdwkAnQgCBQR0aGlzCQEOa2V5VXNlclRvQ2xhaW0BBQt1c2VyQWRkcmVzcwQHJG1hdGNoMAUYdXNlclRvQ2xhaW1EYXRhU3RyaW5nUmF3AwkAAQIFByRtYXRjaDACBlN0cmluZwQCZHMFByRtYXRjaDAECGRhdGFMaXN0CQC1CQIFAmRzBQNTRVAEDWN1cnJlbnRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAABBAd0b0NsYWltCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAgQKbmV4dFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAMECHRvVW5sb2NrCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QABAMJAGYCBQpuZXh0UGVyaW9kBQZoZWlnaHQJAJQKAgUHdG9DbGFpbQUIdG9VbmxvY2sJAJQKAgkAZAIFB3RvQ2xhaW0FCHRvVW5sb2NrAAAJAJQKAgAAAAABF2dldFVzZXJUb3RhbExvY2tlZEVudHJ5Agt1c2VyQWRkcmVzcw91c2VyVG90YWxMb2NrZWQJAQxJbnRlZ2VyRW50cnkCCQESa2V5VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MFD3VzZXJUb3RhbExvY2tlZAESZ2V0VXNlclRvdGFsTG9ja2VkAQt1c2VyQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQESa2V5VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MAAAEPZ2V0U3Rha2VBY3Rpb25zAwtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwFpBAZjaGVja3MJAMwIAgMJAQEhAQULaXNGb3JjZVN0b3AGCQEIdGhyb3dFcnIBAh1jb250cmFjdCBpcyB0ZW1wb3Jhcnkgc3RvcHBlZAkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECIHBheW1lbnQgc2l6ZSBzaG91bGQgYmUgZXhhY3RseSAxCQDMCAIDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQxhc3NldElkQnl0ZXMGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIacGF5bWVudCBhc3NldElkIHNob3VsZCBiZToJAMwIAgUNYXNzZXRJZFN0cmluZwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQtub2RlQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhpub2RlIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQtub2RlQWRkcmVzcwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhp1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEEXVzZXJMZWFzaW5nQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQLJHQwNjYyMDY2OTMJARJnZXRMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQRbm9kZUN1cnJlbnRMZWFzZWQIBQskdDA2NjIwNjY5MwJfMQQObm9kZU5leHRMZWFzZWQIBQskdDA2NjIwNjY5MwJfMgQQbmV3Tm9kZU5leHRMZWFzZQkAZAIFDm5vZGVOZXh0TGVhc2VkBRF1c2VyTGVhc2luZ0Ftb3VudAQLJHQwNjc2MTY4NDcJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEEXVzZXJDdXJyZW50TGVhc2VkCAULJHQwNjc2MTY4NDcCXzEEDnVzZXJOZXh0TGVhc2VkCAULJHQwNjc2MTY4NDcCXzIEEW5ld1VzZXJOZXh0TGVhc2VkCQBkAgUOdXNlck5leHRMZWFzZWQFEXVzZXJMZWFzaW5nQW1vdW50BA91c2VyVG90YWxMb2NrZWQJARJnZXRVc2VyVG90YWxMb2NrZWQBBQt1c2VyQWRkcmVzcwQSbmV3VXNlclRvdGFsTG9ja2VkCQBkAgUPdXNlclRvdGFsTG9ja2VkBRF1c2VyTGVhc2luZ0Ftb3VudAkAzAgCCQETZ2V0TGVhc2luZ05vZGVFbnRyeQMFC25vZGVBZGRyZXNzBRFub2RlQ3VycmVudExlYXNlZAUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQETZ2V0VXNlckxlYXNpbmdFbnRyeQQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURdXNlckN1cnJlbnRMZWFzZWQFEW5ld1VzZXJOZXh0TGVhc2VkCQDMCAIJARdnZXRVc2VyVG90YWxMb2NrZWRFbnRyeQIFC3VzZXJBZGRyZXNzBRJuZXdVc2VyVG90YWxMb2NrZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOb2RlTGVhc2luZ0J5SGVpZ2h0AQULbm9kZUFkZHJlc3MFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlVc2VyTGVhc2luZ0J5SGVpZ2h0AgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRFuZXdVc2VyTmV4dExlYXNlZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARFnZXRVbnN0YWtlQWN0aW9ucwMLbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MNdW5zdGFrZUFtb3VudAQLJHQwNzU0OTc2MjIJARJnZXRMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQRbm9kZUN1cnJlbnRMZWFzZWQIBQskdDA3NTQ5NzYyMgJfMQQObm9kZU5leHRMZWFzZWQIBQskdDA3NTQ5NzYyMgJfMgQLJHQwNzYyNzc3MTMJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEEXVzZXJDdXJyZW50TGVhc2VkCAULJHQwNzYyNzc3MTMCXzEEDnVzZXJOZXh0TGVhc2VkCAULJHQwNzYyNzc3MTMCXzIEBmNoZWNrcwkAzAgCAwkBASEBBQtpc0ZvcmNlU3RvcAYJAQh0aHJvd0VycgECHWNvbnRyYWN0IGlzIHRlbXBvcmFyeSBzdG9wcGVkCQDMCAIDCQBmAgUNdW5zdGFrZUFtb3VudAAABgkBCHRocm93RXJyAQIndW5zdGFrZSBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwCQDMCAIDCQBnAgUOdXNlck5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQGCQEIdGhyb3dFcnIBAjl1bnN0YWtlIGFtb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCB1c2VyIHN0YWtlZCBhbW91bnQJAMwIAgMJAGcCBQ5ub2RlTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAYJAQh0aHJvd0VycgECOXVuc3Rha2UgYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIG5vZGUgc3Rha2VkIGFtb3VudAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULbm9kZUFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIabm9kZSBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULbm9kZUFkZHJlc3MFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBBBuZXdOb2RlTmV4dExlYXNlCQBlAgUObm9kZU5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQEEW5ld1VzZXJOZXh0TGVhc2VkCQBlAgUOdXNlck5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQECyR0MDg1MjY4NTg2CQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQskdDA4NTI2ODU4NgJfMQQIdG9VbmxvY2sIBQskdDA4NTI2ODU4NgJfMgQLbmV3VG9VbmxvY2sJAGQCBQh0b1VubG9jawUNdW5zdGFrZUFtb3VudAQPdXNlclRvdGFsTG9ja2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MEEm5ld1VzZXJUb3RhbExvY2tlZAkAZQIFD3VzZXJUb3RhbExvY2tlZAUNdW5zdGFrZUFtb3VudAkAzAgCCQETZ2V0TGVhc2luZ05vZGVFbnRyeQMFC25vZGVBZGRyZXNzBRFub2RlQ3VycmVudExlYXNlZAUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQETZ2V0VXNlckxlYXNpbmdFbnRyeQQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURdXNlckN1cnJlbnRMZWFzZWQFEW5ld1VzZXJOZXh0TGVhc2VkCQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFB3RvQ2xhaW0FC25ld1RvVW5sb2NrCQDMCAIJARdnZXRVc2VyVG90YWxMb2NrZWRFbnRyeQIFC3VzZXJBZGRyZXNzBRJuZXdVc2VyVG90YWxMb2NrZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOb2RlTGVhc2luZ0J5SGVpZ2h0AQULbm9kZUFkZHJlc3MFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlVc2VyTGVhc2luZ0J5SGVpZ2h0AgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRFuZXdVc2VyTmV4dExlYXNlZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwILdXNlckFkZHJlc3MLY2xhaW1BbW91bnQECyR0MDkzMTU5Mzc1CQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQskdDA5MzE1OTM3NQJfMQQIdG9VbmxvY2sIBQskdDA5MzE1OTM3NQJfMgQGY2hlY2tzCQDMCAIDCQEBIQEFC2lzRm9yY2VTdG9wBgkBCHRocm93RXJyAQIdY29udHJhY3QgaXMgdGVtcG9yYXJ5IHN0b3BwZWQJAMwIAgMJAGYCBQtjbGFpbUFtb3VudAAABgkBCHRocm93RXJyAQIlY2xhaW0gYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAZwIFB3RvQ2xhaW0FC2NsYWltQW1vdW50BgkBCHRocm93RXJyAQI0Y2xhaW0gYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIHVubG9ja2VkIGFtb3VudAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBApuZXdUb0NsYWltCQBlAgUHdG9DbGFpbQULY2xhaW1BbW91bnQJAMwIAgkBE2dldFVzZXJUb0NsYWltRW50cnkDBQt1c2VyQWRkcmVzcwUKbmV3VG9DbGFpbQUIdG9VbmxvY2sJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQULdXNlckFkZHJlc3MFC2NsYWltQW1vdW50BQxhc3NldElkQnl0ZXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEbZ2V0U3Rha2VGcm9tVW5sb2NrZWRBY3Rpb25zAwtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcxF1c2VyTGVhc2luZ0Ftb3VudAQNJHQwMTAxMDkxMDE2OQkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMTAxMDkxMDE2OQJfMQQIdG9VbmxvY2sIBQ0kdDAxMDEwOTEwMTY5Al8yBAlhdmFpbGFibGUJAGQCBQh0b1VubG9jawUHdG9DbGFpbQQGY2hlY2tzCQDMCAIDCQEBIQEFC2lzRm9yY2VTdG9wBgkBCHRocm93RXJyAQIdY29udHJhY3QgaXMgdGVtcG9yYXJ5IHN0b3BwZWQJAMwIAgMJAGYCBRF1c2VyTGVhc2luZ0Ftb3VudAAABgkBCHRocm93RXJyAQIfYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAZwIFCWF2YWlsYWJsZQURdXNlckxlYXNpbmdBbW91bnQGCQEIdGhyb3dFcnIBAi9hbW91bnQgc2hvdWxkIGJlIGxlc3Mgb3IgZXF1YWwgYXZhaWxhYmxlIGFtb3VudAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULbm9kZUFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIabm9kZSBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULbm9kZUFkZHJlc3MFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA0kdDAxMDc1NzEwODMwCQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEEW5vZGVDdXJyZW50TGVhc2VkCAUNJHQwMTA3NTcxMDgzMAJfMQQObm9kZU5leHRMZWFzZWQIBQ0kdDAxMDc1NzEwODMwAl8yBBBuZXdOb2RlTmV4dExlYXNlCQBkAgUObm9kZU5leHRMZWFzZWQFEXVzZXJMZWFzaW5nQW1vdW50BA0kdDAxMDg5ODEwOTg0CQESZ2V0VXNlckxlYXNpbmdEYXRhAgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBBF1c2VyQ3VycmVudExlYXNlZAgFDSR0MDEwODk4MTA5ODQCXzEEDnVzZXJOZXh0TGVhc2VkCAUNJHQwMTA4OTgxMDk4NAJfMgQRbmV3VXNlck5leHRMZWFzZWQJAGQCBQ51c2VyTmV4dExlYXNlZAURdXNlckxlYXNpbmdBbW91bnQEC25ld1RvVW5sb2NrCQCWAwEJAMwIAgAACQDMCAIJAGUCBQh0b1VubG9jawURdXNlckxlYXNpbmdBbW91bnQFA25pbAQKbmV3VG9DbGFpbQkAlwMBCQDMCAIFB3RvQ2xhaW0JAMwIAgkAZAIFB3RvQ2xhaW0JAGUCBQh0b1VubG9jawURdXNlckxlYXNpbmdBbW91bnQFA25pbAQPdXNlclRvdGFsTG9ja2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MEEm5ld1VzZXJUb3RhbExvY2tlZAkAZAIFD3VzZXJUb3RhbExvY2tlZAURdXNlckxlYXNpbmdBbW91bnQJAMwIAgkBE2dldExlYXNpbmdOb2RlRW50cnkDBQtub2RlQWRkcmVzcwURbm9kZUN1cnJlbnRMZWFzZWQFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBE2dldFVzZXJMZWFzaW5nRW50cnkEBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFEXVzZXJDdXJyZW50TGVhc2VkBRFuZXdVc2VyTmV4dExlYXNlZAkAzAgCCQETZ2V0VXNlclRvQ2xhaW1FbnRyeQMFC3VzZXJBZGRyZXNzBQpuZXdUb0NsYWltBQtuZXdUb1VubG9jawkAzAgCCQEXZ2V0VXNlclRvdGFsTG9ja2VkRW50cnkCBQt1c2VyQWRkcmVzcwUSbmV3VXNlclRvdGFsTG9ja2VkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5Tm9kZUxlYXNpbmdCeUhlaWdodAEFC25vZGVBZGRyZXNzBRBuZXdOb2RlTmV4dExlYXNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5VXNlckxlYXNpbmdCeUhlaWdodAIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURbmV3VXNlck5leHRMZWFzZWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEcZ2V0U2V0TmV3UGVyaW9kTGVuZ3RoQWN0aW9ucwEPbmV3UGVyaW9kTGVuZ3RoBAVjaGVjawkAzAgCAwkAZgIFD25ld1BlcmlvZExlbmd0aAAABgkBCHRocm93RXJyAQImcGVyaW9kIGxlbmd0aCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAFA25pbAMJAAACBQVjaGVjawUFY2hlY2sDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleVBlcmlvZExlbmd0aAUPbmV3UGVyaW9kTGVuZ3RoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQFBmhlaWdodAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlQZXJpb2RPZmZzZXRJZAkAZAIFD2N1cnJlbnRQZXJpb2RJZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleVBlcmlvZExlbmd0aAUPbmV3UGVyaW9kTGVuZ3RoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4KAWkBEnNldE5ld1BlcmlvZExlbmd0aAEPbmV3UGVyaW9kTGVuZ3RoBAZjaGVja3MJAMwIAgMJAQdpc0FkbWluAQkApQgBCAUBaQZjYWxsZXIGCQEIdGhyb3dFcnIBAhpjYWxsZXIgaXMgbm90IGluIGFkbWluTGlzdAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQEcZ2V0U2V0TmV3UGVyaW9kTGVuZ3RoQWN0aW9ucwEFD25ld1BlcmlvZExlbmd0aAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARBzZXRGb3JjZVN0b3BGbGFnAQRzdG9wBAVjaGVjawkAzAgCAwkBB2lzQWRtaW4BCQClCAEIBQFpBmNhbGxlcgYJAQh0aHJvd0VycgECFmNhbGxlciBpcyBub3QgYW4gYWRtaW4FA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDGtleUZvcmNlU3RvcAUEc3RvcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2dldE5vZGVEYXRhUkVBRE9OTFkBC25vZGVBZGRyZXNzBA0kdDAxMzA3MDEzMTM0CQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEDGN1cnJlbnRMZWFzZQgFDSR0MDEzMDcwMTMxMzQCXzEECm5leHRMZWFzZWQIBQ0kdDAxMzA3MDEzMTM0Al8yCQCUCgIFA25pbAkAlwoFBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQxjdXJyZW50TGVhc2UFEG5leHRQZXJpb2RIZWlnaHQFCm5leHRMZWFzZWQFBmhlaWdodAFpARNnZXRVc2VyRGF0YVJFQURPTkxZAQt1c2VyQWRkcmVzcwQNJHQwMTM0OTcxMzU1NwkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMTM0OTcxMzU1NwJfMQQIdG9VbmxvY2sIBQ0kdDAxMzQ5NzEzNTU3Al8yBA91c2VyVG90YWxMb2NrZWQJARJnZXRVc2VyVG90YWxMb2NrZWQBBQt1c2VyQWRkcmVzcwkAlAoCBQNuaWwJAJgKBgUTY3VycmVudFBlcmlvZEhlaWdodAUHdG9DbGFpbQUQbmV4dFBlcmlvZEhlaWdodAUIdG9VbmxvY2sFD3VzZXJUb3RhbExvY2tlZAUGaGVpZ2h0AWkBDmxlYXNlQnlBZGRyZXNzAgtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwkBD2dldFN0YWtlQWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUBaQFpAQVsZWFzZQELbm9kZUFkZHJlc3MEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBD2dldFN0YWtlQWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUBaQFpAQ9sZWFzZUZyb21Mb2NrZWQCC25vZGVBZGRyZXNzBmFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQEbZ2V0U3Rha2VGcm9tVW5sb2NrZWRBY3Rpb25zAwULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBQZhbW91bnQBaQELY2FuY2VsTGVhc2UCC25vZGVBZGRyZXNzBmFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQERZ2V0VW5zdGFrZUFjdGlvbnMDBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFBmFtb3VudAFpAQVjbGFpbQEGYW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQZhbW91bnQBaQEIY2xhaW1BbGwABAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDSR0MDE0NTU4MTQ2MTgJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDE0NTU4MTQ2MTgCXzEECHRvVW5sb2NrCAUNJHQwMTQ1NTgxNDYxOAJfMgQGY2hlY2tzCQDMCAIDCQBmAgUHdG9DbGFpbQAABgkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQEXZ2V0Q2xhaW1VbmxvY2tlZEFjdGlvbnMCBQt1c2VyQWRkcmVzcwUHdG9DbGFpbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgB6Kn7f", "height": 2975559, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EHjWDZsTpFpnHRJcNvoFYUXwufcHiSSgN5ZQY6LN25up Next: 4QGBpEr1MLNb9nuazfRv9SPBRzZKUCdU3UwUCYA7JvAo Diff:
OldNewDifferences
3939 func q (r) = makeString(["%s", r], b)
4040
4141
42-func s (t) = makeString(["%s%s", "toClaim", t], b)
42+func s (t,r) = makeString(["%s%s", r, t], b)
4343
4444
45-func u (t,r) = makeString(["%s%s", r, t], b)
45+func u (t) = makeString(["%s%s", "toClaim", t], b)
4646
4747
48-func v (r) = makeString(["%s%d", r, toString(height)], b)
48+func v (t) = makeString(["%s%s", "userTotalLocked", t], b)
4949
5050
51-func w (r,t) = makeString(["%s%s%d", r, t, toString(height)], b)
51+func w (r) = makeString(["%s%d", r, toString(height)], b)
5252
5353
54-let x = valueOrElse(getString(this, e), "WAVES")
55-
56-let y = if ((x == "WAVES"))
57- then unit
58- else fromBase58String(x)
59-
60-let z = split(valueOrElse(getString(this, f), ""), b)
61-
62-let A = valueOrElse(getBoolean(this, g), false)
63-
64-func B (C) = containsElement(z, C)
54+func x (r,t) = makeString(["%s%s%d", r, t, toString(height)], b)
6555
6656
67-func D (C) = {
68- let E = addressFromString(C)
69- if ($isInstanceOf(E, "Address"))
57+let y = valueOrElse(getString(this, e), "WAVES")
58+
59+let z = if ((y == "WAVES"))
60+ then unit
61+ else fromBase58String(y)
62+
63+let A = split(valueOrElse(getString(this, f), ""), b)
64+
65+let B = valueOrElse(getBoolean(this, g), false)
66+
67+func C (D) = containsElement(A, D)
68+
69+
70+func E (D) = {
71+ let F = addressFromString(D)
72+ if ($isInstanceOf(F, "Address"))
7073 then {
71- let F = E
74+ let G = F
7275 true
7376 }
7477 else false
7578 }
7679
7780
78-func G (r,H,I) = {
79- let J = makeString(["%d%d%d%d", toString(o), toString(H), toString(p), toString(I)], b)
80- StringEntry(q(r), J)
81+func H (r,I,J) = {
82+ let K = makeString(["%d%d%d%d", toString(o), toString(I), toString(p), toString(J)], b)
83+ StringEntry(q(r), K)
8184 }
8285
8386
84-func K (r) = {
85- let L = getString(this, q(r))
86- let E = L
87- if ($isInstanceOf(E, "String"))
87+func L (r) = {
88+ let M = getString(this, q(r))
89+ let F = M
90+ if ($isInstanceOf(F, "String"))
8891 then {
89- let M = E
90- let N = split(M, b)
91- let O = parseIntValue(N[1])
92- let P = parseIntValue(N[2])
93- let Q = parseIntValue(N[3])
94- let R = parseIntValue(N[4])
95- if ((Q > height))
96- then $Tuple2(P, R)
97- else $Tuple2(R, R)
92+ let N = F
93+ let O = split(N, b)
94+ let P = parseIntValue(O[1])
95+ let Q = parseIntValue(O[2])
96+ let R = parseIntValue(O[3])
97+ let S = parseIntValue(O[4])
98+ if ((R > height))
99+ then $Tuple2(Q, S)
100+ else $Tuple2(S, S)
98101 }
99102 else $Tuple2(0, 0)
100103 }
101104
102105
103-func S (r,t,T,U) = {
104- let J = makeString(["%d%d%d%d", toString(o), toString(T), toString(p), toString(U)], b)
105- StringEntry(u(t, r), J)
106+func T (r,t,U,V) = {
107+ let K = makeString(["%d%d%d%d", toString(o), toString(U), toString(p), toString(V)], b)
108+ StringEntry(s(t, r), K)
106109 }
107110
108111
109-func V (r,t) = {
110- let W = getString(this, u(t, r))
111- let E = W
112- if ($isInstanceOf(E, "String"))
112+func W (r,t) = {
113+ let X = getString(this, s(t, r))
114+ let F = X
115+ if ($isInstanceOf(F, "String"))
113116 then {
114- let M = E
115- let N = split(M, b)
116- let X = parseIntValue(N[1])
117- let T = parseIntValue(N[2])
118- let Y = parseIntValue(N[3])
119- let U = parseIntValue(N[4])
120- if ((Y > height))
121- then $Tuple2(T, U)
122- else $Tuple2(U, U)
117+ let N = F
118+ let O = split(N, b)
119+ let Y = parseIntValue(O[1])
120+ let U = parseIntValue(O[2])
121+ let Z = parseIntValue(O[3])
122+ let V = parseIntValue(O[4])
123+ if ((Z > height))
124+ then $Tuple2(U, V)
125+ else $Tuple2(V, V)
123126 }
124127 else $Tuple2(0, 0)
125128 }
126129
127130
128-func Z (t,aa,ab) = {
129- let J = makeString(["%d%d%d%d", toString(o), toString(aa), toString(p), toString(ab)], b)
130- StringEntry(s(t), J)
131+func aa (t,ab,ac) = {
132+ let K = makeString(["%d%d%d%d", toString(o), toString(ab), toString(p), toString(ac)], b)
133+ StringEntry(u(t), K)
131134 }
132135
133136
134-func ac (t) = {
135- let ad = getString(this, s(t))
136- let E = ad
137- if ($isInstanceOf(E, "String"))
137+func ad (t) = {
138+ let ae = getString(this, u(t))
139+ let F = ae
140+ if ($isInstanceOf(F, "String"))
138141 then {
139- let M = E
140- let N = split(M, b)
141- let ae = parseIntValue(N[1])
142- let aa = parseIntValue(N[2])
143- let af = parseIntValue(N[3])
144- let ab = parseIntValue(N[4])
145- if ((af > height))
146- then $Tuple2(aa, ab)
147- else $Tuple2((aa + ab), 0)
142+ let N = F
143+ let O = split(N, b)
144+ let af = parseIntValue(O[1])
145+ let ab = parseIntValue(O[2])
146+ let ag = parseIntValue(O[3])
147+ let ac = parseIntValue(O[4])
148+ if ((ag > height))
149+ then $Tuple2(ab, ac)
150+ else $Tuple2((ab + ac), 0)
148151 }
149152 else $Tuple2(0, 0)
150153 }
151154
152155
153-func ag (r,t,ah) = {
154- let ai = [if (!(A))
156+func ah (t,ai) = IntegerEntry(v(t), ai)
157+
158+
159+func aj (t) = valueOrElse(getInteger(this, v(t)), 0)
160+
161+
162+func ak (r,t,al) = {
163+ let am = [if (!(B))
155164 then true
156- else c("contract is temporary stopped"), if ((size(ah.payments) == 1))
165+ else c("contract is temporary stopped"), if ((size(al.payments) == 1))
157166 then true
158- else c("payment size should be exactly 1"), if ((ah.payments[0].assetId == y))
167+ else c("payment size should be exactly 1"), if ((al.payments[0].assetId == z))
159168 then true
160- else c(makeString(["payment assetId should be:", x], " ")), if (D(r))
169+ else c(makeString(["payment assetId should be:", y], " ")), if (E(r))
161170 then true
162- else c(makeString(["node address is not valid:", r], " ")), if (D(t))
171+ else c(makeString(["node address is not valid:", r], " ")), if (E(t))
163172 then true
164173 else c(makeString(["user address is not valid:", t], " "))]
165- if ((ai == ai))
174+ if ((am == am))
166175 then {
167- let aj = ah.payments[0].amount
168- let ak = K(r)
169- let P = ak._1
170- let R = ak._2
171- let al = (R + aj)
172- let am = V(r, t)
173- let T = am._1
174- let U = am._2
175- let an = (U + aj)
176-[G(r, P, al), S(r, t, T, an), IntegerEntry(v(r), al), IntegerEntry(w(r, t), an)]
176+ let an = al.payments[0].amount
177+ let ao = L(r)
178+ let Q = ao._1
179+ let S = ao._2
180+ let ap = (S + an)
181+ let aq = W(r, t)
182+ let U = aq._1
183+ let V = aq._2
184+ let ar = (V + an)
185+ let ai = aj(t)
186+ let as = (ai + an)
187+[H(r, Q, ap), T(r, t, U, ar), ah(t, as), IntegerEntry(w(r), ap), IntegerEntry(x(r, t), ar)]
177188 }
178189 else throw("Strict value is not equal to itself.")
179190 }
180191
181192
182-func ao (r,t,ap) = {
183- let aq = K(r)
184- let P = aq._1
185- let R = aq._2
186- let ar = V(r, t)
187- let T = ar._1
188- let U = ar._2
189- let ai = [if (!(A))
193+func at (r,t,au) = {
194+ let av = L(r)
195+ let Q = av._1
196+ let S = av._2
197+ let aw = W(r, t)
198+ let U = aw._1
199+ let V = aw._2
200+ let am = [if (!(B))
190201 then true
191- else c("contract is temporary stopped"), if ((ap > 0))
202+ else c("contract is temporary stopped"), if ((au > 0))
192203 then true
193- else c("unstake amount should be greater than 0"), if ((U >= ap))
204+ else c("unstake amount should be greater than 0"), if ((V >= au))
194205 then true
195- else c("unstake amount should be less or equal user staked amount"), if ((R >= ap))
206+ else c("unstake amount should be less or equal user staked amount"), if ((S >= au))
196207 then true
197- else c("unstake amount should be less or equal node staked amount"), if (D(r))
208+ else c("unstake amount should be less or equal node staked amount"), if (E(r))
198209 then true
199- else c(makeString(["node address is not valid:", r], " ")), if (D(t))
210+ else c(makeString(["node address is not valid:", r], " ")), if (E(t))
200211 then true
201212 else c(makeString(["user address is not valid:", t], " "))]
202- if ((ai == ai))
213+ if ((am == am))
203214 then {
204- let al = (R - ap)
205- let an = (U - ap)
206- let as = ac(t)
207- let aa = as._1
208- let ab = as._2
209- let at = (ab + ap)
210-[G(r, P, al), S(r, t, T, an), Z(t, aa, at), IntegerEntry(v(r), al), IntegerEntry(w(r, t), an)]
215+ let ap = (S - au)
216+ let ar = (V - au)
217+ let ax = ad(t)
218+ let ab = ax._1
219+ let ac = ax._2
220+ let ay = (ac + au)
221+ let ai = aj(t)
222+ let as = (ai - au)
223+[H(r, Q, ap), T(r, t, U, ar), aa(t, ab, ay), ah(t, as), IntegerEntry(w(r), ap), IntegerEntry(x(r, t), ar)]
211224 }
212225 else throw("Strict value is not equal to itself.")
213226 }
214227
215228
216-func au (t,av) = {
217- let aw = ac(t)
218- let aa = aw._1
219- let ab = aw._2
220- let ai = [if (!(A))
229+func az (t,aA) = {
230+ let aB = ad(t)
231+ let ab = aB._1
232+ let ac = aB._2
233+ let am = [if (!(B))
221234 then true
222- else c("contract is temporary stopped"), if ((av > 0))
235+ else c("contract is temporary stopped"), if ((aA > 0))
223236 then true
224- else c("claim amount should be greater than 0"), if ((aa >= av))
237+ else c("claim amount should be greater than 0"), if ((ab >= aA))
225238 then true
226- else c("claim amount should be less or equal unlocked amount"), if (D(t))
239+ else c("claim amount should be less or equal unlocked amount"), if (E(t))
227240 then true
228241 else c(makeString(["user address is not valid:", t], " "))]
229- if ((ai == ai))
242+ if ((am == am))
230243 then {
231- let ax = (aa - av)
232-[Z(t, ax, ab), ScriptTransfer(addressFromStringValue(t), av, y)]
244+ let aC = (ab - aA)
245+[aa(t, aC, ac), ScriptTransfer(addressFromStringValue(t), aA, z)]
233246 }
234247 else throw("Strict value is not equal to itself.")
235248 }
236249
237250
238-func ay (r,t,aj) = {
239- let az = ac(t)
240- let aa = az._1
241- let ab = az._2
242- let aA = (ab + aa)
243- let ai = [if (!(A))
251+func aD (r,t,an) = {
252+ let aE = ad(t)
253+ let ab = aE._1
254+ let ac = aE._2
255+ let aF = (ac + ab)
256+ let am = [if (!(B))
244257 then true
245- else c("contract is temporary stopped"), if ((aj > 0))
258+ else c("contract is temporary stopped"), if ((an > 0))
246259 then true
247- else c("amount should be greater than 0"), if ((aA >= aj))
260+ else c("amount should be greater than 0"), if ((aF >= an))
248261 then true
249- else c("amount should be less or equal to available"), if (D(r))
262+ else c("amount should be less or equal available amount"), if (E(r))
250263 then true
251- else c(makeString(["node address is not valid:", r], " ")), if (D(t))
264+ else c(makeString(["node address is not valid:", r], " ")), if (E(t))
252265 then true
253266 else c(makeString(["user address is not valid:", t], " "))]
254- if ((ai == ai))
267+ if ((am == am))
255268 then {
256- let aB = K(r)
257- let P = aB._1
258- let R = aB._2
259- let al = (R + aj)
260- let aC = V(r, t)
261- let T = aC._1
262- let U = aC._2
263- let an = (U + aj)
264- let at = max([0, (ab - aj)])
265- let ax = min([aa, (aa + (ab - aj))])
266-[G(r, P, al), S(r, t, T, an), Z(t, ax, at), IntegerEntry(v(r), al), IntegerEntry(w(r, t), an)]
269+ let aG = L(r)
270+ let Q = aG._1
271+ let S = aG._2
272+ let ap = (S + an)
273+ let aH = W(r, t)
274+ let U = aH._1
275+ let V = aH._2
276+ let ar = (V + an)
277+ let ay = max([0, (ac - an)])
278+ let aC = min([ab, (ab + (ac - an))])
279+ let ai = aj(t)
280+ let as = (ai + an)
281+[H(r, Q, ap), T(r, t, U, ar), aa(t, aC, ay), ah(t, as), IntegerEntry(w(r), ap), IntegerEntry(x(r, t), ar)]
267282 }
268283 else throw("Strict value is not equal to itself.")
269284 }
270285
271286
272-func aD (aE) = {
273- let aF = [if ((aE > 0))
287+func aI (aJ) = {
288+ let aK = [if ((aJ > 0))
274289 then true
275290 else c("period length should be greater than 0")]
276- if ((aF == aF))
291+ if ((aK == aK))
277292 then if ((m == -1))
278- then [IntegerEntry(j, aE), IntegerEntry(i, height)]
279- else [IntegerEntry(h, (n + 1)), IntegerEntry(i, p), IntegerEntry(j, aE)]
293+ then [IntegerEntry(j, aJ), IntegerEntry(i, height)]
294+ else [IntegerEntry(h, (n + 1)), IntegerEntry(i, p), IntegerEntry(j, aJ)]
280295 else throw("Strict value is not equal to itself.")
281296 }
282297
283298
284-@Callable(ah)
285-func setNewPeriodLength (aE) = {
286- let ai = [if (B(toString(ah.caller)))
299+@Callable(al)
300+func setNewPeriodLength (aJ) = {
301+ let am = [if (C(toString(al.caller)))
287302 then true
288303 else c("caller is not in adminList")]
289- if ((ai == ai))
290- then aD(aE)
304+ if ((am == am))
305+ then aI(aJ)
291306 else throw("Strict value is not equal to itself.")
292307 }
293308
294309
295310
296-@Callable(ah)
297-func setForceStopFlag (aG) = {
298- let aF = [if (B(toString(ah.caller)))
311+@Callable(al)
312+func setForceStopFlag (aL) = {
313+ let aK = [if (C(toString(al.caller)))
299314 then true
300315 else c("caller is not an admin")]
301- if ((aF == aF))
302- then [BooleanEntry(g, aG)]
316+ if ((aK == aK))
317+ then [BooleanEntry(g, aL)]
303318 else throw("Strict value is not equal to itself.")
304319 }
305320
306321
307322
308-@Callable(ah)
323+@Callable(al)
309324 func getNodeDataREADONLY (r) = {
310- let aH = K(r)
311- let aI = aH._1
312- let I = aH._2
313- $Tuple2(nil, $Tuple5(o, aI, p, I, height))
325+ let aM = L(r)
326+ let aN = aM._1
327+ let J = aM._2
328+ $Tuple2(nil, $Tuple5(o, aN, p, J, height))
314329 }
315330
316331
317332
318-@Callable(ah)
333+@Callable(al)
319334 func getUserDataREADONLY (t) = {
320- let aJ = ac(t)
321- let aa = aJ._1
322- let ab = aJ._2
323- $Tuple2(nil, $Tuple5(o, aa, p, ab, height))
335+ let aO = ad(t)
336+ let ab = aO._1
337+ let ac = aO._2
338+ let ai = aj(t)
339+ $Tuple2(nil, $Tuple6(o, ab, p, ac, ai, height))
324340 }
325341
326342
327343
328-@Callable(ah)
329-func leaseByAddress (r,t) = ag(r, t, ah)
344+@Callable(al)
345+func leaseByAddress (r,t) = ak(r, t, al)
330346
331347
332348
333-@Callable(ah)
349+@Callable(al)
334350 func lease (r) = {
335- let t = toString(ah.caller)
336- ag(r, t, ah)
351+ let t = toString(al.caller)
352+ ak(r, t, al)
337353 }
338354
339355
340356
341-@Callable(ah)
342-func leaseFromUnlocked (r,aK) = {
343- let t = toString(ah.caller)
344- ay(r, t, aK)
357+@Callable(al)
358+func leaseFromLocked (r,aP) = {
359+ let t = toString(al.caller)
360+ aD(r, t, aP)
345361 }
346362
347363
348364
349-@Callable(ah)
350-func cancelLease (r,aK) = {
351- let t = toString(ah.caller)
352- ao(r, t, aK)
365+@Callable(al)
366+func cancelLease (r,aP) = {
367+ let t = toString(al.caller)
368+ at(r, t, aP)
353369 }
354370
355371
356372
357-@Callable(ah)
358-func claim (aK) = {
359- let t = toString(ah.caller)
360- au(t, aK)
373+@Callable(al)
374+func claim (aP) = {
375+ let t = toString(al.caller)
376+ az(t, aP)
361377 }
362378
363379
364380
365-@Callable(ah)
381+@Callable(al)
366382 func claimAll () = {
367- let t = toString(ah.caller)
368- let aL = ac(t)
369- let aa = aL._1
370- let ab = aL._2
371- let ai = [if ((aa > 0))
383+ let t = toString(al.caller)
384+ let aQ = ad(t)
385+ let ab = aQ._1
386+ let ac = aQ._2
387+ let am = [if ((ab > 0))
372388 then true
373389 else c("nothing to claim")]
374- if ((ai == ai))
375- then au(t, aa)
390+ if ((am == am))
391+ then az(t, ab)
376392 else throw("Strict value is not equal to itself.")
377393 }
378394
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "l2mp_leasing.ride"
55
66 let b = "__"
77
88 func c (d) = throw(((a + ": ") + d))
99
1010
1111 let e = makeString(["%s", "assetId"], b)
1212
1313 let f = makeString(["%s", "adminList"], b)
1414
1515 let g = makeString(["%s", "forceStop"], b)
1616
1717 let h = makeString(["%s", "offsetId"], b)
1818
1919 let i = makeString(["%s", "offsetHeight"], b)
2020
2121 let j = makeString(["%s", "periodLength"], b)
2222
2323 let k = valueOrElse(getInteger(this, h), 0)
2424
2525 let l = valueOrElse(getInteger(this, j), 10000)
2626
2727 let m = valueOrElse(getInteger(this, i), -1)
2828
2929 let n = if (if ((height > m))
3030 then (m != -1)
3131 else false)
3232 then (((height - m) / l) + k)
3333 else max([0, (k - 1)])
3434
3535 let o = (m + ((n - k) * l))
3636
3737 let p = (o + l)
3838
3939 func q (r) = makeString(["%s", r], b)
4040
4141
42-func s (t) = makeString(["%s%s", "toClaim", t], b)
42+func s (t,r) = makeString(["%s%s", r, t], b)
4343
4444
45-func u (t,r) = makeString(["%s%s", r, t], b)
45+func u (t) = makeString(["%s%s", "toClaim", t], b)
4646
4747
48-func v (r) = makeString(["%s%d", r, toString(height)], b)
48+func v (t) = makeString(["%s%s", "userTotalLocked", t], b)
4949
5050
51-func w (r,t) = makeString(["%s%s%d", r, t, toString(height)], b)
51+func w (r) = makeString(["%s%d", r, toString(height)], b)
5252
5353
54-let x = valueOrElse(getString(this, e), "WAVES")
55-
56-let y = if ((x == "WAVES"))
57- then unit
58- else fromBase58String(x)
59-
60-let z = split(valueOrElse(getString(this, f), ""), b)
61-
62-let A = valueOrElse(getBoolean(this, g), false)
63-
64-func B (C) = containsElement(z, C)
54+func x (r,t) = makeString(["%s%s%d", r, t, toString(height)], b)
6555
6656
67-func D (C) = {
68- let E = addressFromString(C)
69- if ($isInstanceOf(E, "Address"))
57+let y = valueOrElse(getString(this, e), "WAVES")
58+
59+let z = if ((y == "WAVES"))
60+ then unit
61+ else fromBase58String(y)
62+
63+let A = split(valueOrElse(getString(this, f), ""), b)
64+
65+let B = valueOrElse(getBoolean(this, g), false)
66+
67+func C (D) = containsElement(A, D)
68+
69+
70+func E (D) = {
71+ let F = addressFromString(D)
72+ if ($isInstanceOf(F, "Address"))
7073 then {
71- let F = E
74+ let G = F
7275 true
7376 }
7477 else false
7578 }
7679
7780
78-func G (r,H,I) = {
79- let J = makeString(["%d%d%d%d", toString(o), toString(H), toString(p), toString(I)], b)
80- StringEntry(q(r), J)
81+func H (r,I,J) = {
82+ let K = makeString(["%d%d%d%d", toString(o), toString(I), toString(p), toString(J)], b)
83+ StringEntry(q(r), K)
8184 }
8285
8386
84-func K (r) = {
85- let L = getString(this, q(r))
86- let E = L
87- if ($isInstanceOf(E, "String"))
87+func L (r) = {
88+ let M = getString(this, q(r))
89+ let F = M
90+ if ($isInstanceOf(F, "String"))
8891 then {
89- let M = E
90- let N = split(M, b)
91- let O = parseIntValue(N[1])
92- let P = parseIntValue(N[2])
93- let Q = parseIntValue(N[3])
94- let R = parseIntValue(N[4])
95- if ((Q > height))
96- then $Tuple2(P, R)
97- else $Tuple2(R, R)
92+ let N = F
93+ let O = split(N, b)
94+ let P = parseIntValue(O[1])
95+ let Q = parseIntValue(O[2])
96+ let R = parseIntValue(O[3])
97+ let S = parseIntValue(O[4])
98+ if ((R > height))
99+ then $Tuple2(Q, S)
100+ else $Tuple2(S, S)
98101 }
99102 else $Tuple2(0, 0)
100103 }
101104
102105
103-func S (r,t,T,U) = {
104- let J = makeString(["%d%d%d%d", toString(o), toString(T), toString(p), toString(U)], b)
105- StringEntry(u(t, r), J)
106+func T (r,t,U,V) = {
107+ let K = makeString(["%d%d%d%d", toString(o), toString(U), toString(p), toString(V)], b)
108+ StringEntry(s(t, r), K)
106109 }
107110
108111
109-func V (r,t) = {
110- let W = getString(this, u(t, r))
111- let E = W
112- if ($isInstanceOf(E, "String"))
112+func W (r,t) = {
113+ let X = getString(this, s(t, r))
114+ let F = X
115+ if ($isInstanceOf(F, "String"))
113116 then {
114- let M = E
115- let N = split(M, b)
116- let X = parseIntValue(N[1])
117- let T = parseIntValue(N[2])
118- let Y = parseIntValue(N[3])
119- let U = parseIntValue(N[4])
120- if ((Y > height))
121- then $Tuple2(T, U)
122- else $Tuple2(U, U)
117+ let N = F
118+ let O = split(N, b)
119+ let Y = parseIntValue(O[1])
120+ let U = parseIntValue(O[2])
121+ let Z = parseIntValue(O[3])
122+ let V = parseIntValue(O[4])
123+ if ((Z > height))
124+ then $Tuple2(U, V)
125+ else $Tuple2(V, V)
123126 }
124127 else $Tuple2(0, 0)
125128 }
126129
127130
128-func Z (t,aa,ab) = {
129- let J = makeString(["%d%d%d%d", toString(o), toString(aa), toString(p), toString(ab)], b)
130- StringEntry(s(t), J)
131+func aa (t,ab,ac) = {
132+ let K = makeString(["%d%d%d%d", toString(o), toString(ab), toString(p), toString(ac)], b)
133+ StringEntry(u(t), K)
131134 }
132135
133136
134-func ac (t) = {
135- let ad = getString(this, s(t))
136- let E = ad
137- if ($isInstanceOf(E, "String"))
137+func ad (t) = {
138+ let ae = getString(this, u(t))
139+ let F = ae
140+ if ($isInstanceOf(F, "String"))
138141 then {
139- let M = E
140- let N = split(M, b)
141- let ae = parseIntValue(N[1])
142- let aa = parseIntValue(N[2])
143- let af = parseIntValue(N[3])
144- let ab = parseIntValue(N[4])
145- if ((af > height))
146- then $Tuple2(aa, ab)
147- else $Tuple2((aa + ab), 0)
142+ let N = F
143+ let O = split(N, b)
144+ let af = parseIntValue(O[1])
145+ let ab = parseIntValue(O[2])
146+ let ag = parseIntValue(O[3])
147+ let ac = parseIntValue(O[4])
148+ if ((ag > height))
149+ then $Tuple2(ab, ac)
150+ else $Tuple2((ab + ac), 0)
148151 }
149152 else $Tuple2(0, 0)
150153 }
151154
152155
153-func ag (r,t,ah) = {
154- let ai = [if (!(A))
156+func ah (t,ai) = IntegerEntry(v(t), ai)
157+
158+
159+func aj (t) = valueOrElse(getInteger(this, v(t)), 0)
160+
161+
162+func ak (r,t,al) = {
163+ let am = [if (!(B))
155164 then true
156- else c("contract is temporary stopped"), if ((size(ah.payments) == 1))
165+ else c("contract is temporary stopped"), if ((size(al.payments) == 1))
157166 then true
158- else c("payment size should be exactly 1"), if ((ah.payments[0].assetId == y))
167+ else c("payment size should be exactly 1"), if ((al.payments[0].assetId == z))
159168 then true
160- else c(makeString(["payment assetId should be:", x], " ")), if (D(r))
169+ else c(makeString(["payment assetId should be:", y], " ")), if (E(r))
161170 then true
162- else c(makeString(["node address is not valid:", r], " ")), if (D(t))
171+ else c(makeString(["node address is not valid:", r], " ")), if (E(t))
163172 then true
164173 else c(makeString(["user address is not valid:", t], " "))]
165- if ((ai == ai))
174+ if ((am == am))
166175 then {
167- let aj = ah.payments[0].amount
168- let ak = K(r)
169- let P = ak._1
170- let R = ak._2
171- let al = (R + aj)
172- let am = V(r, t)
173- let T = am._1
174- let U = am._2
175- let an = (U + aj)
176-[G(r, P, al), S(r, t, T, an), IntegerEntry(v(r), al), IntegerEntry(w(r, t), an)]
176+ let an = al.payments[0].amount
177+ let ao = L(r)
178+ let Q = ao._1
179+ let S = ao._2
180+ let ap = (S + an)
181+ let aq = W(r, t)
182+ let U = aq._1
183+ let V = aq._2
184+ let ar = (V + an)
185+ let ai = aj(t)
186+ let as = (ai + an)
187+[H(r, Q, ap), T(r, t, U, ar), ah(t, as), IntegerEntry(w(r), ap), IntegerEntry(x(r, t), ar)]
177188 }
178189 else throw("Strict value is not equal to itself.")
179190 }
180191
181192
182-func ao (r,t,ap) = {
183- let aq = K(r)
184- let P = aq._1
185- let R = aq._2
186- let ar = V(r, t)
187- let T = ar._1
188- let U = ar._2
189- let ai = [if (!(A))
193+func at (r,t,au) = {
194+ let av = L(r)
195+ let Q = av._1
196+ let S = av._2
197+ let aw = W(r, t)
198+ let U = aw._1
199+ let V = aw._2
200+ let am = [if (!(B))
190201 then true
191- else c("contract is temporary stopped"), if ((ap > 0))
202+ else c("contract is temporary stopped"), if ((au > 0))
192203 then true
193- else c("unstake amount should be greater than 0"), if ((U >= ap))
204+ else c("unstake amount should be greater than 0"), if ((V >= au))
194205 then true
195- else c("unstake amount should be less or equal user staked amount"), if ((R >= ap))
206+ else c("unstake amount should be less or equal user staked amount"), if ((S >= au))
196207 then true
197- else c("unstake amount should be less or equal node staked amount"), if (D(r))
208+ else c("unstake amount should be less or equal node staked amount"), if (E(r))
198209 then true
199- else c(makeString(["node address is not valid:", r], " ")), if (D(t))
210+ else c(makeString(["node address is not valid:", r], " ")), if (E(t))
200211 then true
201212 else c(makeString(["user address is not valid:", t], " "))]
202- if ((ai == ai))
213+ if ((am == am))
203214 then {
204- let al = (R - ap)
205- let an = (U - ap)
206- let as = ac(t)
207- let aa = as._1
208- let ab = as._2
209- let at = (ab + ap)
210-[G(r, P, al), S(r, t, T, an), Z(t, aa, at), IntegerEntry(v(r), al), IntegerEntry(w(r, t), an)]
215+ let ap = (S - au)
216+ let ar = (V - au)
217+ let ax = ad(t)
218+ let ab = ax._1
219+ let ac = ax._2
220+ let ay = (ac + au)
221+ let ai = aj(t)
222+ let as = (ai - au)
223+[H(r, Q, ap), T(r, t, U, ar), aa(t, ab, ay), ah(t, as), IntegerEntry(w(r), ap), IntegerEntry(x(r, t), ar)]
211224 }
212225 else throw("Strict value is not equal to itself.")
213226 }
214227
215228
216-func au (t,av) = {
217- let aw = ac(t)
218- let aa = aw._1
219- let ab = aw._2
220- let ai = [if (!(A))
229+func az (t,aA) = {
230+ let aB = ad(t)
231+ let ab = aB._1
232+ let ac = aB._2
233+ let am = [if (!(B))
221234 then true
222- else c("contract is temporary stopped"), if ((av > 0))
235+ else c("contract is temporary stopped"), if ((aA > 0))
223236 then true
224- else c("claim amount should be greater than 0"), if ((aa >= av))
237+ else c("claim amount should be greater than 0"), if ((ab >= aA))
225238 then true
226- else c("claim amount should be less or equal unlocked amount"), if (D(t))
239+ else c("claim amount should be less or equal unlocked amount"), if (E(t))
227240 then true
228241 else c(makeString(["user address is not valid:", t], " "))]
229- if ((ai == ai))
242+ if ((am == am))
230243 then {
231- let ax = (aa - av)
232-[Z(t, ax, ab), ScriptTransfer(addressFromStringValue(t), av, y)]
244+ let aC = (ab - aA)
245+[aa(t, aC, ac), ScriptTransfer(addressFromStringValue(t), aA, z)]
233246 }
234247 else throw("Strict value is not equal to itself.")
235248 }
236249
237250
238-func ay (r,t,aj) = {
239- let az = ac(t)
240- let aa = az._1
241- let ab = az._2
242- let aA = (ab + aa)
243- let ai = [if (!(A))
251+func aD (r,t,an) = {
252+ let aE = ad(t)
253+ let ab = aE._1
254+ let ac = aE._2
255+ let aF = (ac + ab)
256+ let am = [if (!(B))
244257 then true
245- else c("contract is temporary stopped"), if ((aj > 0))
258+ else c("contract is temporary stopped"), if ((an > 0))
246259 then true
247- else c("amount should be greater than 0"), if ((aA >= aj))
260+ else c("amount should be greater than 0"), if ((aF >= an))
248261 then true
249- else c("amount should be less or equal to available"), if (D(r))
262+ else c("amount should be less or equal available amount"), if (E(r))
250263 then true
251- else c(makeString(["node address is not valid:", r], " ")), if (D(t))
264+ else c(makeString(["node address is not valid:", r], " ")), if (E(t))
252265 then true
253266 else c(makeString(["user address is not valid:", t], " "))]
254- if ((ai == ai))
267+ if ((am == am))
255268 then {
256- let aB = K(r)
257- let P = aB._1
258- let R = aB._2
259- let al = (R + aj)
260- let aC = V(r, t)
261- let T = aC._1
262- let U = aC._2
263- let an = (U + aj)
264- let at = max([0, (ab - aj)])
265- let ax = min([aa, (aa + (ab - aj))])
266-[G(r, P, al), S(r, t, T, an), Z(t, ax, at), IntegerEntry(v(r), al), IntegerEntry(w(r, t), an)]
269+ let aG = L(r)
270+ let Q = aG._1
271+ let S = aG._2
272+ let ap = (S + an)
273+ let aH = W(r, t)
274+ let U = aH._1
275+ let V = aH._2
276+ let ar = (V + an)
277+ let ay = max([0, (ac - an)])
278+ let aC = min([ab, (ab + (ac - an))])
279+ let ai = aj(t)
280+ let as = (ai + an)
281+[H(r, Q, ap), T(r, t, U, ar), aa(t, aC, ay), ah(t, as), IntegerEntry(w(r), ap), IntegerEntry(x(r, t), ar)]
267282 }
268283 else throw("Strict value is not equal to itself.")
269284 }
270285
271286
272-func aD (aE) = {
273- let aF = [if ((aE > 0))
287+func aI (aJ) = {
288+ let aK = [if ((aJ > 0))
274289 then true
275290 else c("period length should be greater than 0")]
276- if ((aF == aF))
291+ if ((aK == aK))
277292 then if ((m == -1))
278- then [IntegerEntry(j, aE), IntegerEntry(i, height)]
279- else [IntegerEntry(h, (n + 1)), IntegerEntry(i, p), IntegerEntry(j, aE)]
293+ then [IntegerEntry(j, aJ), IntegerEntry(i, height)]
294+ else [IntegerEntry(h, (n + 1)), IntegerEntry(i, p), IntegerEntry(j, aJ)]
280295 else throw("Strict value is not equal to itself.")
281296 }
282297
283298
284-@Callable(ah)
285-func setNewPeriodLength (aE) = {
286- let ai = [if (B(toString(ah.caller)))
299+@Callable(al)
300+func setNewPeriodLength (aJ) = {
301+ let am = [if (C(toString(al.caller)))
287302 then true
288303 else c("caller is not in adminList")]
289- if ((ai == ai))
290- then aD(aE)
304+ if ((am == am))
305+ then aI(aJ)
291306 else throw("Strict value is not equal to itself.")
292307 }
293308
294309
295310
296-@Callable(ah)
297-func setForceStopFlag (aG) = {
298- let aF = [if (B(toString(ah.caller)))
311+@Callable(al)
312+func setForceStopFlag (aL) = {
313+ let aK = [if (C(toString(al.caller)))
299314 then true
300315 else c("caller is not an admin")]
301- if ((aF == aF))
302- then [BooleanEntry(g, aG)]
316+ if ((aK == aK))
317+ then [BooleanEntry(g, aL)]
303318 else throw("Strict value is not equal to itself.")
304319 }
305320
306321
307322
308-@Callable(ah)
323+@Callable(al)
309324 func getNodeDataREADONLY (r) = {
310- let aH = K(r)
311- let aI = aH._1
312- let I = aH._2
313- $Tuple2(nil, $Tuple5(o, aI, p, I, height))
325+ let aM = L(r)
326+ let aN = aM._1
327+ let J = aM._2
328+ $Tuple2(nil, $Tuple5(o, aN, p, J, height))
314329 }
315330
316331
317332
318-@Callable(ah)
333+@Callable(al)
319334 func getUserDataREADONLY (t) = {
320- let aJ = ac(t)
321- let aa = aJ._1
322- let ab = aJ._2
323- $Tuple2(nil, $Tuple5(o, aa, p, ab, height))
335+ let aO = ad(t)
336+ let ab = aO._1
337+ let ac = aO._2
338+ let ai = aj(t)
339+ $Tuple2(nil, $Tuple6(o, ab, p, ac, ai, height))
324340 }
325341
326342
327343
328-@Callable(ah)
329-func leaseByAddress (r,t) = ag(r, t, ah)
344+@Callable(al)
345+func leaseByAddress (r,t) = ak(r, t, al)
330346
331347
332348
333-@Callable(ah)
349+@Callable(al)
334350 func lease (r) = {
335- let t = toString(ah.caller)
336- ag(r, t, ah)
351+ let t = toString(al.caller)
352+ ak(r, t, al)
337353 }
338354
339355
340356
341-@Callable(ah)
342-func leaseFromUnlocked (r,aK) = {
343- let t = toString(ah.caller)
344- ay(r, t, aK)
357+@Callable(al)
358+func leaseFromLocked (r,aP) = {
359+ let t = toString(al.caller)
360+ aD(r, t, aP)
345361 }
346362
347363
348364
349-@Callable(ah)
350-func cancelLease (r,aK) = {
351- let t = toString(ah.caller)
352- ao(r, t, aK)
365+@Callable(al)
366+func cancelLease (r,aP) = {
367+ let t = toString(al.caller)
368+ at(r, t, aP)
353369 }
354370
355371
356372
357-@Callable(ah)
358-func claim (aK) = {
359- let t = toString(ah.caller)
360- au(t, aK)
373+@Callable(al)
374+func claim (aP) = {
375+ let t = toString(al.caller)
376+ az(t, aP)
361377 }
362378
363379
364380
365-@Callable(ah)
381+@Callable(al)
366382 func claimAll () = {
367- let t = toString(ah.caller)
368- let aL = ac(t)
369- let aa = aL._1
370- let ab = aL._2
371- let ai = [if ((aa > 0))
383+ let t = toString(al.caller)
384+ let aQ = ad(t)
385+ let ab = aQ._1
386+ let ac = aQ._2
387+ let am = [if ((ab > 0))
372388 then true
373389 else c("nothing to claim")]
374- if ((ai == ai))
375- then au(t, aa)
390+ if ((am == am))
391+ then az(t, ab)
376392 else throw("Strict value is not equal to itself.")
377393 }
378394
379395

github/deemru/w8io/169f3d6 
101.63 ms