tx · HY2sn8wwEwNKgiUNvRnAM8xrbXAjHwBviFTHw9tncSVC

3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h:  -0.01300000 Waves

2024.02.12 14:41 [2972991] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves

{ "type": 13, "id": "HY2sn8wwEwNKgiUNvRnAM8xrbXAjHwBviFTHw9tncSVC", "fee": 1300000, "feeAssetId": null, "timestamp": 1707738085318, "version": 2, "chainId": 84, "sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h", "senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2", "proofs": [ "5BQAMQaS7GLVDYqb2YaSJjQAmwe9MwtGcoNXuKpeXEthybi4zX7qUYiSzgF1pvMKuBfvMU57gJZk796vvHGUh6qc" ], "script": "base64:BgIvCAISAwoBARIDCgEIEgMKAQgSBAoCCAgSAwoBCBIECgIIARIECgIIARIDCgEBEgAlAAxjb250cmFjdEZpbGUCEWwybXBfbGVhc2luZy5yaWRlAANTRVACAl9fAAZzY2FsZTgAgMLXLwEIdGhyb3dFcnIBA21zZwkAAgEJAKwCAgkArAICBQxjb250cmFjdEZpbGUCAjogBQNtc2cACmtleUFzc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAgdhc3NldElkBQNuaWwFA1NFUAARa2V5UGVyaW9kT2Zmc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAghvZmZzZXRJZAUDbmlsBQNTRVAAFWtleVBlcmlvZE9mZnNldEhlaWdodAkAuQkCCQDMCAICAiVzCQDMCAICDG9mZnNldEhlaWdodAUDbmlsBQNTRVAAD2tleVBlcmlvZExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICDHBlcmlvZExlbmd0aAUDbmlsBQNTRVAADnBlcmlvZE9mZnNldElkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEWtleVBlcmlvZE9mZnNldElkAAAADHBlcmlvZExlbmd0aAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rZXlQZXJpb2RMZW5ndGgAkE4AEnBlcmlvZE9mZnNldEhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQA////////////AQAPY3VycmVudFBlcmlvZElkAwMJAGYCBQZoZWlnaHQFEnBlcmlvZE9mZnNldEhlaWdodAkBAiE9AgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEHCQBkAgkAaQIJAGUCBQZoZWlnaHQFEnBlcmlvZE9mZnNldEhlaWdodAUMcGVyaW9kTGVuZ3RoBQ5wZXJpb2RPZmZzZXRJZAkAlgMBCQDMCAIAAAkAzAgCCQBlAgUOcGVyaW9kT2Zmc2V0SWQAAQUDbmlsABNjdXJyZW50UGVyaW9kSGVpZ2h0CQBkAgUScGVyaW9kT2Zmc2V0SGVpZ2h0CQBoAgkAZQIFD2N1cnJlbnRQZXJpb2RJZAUOcGVyaW9kT2Zmc2V0SWQFDHBlcmlvZExlbmd0aAAQbmV4dFBlcmlvZEhlaWdodAkAZAIFE2N1cnJlbnRQZXJpb2RIZWlnaHQFDHBlcmlvZExlbmd0aAESa2V5TGVhc2luZ05vZGVEYXRhAQtub2RlQWRkcmVzcwkAuQkCCQDMCAICAiVzCQDMCAIFC25vZGVBZGRyZXNzBQNuaWwFA1NFUAEWa2V5VXNlckxlYXNpbmdOb2RlTGlzdAELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICE3VzZXJMZWFzaW5nTm9kZUxpc3QJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARZrZXlVc2VyTGVhc2luZ05vZGVEYXRhAgt1c2VyQWRkcmVzcwtub2RlQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgULbm9kZUFkZHJlc3MJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQAQ5rZXlVc2VyVG9DbGFpbQELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICB3RvQ2xhaW0JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQAA1hc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFCmtleUFzc2V0SWQCBVdBVkVTAAxhc3NldElkQnl0ZXMDCQAAAgUNYXNzZXRJZFN0cmluZwIFV0FWRVMFBHVuaXQJANkEAQUNYXNzZXRJZFN0cmluZwEOaXNWYWxpZEFkZHJlc3MBB2FkZHJlc3MEByRtYXRjaDAJAKYIAQUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgcBE2dldExlYXNpbmdOb2RlRW50cnkDC25vZGVBZGRyZXNzDWN1cnJlbnRMZWFzZWQKbmV4dExlYXNlZAQLdmFsdWVTdHJpbmcJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFE2N1cnJlbnRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQ1jdXJyZW50TGVhc2VkCQDMCAIJAKQDAQUQbmV4dFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFCm5leHRMZWFzZWQFA25pbAUDU0VQCQELU3RyaW5nRW50cnkCCQESa2V5TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MFC3ZhbHVlU3RyaW5nARJnZXRMZWFzaW5nTm9kZURhdGEBC25vZGVBZGRyZXNzBBRsZWFzaW5nRGF0YVN0cmluZ1JhdwkAnQgCBQR0aGlzCQESa2V5TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEByRtYXRjaDAFFGxlYXNpbmdEYXRhU3RyaW5nUmF3AwkAAQIFByRtYXRjaDACBlN0cmluZwQCZHMFByRtYXRjaDAECGRhdGFMaXN0CQC1CQIFAmRzBQNTRVAEEW5vZGVDdXJyZW50UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAQQRbm9kZUN1cnJlbnRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAACBA5ub2RlTmV4dFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAMEDm5vZGVOZXh0TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QABAMJAGYCBQ5ub2RlTmV4dFBlcmlvZAUGaGVpZ2h0CQCUCgIFEW5vZGVDdXJyZW50TGVhc2VkBQ5ub2RlTmV4dExlYXNlZAkAlAoCBQ5ub2RlTmV4dExlYXNlZAUObm9kZU5leHRMZWFzZWQJAJQKAgAAAAABE2dldFVzZXJMZWFzaW5nRW50cnkEC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzEXVzZXJDdXJyZW50TGVhc2VkDnVzZXJOZXh0TGVhc2VkBAt2YWx1ZVN0cmluZwkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQUTY3VycmVudFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFEXVzZXJDdXJyZW50TGVhc2VkCQDMCAIJAKQDAQUQbmV4dFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFDnVzZXJOZXh0TGVhc2VkBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgkBFmtleVVzZXJMZWFzaW5nTm9kZURhdGECBQt1c2VyQWRkcmVzcwULbm9kZUFkZHJlc3MFC3ZhbHVlU3RyaW5nARJnZXRVc2VyTGVhc2luZ0RhdGECC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzBBRsZWFzaW5nRGF0YVN0cmluZ1JhdwkAnQgCBQR0aGlzCQEWa2V5VXNlckxlYXNpbmdOb2RlRGF0YQIFC3VzZXJBZGRyZXNzBQtub2RlQWRkcmVzcwQHJG1hdGNoMAUUbGVhc2luZ0RhdGFTdHJpbmdSYXcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAJkcwUHJG1hdGNoMAQIZGF0YUxpc3QJALUJAgUCZHMFA1NFUAQRdXNlckN1cnJlbnRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAABBBF1c2VyQ3VycmVudExlYXNlZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAIEDnVzZXJOZXh0UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAwQOdXNlck5leHRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAAEAwkAZgIFDnVzZXJOZXh0UGVyaW9kBQZoZWlnaHQJAJQKAgURdXNlckN1cnJlbnRMZWFzZWQFDnVzZXJOZXh0TGVhc2VkCQCUCgIFDnVzZXJOZXh0TGVhc2VkBQ51c2VyTmV4dExlYXNlZAkAlAoCAAAAAAETZ2V0VXNlclRvQ2xhaW1FbnRyeQMLdXNlckFkZHJlc3MHdG9DbGFpbQh0b1VubG9jawQLdmFsdWVTdHJpbmcJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFE2N1cnJlbnRQZXJpb2RIZWlnaHQJAMwIAgkApAMBBQd0b0NsYWltCQDMCAIJAKQDAQUQbmV4dFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFCHRvVW5sb2NrBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgkBDmtleVVzZXJUb0NsYWltAQULdXNlckFkZHJlc3MFC3ZhbHVlU3RyaW5nARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBC3VzZXJBZGRyZXNzBBJ1c2VyVG9DbGFpbURhdGFSYXcJAJ0IAgUEdGhpcwkBDmtleVVzZXJUb0NsYWltAQULdXNlckFkZHJlc3MEByRtYXRjaDAFEnVzZXJUb0NsYWltRGF0YVJhdwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAmRzBQckbWF0Y2gwBAhkYXRhTGlzdAkAtQkCBQJkcwUDU0VQBA1jdXJyZW50UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAQQHdG9DbGFpbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAIECm5leHRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAADBAh0b1VubG9jawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAQDCQBmAgUKbmV4dFBlcmlvZAUGaGVpZ2h0CQCUCgIFB3RvQ2xhaW0FCHRvVW5sb2NrCQCUCgIJAGQCBQd0b0NsYWltBQh0b1VubG9jawAACQCUCgIAAAAAARZnZXRVc2VyTGVhc2luZ05vZGVMaXN0AQt1c2VyQWRkcmVzcwQUbGVhc2luZ0RhdGFTdHJpbmdSYXcJAJ0IAgUEdGhpcwkBFmtleVVzZXJMZWFzaW5nTm9kZUxpc3QBBQt1c2VyQWRkcmVzcwQHJG1hdGNoMAUUbGVhc2luZ0RhdGFTdHJpbmdSYXcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAJkcwUHJG1hdGNoMAQIZGF0YUxpc3QJAL0JAgUCZHMFA1NFUAUIZGF0YUxpc3QFA25pbAEUZ2V0VXNlck5vZGVMaXN0RW50cnkCC3VzZXJBZGRyZXNzCG5vZGVMaXN0AwkAAAIJAJADAQUIbm9kZUxpc3QAAAkBC0RlbGV0ZUVudHJ5AQkBFmtleVVzZXJMZWFzaW5nTm9kZUxpc3QBBQt1c2VyQWRkcmVzcwkBC1N0cmluZ0VudHJ5AgkBFmtleVVzZXJMZWFzaW5nTm9kZUxpc3QBBQt1c2VyQWRkcmVzcwkAuwkCBQhub2RlTGlzdAUDU0VQARFhZGROb2RlVG9Ob2RlTGlzdAILdXNlckFkZHJlc3MLbm9kZUFkZHJlc3MECG5vZGVMaXN0CQEWZ2V0VXNlckxlYXNpbmdOb2RlTGlzdAEFC3VzZXJBZGRyZXNzAwkBD2NvbnRhaW5zRWxlbWVudAIFCG5vZGVMaXN0BQtub2RlQWRkcmVzcwUIbm9kZUxpc3QJAM0IAgUIbm9kZUxpc3QFC25vZGVBZGRyZXNzARZyZW1vdmVOb2RlRnJvbU5vZGVMaXN0Agt1c2VyQWRkcmVzcwtub2RlQWRkcmVzcwQIbm9kZUxpc3QJARZnZXRVc2VyTGVhc2luZ05vZGVMaXN0AQULdXNlckFkZHJlc3MEByRtYXRjaDAJAM8IAgUIbm9kZUxpc3QFC25vZGVBZGRyZXNzAwkAAQIFByRtYXRjaDACA0ludAQFaW5kZXgFByRtYXRjaDAJANEIAgUIbm9kZUxpc3QFBWluZGV4BQhub2RlTGlzdAEPZ2V0U3Rha2VBY3Rpb25zAwtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwFpBAZjaGVja3MJAMwIAgMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEIdGhyb3dFcnIBAiBwYXltZW50IHNpemUgc2hvdWxkIGJlIGV4YWN0bHkgMQkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMYXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnBheW1lbnQgYXNzZXRJZCBzaG91bGQgYmU6CQDMCAIFDWFzc2V0SWRTdHJpbmcFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULbm9kZUFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIabm9kZSBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULbm9kZUFkZHJlc3MFA25pbAIBIAkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQULdXNlckFkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIadXNlciBhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBBF1c2VyTGVhc2luZ0Ftb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECyR0MDY2OTg2NzcxCQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEEW5vZGVDdXJyZW50TGVhc2VkCAULJHQwNjY5ODY3NzECXzEEDm5vZGVOZXh0TGVhc2VkCAULJHQwNjY5ODY3NzECXzIEEG5ld05vZGVOZXh0TGVhc2UJAGQCBQ5ub2RlTmV4dExlYXNlZAURdXNlckxlYXNpbmdBbW91bnQECyR0MDY4Mzk2OTI1CQESZ2V0VXNlckxlYXNpbmdEYXRhAgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBBF1c2VyQ3VycmVudExlYXNlZAgFCyR0MDY4Mzk2OTI1Al8xBA51c2VyTmV4dExlYXNlZAgFCyR0MDY4Mzk2OTI1Al8yBBFuZXdVc2VyTmV4dExlYXNlZAkAZAIFDnVzZXJOZXh0TGVhc2VkBRF1c2VyTGVhc2luZ0Ftb3VudAkAzAgCCQETZ2V0TGVhc2luZ05vZGVFbnRyeQMFC25vZGVBZGRyZXNzBRFub2RlQ3VycmVudExlYXNlZAUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQETZ2V0VXNlckxlYXNpbmdFbnRyeQQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURdXNlckN1cnJlbnRMZWFzZWQFEW5ld1VzZXJOZXh0TGVhc2VkCQDMCAIJARRnZXRVc2VyTm9kZUxpc3RFbnRyeQIFC3VzZXJBZGRyZXNzCQERYWRkTm9kZVRvTm9kZUxpc3QCBQt1c2VyQWRkcmVzcwULbm9kZUFkZHJlc3MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERZ2V0VW5zdGFrZUFjdGlvbnMDC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzDXVuc3Rha2VBbW91bnQECyR0MDc1NDM3NjE2CQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEEW5vZGVDdXJyZW50TGVhc2VkCAULJHQwNzU0Mzc2MTYCXzEEDm5vZGVOZXh0TGVhc2VkCAULJHQwNzU0Mzc2MTYCXzIECyR0MDc2MjE3NzA3CQESZ2V0VXNlckxlYXNpbmdEYXRhAgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBBF1c2VyQ3VycmVudExlYXNlZAgFCyR0MDc2MjE3NzA3Al8xBA51c2VyTmV4dExlYXNlZAgFCyR0MDc2MjE3NzA3Al8yBAZjaGVja3MJAMwIAgMJAGYCBQ11bnN0YWtlQW1vdW50AAAGCQEIdGhyb3dFcnIBAid1bnN0YWtlIGFtb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAJAMwIAgMJAGcCBQ51c2VyTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAYJAQh0aHJvd0VycgECOXVuc3Rha2UgYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIHVzZXIgc3Rha2VkIGFtb3VudAkAzAgCAwkAZwIFDm5vZGVOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BgkBCHRocm93RXJyAQI5dW5zdGFrZSBhbW91bnQgc2hvdWxkIGJlIGxlc3Mgb3IgZXF1YWwgbm9kZSBzdGFrZWQgYW1vdW50CQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQtub2RlQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhpub2RlIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQtub2RlQWRkcmVzcwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhp1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEEG5ld05vZGVOZXh0TGVhc2UJAGUCBQ5ub2RlTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAQRbmV3VXNlck5leHRMZWFzZWQJAGUCBQ51c2VyTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAQLJHQwODQwMDg1MDUJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFCyR0MDg0MDA4NTA1Al8xBAh0b1VubG9jawgFCyR0MDg0MDA4NTA1Al8yBAtuZXdUb1VubG9jawkAZAIFCHRvVW5sb2NrBQ11bnN0YWtlQW1vdW50BBFyZW1vdmVOb2RlQWN0aW9ucwMJAAACBRFuZXdVc2VyTmV4dExlYXNlZAAACQDMCAIJARRnZXRVc2VyTm9kZUxpc3RFbnRyeQIFC3VzZXJBZGRyZXNzCQEWcmVtb3ZlTm9kZUZyb21Ob2RlTGlzdAIFC3VzZXJBZGRyZXNzBQtub2RlQWRkcmVzcwUDbmlsBQNuaWwJAM4IAgkAzAgCCQETZ2V0TGVhc2luZ05vZGVFbnRyeQMFC25vZGVBZGRyZXNzBRFub2RlQ3VycmVudExlYXNlZAUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQETZ2V0VXNlckxlYXNpbmdFbnRyeQQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURdXNlckN1cnJlbnRMZWFzZWQFEW5ld1VzZXJOZXh0TGVhc2VkCQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFB3RvQ2xhaW0FC25ld1RvVW5sb2NrBQNuaWwFEXJlbW92ZU5vZGVBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwILdXNlckFkZHJlc3MLY2xhaW1BbW91bnQECyR0MDkwNzU5MTM1CQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQskdDA5MDc1OTEzNQJfMQQIdG9VbmxvY2sIBQskdDA5MDc1OTEzNQJfMgQGY2hlY2tzCQDMCAIDCQBmAgULY2xhaW1BbW91bnQAAAYJAQh0aHJvd0VycgECJWNsYWltIGFtb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAJAMwIAgMJAGcCBQd0b0NsYWltBQtjbGFpbUFtb3VudAYJAQh0aHJvd0VycgECNGNsYWltIGFtb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCB1bmxvY2tlZCBhbW91bnQJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnVzZXIgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQKbmV3VG9DbGFpbQkAZQIFB3RvQ2xhaW0FC2NsYWltQW1vdW50CQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFCm5ld1RvQ2xhaW0FCHRvVW5sb2NrCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3VzZXJBZGRyZXNzBQtjbGFpbUFtb3VudAUMYXNzZXRJZEJ5dGVzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BG2dldFN0YWtlRnJvbVVubG9ja2VkQWN0aW9ucwMLbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MRdXNlckxlYXNpbmdBbW91bnQECyR0MDk3NzU5ODM1CQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQskdDA5Nzc1OTgzNQJfMQQIdG9VbmxvY2sIBQskdDA5Nzc1OTgzNQJfMgQJYXZhaWxhYmxlCQBkAgUIdG9VbmxvY2sFB3RvQ2xhaW0EBmNoZWNrcwkAzAgCAwkAZgIFEXVzZXJMZWFzaW5nQW1vdW50AAAGCQEIdGhyb3dFcnIBAh9hbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwCQDMCAIDCQBnAgUJYXZhaWxhYmxlBRF1c2VyTGVhc2luZ0Ftb3VudAYJAQh0aHJvd0VycgECK2Ftb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCB0byBhdmFpbGFibGUJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC25vZGVBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGm5vZGUgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC25vZGVBZGRyZXNzBQNuaWwCASAJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnVzZXIgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNJHQwMTAzMTIxMDM4NQkBEmdldExlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBBFub2RlQ3VycmVudExlYXNlZAgFDSR0MDEwMzEyMTAzODUCXzEEDm5vZGVOZXh0TGVhc2VkCAUNJHQwMTAzMTIxMDM4NQJfMgQQbmV3Tm9kZU5leHRMZWFzZQkAZAIFDm5vZGVOZXh0TGVhc2VkBRF1c2VyTGVhc2luZ0Ftb3VudAQNJHQwMTA0NTMxMDUzOQkBEmdldFVzZXJMZWFzaW5nRGF0YQIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwQRdXNlckN1cnJlbnRMZWFzZWQIBQ0kdDAxMDQ1MzEwNTM5Al8xBA51c2VyTmV4dExlYXNlZAgFDSR0MDEwNDUzMTA1MzkCXzIEEW5ld1VzZXJOZXh0TGVhc2VkCQBkAgUOdXNlck5leHRMZWFzZWQFEXVzZXJMZWFzaW5nQW1vdW50BAtuZXdUb1VubG9jawkAlgMBCQDMCAIAAAkAzAgCCQBlAgUIdG9VbmxvY2sFEXVzZXJMZWFzaW5nQW1vdW50BQNuaWwECm5ld1RvQ2xhaW0JAJcDAQkAzAgCBQd0b0NsYWltCQDMCAIJAGQCBQd0b0NsYWltCQBlAgUIdG9VbmxvY2sFEXVzZXJMZWFzaW5nQW1vdW50BQNuaWwJAMwIAgkBE2dldExlYXNpbmdOb2RlRW50cnkDBQtub2RlQWRkcmVzcwURbm9kZUN1cnJlbnRMZWFzZWQFDm5vZGVOZXh0TGVhc2VkCQDMCAIJARNnZXRVc2VyTGVhc2luZ0VudHJ5BAULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRF1c2VyQ3VycmVudExlYXNlZAURbmV3VXNlck5leHRMZWFzZWQJAMwIAgkBE2dldFVzZXJUb0NsYWltRW50cnkDBQt1c2VyQWRkcmVzcwUKbmV3VG9DbGFpbQULbmV3VG9VbmxvY2sJAMwIAgkBFGdldFVzZXJOb2RlTGlzdEVudHJ5AgULdXNlckFkZHJlc3MJARFhZGROb2RlVG9Ob2RlTGlzdAIFC3VzZXJBZGRyZXNzBQtub2RlQWRkcmVzcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARxnZXRTZXROZXdQZXJpb2RMZW5ndGhBY3Rpb25zAQ9uZXdQZXJpb2RMZW5ndGgEBWNoZWNrCQDMCAIDCQBmAgUPbmV3UGVyaW9kTGVuZ3RoAAAGCQEIdGhyb3dFcnIBAiZwZXJpb2QgbGVuZ3RoIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawMJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5UGVyaW9kTGVuZ3RoBQ9uZXdQZXJpb2RMZW5ndGgJAMwIAgkBDEludGVnZXJFbnRyeQIFFWtleVBlcmlvZE9mZnNldEhlaWdodAUGaGVpZ2h0BQNuaWwEEW5ld1BlcmlvZE9mZnNldElkCQBkAgUPY3VycmVudFBlcmlvZElkAAEED25ld09mZnNldEhlaWdodAkAZAIJAGgCBQxwZXJpb2RMZW5ndGgJAGUCBRFuZXdQZXJpb2RPZmZzZXRJZAUOcGVyaW9kT2Zmc2V0SWQFEnBlcmlvZE9mZnNldEhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5UGVyaW9kT2Zmc2V0SWQFEW5ld1BlcmlvZE9mZnNldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlQZXJpb2RPZmZzZXRIZWlnaHQFD25ld09mZnNldEhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5UGVyaW9kTGVuZ3RoBQ9uZXdQZXJpb2RMZW5ndGgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgENZ2V0UGVyaW9kRGF0YQAJAJUKAwUGaGVpZ2h0BRNjdXJyZW50UGVyaW9kSGVpZ2h0BRBuZXh0UGVyaW9kSGVpZ2h0CQFpARJzZXROZXdQZXJpb2RMZW5ndGgBD25ld1BlcmlvZExlbmd0aAkBHGdldFNldE5ld1BlcmlvZExlbmd0aEFjdGlvbnMBBQ9uZXdQZXJpb2RMZW5ndGgBaQETZ2V0Tm9kZURhdGFSRUFET05MWQELbm9kZUFkZHJlc3MEDSR0MDEyMDg3MTIxNTEJARJnZXRMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwQMY3VycmVudExlYXNlCAUNJHQwMTIwODcxMjE1MQJfMQQKbmV4dExlYXNlZAgFDSR0MDEyMDg3MTIxNTECXzIEDSR0MDEyMTU2MTIyMDUJAQ1nZXRQZXJpb2REYXRhAAQNY3VycmVudFBlcmlvZAgFDSR0MDEyMTU2MTIyMDUCXzEECm5leHRQZXJpb2QIBQ0kdDAxMjE1NjEyMjA1Al8yCQCUCgIFA25pbAkAlgoEBQxjdXJyZW50TGVhc2UFCm5leHRMZWFzZWQFDWN1cnJlbnRQZXJpb2QFCm5leHRQZXJpb2QBaQETZ2V0VXNlckRhdGFSRUFET05MWQELdXNlckFkZHJlc3MEDSR0MDEyMzQxMTI0MDEJARVnZXRVc2VyVG9DbGFpbUJhbGFuY2UBBQt1c2VyQWRkcmVzcwQHdG9DbGFpbQgFDSR0MDEyMzQxMTI0MDECXzEECHRvVW5sb2NrCAUNJHQwMTIzNDExMjQwMQJfMgQIbm9kZUxpc3QJARZnZXRVc2VyTGVhc2luZ05vZGVMaXN0AQULdXNlckFkZHJlc3MJAJQKAgUDbmlsCQCWCgQFB3RvQ2xhaW0FCHRvVW5sb2NrCQENZ2V0UGVyaW9kRGF0YQAFCG5vZGVMaXN0AWkBCHN0YWtlRm9yAgtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwkBD2dldFN0YWtlQWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUBaQFpAQVzdGFrZQELbm9kZUFkZHJlc3MEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBD2dldFN0YWtlQWN0aW9ucwMFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUBaQFpARFzdGFrZUZyb21VbmxvY2tlZAILbm9kZUFkZHJlc3MGYW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARtnZXRTdGFrZUZyb21VbmxvY2tlZEFjdGlvbnMDBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFBmFtb3VudAFpAQd1bnN0YWtlAgtub2RlQWRkcmVzcwZhbW91bnQEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBEWdldFVuc3Rha2VBY3Rpb25zAwULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBQZhbW91bnQBaQEFY2xhaW0BBmFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQEXZ2V0Q2xhaW1VbmxvY2tlZEFjdGlvbnMCBQt1c2VyQWRkcmVzcwUGYW1vdW50AWkBCGNsYWltQWxsAAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBA0kdDAxMzM1NDEzNDE0CQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQ0kdDAxMzM1NDEzNDE0Al8xBAh0b1VubG9jawgFDSR0MDEzMzU0MTM0MTQCXzIJARdnZXRDbGFpbVVubG9ja2VkQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQd0b0NsYWltANEpKk4=", "height": 2972991, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7gShWbxXeGEHPD7bhARcBjud47w6DTRcPddq47HYDjSp Next: FnM5niybaRHAzGUDCTqcCXp5YmWFPANhmr39Q2pQHZPV Diff:
OldNewDifferences
306306 }
307307
308308
309+func aJ () = $Tuple3(height, n, o)
310+
311+
309312 @Callable(ah)
310313 func setNewPeriodLength (aF) = aE(aF)
311314
312315
313316
314317 @Callable(ah)
315-func getUserData (s) = {
316- let aJ = W(s)
317- let U = aJ._1
318- let V = aJ._2
318+func getNodeDataREADONLY (q) = {
319+ let aK = F(q)
320+ let aL = aK._1
321+ let D = aK._2
322+ let aM = aJ()
323+ let Y = aM._1
324+ let Z = aM._2
325+ $Tuple2(nil, $Tuple4(aL, D, Y, Z))
326+ }
327+
328+
329+
330+@Callable(ah)
331+func getUserDataREADONLY (s) = {
332+ let aN = W(s)
333+ let U = aN._1
334+ let V = aN._2
319335 let ac = aa(s)
320- $Tuple2(nil, $Tuple3(U, V, ac))
336+ $Tuple2(nil, $Tuple4(U, V, aJ(), ac))
321337 }
322338
323339
336352
337353
338354 @Callable(ah)
339-func stakeFromUnlocked (q,aK) = {
355+func stakeFromUnlocked (q,aO) = {
340356 let s = toString(ah.caller)
341- az(q, s, aK)
357+ az(q, s, aO)
342358 }
343359
344360
345361
346362 @Callable(ah)
347-func unstake (q,aK) = {
363+func unstake (q,aO) = {
348364 let s = toString(ah.caller)
349- ao(q, s, aK)
365+ ao(q, s, aO)
350366 }
351367
352368
353369
354370 @Callable(ah)
355-func claim (aK) = {
371+func claim (aO) = {
356372 let s = toString(ah.caller)
357- av(s, aK)
373+ av(s, aO)
358374 }
359375
360376
362378 @Callable(ah)
363379 func claimAll () = {
364380 let s = toString(ah.caller)
365- let aL = W(s)
366- let U = aL._1
367- let V = aL._2
381+ let aP = W(s)
382+ let U = aP._1
383+ let V = aP._2
368384 av(s, U)
369385 }
370386
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 let c = 100000000
99
1010 func d (e) = throw(((a + ": ") + e))
1111
1212
1313 let f = makeString(["%s", "assetId"], b)
1414
1515 let g = makeString(["%s", "offsetId"], b)
1616
1717 let h = makeString(["%s", "offsetHeight"], b)
1818
1919 let i = makeString(["%s", "periodLength"], b)
2020
2121 let j = valueOrElse(getInteger(this, g), 0)
2222
2323 let k = valueOrElse(getInteger(this, i), 10000)
2424
2525 let l = valueOrElse(getInteger(this, h), -1)
2626
2727 let m = if (if ((height > l))
2828 then (l != -1)
2929 else false)
3030 then (((height - l) / k) + j)
3131 else max([0, (j - 1)])
3232
3333 let n = (l + ((m - j) * k))
3434
3535 let o = (n + k)
3636
3737 func p (q) = makeString(["%s", q], b)
3838
3939
4040 func r (s) = makeString(["%s%s", "userLeasingNodeList", s], b)
4141
4242
4343 func t (s,q) = makeString(["%s%s", q, s], b)
4444
4545
4646 func u (s) = makeString(["%s%s", "toClaim", s], b)
4747
4848
4949 let v = valueOrElse(getString(this, f), "WAVES")
5050
5151 let w = if ((v == "WAVES"))
5252 then unit
5353 else fromBase58String(v)
5454
5555 func x (y) = {
5656 let z = addressFromString(y)
5757 if ($isInstanceOf(z, "Address"))
5858 then {
5959 let A = z
6060 true
6161 }
6262 else false
6363 }
6464
6565
6666 func B (q,C,D) = {
6767 let E = makeString(["%d%d%d%d", toString(n), toString(C), toString(o), toString(D)], b)
6868 StringEntry(p(q), E)
6969 }
7070
7171
7272 func F (q) = {
7373 let G = getString(this, p(q))
7474 let z = G
7575 if ($isInstanceOf(z, "String"))
7676 then {
7777 let H = z
7878 let I = split(H, b)
7979 let J = parseIntValue(I[1])
8080 let K = parseIntValue(I[2])
8181 let L = parseIntValue(I[3])
8282 let M = parseIntValue(I[4])
8383 if ((L > height))
8484 then $Tuple2(K, M)
8585 else $Tuple2(M, M)
8686 }
8787 else $Tuple2(0, 0)
8888 }
8989
9090
9191 func N (q,s,O,P) = {
9292 let E = makeString(["%d%d%d%d", toString(n), toString(O), toString(o), toString(P)], b)
9393 StringEntry(t(s, q), E)
9494 }
9595
9696
9797 func Q (q,s) = {
9898 let G = getString(this, t(s, q))
9999 let z = G
100100 if ($isInstanceOf(z, "String"))
101101 then {
102102 let H = z
103103 let I = split(H, b)
104104 let R = parseIntValue(I[1])
105105 let O = parseIntValue(I[2])
106106 let S = parseIntValue(I[3])
107107 let P = parseIntValue(I[4])
108108 if ((S > height))
109109 then $Tuple2(O, P)
110110 else $Tuple2(P, P)
111111 }
112112 else $Tuple2(0, 0)
113113 }
114114
115115
116116 func T (s,U,V) = {
117117 let E = makeString(["%d%d%d%d", toString(n), toString(U), toString(o), toString(V)], b)
118118 StringEntry(u(s), E)
119119 }
120120
121121
122122 func W (s) = {
123123 let X = getString(this, u(s))
124124 let z = X
125125 if ($isInstanceOf(z, "String"))
126126 then {
127127 let H = z
128128 let I = split(H, b)
129129 let Y = parseIntValue(I[1])
130130 let U = parseIntValue(I[2])
131131 let Z = parseIntValue(I[3])
132132 let V = parseIntValue(I[4])
133133 if ((Z > height))
134134 then $Tuple2(U, V)
135135 else $Tuple2((U + V), 0)
136136 }
137137 else $Tuple2(0, 0)
138138 }
139139
140140
141141 func aa (s) = {
142142 let G = getString(this, r(s))
143143 let z = G
144144 if ($isInstanceOf(z, "String"))
145145 then {
146146 let H = z
147147 let I = split_51C(H, b)
148148 I
149149 }
150150 else nil
151151 }
152152
153153
154154 func ab (s,ac) = if ((size(ac) == 0))
155155 then DeleteEntry(r(s))
156156 else StringEntry(r(s), makeString_11C(ac, b))
157157
158158
159159 func ad (s,q) = {
160160 let ac = aa(s)
161161 if (containsElement(ac, q))
162162 then ac
163163 else (ac :+ q)
164164 }
165165
166166
167167 func ae (s,q) = {
168168 let ac = aa(s)
169169 let z = indexOf(ac, q)
170170 if ($isInstanceOf(z, "Int"))
171171 then {
172172 let af = z
173173 removeByIndex(ac, af)
174174 }
175175 else ac
176176 }
177177
178178
179179 func ag (q,s,ah) = {
180180 let ai = [if ((size(ah.payments) == 1))
181181 then true
182182 else d("payment size should be exactly 1"), if ((ah.payments[0].assetId == w))
183183 then true
184184 else d(makeString(["payment assetId should be:", v], " ")), if (x(q))
185185 then true
186186 else d(makeString(["node address is not valid:", q], " ")), if (x(s))
187187 then true
188188 else d(makeString(["user address is not valid:", s], " "))]
189189 if ((ai == ai))
190190 then {
191191 let aj = ah.payments[0].amount
192192 let ak = F(q)
193193 let K = ak._1
194194 let M = ak._2
195195 let al = (M + aj)
196196 let am = Q(q, s)
197197 let O = am._1
198198 let P = am._2
199199 let an = (P + aj)
200200 [B(q, K, al), N(q, s, O, an), ab(s, ad(s, q))]
201201 }
202202 else throw("Strict value is not equal to itself.")
203203 }
204204
205205
206206 func ao (q,s,ap) = {
207207 let aq = F(q)
208208 let K = aq._1
209209 let M = aq._2
210210 let ar = Q(q, s)
211211 let O = ar._1
212212 let P = ar._2
213213 let ai = [if ((ap > 0))
214214 then true
215215 else d("unstake amount should be greater than 0"), if ((P >= ap))
216216 then true
217217 else d("unstake amount should be less or equal user staked amount"), if ((M >= ap))
218218 then true
219219 else d("unstake amount should be less or equal node staked amount"), if (x(q))
220220 then true
221221 else d(makeString(["node address is not valid:", q], " ")), if (x(s))
222222 then true
223223 else d(makeString(["user address is not valid:", s], " "))]
224224 if ((ai == ai))
225225 then {
226226 let al = (M - ap)
227227 let an = (P - ap)
228228 let as = W(s)
229229 let U = as._1
230230 let V = as._2
231231 let at = (V + ap)
232232 let au = if ((an == 0))
233233 then [ab(s, ae(s, q))]
234234 else nil
235235 ([B(q, K, al), N(q, s, O, an), T(s, U, at)] ++ au)
236236 }
237237 else throw("Strict value is not equal to itself.")
238238 }
239239
240240
241241 func av (s,aw) = {
242242 let ax = W(s)
243243 let U = ax._1
244244 let V = ax._2
245245 let ai = [if ((aw > 0))
246246 then true
247247 else d("claim amount should be greater than 0"), if ((U >= aw))
248248 then true
249249 else d("claim amount should be less or equal unlocked amount"), if (x(s))
250250 then true
251251 else d(makeString(["user address is not valid:", s], " "))]
252252 if ((ai == ai))
253253 then {
254254 let ay = (U - aw)
255255 [T(s, ay, V), ScriptTransfer(addressFromStringValue(s), aw, w)]
256256 }
257257 else throw("Strict value is not equal to itself.")
258258 }
259259
260260
261261 func az (q,s,aj) = {
262262 let aA = W(s)
263263 let U = aA._1
264264 let V = aA._2
265265 let aB = (V + U)
266266 let ai = [if ((aj > 0))
267267 then true
268268 else d("amount should be greater than 0"), if ((aB >= aj))
269269 then true
270270 else d("amount should be less or equal to available"), if (x(q))
271271 then true
272272 else d(makeString(["node address is not valid:", q], " ")), if (x(s))
273273 then true
274274 else d(makeString(["user address is not valid:", s], " "))]
275275 if ((ai == ai))
276276 then {
277277 let aC = F(q)
278278 let K = aC._1
279279 let M = aC._2
280280 let al = (M + aj)
281281 let aD = Q(q, s)
282282 let O = aD._1
283283 let P = aD._2
284284 let an = (P + aj)
285285 let at = max([0, (V - aj)])
286286 let ay = min([U, (U + (V - aj))])
287287 [B(q, K, M), N(q, s, O, an), T(s, ay, at), ab(s, ad(s, q))]
288288 }
289289 else throw("Strict value is not equal to itself.")
290290 }
291291
292292
293293 func aE (aF) = {
294294 let aG = [if ((aF > 0))
295295 then true
296296 else d("period length should be greater than 0")]
297297 if ((aG == aG))
298298 then if ((l == -1))
299299 then [IntegerEntry(i, aF), IntegerEntry(h, height)]
300300 else {
301301 let aH = (m + 1)
302302 let aI = ((k * (aH - j)) + l)
303303 [IntegerEntry(g, aH), IntegerEntry(h, aI), IntegerEntry(i, aF)]
304304 }
305305 else throw("Strict value is not equal to itself.")
306306 }
307307
308308
309+func aJ () = $Tuple3(height, n, o)
310+
311+
309312 @Callable(ah)
310313 func setNewPeriodLength (aF) = aE(aF)
311314
312315
313316
314317 @Callable(ah)
315-func getUserData (s) = {
316- let aJ = W(s)
317- let U = aJ._1
318- let V = aJ._2
318+func getNodeDataREADONLY (q) = {
319+ let aK = F(q)
320+ let aL = aK._1
321+ let D = aK._2
322+ let aM = aJ()
323+ let Y = aM._1
324+ let Z = aM._2
325+ $Tuple2(nil, $Tuple4(aL, D, Y, Z))
326+ }
327+
328+
329+
330+@Callable(ah)
331+func getUserDataREADONLY (s) = {
332+ let aN = W(s)
333+ let U = aN._1
334+ let V = aN._2
319335 let ac = aa(s)
320- $Tuple2(nil, $Tuple3(U, V, ac))
336+ $Tuple2(nil, $Tuple4(U, V, aJ(), ac))
321337 }
322338
323339
324340
325341 @Callable(ah)
326342 func stakeFor (q,s) = ag(q, s, ah)
327343
328344
329345
330346 @Callable(ah)
331347 func stake (q) = {
332348 let s = toString(ah.caller)
333349 ag(q, s, ah)
334350 }
335351
336352
337353
338354 @Callable(ah)
339-func stakeFromUnlocked (q,aK) = {
355+func stakeFromUnlocked (q,aO) = {
340356 let s = toString(ah.caller)
341- az(q, s, aK)
357+ az(q, s, aO)
342358 }
343359
344360
345361
346362 @Callable(ah)
347-func unstake (q,aK) = {
363+func unstake (q,aO) = {
348364 let s = toString(ah.caller)
349- ao(q, s, aK)
365+ ao(q, s, aO)
350366 }
351367
352368
353369
354370 @Callable(ah)
355-func claim (aK) = {
371+func claim (aO) = {
356372 let s = toString(ah.caller)
357- av(s, aK)
373+ av(s, aO)
358374 }
359375
360376
361377
362378 @Callable(ah)
363379 func claimAll () = {
364380 let s = toString(ah.caller)
365- let aL = W(s)
366- let U = aL._1
367- let V = aL._2
381+ let aP = W(s)
382+ let U = aP._1
383+ let V = aP._2
368384 av(s, U)
369385 }
370386
371387

github/deemru/w8io/169f3d6 
41.76 ms