tx · FnjdA9Rj9FxjWAKpa45AtPk5xfNBPzmKCN2dqmAzu8xx

3MuS6qVvhBR6wSynFRdcE3fVqmGBjoc7Hhx:  -0.01400000 Waves

2023.07.27 14:19 [2684188] smart account 3MuS6qVvhBR6wSynFRdcE3fVqmGBjoc7Hhx > SELF 0.00000000 Waves

{ "type": 13, "id": "FnjdA9Rj9FxjWAKpa45AtPk5xfNBPzmKCN2dqmAzu8xx", "fee": 1400000, "feeAssetId": null, "timestamp": 1690456684589, "version": 2, "chainId": 84, "sender": "3MuS6qVvhBR6wSynFRdcE3fVqmGBjoc7Hhx", "senderPublicKey": "62CHk4MqTdq3LqeUycy7TPnpvwrjgerSa2FqAY2EafXn", "proofs": [ "mJEatqbbgnbTn3251YUJUbxRVG1ST82AMnxWHF4jeygFj4uYxkjSXc667N8uzMrfyaDDLfENTeS7DSYgX9ou7hY" ], "script": "base64:BwJoCAISBAoCCAgSBAoCCAESBAoCCAQSBAoCCAISAwoBCBIDCgEBEgMKAQESBQoDAgECEgUKAwIYGBIECgICARIECgICARIFCgMBAQESBQoDAQEBEgASAwoBCBIAEgASAwoBCBIAEgMKAQgxAANTRVACAl9fAAVXQVZFUwIFV0FWRVMAEGNvbnRyYWN0RmlsZW5hbWUCDGZhY3RvcnkucmlkZQEHd3JhcEVycgEBcwkArAICCQCsAgIFEGNvbnRyYWN0RmlsZW5hbWUCAjogBQFzAQh0aHJvd0VycgEBcwkAAgEJAQd3cmFwRXJyAQUBcwEPc3RyaW5nVG9Bc3NldElkAQFzAwkAAAIFAXMFBVdBVkVTBQR1bml0CQDZBAEFAXMAD0FETUlOX0xJU1RfU0laRQAFAAZRVU9SVU0AAwARVFhJRF9CWVRFU19MRU5HVEgAIAEYa2V5QWxsb3dlZFR4SWRWb3RlUHJlZml4AQR0eElkCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCWFsbG93VHhJZAkAzAgCBQR0eElkBQNuaWwFA1NFUAEQa2V5RnVsbEFkbWluVm90ZQIGcHJlZml4DGFkbWluQWRkcmVzcwkAuQkCCQDMCAIFBnByZWZpeAkAzAgCBQxhZG1pbkFkZHJlc3MFA25pbAUDU0VQARNrZXlBZG1pbkFkZHJlc3NMaXN0AAkAuQkCCQDMCAICAiVzCQDMCAICEGFkbWluQWRkcmVzc0xpc3QFA25pbAUDU0VQAQ5rZXlBbGxvd2VkVHhJZAAJALkJAgkAzAgCAgIlcwkAzAgCAgR0eElkBQNuaWwFA1NFUAEMZ2V0QWRtaW5Wb3RlAgZwcmVmaXgFYWRtaW4EB3ZvdGVLZXkJARBrZXlGdWxsQWRtaW5Wb3RlAgUGcHJlZml4BQVhZG1pbgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd2b3RlS2V5AAABDWdldEFkbWluc0xpc3QABAckbWF0Y2gwCQCdCAIFBHRoaXMJARNrZXlBZG1pbkFkZHJlc3NMaXN0AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJALUJAgUBcwUDU0VQBQNuaWwBDWlzSW5BZG1pbkxpc3QBB2FkZHJlc3MJAQ9jb250YWluc0VsZW1lbnQCCQENZ2V0QWRtaW5zTGlzdAAFB2FkZHJlc3MBEmdlblZvdGVzS2V5c0hlbHBlcgIBYQxhZG1pbkFkZHJlc3MECyR0MDEzNzUxMzk5BQFhBAZyZXN1bHQIBQskdDAxMzc1MTM5OQJfMQQGcHJlZml4CAULJHQwMTM3NTEzOTkCXzIJAJQKAgkAzQgCBQZyZXN1bHQJARBrZXlGdWxsQWRtaW5Wb3RlAgUGcHJlZml4BQxhZG1pbkFkZHJlc3MFBnByZWZpeAEMZ2VuVm90ZXNLZXlzAQlrZXlQcmVmaXgECWFkbWluTGlzdAkBE2tleUFkbWluQWRkcmVzc0xpc3QABAskdDAxNTQ2MTYzMAoAAiRsCQENZ2V0QWRtaW5zTGlzdAAKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAUJa2V5UHJlZml4CgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARJnZW5Wb3Rlc0tleXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFBAZyZXN1bHQIBQskdDAxNTQ2MTYzMAJfMQQGcHJlZml4CAULJHQwMTU0NjE2MzACXzIFBnJlc3VsdAEQY291bnRWb3Rlc0hlbHBlcgIGcmVzdWx0B3ZvdGVLZXkJAGQCBQZyZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUHdm90ZUtleQAAAQpjb3VudFZvdGVzAQZwcmVmaXgEBXZvdGVzCQEMZ2VuVm90ZXNLZXlzAQUGcHJlZml4CgACJGwFBXZvdGVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARBjb3VudFZvdGVzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQEQY2xlYXJWb3Rlc0hlbHBlcgIGcmVzdWx0A2tleQkAzQgCBQZyZXN1bHQJAQtEZWxldGVFbnRyeQEFA2tleQETZ2V0Q2xlYXJWb3RlRW50cmllcwEGcHJlZml4BAV2b3RlcwkBDGdlblZvdGVzS2V5cwEFBnByZWZpeAoAAiRsBQV2b3RlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEQY2xlYXJWb3Rlc0hlbHBlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUBDHZvdGVJTlRFUk5BTAQTY2FsbGVyQWRkcmVzc1N0cmluZwlrZXlQcmVmaXgIbWluVm90ZXMKdm90ZVJlc3VsdAQHdm90ZUtleQkBEGtleUZ1bGxBZG1pblZvdGUCBQlrZXlQcmVmaXgFE2NhbGxlckFkZHJlc3NTdHJpbmcEEGFkbWluQ3VycmVudFZvdGUJAQxnZXRBZG1pblZvdGUCBQlrZXlQcmVmaXgFE2NhbGxlckFkZHJlc3NTdHJpbmcEA2VycgMJAQEhAQkBDWlzSW5BZG1pbkxpc3QBBRNjYWxsZXJBZGRyZXNzU3RyaW5nCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIJQWRkcmVzczogBRNjYWxsZXJBZGRyZXNzU3RyaW5nAhIgbm90IGluIEFkbWluIGxpc3QDCQAAAgUQYWRtaW5DdXJyZW50Vm90ZQABCQEIdGhyb3dFcnIBCQCsAgIFB3ZvdGVLZXkCEiB5b3UgYWxyZWFkeSB2b3RlZAUEdW5pdAMJAAACBQNlcnIFA2VycgQFdm90ZXMJAQpjb3VudFZvdGVzAQUJa2V5UHJlZml4AwkAZwIJAGQCBQV2b3RlcwABBQhtaW5Wb3RlcwQQY2xlYXJWb3RlRW50cmllcwkBE2dldENsZWFyVm90ZUVudHJpZXMBBQlrZXlQcmVmaXgJAM4IAgUQY2xlYXJWb3RlRW50cmllcwUKdm90ZVJlc3VsdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUHdm90ZUtleQABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BFGtleUNhbGN1bGF0b3JBZGRyZXNzAAIOJXNfX2NhbGN1bGF0b3IBF2tleVByb3h5VHJlYXN1cnlBZGRyZXNzAAIRJXNfX3Byb3h5VHJlYXN1cnkBD2tleUNoaWxkQWRkcmVzcwACCSVzX19jaGlsZAEYa2V5QmxvY2tQcm9jZXNzaW5nUmV3YXJkAAIZJXNfX2Jsb2NrUHJvY2Vzc2luZ1Jld2FyZAEVa2V5TmV4dEJsb2NrVG9Qcm9jZXNzAAIWJXNfX25leHRCbG9ja1RvUHJvY2VzcwEMa2V5THBBc3NldElkAAINJXNfX2xwQXNzZXRJZAAXY2FsY3VsYXRvckFkZHJlc3NPcHRpb24EByRtYXRjaDAJAJ0IAgUEdGhpcwkBFGtleUNhbGN1bGF0b3JBZGRyZXNzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAF2NhbGN1bGF0b3JBZGRyZXNzT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFF2NhbGN1bGF0b3JBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECGmludmFsaWQgY2FsY3VsYXRvciBhZGRyZXNzABpwcm94eVRyZWFzdXJ5QWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQR0aGlzCQEXa2V5UHJveHlUcmVhc3VyeUFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAacHJveHlUcmVhc3VyeUFkZHJlc3NPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUacHJveHlUcmVhc3VyeUFkZHJlc3NPcHRpb24JAQd3cmFwRXJyAQIeaW52YWxpZCBwcm94eSB0cmVhc3VyeSBhZGRyZXNzARBrZXlDb25maWdBZGRyZXNzAAIKJXNfX2NvbmZpZwESa2V5Q2hpbGRyZW5BZGRyZXNzAAIRY29udHJhY3RfY2hpbGRyZW4BFmtleVZvdGluZ1Jlc3VsdEFkZHJlc3MAAhZjb250cmFjdF92b3RpbmdfcmVzdWx0ARlrZXlQcm9wb3NhbEFsbG93QnJvYWRjYXN0AgdhZGRyZXNzBHR4SWQJAKwCAgkArAICCQCsAgICGXByb3Bvc2FsX2FsbG93X2Jyb2FkY2FzdF8JAKUIAQUHYWRkcmVzcwIBXwkA2AQBBQR0eElkARFrZXlJbnZlc3RlZEJ5VXNlcgIMY2hpbGRBZGRyZXNzC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIIaW52ZXN0b3IJAMwIAgkApQgBBQxjaGlsZEFkZHJlc3MJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwUDbmlsAgFfABNjb25maWdBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFBHRoaXMJARBrZXlDb25maWdBZGRyZXNzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAE2NvbmZpZ0FkZHJlc3NPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUTY29uZmlnQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAhZpbnZhbGlkIGNvbmZpZyBhZGRyZXNzABl2b3RpbmdSZXN1bHRBZGRyZXNzT3B0aW9uBAckbWF0Y2gwBRNjb25maWdBZGRyZXNzT3B0aW9uAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAEByRtYXRjaDEJAJ0IAgUBYQkBFmtleVZvdGluZ1Jlc3VsdEFkZHJlc3MAAwkAAQIFByRtYXRjaDECBlN0cmluZwQBcwUHJG1hdGNoMQkApggBBQFzAwkAAQIFByRtYXRjaDECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAGXZvdGluZ1Jlc3VsdEFkZHJlc3NPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUZdm90aW5nUmVzdWx0QWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAh1pbnZhbGlkIHZvdGluZyByZXN1bHQgYWRkcmVzcwAVY2hpbGRyZW5BZGRyZXNzT3B0aW9uBAckbWF0Y2gwBRNjb25maWdBZGRyZXNzT3B0aW9uAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAEByRtYXRjaDEJAJ0IAgUBYQkBEmtleUNoaWxkcmVuQWRkcmVzcwADCQABAgUHJG1hdGNoMQIGU3RyaW5nBAFzBQckbWF0Y2gxCQCmCAEFAXMDCQABAgUHJG1hdGNoMQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAVY2hpbGRyZW5BZGRyZXNzT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFFWNoaWxkcmVuQWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAhhpbnZhbGlkIGNoaWxkcmVuIGFkZHJlc3MAD2xwQXNzZXRJZE9wdGlvbgQHJG1hdGNoMAkAnQgCBQR0aGlzCQEMa2V5THBBc3NldElkAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAD2xwQXNzZXRJZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBQ9scEFzc2V0SWRPcHRpb24JAQd3cmFwRXJyAQIRaW52YWxpZCBscEFzc2V0SWQBC29ubHlBZGRyZXNzAgFpB2FkZHJlc3MDCQAAAggFAWkGY2FsbGVyBQdhZGRyZXNzBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQBCG9ubHlUaGlzAQFpCQELb25seUFkZHJlc3MCBQFpBQR0aGlzAQ5vbmx5Q2FsY3VsYXRvcgEBaQkBC29ubHlBZGRyZXNzAgUBaQUXY2FsY3VsYXRvckFkZHJlc3NPckZhaWwUAWkBC3N0cmluZ0VudHJ5AgNrZXkDdmFsAwkBDm9ubHlDYWxjdWxhdG9yAQUBaQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwFA2tleQkAlAoCBQNuaWwFBHVuaXQBaQEMaW50ZWdlckVudHJ5AgNrZXkDdmFsAwkBDm9ubHlDYWxjdWxhdG9yAQUBaQkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQNrZXkFA3ZhbAUDbmlsBQNrZXkJAJQKAgUDbmlsBQR1bml0AWkBDGJvb2xlYW5FbnRyeQIDa2V5A3ZhbAMJAQ5vbmx5Q2FsY3VsYXRvcgEFAWkJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUDa2V5BQN2YWwFA25pbAUDa2V5CQCUCgIFA25pbAUEdW5pdAFpAQtiaW5hcnlFbnRyeQIDa2V5A3ZhbAMJAQ5vbmx5Q2FsY3VsYXRvcgEFAWkJAJQKAgkAzAgCCQELQmluYXJ5RW50cnkCBQNrZXkFA3ZhbAUDbmlsBQNrZXkJAJQKAgUDbmlsBQR1bml0AWkBC2RlbGV0ZUVudHJ5AQNrZXkDCQEOb25seUNhbGN1bGF0b3IBBQFpCQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQUDa2V5BQNuaWwFA2tleQkAlAoCBQNuaWwFBHVuaXQBaQEHcmVpc3N1ZQEGYW1vdW50AwkBDm9ubHlDYWxjdWxhdG9yAQUBaQkAlAoCCQDMCAIJAQdSZWlzc3VlAwUPbHBBc3NldElkT3JGYWlsBQZhbW91bnQGBQNuaWwFBmFtb3VudAkAlAoCBQNuaWwFBHVuaXQBaQEEYnVybgEGYW1vdW50AwkBDm9ubHlDYWxjdWxhdG9yAQUBaQkAlAoCCQDMCAIJAQRCdXJuAgUPbHBBc3NldElkT3JGYWlsBQZhbW91bnQFA25pbAUGYW1vdW50CQCUCgIFA25pbAUEdW5pdAFpAQ10cmFuc2ZlckFzc2V0Aw5yZWNlcGllbnRCeXRlcwZhbW91bnQHYXNzZXRJZAMJAQ5vbmx5Q2FsY3VsYXRvcgEFAWkJAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFDnJlY2VwaWVudEJ5dGVzBQZhbW91bnQFB2Fzc2V0SWQFA25pbAUGYW1vdW50CQCUCgIFA25pbAUEdW5pdAFpAQ50cmFuc2ZlckFzc2V0cwMOcmVjZXBpZW50Qnl0ZXMKYXNzZXRzTGlzdAthbW91bnRzTGlzdAMJAQ5vbmx5Q2FsY3VsYXRvcgEFAWkKAQ5hZGROZXdUcmFuc2ZlcgIFYWNjdW0LbmV4dEFzc2V0SWQECyR0MDc0NTc3NDgzBQVhY2N1bQQJdHJhbnNmZXJzCAULJHQwNzQ1Nzc0ODMCXzEEAWoIBQskdDA3NDU3NzQ4MwJfMgQLbmV3VHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUOcmVjZXBpZW50Qnl0ZXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQthbW91bnRzTGlzdAUBagkBD3N0cmluZ1RvQXNzZXRJZAEJAJEDAgUKYXNzZXRzTGlzdAUBagQQdXBkYXRlZFRyYW5zZmVycwkAzQgCBQl0cmFuc2ZlcnMFC25ld1RyYW5zZmVyCQCUCgIFEHVwZGF0ZWRUcmFuc2ZlcnMJAGQCBQFqAAEECyR0MDc3NDM3ODI0CgACJGwFCmFzc2V0c0xpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ5hZGROZXdUcmFuc2ZlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQPYXNzZXRzVHJhbnNmZXJzCAULJHQwNzc0Mzc4MjQCXzEECl9sYXN0SW5kZXgIBQskdDA3NzQzNzgyNAJfMgkAlAoCBQ9hc3NldHNUcmFuc2ZlcnMFBHVuaXQJAJQKAgUDbmlsBQR1bml0AWkBDXRyYW5zZmVyV2F2ZXMCDnJlY2VwaWVudEJ5dGVzBmFtb3VudAMJAQ5vbmx5Q2FsY3VsYXRvcgEFAWkJAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFDnJlY2VwaWVudEJ5dGVzBQZhbW91bnQFBHVuaXQFA25pbAUGYW1vdW50CQCUCgIFA25pbAUEdW5pdAFpARl0cmFuc2ZlckZyb21Qcm94eVRyZWFzdXJ5Ag5yZWNpcGllbnRCeXRlcw1yZXdhcmRzQW1vdW50AwkBDm9ubHlDYWxjdWxhdG9yAQUBaQkAlAoCBQNuaWwJAPwHBAUacHJveHlUcmVhc3VyeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyV2F2ZXMJAMwIAgUOcmVjaXBpZW50Qnl0ZXMJAMwIAgUNcmV3YXJkc0Ftb3VudAUDbmlsBQNuaWwJAJQKAgUDbmlsBQR1bml0AWkBCGZpbmFsaXplAxhuZXdUcmVhc3VyeVZvbHVtZUluV2F2ZXMXcHdyTWFuYWdlcnNCb251c0luV2F2ZXMgdHJlYXN1cnlWb2x1bWVEaWZmQWxsb2NhdGlvbkNvZWYJAJQKAgUDbmlsCQD9BwQFF2NhbGN1bGF0b3JBZGRyZXNzT3JGYWlsAghmaW5hbGl6ZQkAzAgCCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIFGG5ld1RyZWFzdXJ5Vm9sdW1lSW5XYXZlcwkAzAgCBRdwd3JNYW5hZ2Vyc0JvbnVzSW5XYXZlcwkAzAgCBSB0cmVhc3VyeVZvbHVtZURpZmZBbGxvY2F0aW9uQ29lZgUDbmlsCAUBaQhwYXltZW50cwFpARBmaW5hbGl6ZVJFQURPTkxZAxhuZXdUcmVhc3VyeVZvbHVtZUluV2F2ZXMXcHdyTWFuYWdlcnNCb251c0luV2F2ZXMgdHJlYXN1cnlWb2x1bWVEaWZmQWxsb2NhdGlvbkNvZWYJAJQKAgUDbmlsCQD9BwQFF2NhbGN1bGF0b3JBZGRyZXNzT3JGYWlsAhBmaW5hbGl6ZVJFQURPTkxZCQDMCAIFGG5ld1RyZWFzdXJ5Vm9sdW1lSW5XYXZlcwkAzAgCBRdwd3JNYW5hZ2Vyc0JvbnVzSW5XYXZlcwkAzAgCBSB0cmVhc3VyeVZvbHVtZURpZmZBbGxvY2F0aW9uQ29lZgUDbmlsBQNuaWwBaQEHY2xhaW1MUAAJAJQKAgUDbmlsCQD9BwQFF2NhbGN1bGF0b3JBZGRyZXNzT3JGYWlsAgdjbGFpbUxQCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMFA25pbAgFAWkIcGF5bWVudHMBaQEPY2xhaW1Db2xsYXRlcmFsAQd0eElkU3RyCQCUCgIFA25pbAkA/QcEBRdjYWxjdWxhdG9yQWRkcmVzc09yRmFpbAIPY2xhaW1Db2xsYXRlcmFsCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkA2QQBBQd0eElkU3RyBQNuaWwIBQFpCHBheW1lbnRzAWkBBmludmVzdAAJAJQKAgUDbmlsCQD9BwQFF2NhbGN1bGF0b3JBZGRyZXNzT3JGYWlsAgZpbnZlc3QJAMwIAggIBQFpBmNhbGxlcgVieXRlcwUDbmlsCAUBaQhwYXltZW50cwFpAQh3aXRoZHJhdwAJAJQKAgUDbmlsCQD9BwQFF2NhbGN1bGF0b3JBZGRyZXNzT3JGYWlsAgh3aXRoZHJhdwkAzAgCCAgFAWkGY2FsbGVyBWJ5dGVzBQNuaWwIBQFpCHBheW1lbnRzAWkBDmNhbmNlbFdpdGhkcmF3AQd0eElkU3RyCQCUCgIFA25pbAkA/QcEBRdjYWxjdWxhdG9yQWRkcmVzc09yRmFpbAIOY2FuY2VsV2l0aGRyYXcJAMwIAggIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQDZBAEFB3R4SWRTdHIFA25pbAgFAWkIcGF5bWVudHMBaQENcHJvY2Vzc0Jsb2NrcwAJAJQKAgUDbmlsCQD9BwQFF2NhbGN1bGF0b3JBZGRyZXNzT3JGYWlsAg1wcm9jZXNzQmxvY2tzCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMFA25pbAgFAWkIcGF5bWVudHMBaQELdm90ZUZvclR4SWQBBHR4SWQEE2NhbGxlckFkZHJlc3NTdHJpbmcJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQJa2V5UHJlZml4CQEYa2V5QWxsb3dlZFR4SWRWb3RlUHJlZml4AQUEdHhJZAQGcmVzdWx0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlBbGxvd2VkVHhJZAAFBHR4SWQFA25pbAQRYWxsb3dlZFR4SWRPcHRpb24JAJ0IAgUEdGhpcwkBDmtleUFsbG93ZWRUeElkAAQDZXJyCQDMCAIDCQAAAgkAyAEBCQDZBAEFBHR4SWQFEVRYSURfQllURVNfTEVOR1RIBgkBCHRocm93RXJyAQkArAICBQR0eElkAhIgaXMgbm90IHZhbGlkIHR4SWQJAMwIAgMDCQAAAgURYWxsb3dlZFR4SWRPcHRpb24FBHVuaXQGCQECIT0CCQEFdmFsdWUBBRFhbGxvd2VkVHhJZE9wdGlvbgUEdHhJZAYJAQh0aHJvd0VycgEJAKwCAgUEdHhJZAITIGlzIGFscmVhZHkgYWxsb3dlZAUDbmlsAwkAAAIFA2VycgUDZXJyCQEMdm90ZUlOVEVSTkFMBAUTY2FsbGVyQWRkcmVzc1N0cmluZwUJa2V5UHJlZml4BQZRVU9SVU0FBnJlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAECmJ5UHJvcG9zYWwEByRtYXRjaDAFGXZvdGluZ1Jlc3VsdEFkZHJlc3NPcHRpb24DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQPcHJvcG9zYWxBZGRyZXNzBQckbWF0Y2gwCQELdmFsdWVPckVsc2UCCQCbCAIFD3Byb3Bvc2FsQWRkcmVzcwkBGWtleVByb3Bvc2FsQWxsb3dCcm9hZGNhc3QCBQR0aGlzCAUCdHgCaWQHBwQIYnlBZG1pbnMJAAACCAUCdHgCaWQJANkEAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEOa2V5QWxsb3dlZFR4SWQAAgAEB2J5T3duZXIDCQBnAgkAkAMBCQENZ2V0QWRtaW5zTGlzdAAFBlFVT1JVTQcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkDAwUKYnlQcm9wb3NhbAYFCGJ5QWRtaW5zBgUHYnlPd25lcv1ux4I=", "height": 2684188, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4ey9kFvkF3YadfYHJ9QfATr3LvnvKiRUxjhrd3tcswrH Next: D5Td2rbPe6mDS8JpFxjA4iKjmL2Eh7q69gtXFsJkT3FZ Full:
OldNewDifferences
1-{-# STDLIB_VERSION 6 #-}
1+{-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
6-let b = 100000000
6+let b = "WAVES"
77
8-func c (d) = makeString(["voting_verified_v2.ride:", d], " ")
8+let c = "factory.ride"
9+
10+func d (e) = ((c + ": ") + e)
911
1012
11-func e (d) = throw(c(d))
13+func f (e) = throw(d(e))
1214
1315
14-func f (g) = {
15- let h = g
16- if ($isInstanceOf(h, "Int"))
17- then {
18- let i = h
19- i
20- }
21- else throw("Failed to cast into Integer")
16+func g (e) = if ((e == b))
17+ then unit
18+ else fromBase58String(e)
19+
20+
21+let h = 5
22+
23+let i = 3
24+
25+let j = 32
26+
27+func k (l) = makeString(["%s%s%s", "allowTxId", l], a)
28+
29+
30+func m (n,o) = makeString([n, o], a)
31+
32+
33+func p () = makeString(["%s", "adminAddressList"], a)
34+
35+
36+func q () = makeString(["%s", "txId"], a)
37+
38+
39+func r (n,s) = {
40+ let t = m(n, s)
41+ valueOrElse(getInteger(t), 0)
2242 }
2343
2444
25-func j (k,l) = valueOrElse(getInteger(k, l), 0)
26-
27-
28-func m (k,l) = valueOrErrorMessage(getInteger(k, l), c((l + " is not defined")))
29-
30-
31-func n (k,l) = valueOrElse(getString(k, l), "")
32-
33-
34-func o (k,l) = valueOrErrorMessage(getString(k, l), c((l + " is not defined")))
35-
36-
37-let p = makeString(["%s", "boostingContract"], a)
38-
39-let q = makeString(["%s", "emissionContract"], a)
40-
41-let r = makeString(["%s", "assetsStoreContract"], a)
42-
43-let s = addressFromStringValue(getStringValue(p))
44-
45-let t = addressFromStringValue(getStringValue(q))
46-
47-let u = addressFromStringValue(getStringValue(r))
48-
49-let v = makeString(["%s", "config"], a)
50-
51-let w = split(o(t, v), a)[1]
52-
53-let x = fromBase58String(w)
54-
55-let y = makeString(["%s%s", "votingThreshold", "add"], a)
56-
57-let z = makeString(["%s%s", "votingThreshold", "remove"], a)
58-
59-let A = makeString(["%s", "periodLengthRemove"], a)
60-
61-let B = makeString(["%s", "maxPeriodLength"], a)
62-
63-let C = makeString(["%s", "minPeriodLength"], a)
64-
65-func D (E,F) = makeString(["%s%s%d", "votingRewardAssetId", E, toString(F)], a)
66-
67-
68-func G (H,E,F) = makeString(["%s%s%s%d", "votingReward", toString(H), E, toString(F)], a)
69-
70-
71-func I (E,F) = makeString(["%s%s%d", "totalVotingReward", E, toString(F)], a)
72-
73-
74-let J = makeString(["%s", "finalizeCallRewardAmount"], a)
75-
76-let K = makeString(["%s", "minSuggestRemoveBalance"], a)
77-
78-func L (E) = makeString(["%s%s", "currentIndex", E], a)
79-
80-
81-func M (E,F,N) = makeString(["%s%s%d%s", "vote", E, toString(F), toString(N)], a)
82-
83-
84-func O (P,Q) = makeString(["%s%d", toString(P), toString(Q)], a)
85-
86-
87-func R (E,F) = makeString(["%s%s%d", "suggestIssuer", E, toString(F)], a)
88-
89-
90-func S (H,E,F) = makeString(["%s%s%s%d", "history", toString(H), E, toString(F)], a)
91-
92-
93-let T = makeString(["%s", "feePerBlock"], a)
94-
95-let U = m(this, T)
96-
97-let V = makeString(["%s", "wxMinForSuggestAddAmountRequired"], a)
98-
99-let W = makeString(["%s", "wxForSuggestRemoveAmountRequired"], a)
100-
101-func X (E,F) = makeString(["%s%s%d", "votingInfo", E, toString(F)], a)
102-
103-
104-func Y (Z,aa,ab,ac,ad,ae,af,ag,ah,ai) = makeString(["%s%s%d%s%s%d%d%d%d%d", toString(Z), aa, toString(ab), ac, ad, toString(ae), toString(af), toString(ag), toString(ah), toString(ai)], a)
105-
106-
107-func aj (E) = makeString(["%s%s", "assetImage", E], a)
108-
109-
110-func ak (H,al) = {
111- let Q = invoke(s, "getUserGwxAmountAtHeightREADONLY", [H, al], nil)
112- f(Q)
45+func u () = {
46+ let v = getString(this, p())
47+ if ($isInstanceOf(v, "String"))
48+ then {
49+ let e = v
50+ split(e, a)
51+ }
52+ else nil
11353 }
11454
11555
116-func am () = "%s__managerVaultAddress"
56+func w (x) = containsElement(u(), x)
11757
11858
119-func an () = "%s__managerPublicKey"
120-
121-
122-func ao () = {
123- let h = getString(am())
124- if ($isInstanceOf(h, "String"))
125- then {
126- let ap = h
127- addressFromStringValue(ap)
128- }
129- else this
59+func y (z,o) = {
60+ let A = z
61+ let B = A._1
62+ let n = A._2
63+ $Tuple2((B :+ m(n, o)), n)
13064 }
13165
13266
133-func aq () = {
134- let ar = ao()
135- let h = getString(ar, an())
136- if ($isInstanceOf(h, "String"))
137- then {
138- let ap = h
139- fromBase58String(ap)
140- }
141- else if ($isInstanceOf(h, "Unit"))
142- then unit
143- else throw("Match error")
67+func C (D) = {
68+ let E = p()
69+ let F = {
70+ let G = u()
71+ let H = size(G)
72+ let I = $Tuple2(nil, D)
73+ func J (K,L) = if ((L >= H))
74+ then K
75+ else y(K, G[L])
76+
77+ func M (K,L) = if ((L >= H))
78+ then K
79+ else throw("List size exceeds 5")
80+
81+ M(J(J(J(J(J(I, 0), 1), 2), 3), 4), 5)
82+ }
83+ let B = F._1
84+ let n = F._2
85+ B
14486 }
14587
14688
147-func as (at) = {
148- let au = split(at, a)
149- let av = au[1]
150- let Z = if ((av == "true"))
151- then true
152- else false
153- let aa = au[2]
154- let ab = parseIntValue(au[3])
155- let ac = au[4]
156- let ad = au[5]
157- let ae = parseIntValue(au[6])
158- let af = parseIntValue(au[7])
159- let ag = parseIntValue(au[8])
160- let ah = parseIntValue(au[9])
161- let ai = parseIntValue(au[10])
162- $Tuple10(Z, aa, ab, ac, ad, ae, af, ag, ah, ai)
89+func N (B,t) = (B + valueOrElse(getInteger(t), 0))
90+
91+
92+func O (n) = {
93+ let P = C(n)
94+ let G = P
95+ let H = size(G)
96+ let I = 0
97+ func J (K,L) = if ((L >= H))
98+ then K
99+ else N(K, G[L])
100+
101+ func M (K,L) = if ((L >= H))
102+ then K
103+ else throw("List size exceeds 5")
104+
105+ M(J(J(J(J(J(I, 0), 1), 2), 3), 4), 5)
163106 }
164107
165108
166-func aw (E,ax) = {
167- let at = valueOrErrorMessage(getString(X(E, ax)), c("voting info not found"))
168- let ay = split(at, a)
169- let ad = ay[5]
170- let af = valueOrErrorMessage(parseIntValue(ay[7]), c("voting start height not found"))
171- let az = valueOrErrorMessage(getString(R(E, ax)), c("voting issuer not found"))
172- let aA = [if ((ad == "inProgress"))
173- then true
174- else e("no voting in progress"), if ((af > height))
175- then true
176- else e("voting expired")]
177- if ((aA == aA))
178- then $Tuple3(ad, af, az)
179- else throw("Strict value is not equal to itself.")
109+func Q (B,R) = (B :+ DeleteEntry(R))
110+
111+
112+func S (n) = {
113+ let P = C(n)
114+ let G = P
115+ let H = size(G)
116+ let I = nil
117+ func J (K,L) = if ((L >= H))
118+ then K
119+ else Q(K, G[L])
120+
121+ func M (K,L) = if ((L >= H))
122+ then K
123+ else throw("List size exceeds 5")
124+
125+ M(J(J(J(J(J(I, 0), 1), 2), 3), 4), 5)
180126 }
181127
182128
183-func aB (aC,E,F) = {
184- let aD = M(E, F, aC)
185- let aE = valueOrErrorMessage(getString(aD), c("you have not voted"))
186- let aF = split(aE, a)
187- let Q = parseIntValue(aF[2])
188- let aG = valueOrErrorMessage(getString(X(E, F)), c("voting info not found"))
189- let aH = as(aG)
190- let ah = aH._9
191- let ai = aH._10
192- let aI = fraction(Q, b, (ah + ai))
193- let aJ = valueOrElse(getInteger(I(E, F)), 0)
194- let aK = fraction(aI, aJ, b, FLOOR)
195- aK
196- }
197-
198-
199-@Callable(aL)
200-func suggestAdd (E,aM,aN) = {
201- let aO = aL.payments[0]
202- let aP = value(aO.assetId)
203- let aQ = value(aO.amount)
204- let aR = getIntegerValue(C)
205- let aS = getIntegerValue(B)
206- let aT = {
207- let aU = invoke(u, "isVerifiedREADONLY", [E], nil)
208- if ($isInstanceOf(aU, "Boolean"))
209- then aU
210- else throw(($getType(aU) + " couldn't be cast to Boolean"))
211- }
212- let aA = [if (if ((aM >= aR))
213- then (aS >= aM)
214- else false)
215- then true
216- else e("invalid periodLength"), if ((aT == false))
217- then true
218- else e("token already verified"), if ((aQ > (aM * U)))
219- then true
220- else e("not enough wx for given period"), if ((aQ >= getIntegerValue(V)))
221- then true
222- else e("payment less then min for suggest")]
223- if ((aA == aA))
129+func T (U,D,V,W) = {
130+ let t = m(D, U)
131+ let X = r(D, U)
132+ let Y = if (!(w(U)))
133+ then f((("Address: " + U) + " not in Admin list"))
134+ else if ((X == 1))
135+ then f((t + " you already voted"))
136+ else unit
137+ if ((Y == Y))
224138 then {
225- let aV = L(E)
226- let ax = getInteger(aV)
227- let aW = if (isDefined(ax))
228- then (value(ax) + 1)
229- else 0
230- let aX = if ((size(aL.payments) > 1))
139+ let P = O(D)
140+ if (((P + 1) >= V))
231141 then {
232- let aY = aL.payments[1]
233- let aZ = toBase58String(value(aY.assetId))
234- let ba = value(aY.amount)
235- $Tuple4(true, aZ, ba, [StringEntry(D(E, aW), aZ), IntegerEntry(I(E, aW), ba)])
142+ let Z = S(D)
143+ (Z ++ W)
236144 }
237- else $Tuple4(false, "EMPTY", 0, nil)
238- let Z = aX._1
239- let aa = aX._2
240- let ab = aX._3
241- let bb = aX._4
242- let ag = valueOrErrorMessage(getInteger(y), c("votingThresholdAdd not set"))
243- let at = Y(Z, aa, ab, "verification", "inProgress", height, (height + aM), ag, 0, 0)
244- let bc = getIntegerValue(J)
245- let bd = (aQ - bc)
246- ([IntegerEntry(aV, aW), StringEntry(R(E, aW), toString(aL.caller)), StringEntry(X(E, aW), at), StringEntry(aj(E), aN), Burn(aP, bd)] ++ bb)
145+ else [IntegerEntry(t, 1)]
247146 }
248147 else throw("Strict value is not equal to itself.")
249148 }
250149
251150
151+func aa () = "%s__calculator"
252152
253-@Callable(aL)
254-func suggestRemove (E) = {
255- let be = ak(toString(aL.caller), height)
256- let bf = getIntegerValue(K)
257- let aO = aL.payments[0]
258- let aP = value(aO.assetId)
259- let aQ = value(aO.amount)
260- let aT = {
261- let aU = invoke(u, "isVerifiedREADONLY", [E], nil)
262- if ($isInstanceOf(aU, "Boolean"))
263- then aU
264- else throw(($getType(aU) + " couldn't be cast to Boolean"))
153+
154+func ab () = "%s__proxyTreasury"
155+
156+
157+func ac () = "%s__child"
158+
159+
160+func ad () = "%s__blockProcessingReward"
161+
162+
163+func ae () = "%s__nextBlockToProcess"
164+
165+
166+func af () = "%s__lpAssetId"
167+
168+
169+let ag = {
170+ let v = getString(this, aa())
171+ if ($isInstanceOf(v, "String"))
172+ then {
173+ let e = v
174+ addressFromString(e)
175+ }
176+ else if ($isInstanceOf(v, "Unit"))
177+ then unit
178+ else throw("Match error")
179+ }
180+
181+let ah = valueOrErrorMessage(ag, d("invalid calculator address"))
182+
183+let ai = {
184+ let v = getString(this, ab())
185+ if ($isInstanceOf(v, "String"))
186+ then {
187+ let e = v
188+ addressFromString(e)
189+ }
190+ else if ($isInstanceOf(v, "Unit"))
191+ then unit
192+ else throw("Match error")
193+ }
194+
195+let aj = valueOrErrorMessage(ai, d("invalid proxy treasury address"))
196+
197+func ak () = "%s__config"
198+
199+
200+func al () = "contract_children"
201+
202+
203+func am () = "contract_voting_result"
204+
205+
206+func an (x,l) = ((("proposal_allow_broadcast_" + toString(x)) + "_") + toBase58String(l))
207+
208+
209+func ao (ap,aq) = makeString(["investor", toString(ap), toString(aq)], "_")
210+
211+
212+let ar = {
213+ let v = getString(this, ak())
214+ if ($isInstanceOf(v, "String"))
215+ then {
216+ let e = v
217+ addressFromString(e)
218+ }
219+ else if ($isInstanceOf(v, "Unit"))
220+ then unit
221+ else throw("Match error")
222+ }
223+
224+let as = valueOrErrorMessage(ar, d("invalid config address"))
225+
226+let at = {
227+ let v = ar
228+ if ($isInstanceOf(v, "Address"))
229+ then {
230+ let z = v
231+ let au = getString(z, am())
232+ if ($isInstanceOf(au, "String"))
233+ then {
234+ let e = au
235+ addressFromString(e)
236+ }
237+ else if ($isInstanceOf(au, "Unit"))
238+ then unit
239+ else throw("Match error")
240+ }
241+ else if ($isInstanceOf(v, "Unit"))
242+ then unit
243+ else throw("Match error")
244+ }
245+
246+let av = valueOrErrorMessage(at, d("invalid voting result address"))
247+
248+let aw = {
249+ let v = ar
250+ if ($isInstanceOf(v, "Address"))
251+ then {
252+ let z = v
253+ let au = getString(z, al())
254+ if ($isInstanceOf(au, "String"))
255+ then {
256+ let e = au
257+ addressFromString(e)
258+ }
259+ else if ($isInstanceOf(au, "Unit"))
260+ then unit
261+ else throw("Match error")
262+ }
263+ else if ($isInstanceOf(v, "Unit"))
264+ then unit
265+ else throw("Match error")
266+ }
267+
268+let ax = valueOrErrorMessage(aw, d("invalid children address"))
269+
270+let ay = {
271+ let v = getString(this, af())
272+ if ($isInstanceOf(v, "String"))
273+ then {
274+ let e = v
275+ fromBase58String(e)
276+ }
277+ else if ($isInstanceOf(v, "Unit"))
278+ then unit
279+ else throw("Match error")
280+ }
281+
282+let az = valueOrErrorMessage(ay, d("invalid lpAssetId"))
283+
284+func aA (aB,x) = if ((aB.caller == x))
285+ then true
286+ else f("permission denied")
287+
288+
289+func aC (aB) = aA(aB, this)
290+
291+
292+func aD (aB) = aA(aB, ah)
293+
294+
295+@Callable(aB)
296+func stringEntry (R,aE) = if (aD(aB))
297+ then $Tuple2([StringEntry(R, aE)], R)
298+ else $Tuple2(nil, unit)
299+
300+
301+
302+@Callable(aB)
303+func integerEntry (R,aE) = if (aD(aB))
304+ then $Tuple2([IntegerEntry(R, aE)], R)
305+ else $Tuple2(nil, unit)
306+
307+
308+
309+@Callable(aB)
310+func booleanEntry (R,aE) = if (aD(aB))
311+ then $Tuple2([BooleanEntry(R, aE)], R)
312+ else $Tuple2(nil, unit)
313+
314+
315+
316+@Callable(aB)
317+func binaryEntry (R,aE) = if (aD(aB))
318+ then $Tuple2([BinaryEntry(R, aE)], R)
319+ else $Tuple2(nil, unit)
320+
321+
322+
323+@Callable(aB)
324+func deleteEntry (R) = if (aD(aB))
325+ then $Tuple2([DeleteEntry(R)], R)
326+ else $Tuple2(nil, unit)
327+
328+
329+
330+@Callable(aB)
331+func reissue (aF) = if (aD(aB))
332+ then $Tuple2([Reissue(az, aF, true)], aF)
333+ else $Tuple2(nil, unit)
334+
335+
336+
337+@Callable(aB)
338+func burn (aF) = if (aD(aB))
339+ then $Tuple2([Burn(az, aF)], aF)
340+ else $Tuple2(nil, unit)
341+
342+
343+
344+@Callable(aB)
345+func transferAsset (aG,aF,aH) = if (aD(aB))
346+ then $Tuple2([ScriptTransfer(Address(aG), aF, aH)], aF)
347+ else $Tuple2(nil, unit)
348+
349+
350+
351+@Callable(aB)
352+func transferAssets (aG,aI,aJ) = if (aD(aB))
353+ then {
354+ func aK (aL,aM) = {
355+ let aN = aL
356+ let aO = aN._1
357+ let aP = aN._2
358+ let aQ = ScriptTransfer(Address(aG), parseIntValue(aJ[aP]), g(aI[aP]))
359+ let aR = (aO :+ aQ)
360+ $Tuple2(aR, (aP + 1))
361+ }
362+
363+ let aS = {
364+ let G = aI
365+ let H = size(G)
366+ let I = $Tuple2(nil, 0)
367+ func J (K,L) = if ((L >= H))
368+ then K
369+ else aK(K, G[L])
370+
371+ func M (K,L) = if ((L >= H))
372+ then K
373+ else throw("List size exceeds 10")
374+
375+ M(J(J(J(J(J(J(J(J(J(J(I, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
376+ }
377+ let aT = aS._1
378+ let aU = aS._2
379+ $Tuple2(aT, unit)
265380 }
266- let aA = [if (aT)
381+ else $Tuple2(nil, unit)
382+
383+
384+
385+@Callable(aB)
386+func transferWaves (aG,aF) = if (aD(aB))
387+ then $Tuple2([ScriptTransfer(Address(aG), aF, unit)], aF)
388+ else $Tuple2(nil, unit)
389+
390+
391+
392+@Callable(aB)
393+func transferFromProxyTreasury (aV,aW) = if (aD(aB))
394+ then $Tuple2(nil, invoke(aj, "transferWaves", [aV, aW], nil))
395+ else $Tuple2(nil, unit)
396+
397+
398+
399+@Callable(aB)
400+func finalize (aX,aY,aZ) = $Tuple2(nil, reentrantInvoke(ah, "finalize", [aB.caller.bytes, aX, aY, aZ], aB.payments))
401+
402+
403+
404+@Callable(aB)
405+func finalizeREADONLY (aX,aY,aZ) = $Tuple2(nil, reentrantInvoke(ah, "finalizeREADONLY", [aX, aY, aZ], nil))
406+
407+
408+
409+@Callable(aB)
410+func claimLP () = $Tuple2(nil, reentrantInvoke(ah, "claimLP", [aB.caller.bytes], aB.payments))
411+
412+
413+
414+@Callable(aB)
415+func claimCollateral (ba) = $Tuple2(nil, reentrantInvoke(ah, "claimCollateral", [aB.caller.bytes, fromBase58String(ba)], aB.payments))
416+
417+
418+
419+@Callable(aB)
420+func invest () = $Tuple2(nil, reentrantInvoke(ah, "invest", [aB.caller.bytes], aB.payments))
421+
422+
423+
424+@Callable(aB)
425+func withdraw () = $Tuple2(nil, reentrantInvoke(ah, "withdraw", [aB.caller.bytes], aB.payments))
426+
427+
428+
429+@Callable(aB)
430+func cancelWithdraw (ba) = $Tuple2(nil, reentrantInvoke(ah, "cancelWithdraw", [aB.caller.bytes, fromBase58String(ba)], aB.payments))
431+
432+
433+
434+@Callable(aB)
435+func processBlocks () = $Tuple2(nil, reentrantInvoke(ah, "processBlocks", [aB.caller.bytes], aB.payments))
436+
437+
438+
439+@Callable(aB)
440+func voteForTxId (l) = {
441+ let U = toBase58String(aB.caller.bytes)
442+ let D = k(l)
443+ let B = [StringEntry(q(), l)]
444+ let bb = getString(this, q())
445+ let Y = [if ((size(fromBase58String(l)) == j))
267446 then true
268- else e("token not verified"), if ((be >= bf))
447+ else f((l + " is not valid txId")), if (if ((bb == unit))
269448 then true
270- else e("not enough gWXes"), if ((aQ >= getIntegerValue(W)))
449+ else (value(bb) != l))
271450 then true
272- else e("payment less then min for suggest")]
273- if ((aA == aA))
274- then {
275- let aV = L(E)
276- let ax = getInteger(aV)
277- let aW = if (isDefined(ax))
278- then (value(ax) + 1)
279- else 0
280- let aM = valueOrErrorMessage(getInteger(A), c("periodLengthRemove not set"))
281- let af = (height + aM)
282- let ag = valueOrErrorMessage(getInteger(z), c("votingThresholdRemove not set"))
283- let at = Y(false, "EMPTY", 0, "deverification", "inProgress", height, (height + aM), ag, 0, 0)
284-[IntegerEntry(aV, aW), StringEntry(R(E, aW), toString(aL.caller)), StringEntry(X(E, aW), at)]
285- }
451+ else f((l + " is already allowed"))]
452+ if ((Y == Y))
453+ then T(U, D, i, B)
286454 else throw("Strict value is not equal to itself.")
287455 }
288456
289457
290-
291-@Callable(aL)
292-func vote (E,P) = {
293- let aV = L(E)
294- let ax = valueOrErrorMessage(getInteger(aV), c("voting does not exist"))
295- let at = aw(E, ax)
296- if ((at == at))
297- then {
298- let bg = at._2
299- let bh = ak(toString(aL.caller), bg)
300- let aD = M(E, ax, aL.caller)
301- let aA = [if ((getString(aD) == unit))
302- then true
303- else e("You have already voted"), if ((bh > 0))
304- then true
305- else throw("You'll not have gWX at the end of voting")]
306- if ((aA == aA))
307- then {
308- let aG = valueOrErrorMessage(getString(X(E, ax)), c("voting info not found"))
309- let au = as(aG)
310- let ah = au._9
311- let ai = au._10
312- let bi = if (P)
313- then $Tuple2((ah + bh), ai)
314- else $Tuple2(ah, (ai + bh))
315- let bj = bi._1
316- let bk = bi._2
317- let bl = Y(au._1, au._2, au._3, au._4, au._5, au._6, au._7, au._8, bj, bk)
318- let bm = {
319- let h = getString(D(E, ax))
320- if ($isInstanceOf(h, "String"))
321- then {
322- let bn = h
323-[StringEntry(G(aL.caller, E, ax), O(P, bh))]
324- }
325- else if ($isInstanceOf(h, "Unit"))
326- then nil
327- else throw("Match error")
328- }
329- ([StringEntry(aD, O(P, bh)), StringEntry(X(E, ax), bl)] ++ bm)
330- }
331- else throw("Strict value is not equal to itself.")
332- }
333- else throw("Strict value is not equal to itself.")
334- }
335-
336-
337-
338-@Callable(aL)
339-func cancelVote (E) = {
340- let aV = L(E)
341- let ax = valueOrErrorMessage(getInteger(aV), c("voting does not exist"))
342- let aD = M(E, ax, aL.caller)
343- let aE = valueOrErrorMessage(getString(aD), c("you have not voted"))
344- let aF = split(aE, a)
345- let P = aF[1]
346- let Q = parseIntValue(aF[2])
347- let at = aw(E, ax)
348- if ((at == at))
349- then {
350- let aA = [if (if ((P == "true"))
351- then true
352- else (P == "false"))
353- then true
354- else e("invalid vote")]
355- if ((aA == aA))
356- then {
357- let aG = valueOrErrorMessage(getString(X(E, ax)), c("voting info not found"))
358- let au = as(aG)
359- let ah = au._9
360- let ai = au._10
361- let bo = if ((P == "true"))
362- then $Tuple2((ah - Q), ai)
363- else $Tuple2(ah, (ai - Q))
364- let bj = bo._1
365- let bk = bo._2
366- let bl = Y(au._1, au._2, au._3, au._4, au._5, au._6, au._7, au._8, bj, bk)
367-[StringEntry(X(E, ax), bl), DeleteEntry(aD), DeleteEntry(G(aL.caller, E, ax))]
368- }
369- else throw("Strict value is not equal to itself.")
370- }
371- else throw("Strict value is not equal to itself.")
372- }
373-
374-
375-
376-@Callable(aL)
377-func finalize (E) = {
378- let aV = L(E)
379- let ax = valueOrElse(getInteger(aV), 0)
380- let bp = valueOrErrorMessage(getInteger(y), c("votingThresholdAdd not set"))
381- let bq = valueOrErrorMessage(getInteger(z), c("votingThresholdRemove not set"))
382- let aG = valueOrErrorMessage(getString(X(E, ax)), c("voting info not found"))
383- let au = as(aG)
384- let ac = au._4
385- let ad = au._5
386- let af = au._7
387- let br = au._8
388- let ah = au._9
389- let ai = au._10
390- let aA = [if ((ad == "inProgress"))
458+@Verifier(bc)
459+func bd () = {
460+ let be = {
461+ let v = at
462+ if ($isInstanceOf(v, "Address"))
463+ then {
464+ let bf = v
465+ valueOrElse(getBoolean(bf, an(this, bc.id)), false)
466+ }
467+ else false
468+ }
469+ let bg = (bc.id == fromBase58String(valueOrElse(getString(this, q()), "")))
470+ let bh = if ((size(u()) >= i))
471+ then false
472+ else sigVerify(bc.bodyBytes, bc.proofs[0], bc.senderPublicKey)
473+ if (if (be)
391474 then true
392- else e("voting not in progress"), if ((height >= af))
475+ else bg)
393476 then true
394- else e("voting not finished"), if (isDefined(getString(aj(E))))
395- then true
396- else e("asset image not set")]
397- if ((aA == aA))
398- then {
399- let bs = if (if (((ah + ai) >= br))
400- then (ah > ai)
401- else false)
402- then true
403- else false
404- let bt = if (bs)
405- then "accepted"
406- else "rejected"
407- let aN = getStringValue(aj(E))
408- let bu = if (bs)
409- then {
410- let bv = if ((ac == "verification"))
411- then invoke(u, "createOrUpdate", [E, aN, true], nil)
412- else invoke(u, "setVerified", [E, false], nil)
413- bv
414- }
415- else nil
416- if ((bu == bu))
417- then {
418- let bl = Y(au._1, au._2, au._3, au._4, bt, au._6, au._7, au._8, au._9, au._10)
419- let bc = getIntegerValue(J)
420-[StringEntry(X(E, ax), bl), ScriptTransfer(aL.caller, bc, x)]
421- }
422- else throw("Strict value is not equal to itself.")
423- }
424- else throw("Strict value is not equal to itself.")
425- }
426-
427-
428-
429-@Callable(aL)
430-func claimREADONLY (E,F,bw) = {
431- let H = valueOrErrorMessage(addressFromString(bw), c("invalid address"))
432- let bx = getString(D(E, F))
433- let ab = if (isDefined(bx))
434- then aB(H, E, F)
435- else 0
436- $Tuple2(nil, ab)
437- }
438-
439-
440-
441-@Callable(aL)
442-func claim (E,F) = {
443- let by = aL.caller
444- let bz = S(by, E, F)
445- let bA = getInteger(bz)
446- let aA = [if ((bA == unit))
447- then true
448- else e("already claimed")]
449- if ((aA == aA))
450- then {
451- let ab = if ((aB(by, E, F) > 0))
452- then aB(by, E, F)
453- else e("nothing to claim")
454- let bx = getString(D(E, F))
455- let bB = if (isDefined(bx))
456- then {
457- let bC = fromBase58String(value(bx))
458-[ScriptTransfer(by, ab, bC), IntegerEntry(bz, ab), DeleteEntry(G(by, E, F))]
459- }
460- else e("nothing to claim")
461- bB
462- }
463- else throw("Strict value is not equal to itself.")
464- }
465-
466-
467-@Verifier(bD)
468-func bE () = {
469- let bF = {
470- let h = aq()
471- if ($isInstanceOf(h, "ByteVector"))
472- then {
473- let bn = h
474- bn
475- }
476- else if ($isInstanceOf(h, "Unit"))
477- then bD.senderPublicKey
478- else throw("Match error")
479- }
480- sigVerify(bD.bodyBytes, bD.proofs[0], bF)
477+ else bh
481478 }
482479

github/deemru/w8io/169f3d6 
71.32 ms