tx · ovpcsZnbKjoEq79eq2Ycohf1Zj8USiv3BW2zLRdw1PQ

3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h:  -0.01100000 Waves

2024.02.12 20:32 [2973341] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves

{ "type": 13, "id": "ovpcsZnbKjoEq79eq2Ycohf1Zj8USiv3BW2zLRdw1PQ", "fee": 1100000, "feeAssetId": null, "timestamp": 1707759135464, "version": 2, "chainId": 84, "sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h", "senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2", "proofs": [ "2wb9qkSTgFrj7a8UMiJ7nJqHqMq4tkAgh5UCSEwk4t8RFQEmQxNNxzgBdCkvbz2jAyR4WJMVjYbDMLYqq9RnGRgh" ], "script": "base64:BgIvCAISAwoBARIDCgEIEgMKAQgSBAoCCAgSAwoBCBIECgIIARIECgIIARIDCgEBEgAgAAxjb250cmFjdEZpbGUCEWwybXBfbGVhc2luZy5yaWRlAANTRVACAl9fAQh0aHJvd0VycgEDbXNnCQACAQkArAICCQCsAgIFDGNvbnRyYWN0RmlsZQICOiAFA21zZwAKa2V5QXNzZXRJZAkAuQkCCQDMCAICAiVzCQDMCAICB2Fzc2V0SWQFA25pbAUDU0VQABFrZXlQZXJpb2RPZmZzZXRJZAkAuQkCCQDMCAICAiVzCQDMCAICCG9mZnNldElkBQNuaWwFA1NFUAAVa2V5UGVyaW9kT2Zmc2V0SGVpZ2h0CQC5CQIJAMwIAgICJXMJAMwIAgIMb2Zmc2V0SGVpZ2h0BQNuaWwFA1NFUAAPa2V5UGVyaW9kTGVuZ3RoCQC5CQIJAMwIAgICJXMJAMwIAgIMcGVyaW9kTGVuZ3RoBQNuaWwFA1NFUAAOcGVyaW9kT2Zmc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwURa2V5UGVyaW9kT2Zmc2V0SWQAAAAMcGVyaW9kTGVuZ3RoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tleVBlcmlvZExlbmd0aACQTgAScGVyaW9kT2Zmc2V0SGVpZ2h0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFWtleVBlcmlvZE9mZnNldEhlaWdodAD///////////8BAA9jdXJyZW50UGVyaW9kSWQDAwkAZgIFBmhlaWdodAUScGVyaW9kT2Zmc2V0SGVpZ2h0CQECIT0CBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQcJAGQCCQBpAgkAZQIFBmhlaWdodAUScGVyaW9kT2Zmc2V0SGVpZ2h0BQxwZXJpb2RMZW5ndGgFDnBlcmlvZE9mZnNldElkCQCWAwEJAMwIAgAACQDMCAIJAGUCBQ5wZXJpb2RPZmZzZXRJZAABBQNuaWwAE2N1cnJlbnRQZXJpb2RIZWlnaHQJAGQCBRJwZXJpb2RPZmZzZXRIZWlnaHQJAGgCCQBlAgUPY3VycmVudFBlcmlvZElkBQ5wZXJpb2RPZmZzZXRJZAUMcGVyaW9kTGVuZ3RoABBuZXh0UGVyaW9kSGVpZ2h0CQBkAgUTY3VycmVudFBlcmlvZEhlaWdodAUMcGVyaW9kTGVuZ3RoARJrZXlMZWFzaW5nTm9kZURhdGEBC25vZGVBZGRyZXNzCQC5CQIJAMwIAgICJXMJAMwIAgULbm9kZUFkZHJlc3MFA25pbAUDU0VQAQ5rZXlVc2VyVG9DbGFpbQELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICB3RvQ2xhaW0JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgt1c2VyQWRkcmVzcwtub2RlQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgULbm9kZUFkZHJlc3MJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARZrZXlOb2RlTGVhc2luZ0J5SGVpZ2h0AQtub2RlQWRkcmVzcwkAuQkCCQDMCAICBCVzJWQJAMwIAgULbm9kZUFkZHJlc3MJAMwIAgkApAMBBQZoZWlnaHQFA25pbAUDU0VQARZrZXlVc2VyTGVhc2luZ0J5SGVpZ2h0Agtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBiVzJXMlZAkAzAgCBQtub2RlQWRkcmVzcwkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCCQCkAwEFBmhlaWdodAUDbmlsBQNTRVAADWFzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKa2V5QXNzZXRJZAIFV0FWRVMADGFzc2V0SWRCeXRlcwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nAQ5pc1ZhbGlkQWRkcmVzcwEHYWRkcmVzcwQHJG1hdGNoMAkApggBBQdhZGRyZXNzAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAGBwETZ2V0TGVhc2luZ05vZGVFbnRyeQMLbm9kZUFkZHJlc3MNY3VycmVudExlYXNlZApuZXh0TGVhc2VkBAt2YWx1ZVN0cmluZwkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQUTY3VycmVudFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFDWN1cnJlbnRMZWFzZWQJAMwIAgkApAMBBRBuZXh0UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUKbmV4dExlYXNlZAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIJARJrZXlMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwULdmFsdWVTdHJpbmcBEmdldExlYXNpbmdOb2RlRGF0YQELbm9kZUFkZHJlc3MEGGxlYXNpbmdOb2RlRGF0YVN0cmluZ1JhdwkAnQgCBQR0aGlzCQESa2V5TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEByRtYXRjaDAFGGxlYXNpbmdOb2RlRGF0YVN0cmluZ1JhdwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAmRzBQckbWF0Y2gwBAhkYXRhTGlzdAkAtQkCBQJkcwUDU0VQBBFub2RlQ3VycmVudFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAEEEW5vZGVDdXJyZW50TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAgQObm9kZU5leHRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAADBA5ub2RlTmV4dExlYXNlZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAQDCQBmAgUObm9kZU5leHRQZXJpb2QFBmhlaWdodAkAlAoCBRFub2RlQ3VycmVudExlYXNlZAUObm9kZU5leHRMZWFzZWQJAJQKAgUObm9kZU5leHRMZWFzZWQFDm5vZGVOZXh0TGVhc2VkCQCUCgIAAAAAARNnZXRVc2VyTGVhc2luZ0VudHJ5BAtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcxF1c2VyQ3VycmVudExlYXNlZA51c2VyTmV4dExlYXNlZAQLdmFsdWVTdHJpbmcJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFE2N1cnJlbnRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBRF1c2VyQ3VycmVudExlYXNlZAkAzAgCCQCkAwEFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQ51c2VyTmV4dExlYXNlZAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIJARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgULdXNlckFkZHJlc3MFC25vZGVBZGRyZXNzBQt2YWx1ZVN0cmluZwESZ2V0VXNlckxlYXNpbmdEYXRhAgtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwQYbGVhc2luZ1VzZXJEYXRhU3RyaW5nUmF3CQCdCAIFBHRoaXMJARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgULdXNlckFkZHJlc3MFC25vZGVBZGRyZXNzBAckbWF0Y2gwBRhsZWFzaW5nVXNlckRhdGFTdHJpbmdSYXcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAJkcwUHJG1hdGNoMAQIZGF0YUxpc3QJALUJAgUCZHMFA1NFUAQRdXNlckN1cnJlbnRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAABBBF1c2VyQ3VycmVudExlYXNlZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAIEDnVzZXJOZXh0UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAwQOdXNlck5leHRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAAEAwkAZgIFDnVzZXJOZXh0UGVyaW9kBQZoZWlnaHQJAJQKAgURdXNlckN1cnJlbnRMZWFzZWQFDnVzZXJOZXh0TGVhc2VkCQCUCgIFDnVzZXJOZXh0TGVhc2VkBQ51c2VyTmV4dExlYXNlZAkAlAoCAAAAAAETZ2V0VXNlclRvQ2xhaW1FbnRyeQMLdXNlckFkZHJlc3MHdG9DbGFpbQh0b1VubG9jawQLdmFsdWVTdHJpbmcJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFE2N1cnJlbnRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQd0b0NsYWltCQDMCAIJAKQDAQUQbmV4dFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFCHRvVW5sb2NrBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgkBDmtleVVzZXJUb0NsYWltAQULdXNlckFkZHJlc3MFC3ZhbHVlU3RyaW5nARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBC3VzZXJBZGRyZXNzBBh1c2VyVG9DbGFpbURhdGFTdHJpbmdSYXcJAJ0IAgUEdGhpcwkBDmtleVVzZXJUb0NsYWltAQULdXNlckFkZHJlc3MEByRtYXRjaDAFGHVzZXJUb0NsYWltRGF0YVN0cmluZ1JhdwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAmRzBQckbWF0Y2gwBAhkYXRhTGlzdAkAtQkCBQJkcwUDU0VQBA1jdXJyZW50UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAQQHdG9DbGFpbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAIECm5leHRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAADBAh0b1VubG9jawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAQDCQBmAgUKbmV4dFBlcmlvZAUGaGVpZ2h0CQCUCgIFB3RvQ2xhaW0FCHRvVW5sb2NrCQCUCgIJAGQCBQd0b0NsYWltBQh0b1VubG9jawAACQCUCgIAAAAAAQ9nZXRTdGFrZUFjdGlvbnMDC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzAWkEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECIHBheW1lbnQgc2l6ZSBzaG91bGQgYmUgZXhhY3RseSAxCQDMCAIDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQxhc3NldElkQnl0ZXMGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIacGF5bWVudCBhc3NldElkIHNob3VsZCBiZToJAMwIAgUNYXNzZXRJZFN0cmluZwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQtub2RlQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhpub2RlIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQtub2RlQWRkcmVzcwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhp1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEEXVzZXJMZWFzaW5nQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQLJHQwNTc3NzU4NTAJARJnZXRMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQRbm9kZUN1cnJlbnRMZWFzZWQIBQskdDA1Nzc3NTg1MAJfMQQObm9kZU5leHRMZWFzZWQIBQskdDA1Nzc3NTg1MAJfMgQQbmV3Tm9kZU5leHRMZWFzZQkAZAIFDm5vZGVOZXh0TGVhc2VkBRF1c2VyTGVhc2luZ0Ftb3VudAQLJHQwNTkxODYwMDQJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEEXVzZXJDdXJyZW50TGVhc2VkCAULJHQwNTkxODYwMDQCXzEEDnVzZXJOZXh0TGVhc2VkCAULJHQwNTkxODYwMDQCXzIEEW5ld1VzZXJOZXh0TGVhc2VkCQBkAgUOdXNlck5leHRMZWFzZWQFEXVzZXJMZWFzaW5nQW1vdW50CQDMCAIJARNnZXRMZWFzaW5nTm9kZUVudHJ5AwULbm9kZUFkZHJlc3MFEW5vZGVDdXJyZW50TGVhc2VkBRBuZXdOb2RlTmV4dExlYXNlCQDMCAIJARNnZXRVc2VyTGVhc2luZ0VudHJ5BAULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRF1c2VyQ3VycmVudExlYXNlZAURbmV3VXNlck5leHRMZWFzZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOb2RlTGVhc2luZ0J5SGVpZ2h0AQULbm9kZUFkZHJlc3MFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlVc2VyTGVhc2luZ0J5SGVpZ2h0AgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRFuZXdVc2VyTmV4dExlYXNlZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARFnZXRVbnN0YWtlQWN0aW9ucwMLbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MNdW5zdGFrZUFtb3VudAQLJHQwNjUxNjY1ODkJARJnZXRMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQRbm9kZUN1cnJlbnRMZWFzZWQIBQskdDA2NTE2NjU4OQJfMQQObm9kZU5leHRMZWFzZWQIBQskdDA2NTE2NjU4OQJfMgQLJHQwNjU5NDY2ODAJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEEXVzZXJDdXJyZW50TGVhc2VkCAULJHQwNjU5NDY2ODACXzEEDnVzZXJOZXh0TGVhc2VkCAULJHQwNjU5NDY2ODACXzIEBmNoZWNrcwkAzAgCAwkAZgIFDXVuc3Rha2VBbW91bnQAAAYJAQh0aHJvd0VycgECJ3Vuc3Rha2UgYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAZwIFDnVzZXJOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BgkBCHRocm93RXJyAQI5dW5zdGFrZSBhbW91bnQgc2hvdWxkIGJlIGxlc3Mgb3IgZXF1YWwgdXNlciBzdGFrZWQgYW1vdW50CQDMCAIDCQBnAgUObm9kZU5leHRMZWFzZWQFDXVuc3Rha2VBbW91bnQGCQEIdGhyb3dFcnIBAjl1bnN0YWtlIGFtb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCBub2RlIHN0YWtlZCBhbW91bnQJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC25vZGVBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGm5vZGUgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC25vZGVBZGRyZXNzBQNuaWwCASAJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnVzZXIgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQQbmV3Tm9kZU5leHRMZWFzZQkAZQIFDm5vZGVOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BBFuZXdVc2VyTmV4dExlYXNlZAkAZQIFDnVzZXJOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BAskdDA3MzczNzQ3OAkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAULJHQwNzM3Mzc0NzgCXzEECHRvVW5sb2NrCAULJHQwNzM3Mzc0NzgCXzIEC25ld1RvVW5sb2NrCQBkAgUIdG9VbmxvY2sFDXVuc3Rha2VBbW91bnQJAMwIAgkBE2dldExlYXNpbmdOb2RlRW50cnkDBQtub2RlQWRkcmVzcwURbm9kZUN1cnJlbnRMZWFzZWQFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBE2dldFVzZXJMZWFzaW5nRW50cnkEBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFEXVzZXJDdXJyZW50TGVhc2VkBRFuZXdVc2VyTmV4dExlYXNlZAkAzAgCCQETZ2V0VXNlclRvQ2xhaW1FbnRyeQMFC3VzZXJBZGRyZXNzBQd0b0NsYWltBQtuZXdUb1VubG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleU5vZGVMZWFzaW5nQnlIZWlnaHQBBQtub2RlQWRkcmVzcwUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVVzZXJMZWFzaW5nQnlIZWlnaHQCBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFEW5ld1VzZXJOZXh0TGVhc2VkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BF2dldENsYWltVW5sb2NrZWRBY3Rpb25zAgt1c2VyQWRkcmVzcwtjbGFpbUFtb3VudAQLJHQwODAyMTgwODEJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFCyR0MDgwMjE4MDgxAl8xBAh0b1VubG9jawgFCyR0MDgwMjE4MDgxAl8yBAZjaGVja3MJAMwIAgMJAGYCBQtjbGFpbUFtb3VudAAABgkBCHRocm93RXJyAQIlY2xhaW0gYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAZwIFB3RvQ2xhaW0FC2NsYWltQW1vdW50BgkBCHRocm93RXJyAQI0Y2xhaW0gYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIHVubG9ja2VkIGFtb3VudAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBApuZXdUb0NsYWltCQBlAgUHdG9DbGFpbQULY2xhaW1BbW91bnQJAMwIAgkBE2dldFVzZXJUb0NsYWltRW50cnkDBQt1c2VyQWRkcmVzcwUKbmV3VG9DbGFpbQUIdG9VbmxvY2sJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQULdXNlckFkZHJlc3MFC2NsYWltQW1vdW50BQxhc3NldElkQnl0ZXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEbZ2V0U3Rha2VGcm9tVW5sb2NrZWRBY3Rpb25zAwtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcxF1c2VyTGVhc2luZ0Ftb3VudAQLJHQwODcyMTg3ODEJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFCyR0MDg3MjE4NzgxAl8xBAh0b1VubG9jawgFCyR0MDg3MjE4NzgxAl8yBAlhdmFpbGFibGUJAGQCBQh0b1VubG9jawUHdG9DbGFpbQQGY2hlY2tzCQDMCAIDCQBmAgURdXNlckxlYXNpbmdBbW91bnQAAAYJAQh0aHJvd0VycgECH2Ftb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAJAMwIAgMJAGcCBQlhdmFpbGFibGUFEXVzZXJMZWFzaW5nQW1vdW50BgkBCHRocm93RXJyAQIrYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIHRvIGF2YWlsYWJsZQkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULbm9kZUFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIabm9kZSBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULbm9kZUFkZHJlc3MFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAskdDA5MjU4OTMzMQkBEmdldExlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBBFub2RlQ3VycmVudExlYXNlZAgFCyR0MDkyNTg5MzMxAl8xBA5ub2RlTmV4dExlYXNlZAgFCyR0MDkyNTg5MzMxAl8yBBBuZXdOb2RlTmV4dExlYXNlCQBkAgUObm9kZU5leHRMZWFzZWQFEXVzZXJMZWFzaW5nQW1vdW50BAskdDA5Mzk5OTQ4NQkBEmdldFVzZXJMZWFzaW5nRGF0YQIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwQRdXNlckN1cnJlbnRMZWFzZWQIBQskdDA5Mzk5OTQ4NQJfMQQOdXNlck5leHRMZWFzZWQIBQskdDA5Mzk5OTQ4NQJfMgQRbmV3VXNlck5leHRMZWFzZWQJAGQCBQ51c2VyTmV4dExlYXNlZAURdXNlckxlYXNpbmdBbW91bnQEC25ld1RvVW5sb2NrCQCWAwEJAMwIAgAACQDMCAIJAGUCBQh0b1VubG9jawURdXNlckxlYXNpbmdBbW91bnQFA25pbAQKbmV3VG9DbGFpbQkAlwMBCQDMCAIFB3RvQ2xhaW0JAMwIAgkAZAIFB3RvQ2xhaW0JAGUCBQh0b1VubG9jawURdXNlckxlYXNpbmdBbW91bnQFA25pbAkAzAgCCQETZ2V0TGVhc2luZ05vZGVFbnRyeQMFC25vZGVBZGRyZXNzBRFub2RlQ3VycmVudExlYXNlZAUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQETZ2V0VXNlckxlYXNpbmdFbnRyeQQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURdXNlckN1cnJlbnRMZWFzZWQFEW5ld1VzZXJOZXh0TGVhc2VkCQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFCm5ld1RvQ2xhaW0FC25ld1RvVW5sb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5Tm9kZUxlYXNpbmdCeUhlaWdodAEFC25vZGVBZGRyZXNzBRBuZXdOb2RlTmV4dExlYXNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5VXNlckxlYXNpbmdCeUhlaWdodAIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURbmV3VXNlck5leHRMZWFzZWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEcZ2V0U2V0TmV3UGVyaW9kTGVuZ3RoQWN0aW9ucwEPbmV3UGVyaW9kTGVuZ3RoBAVjaGVjawkAzAgCAwkAZgIFD25ld1BlcmlvZExlbmd0aAAABgkBCHRocm93RXJyAQImcGVyaW9kIGxlbmd0aCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAFA25pbAMJAAACBQVjaGVjawUFY2hlY2sDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleVBlcmlvZExlbmd0aAUPbmV3UGVyaW9kTGVuZ3RoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQFBmhlaWdodAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlQZXJpb2RPZmZzZXRJZAkAZAIFD2N1cnJlbnRQZXJpb2RJZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQFEG5leHRQZXJpb2RIZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleVBlcmlvZExlbmd0aAUPbmV3UGVyaW9kTGVuZ3RoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAWkBEnNldE5ld1BlcmlvZExlbmd0aAEPbmV3UGVyaW9kTGVuZ3RoCQEcZ2V0U2V0TmV3UGVyaW9kTGVuZ3RoQWN0aW9ucwEFD25ld1BlcmlvZExlbmd0aAFpARNnZXROb2RlRGF0YVJFQURPTkxZAQtub2RlQWRkcmVzcwQNJHQwMTA4ODAxMDk0NAkBEmdldExlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBAxjdXJyZW50TGVhc2UIBQ0kdDAxMDg4MDEwOTQ0Al8xBApuZXh0TGVhc2VkCAUNJHQwMTA4ODAxMDk0NAJfMgkAlAoCBQNuaWwJAJcKBQUTY3VycmVudFBlcmlvZEhlaWdodAUMY3VycmVudExlYXNlBRBuZXh0UGVyaW9kSGVpZ2h0BQpuZXh0TGVhc2VkBQZoZWlnaHQBaQETZ2V0VXNlckRhdGFSRUFET05MWQELdXNlckFkZHJlc3MEDSR0MDExMTAwMTExNjAJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDExMTAwMTExNjACXzEECHRvVW5sb2NrCAUNJHQwMTExMDAxMTE2MAJfMgkAlAoCBQNuaWwJAJcKBQUTY3VycmVudFBlcmlvZEhlaWdodAUHdG9DbGFpbQUQbmV4dFBlcmlvZEhlaWdodAUIdG9VbmxvY2sFBmhlaWdodAFpAQhzdGFrZUZvcgILbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MJAQ9nZXRTdGFrZUFjdGlvbnMDBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFAWkBaQEFc3Rha2UBC25vZGVBZGRyZXNzBAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJAQ9nZXRTdGFrZUFjdGlvbnMDBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFAWkBaQERc3Rha2VGcm9tVW5sb2NrZWQCC25vZGVBZGRyZXNzBmFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQEbZ2V0U3Rha2VGcm9tVW5sb2NrZWRBY3Rpb25zAwULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBQZhbW91bnQBaQEHdW5zdGFrZQILbm9kZUFkZHJlc3MGYW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARFnZXRVbnN0YWtlQWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUGYW1vdW50AWkBBWNsYWltAQZhbW91bnQEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBF2dldENsYWltVW5sb2NrZWRBY3Rpb25zAgULdXNlckFkZHJlc3MFBmFtb3VudAFpAQhjbGFpbUFsbAAEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQNJHQwMTIwNzgxMjEzOAkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMTIwNzgxMjEzOAJfMQQIdG9VbmxvY2sIBQ0kdDAxMjA3ODEyMTM4Al8yBAZjaGVja3MJAMwIAgMJAGYCBQd0b0NsYWltAAAGCQEIdGhyb3dFcnIBAhBub3RoaW5nIHRvIGNsYWltBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQd0b0NsYWltCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAGDhSn0=", "height": 2973341, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BnxhjRvsFxx5GWYAGufgqtCv1BbJxM2tH3hs67eYkZd7 Next: 4FG8tqN6QasBdHEH4Fac2CZDVHPaPL6rL9UUAPGMJCCK Diff:
OldNewDifferences
4141 func s (r,p) = makeString(["%s%s", p, r], b)
4242
4343
44-let t = valueOrElse(getString(this, e), "WAVES")
44+func t (p) = makeString(["%s%d", p, toString(height)], b)
4545
46-let u = if ((t == "WAVES"))
46+
47+func u (p,r) = makeString(["%s%s%d", p, r, toString(height)], b)
48+
49+
50+let v = valueOrElse(getString(this, e), "WAVES")
51+
52+let w = if ((v == "WAVES"))
4753 then unit
48- else fromBase58String(t)
54+ else fromBase58String(v)
4955
50-func v (w) = {
51- let x = addressFromString(w)
52- if ($isInstanceOf(x, "Address"))
56+func x (y) = {
57+ let z = addressFromString(y)
58+ if ($isInstanceOf(z, "Address"))
5359 then {
54- let y = x
60+ let A = z
5561 true
5662 }
5763 else false
5864 }
5965
6066
61-func z (p,A,B) = {
62- let C = makeString(["%d%d%d%d", toString(m), toString(A), toString(n), toString(B)], b)
63- StringEntry(o(p), C)
67+func B (p,C,D) = {
68+ let E = makeString(["%d%d%d%d", toString(m), toString(C), toString(n), toString(D)], b)
69+ StringEntry(o(p), E)
6470 }
6571
6672
67-func D (p) = {
68- let E = getString(this, o(p))
69- let x = E
70- if ($isInstanceOf(x, "String"))
73+func F (p) = {
74+ let G = getString(this, o(p))
75+ let z = G
76+ if ($isInstanceOf(z, "String"))
7177 then {
72- let F = x
73- let G = split(F, b)
74- let H = parseIntValue(G[1])
75- let I = parseIntValue(G[2])
76- let J = parseIntValue(G[3])
77- let K = parseIntValue(G[4])
78- if ((J > height))
79- then $Tuple2(I, K)
80- else $Tuple2(K, K)
78+ let H = z
79+ let I = split(H, b)
80+ let J = parseIntValue(I[1])
81+ let K = parseIntValue(I[2])
82+ let L = parseIntValue(I[3])
83+ let M = parseIntValue(I[4])
84+ if ((L > height))
85+ then $Tuple2(K, M)
86+ else $Tuple2(M, M)
8187 }
8288 else $Tuple2(0, 0)
8389 }
8490
8591
86-func L (p,r,M,N) = {
87- let C = makeString(["%d%d%d%d", toString(m), toString(M), toString(n), toString(N)], b)
88- StringEntry(s(r, p), C)
92+func N (p,r,O,P) = {
93+ let E = makeString(["%d%d%d%d", toString(m), toString(O), toString(n), toString(P)], b)
94+ StringEntry(s(r, p), E)
8995 }
9096
9197
92-func O (p,r) = {
93- let P = getString(this, s(r, p))
94- let x = P
95- if ($isInstanceOf(x, "String"))
98+func Q (p,r) = {
99+ let R = getString(this, s(r, p))
100+ let z = R
101+ if ($isInstanceOf(z, "String"))
96102 then {
97- let F = x
98- let G = split(F, b)
99- let Q = parseIntValue(G[1])
100- let M = parseIntValue(G[2])
101- let R = parseIntValue(G[3])
102- let N = parseIntValue(G[4])
103- if ((R > height))
104- then $Tuple2(M, N)
105- else $Tuple2(N, N)
103+ let H = z
104+ let I = split(H, b)
105+ let S = parseIntValue(I[1])
106+ let O = parseIntValue(I[2])
107+ let T = parseIntValue(I[3])
108+ let P = parseIntValue(I[4])
109+ if ((T > height))
110+ then $Tuple2(O, P)
111+ else $Tuple2(P, P)
106112 }
107113 else $Tuple2(0, 0)
108114 }
109115
110116
111-func S (r,T,U) = {
112- let C = makeString(["%d%d%d%d", toString(m), toString(T), toString(n), toString(U)], b)
113- StringEntry(q(r), C)
117+func U (r,V,W) = {
118+ let E = makeString(["%d%d%d%d", toString(m), toString(V), toString(n), toString(W)], b)
119+ StringEntry(q(r), E)
114120 }
115121
116122
117-func V (r) = {
118- let W = getString(this, q(r))
119- let x = W
120- if ($isInstanceOf(x, "String"))
123+func X (r) = {
124+ let Y = getString(this, q(r))
125+ let z = Y
126+ if ($isInstanceOf(z, "String"))
121127 then {
122- let F = x
123- let G = split(F, b)
124- let X = parseIntValue(G[1])
125- let T = parseIntValue(G[2])
126- let Y = parseIntValue(G[3])
127- let U = parseIntValue(G[4])
128- if ((Y > height))
129- then $Tuple2(T, U)
130- else $Tuple2((T + U), 0)
128+ let H = z
129+ let I = split(H, b)
130+ let Z = parseIntValue(I[1])
131+ let V = parseIntValue(I[2])
132+ let aa = parseIntValue(I[3])
133+ let W = parseIntValue(I[4])
134+ if ((aa > height))
135+ then $Tuple2(V, W)
136+ else $Tuple2((V + W), 0)
131137 }
132138 else $Tuple2(0, 0)
133139 }
134140
135141
136-func Z (p,r,aa) = {
137- let ab = [if ((size(aa.payments) == 1))
142+func ab (p,r,ac) = {
143+ let ad = [if ((size(ac.payments) == 1))
138144 then true
139- else c("payment size should be exactly 1"), if ((aa.payments[0].assetId == u))
145+ else c("payment size should be exactly 1"), if ((ac.payments[0].assetId == w))
140146 then true
141- else c(makeString(["payment assetId should be:", t], " ")), if (v(p))
147+ else c(makeString(["payment assetId should be:", v], " ")), if (x(p))
142148 then true
143- else c(makeString(["node address is not valid:", p], " ")), if (v(r))
149+ else c(makeString(["node address is not valid:", p], " ")), if (x(r))
144150 then true
145151 else c(makeString(["user address is not valid:", r], " "))]
146- if ((ab == ab))
152+ if ((ad == ad))
147153 then {
148- let ac = aa.payments[0].amount
149- let ad = D(p)
150- let I = ad._1
151- let K = ad._2
152- let ae = (K + ac)
153- let af = O(p, r)
154- let M = af._1
155- let N = af._2
156- let ag = (N + ac)
157-[z(p, I, ae), L(p, r, M, ag)]
154+ let ae = ac.payments[0].amount
155+ let af = F(p)
156+ let K = af._1
157+ let M = af._2
158+ let ag = (M + ae)
159+ let ah = Q(p, r)
160+ let O = ah._1
161+ let P = ah._2
162+ let ai = (P + ae)
163+[B(p, K, ag), N(p, r, O, ai), IntegerEntry(t(p), ag), IntegerEntry(u(p, r), ai)]
158164 }
159165 else throw("Strict value is not equal to itself.")
160166 }
161167
162168
163-func ah (p,r,ai) = {
164- let aj = D(p)
165- let I = aj._1
166- let K = aj._2
167- let ak = O(p, r)
168- let M = ak._1
169- let N = ak._2
170- let ab = [if ((ai > 0))
169+func aj (p,r,ak) = {
170+ let al = F(p)
171+ let K = al._1
172+ let M = al._2
173+ let am = Q(p, r)
174+ let O = am._1
175+ let P = am._2
176+ let ad = [if ((ak > 0))
171177 then true
172- else c("unstake amount should be greater than 0"), if ((N >= ai))
178+ else c("unstake amount should be greater than 0"), if ((P >= ak))
173179 then true
174- else c("unstake amount should be less or equal user staked amount"), if ((K >= ai))
180+ else c("unstake amount should be less or equal user staked amount"), if ((M >= ak))
175181 then true
176- else c("unstake amount should be less or equal node staked amount"), if (v(p))
182+ else c("unstake amount should be less or equal node staked amount"), if (x(p))
177183 then true
178- else c(makeString(["node address is not valid:", p], " ")), if (v(r))
184+ else c(makeString(["node address is not valid:", p], " ")), if (x(r))
179185 then true
180186 else c(makeString(["user address is not valid:", r], " "))]
181- if ((ab == ab))
187+ if ((ad == ad))
182188 then {
183- let ae = (K - ai)
184- let ag = (N - ai)
185- let al = V(r)
186- let T = al._1
187- let U = al._2
188- let am = (U + ai)
189-[z(p, I, ae), L(p, r, M, ag), S(r, T, am)]
189+ let ag = (M - ak)
190+ let ai = (P - ak)
191+ let an = X(r)
192+ let V = an._1
193+ let W = an._2
194+ let ao = (W + ak)
195+[B(p, K, ag), N(p, r, O, ai), U(r, V, ao), IntegerEntry(t(p), ag), IntegerEntry(u(p, r), ai)]
190196 }
191197 else throw("Strict value is not equal to itself.")
192198 }
193199
194200
195-func an (r,ao) = {
196- let ap = V(r)
197- let T = ap._1
198- let U = ap._2
199- let ab = [if ((ao > 0))
201+func ap (r,aq) = {
202+ let ar = X(r)
203+ let V = ar._1
204+ let W = ar._2
205+ let ad = [if ((aq > 0))
200206 then true
201- else c("claim amount should be greater than 0"), if ((T >= ao))
207+ else c("claim amount should be greater than 0"), if ((V >= aq))
202208 then true
203- else c("claim amount should be less or equal unlocked amount"), if (v(r))
209+ else c("claim amount should be less or equal unlocked amount"), if (x(r))
204210 then true
205211 else c(makeString(["user address is not valid:", r], " "))]
206- if ((ab == ab))
212+ if ((ad == ad))
207213 then {
208- let aq = (T - ao)
209-[S(r, aq, U), ScriptTransfer(addressFromStringValue(r), ao, u)]
214+ let as = (V - aq)
215+[U(r, as, W), ScriptTransfer(addressFromStringValue(r), aq, w)]
210216 }
211217 else throw("Strict value is not equal to itself.")
212218 }
213219
214220
215-func ar (p,r,ac) = {
216- let as = V(r)
217- let T = as._1
218- let U = as._2
219- let at = (U + T)
220- let ab = [if ((ac > 0))
221+func at (p,r,ae) = {
222+ let au = X(r)
223+ let V = au._1
224+ let W = au._2
225+ let av = (W + V)
226+ let ad = [if ((ae > 0))
221227 then true
222- else c("amount should be greater than 0"), if ((at >= ac))
228+ else c("amount should be greater than 0"), if ((av >= ae))
223229 then true
224- else c("amount should be less or equal to available"), if (v(p))
230+ else c("amount should be less or equal to available"), if (x(p))
225231 then true
226- else c(makeString(["node address is not valid:", p], " ")), if (v(r))
232+ else c(makeString(["node address is not valid:", p], " ")), if (x(r))
227233 then true
228234 else c(makeString(["user address is not valid:", r], " "))]
229- if ((ab == ab))
235+ if ((ad == ad))
230236 then {
231- let au = D(p)
232- let I = au._1
233- let K = au._2
234- let ae = (K + ac)
235- let av = O(p, r)
236- let M = av._1
237- let N = av._2
238- let ag = (N + ac)
239- let am = max([0, (U - ac)])
240- let aq = min([T, (T + (U - ac))])
241-[z(p, I, ae), L(p, r, M, ag), S(r, aq, am)]
237+ let aw = F(p)
238+ let K = aw._1
239+ let M = aw._2
240+ let ag = (M + ae)
241+ let ax = Q(p, r)
242+ let O = ax._1
243+ let P = ax._2
244+ let ai = (P + ae)
245+ let ao = max([0, (W - ae)])
246+ let as = min([V, (V + (W - ae))])
247+[B(p, K, ag), N(p, r, O, ai), U(r, as, ao), IntegerEntry(t(p), ag), IntegerEntry(u(p, r), ai)]
242248 }
243249 else throw("Strict value is not equal to itself.")
244250 }
245251
246252
247-func aw (ax) = {
248- let ay = [if ((ax > 0))
253+func ay (az) = {
254+ let aA = [if ((az > 0))
249255 then true
250256 else c("period length should be greater than 0")]
251- if ((ay == ay))
257+ if ((aA == aA))
252258 then if ((k == -1))
253- then [IntegerEntry(h, ax), IntegerEntry(g, height)]
254- else [IntegerEntry(f, (l + 1)), IntegerEntry(g, n), IntegerEntry(h, ax)]
259+ then [IntegerEntry(h, az), IntegerEntry(g, height)]
260+ else [IntegerEntry(f, (l + 1)), IntegerEntry(g, n), IntegerEntry(h, az)]
255261 else throw("Strict value is not equal to itself.")
256262 }
257263
258264
259-@Callable(aa)
260-func setNewPeriodLength (ax) = aw(ax)
265+@Callable(ac)
266+func setNewPeriodLength (az) = ay(az)
261267
262268
263269
264-@Callable(aa)
270+@Callable(ac)
265271 func getNodeDataREADONLY (p) = {
266- let az = D(p)
267- let aA = az._1
268- let B = az._2
269- $Tuple2(nil, $Tuple5(m, aA, n, B, height))
272+ let aB = F(p)
273+ let aC = aB._1
274+ let D = aB._2
275+ $Tuple2(nil, $Tuple5(m, aC, n, D, height))
270276 }
271277
272278
273279
274-@Callable(aa)
280+@Callable(ac)
275281 func getUserDataREADONLY (r) = {
276- let aB = V(r)
277- let T = aB._1
278- let U = aB._2
279- $Tuple2(nil, $Tuple5(m, T, n, U, height))
282+ let aD = X(r)
283+ let V = aD._1
284+ let W = aD._2
285+ $Tuple2(nil, $Tuple5(m, V, n, W, height))
280286 }
281287
282288
283289
284-@Callable(aa)
285-func stakeFor (p,r) = Z(p, r, aa)
290+@Callable(ac)
291+func stakeFor (p,r) = ab(p, r, ac)
286292
287293
288294
289-@Callable(aa)
295+@Callable(ac)
290296 func stake (p) = {
291- let r = toString(aa.caller)
292- Z(p, r, aa)
297+ let r = toString(ac.caller)
298+ ab(p, r, ac)
293299 }
294300
295301
296302
297-@Callable(aa)
298-func stakeFromUnlocked (p,aC) = {
299- let r = toString(aa.caller)
300- ar(p, r, aC)
303+@Callable(ac)
304+func stakeFromUnlocked (p,aE) = {
305+ let r = toString(ac.caller)
306+ at(p, r, aE)
301307 }
302308
303309
304310
305-@Callable(aa)
306-func unstake (p,aC) = {
307- let r = toString(aa.caller)
308- ah(p, r, aC)
311+@Callable(ac)
312+func unstake (p,aE) = {
313+ let r = toString(ac.caller)
314+ aj(p, r, aE)
309315 }
310316
311317
312318
313-@Callable(aa)
314-func claim (aC) = {
315- let r = toString(aa.caller)
316- an(r, aC)
319+@Callable(ac)
320+func claim (aE) = {
321+ let r = toString(ac.caller)
322+ ap(r, aE)
317323 }
318324
319325
320326
321-@Callable(aa)
327+@Callable(ac)
322328 func claimAll () = {
323- let r = toString(aa.caller)
324- let aD = V(r)
325- let T = aD._1
326- let U = aD._2
327- let ab = [if ((T > 0))
329+ let r = toString(ac.caller)
330+ let aF = X(r)
331+ let V = aF._1
332+ let W = aF._2
333+ let ad = [if ((V > 0))
328334 then true
329335 else c("nothing to claim")]
330- if ((ab == ab))
331- then an(r, T)
336+ if ((ad == ad))
337+ then ap(r, V)
332338 else throw("Strict value is not equal to itself.")
333339 }
334340
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", "offsetId"], b)
1414
1515 let g = makeString(["%s", "offsetHeight"], b)
1616
1717 let h = makeString(["%s", "periodLength"], b)
1818
1919 let i = valueOrElse(getInteger(this, f), 0)
2020
2121 let j = valueOrElse(getInteger(this, h), 10000)
2222
2323 let k = valueOrElse(getInteger(this, g), -1)
2424
2525 let l = if (if ((height > k))
2626 then (k != -1)
2727 else false)
2828 then (((height - k) / j) + i)
2929 else max([0, (i - 1)])
3030
3131 let m = (k + ((l - i) * j))
3232
3333 let n = (m + j)
3434
3535 func o (p) = makeString(["%s", p], b)
3636
3737
3838 func q (r) = makeString(["%s%s", "toClaim", r], b)
3939
4040
4141 func s (r,p) = makeString(["%s%s", p, r], b)
4242
4343
44-let t = valueOrElse(getString(this, e), "WAVES")
44+func t (p) = makeString(["%s%d", p, toString(height)], b)
4545
46-let u = if ((t == "WAVES"))
46+
47+func u (p,r) = makeString(["%s%s%d", p, r, toString(height)], b)
48+
49+
50+let v = valueOrElse(getString(this, e), "WAVES")
51+
52+let w = if ((v == "WAVES"))
4753 then unit
48- else fromBase58String(t)
54+ else fromBase58String(v)
4955
50-func v (w) = {
51- let x = addressFromString(w)
52- if ($isInstanceOf(x, "Address"))
56+func x (y) = {
57+ let z = addressFromString(y)
58+ if ($isInstanceOf(z, "Address"))
5359 then {
54- let y = x
60+ let A = z
5561 true
5662 }
5763 else false
5864 }
5965
6066
61-func z (p,A,B) = {
62- let C = makeString(["%d%d%d%d", toString(m), toString(A), toString(n), toString(B)], b)
63- StringEntry(o(p), C)
67+func B (p,C,D) = {
68+ let E = makeString(["%d%d%d%d", toString(m), toString(C), toString(n), toString(D)], b)
69+ StringEntry(o(p), E)
6470 }
6571
6672
67-func D (p) = {
68- let E = getString(this, o(p))
69- let x = E
70- if ($isInstanceOf(x, "String"))
73+func F (p) = {
74+ let G = getString(this, o(p))
75+ let z = G
76+ if ($isInstanceOf(z, "String"))
7177 then {
72- let F = x
73- let G = split(F, b)
74- let H = parseIntValue(G[1])
75- let I = parseIntValue(G[2])
76- let J = parseIntValue(G[3])
77- let K = parseIntValue(G[4])
78- if ((J > height))
79- then $Tuple2(I, K)
80- else $Tuple2(K, K)
78+ let H = z
79+ let I = split(H, b)
80+ let J = parseIntValue(I[1])
81+ let K = parseIntValue(I[2])
82+ let L = parseIntValue(I[3])
83+ let M = parseIntValue(I[4])
84+ if ((L > height))
85+ then $Tuple2(K, M)
86+ else $Tuple2(M, M)
8187 }
8288 else $Tuple2(0, 0)
8389 }
8490
8591
86-func L (p,r,M,N) = {
87- let C = makeString(["%d%d%d%d", toString(m), toString(M), toString(n), toString(N)], b)
88- StringEntry(s(r, p), C)
92+func N (p,r,O,P) = {
93+ let E = makeString(["%d%d%d%d", toString(m), toString(O), toString(n), toString(P)], b)
94+ StringEntry(s(r, p), E)
8995 }
9096
9197
92-func O (p,r) = {
93- let P = getString(this, s(r, p))
94- let x = P
95- if ($isInstanceOf(x, "String"))
98+func Q (p,r) = {
99+ let R = getString(this, s(r, p))
100+ let z = R
101+ if ($isInstanceOf(z, "String"))
96102 then {
97- let F = x
98- let G = split(F, b)
99- let Q = parseIntValue(G[1])
100- let M = parseIntValue(G[2])
101- let R = parseIntValue(G[3])
102- let N = parseIntValue(G[4])
103- if ((R > height))
104- then $Tuple2(M, N)
105- else $Tuple2(N, N)
103+ let H = z
104+ let I = split(H, b)
105+ let S = parseIntValue(I[1])
106+ let O = parseIntValue(I[2])
107+ let T = parseIntValue(I[3])
108+ let P = parseIntValue(I[4])
109+ if ((T > height))
110+ then $Tuple2(O, P)
111+ else $Tuple2(P, P)
106112 }
107113 else $Tuple2(0, 0)
108114 }
109115
110116
111-func S (r,T,U) = {
112- let C = makeString(["%d%d%d%d", toString(m), toString(T), toString(n), toString(U)], b)
113- StringEntry(q(r), C)
117+func U (r,V,W) = {
118+ let E = makeString(["%d%d%d%d", toString(m), toString(V), toString(n), toString(W)], b)
119+ StringEntry(q(r), E)
114120 }
115121
116122
117-func V (r) = {
118- let W = getString(this, q(r))
119- let x = W
120- if ($isInstanceOf(x, "String"))
123+func X (r) = {
124+ let Y = getString(this, q(r))
125+ let z = Y
126+ if ($isInstanceOf(z, "String"))
121127 then {
122- let F = x
123- let G = split(F, b)
124- let X = parseIntValue(G[1])
125- let T = parseIntValue(G[2])
126- let Y = parseIntValue(G[3])
127- let U = parseIntValue(G[4])
128- if ((Y > height))
129- then $Tuple2(T, U)
130- else $Tuple2((T + U), 0)
128+ let H = z
129+ let I = split(H, b)
130+ let Z = parseIntValue(I[1])
131+ let V = parseIntValue(I[2])
132+ let aa = parseIntValue(I[3])
133+ let W = parseIntValue(I[4])
134+ if ((aa > height))
135+ then $Tuple2(V, W)
136+ else $Tuple2((V + W), 0)
131137 }
132138 else $Tuple2(0, 0)
133139 }
134140
135141
136-func Z (p,r,aa) = {
137- let ab = [if ((size(aa.payments) == 1))
142+func ab (p,r,ac) = {
143+ let ad = [if ((size(ac.payments) == 1))
138144 then true
139- else c("payment size should be exactly 1"), if ((aa.payments[0].assetId == u))
145+ else c("payment size should be exactly 1"), if ((ac.payments[0].assetId == w))
140146 then true
141- else c(makeString(["payment assetId should be:", t], " ")), if (v(p))
147+ else c(makeString(["payment assetId should be:", v], " ")), if (x(p))
142148 then true
143- else c(makeString(["node address is not valid:", p], " ")), if (v(r))
149+ else c(makeString(["node address is not valid:", p], " ")), if (x(r))
144150 then true
145151 else c(makeString(["user address is not valid:", r], " "))]
146- if ((ab == ab))
152+ if ((ad == ad))
147153 then {
148- let ac = aa.payments[0].amount
149- let ad = D(p)
150- let I = ad._1
151- let K = ad._2
152- let ae = (K + ac)
153- let af = O(p, r)
154- let M = af._1
155- let N = af._2
156- let ag = (N + ac)
157-[z(p, I, ae), L(p, r, M, ag)]
154+ let ae = ac.payments[0].amount
155+ let af = F(p)
156+ let K = af._1
157+ let M = af._2
158+ let ag = (M + ae)
159+ let ah = Q(p, r)
160+ let O = ah._1
161+ let P = ah._2
162+ let ai = (P + ae)
163+[B(p, K, ag), N(p, r, O, ai), IntegerEntry(t(p), ag), IntegerEntry(u(p, r), ai)]
158164 }
159165 else throw("Strict value is not equal to itself.")
160166 }
161167
162168
163-func ah (p,r,ai) = {
164- let aj = D(p)
165- let I = aj._1
166- let K = aj._2
167- let ak = O(p, r)
168- let M = ak._1
169- let N = ak._2
170- let ab = [if ((ai > 0))
169+func aj (p,r,ak) = {
170+ let al = F(p)
171+ let K = al._1
172+ let M = al._2
173+ let am = Q(p, r)
174+ let O = am._1
175+ let P = am._2
176+ let ad = [if ((ak > 0))
171177 then true
172- else c("unstake amount should be greater than 0"), if ((N >= ai))
178+ else c("unstake amount should be greater than 0"), if ((P >= ak))
173179 then true
174- else c("unstake amount should be less or equal user staked amount"), if ((K >= ai))
180+ else c("unstake amount should be less or equal user staked amount"), if ((M >= ak))
175181 then true
176- else c("unstake amount should be less or equal node staked amount"), if (v(p))
182+ else c("unstake amount should be less or equal node staked amount"), if (x(p))
177183 then true
178- else c(makeString(["node address is not valid:", p], " ")), if (v(r))
184+ else c(makeString(["node address is not valid:", p], " ")), if (x(r))
179185 then true
180186 else c(makeString(["user address is not valid:", r], " "))]
181- if ((ab == ab))
187+ if ((ad == ad))
182188 then {
183- let ae = (K - ai)
184- let ag = (N - ai)
185- let al = V(r)
186- let T = al._1
187- let U = al._2
188- let am = (U + ai)
189-[z(p, I, ae), L(p, r, M, ag), S(r, T, am)]
189+ let ag = (M - ak)
190+ let ai = (P - ak)
191+ let an = X(r)
192+ let V = an._1
193+ let W = an._2
194+ let ao = (W + ak)
195+[B(p, K, ag), N(p, r, O, ai), U(r, V, ao), IntegerEntry(t(p), ag), IntegerEntry(u(p, r), ai)]
190196 }
191197 else throw("Strict value is not equal to itself.")
192198 }
193199
194200
195-func an (r,ao) = {
196- let ap = V(r)
197- let T = ap._1
198- let U = ap._2
199- let ab = [if ((ao > 0))
201+func ap (r,aq) = {
202+ let ar = X(r)
203+ let V = ar._1
204+ let W = ar._2
205+ let ad = [if ((aq > 0))
200206 then true
201- else c("claim amount should be greater than 0"), if ((T >= ao))
207+ else c("claim amount should be greater than 0"), if ((V >= aq))
202208 then true
203- else c("claim amount should be less or equal unlocked amount"), if (v(r))
209+ else c("claim amount should be less or equal unlocked amount"), if (x(r))
204210 then true
205211 else c(makeString(["user address is not valid:", r], " "))]
206- if ((ab == ab))
212+ if ((ad == ad))
207213 then {
208- let aq = (T - ao)
209-[S(r, aq, U), ScriptTransfer(addressFromStringValue(r), ao, u)]
214+ let as = (V - aq)
215+[U(r, as, W), ScriptTransfer(addressFromStringValue(r), aq, w)]
210216 }
211217 else throw("Strict value is not equal to itself.")
212218 }
213219
214220
215-func ar (p,r,ac) = {
216- let as = V(r)
217- let T = as._1
218- let U = as._2
219- let at = (U + T)
220- let ab = [if ((ac > 0))
221+func at (p,r,ae) = {
222+ let au = X(r)
223+ let V = au._1
224+ let W = au._2
225+ let av = (W + V)
226+ let ad = [if ((ae > 0))
221227 then true
222- else c("amount should be greater than 0"), if ((at >= ac))
228+ else c("amount should be greater than 0"), if ((av >= ae))
223229 then true
224- else c("amount should be less or equal to available"), if (v(p))
230+ else c("amount should be less or equal to available"), if (x(p))
225231 then true
226- else c(makeString(["node address is not valid:", p], " ")), if (v(r))
232+ else c(makeString(["node address is not valid:", p], " ")), if (x(r))
227233 then true
228234 else c(makeString(["user address is not valid:", r], " "))]
229- if ((ab == ab))
235+ if ((ad == ad))
230236 then {
231- let au = D(p)
232- let I = au._1
233- let K = au._2
234- let ae = (K + ac)
235- let av = O(p, r)
236- let M = av._1
237- let N = av._2
238- let ag = (N + ac)
239- let am = max([0, (U - ac)])
240- let aq = min([T, (T + (U - ac))])
241-[z(p, I, ae), L(p, r, M, ag), S(r, aq, am)]
237+ let aw = F(p)
238+ let K = aw._1
239+ let M = aw._2
240+ let ag = (M + ae)
241+ let ax = Q(p, r)
242+ let O = ax._1
243+ let P = ax._2
244+ let ai = (P + ae)
245+ let ao = max([0, (W - ae)])
246+ let as = min([V, (V + (W - ae))])
247+[B(p, K, ag), N(p, r, O, ai), U(r, as, ao), IntegerEntry(t(p), ag), IntegerEntry(u(p, r), ai)]
242248 }
243249 else throw("Strict value is not equal to itself.")
244250 }
245251
246252
247-func aw (ax) = {
248- let ay = [if ((ax > 0))
253+func ay (az) = {
254+ let aA = [if ((az > 0))
249255 then true
250256 else c("period length should be greater than 0")]
251- if ((ay == ay))
257+ if ((aA == aA))
252258 then if ((k == -1))
253- then [IntegerEntry(h, ax), IntegerEntry(g, height)]
254- else [IntegerEntry(f, (l + 1)), IntegerEntry(g, n), IntegerEntry(h, ax)]
259+ then [IntegerEntry(h, az), IntegerEntry(g, height)]
260+ else [IntegerEntry(f, (l + 1)), IntegerEntry(g, n), IntegerEntry(h, az)]
255261 else throw("Strict value is not equal to itself.")
256262 }
257263
258264
259-@Callable(aa)
260-func setNewPeriodLength (ax) = aw(ax)
265+@Callable(ac)
266+func setNewPeriodLength (az) = ay(az)
261267
262268
263269
264-@Callable(aa)
270+@Callable(ac)
265271 func getNodeDataREADONLY (p) = {
266- let az = D(p)
267- let aA = az._1
268- let B = az._2
269- $Tuple2(nil, $Tuple5(m, aA, n, B, height))
272+ let aB = F(p)
273+ let aC = aB._1
274+ let D = aB._2
275+ $Tuple2(nil, $Tuple5(m, aC, n, D, height))
270276 }
271277
272278
273279
274-@Callable(aa)
280+@Callable(ac)
275281 func getUserDataREADONLY (r) = {
276- let aB = V(r)
277- let T = aB._1
278- let U = aB._2
279- $Tuple2(nil, $Tuple5(m, T, n, U, height))
282+ let aD = X(r)
283+ let V = aD._1
284+ let W = aD._2
285+ $Tuple2(nil, $Tuple5(m, V, n, W, height))
280286 }
281287
282288
283289
284-@Callable(aa)
285-func stakeFor (p,r) = Z(p, r, aa)
290+@Callable(ac)
291+func stakeFor (p,r) = ab(p, r, ac)
286292
287293
288294
289-@Callable(aa)
295+@Callable(ac)
290296 func stake (p) = {
291- let r = toString(aa.caller)
292- Z(p, r, aa)
297+ let r = toString(ac.caller)
298+ ab(p, r, ac)
293299 }
294300
295301
296302
297-@Callable(aa)
298-func stakeFromUnlocked (p,aC) = {
299- let r = toString(aa.caller)
300- ar(p, r, aC)
303+@Callable(ac)
304+func stakeFromUnlocked (p,aE) = {
305+ let r = toString(ac.caller)
306+ at(p, r, aE)
301307 }
302308
303309
304310
305-@Callable(aa)
306-func unstake (p,aC) = {
307- let r = toString(aa.caller)
308- ah(p, r, aC)
311+@Callable(ac)
312+func unstake (p,aE) = {
313+ let r = toString(ac.caller)
314+ aj(p, r, aE)
309315 }
310316
311317
312318
313-@Callable(aa)
314-func claim (aC) = {
315- let r = toString(aa.caller)
316- an(r, aC)
319+@Callable(ac)
320+func claim (aE) = {
321+ let r = toString(ac.caller)
322+ ap(r, aE)
317323 }
318324
319325
320326
321-@Callable(aa)
327+@Callable(ac)
322328 func claimAll () = {
323- let r = toString(aa.caller)
324- let aD = V(r)
325- let T = aD._1
326- let U = aD._2
327- let ab = [if ((T > 0))
329+ let r = toString(ac.caller)
330+ let aF = X(r)
331+ let V = aF._1
332+ let W = aF._2
333+ let ad = [if ((V > 0))
328334 then true
329335 else c("nothing to claim")]
330- if ((ab == ab))
331- then an(r, T)
336+ if ((ad == ad))
337+ then ap(r, V)
332338 else throw("Strict value is not equal to itself.")
333339 }
334340
335341

github/deemru/w8io/169f3d6 
119.67 ms