tx · CVb9b3hTexVsynaBZQoxfwHpLTXomkLndZYVVLs1qAqW

3Mv2XuHsvUWVFF98WoQPhEiwoTD6jDNZ9Um:  -0.03700000 Waves

2023.06.06 19:32 [2611053] smart account 3Mv2XuHsvUWVFF98WoQPhEiwoTD6jDNZ9Um > SELF 0.00000000 Waves

{ "type": 13, "id": "CVb9b3hTexVsynaBZQoxfwHpLTXomkLndZYVVLs1qAqW", "fee": 3700000, "feeAssetId": null, "timestamp": 1686069142631, "version": 2, "chainId": 84, "sender": "3Mv2XuHsvUWVFF98WoQPhEiwoTD6jDNZ9Um", "senderPublicKey": "A2KccBr4NzEMC7MAWWqRHaxCjjxZoLhdPBZhrWzE7JMe", "proofs": [ "2jiDPuTVm8pFEFrMNyeqY8d6VYsYGY1Cnsy7BUU8BZjRXjF2wrTKbmuxiHAmqDZ8RTm96gfH51tQ2KPGHRBorWy1" ], "script": "base64:BgIjCAISBAoCCAgSAwoBCBIFCgMIAQESAwoBCBIDCgEIEgMKAQgaAA1rX2luaXRpYWxpemVkAg1rX2luaXRpYWxpemVkABRrX2Nvb3JkaW5hdG9yQWRkcmVzcwIUa19jb29yZGluYXRvckFkZHJlc3MAD2tfYWRtaW5fYWRkcmVzcwIPa19hZG1pbl9hZGRyZXNzABVrX25mdF9tYW5hZ2VyX2FkZHJlc3MCFWtfbmZ0X21hbmFnZXJfYWRkcmVzcwAUa19vcmFjbGVfcHVibGljX2tleXMCFGtfb3JhY2xlX3B1YmxpY19rZXlzAAhrX3N0cmVhbQIIa19zdHJlYW0AE2tfc3RyZWFtX2RhdGFfcHJpY2UCE2tfc3RyZWFtX2RhdGFfcHJpY2UAFGtfc3RyZWFtX2RhdGFfc3ByZWFkAhRrX3N0cmVhbV9kYXRhX3NwcmVhZAAXa19zdHJlYW1fZGF0YV90aW1lc3RhbXACF2tfc3RyZWFtX2RhdGFfdGltZXN0YW1wABNrX3N0cmVhbV9kYXRhX2Jsb2NrAhNrX3N0cmVhbV9kYXRhX2Jsb2NrAQtjb29yZGluYXRvcgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQCG0Nvb3JkaW5hdG9yIGFkZHJlc3MgaW52YWxpZAEMYWRtaW5BZGRyZXNzAAkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAUPa19hZG1pbl9hZGRyZXNzAhVBZG1pbiBhZGRyZXNzIG5vdCBzZXQBC2luaXRpYWxpemVkAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ1rX2luaXRpYWxpemVkBwAMREVDSU1BTF9VTklUCQBoAgABCQBoAgkAaAIJAGgCCQBoAgkAaAIACgAKAAoACgAKAAoBBGRpdmQCAl94Al95CQBuBAUCX3gFDERFQ0lNQUxfVU5JVAUCX3kFCEhBTEZFVkVOAQRtdWxkAgJfeAJfeQkAbgQFAl94BQJfeQUMREVDSU1BTF9VTklUBQhIQUxGRVZFTgEDYWJzAQJfeAMJAGYCBQJfeAAABQJfeAkBAS0BBQJfeAEOdG9Db21wb3NpdGVLZXkCBF9rZXkIX2FkZHJlc3MJAKwCAgkArAICBQRfa2V5AgFfBQhfYWRkcmVzcwEUZ2V0U3RyZWFtU2V0dGluZ3NLZXkBA19pZAkBDnRvQ29tcG9zaXRlS2V5AgUIa19zdHJlYW0FA19pZAEGdG9MaXN0AgRfc3RyBF9zcHIDCQEJaXNEZWZpbmVkAQkAswkCBQRfc3RyBQRfc3ByCQC1CQIFBF9zdHIFBF9zcHIJAMwIAgUEX3N0cgUDbmlsARZ2ZXJpZnlPcmFjbGVQdWJsaWNLZXlzAQVfa2V5cwQEbGlzdAkBBnRvTGlzdAIFBV9rZXlzAgEsAwkAZgIJAJADAQUEbGlzdAAJCQACAQIQTWF4IDkgc2lnbmF0dXJlcwUFX2tleXMBDWxhc3RUaW1lc3RhbXAACAUJbGFzdEJsb2NrCXRpbWVzdGFtcAESZ2V0T3JhY2xlQWRkcmVzc2VzAAQGb3JhU3RyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBRRrX29yYWNsZV9wdWJsaWNfa2V5cwMJAQlpc0RlZmluZWQBCQCzCQIFBm9yYVN0cgIBLAkAtQkCBQZvcmFTdHICASwJAMwIAgUGb3JhU3RyBQNuaWwBEWdldFN0cmVhbVNldHRpbmdzAQNfaWQEBF9rZXkJARRnZXRTdHJlYW1TZXR0aW5nc0tleQEFA19pZAQDc3RyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUEX2tleQkArAICAhNObyBzdHJlYW0gd2l0aCBpZDogBQNfaWQEBXBhcnRzCQC1CQIFA3N0cgIBLAkAlQoDCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQVwYXJ0cwAACQCsAgICIEludmFsaWQgbWF4RGV2aWF0aW9uIGluIHN0cmVhbTogBQNfaWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBXBhcnRzAAEJAKwCAgIiSW52YWxpZCB2YWxpZGl0eVBlcmlvZCBpbiBzdHJlYW06IAUDX2lkCQAAAgkAkQMCBQVwYXJ0cwACAgR0cnVlARFnZXRTdHJlYW1MYXN0RGF0YQEDX2lkBAlkYXRhUG9pbnQJAJoIAgUEdGhpcwkBDnRvQ29tcG9zaXRlS2V5AgUTa19zdHJlYW1fZGF0YV9wcmljZQUDX2lkAwkBCWlzRGVmaW5lZAEFCWRhdGFQb2ludAkAlgoECQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQEOdG9Db21wb3NpdGVLZXkCBRNrX3N0cmVhbV9kYXRhX3ByaWNlBQNfaWQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFFGtfc3RyZWFtX2RhdGFfc3ByZWFkBQNfaWQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFF2tfc3RyZWFtX2RhdGFfdGltZXN0YW1wBQNfaWQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFE2tfc3RyZWFtX2RhdGFfYmxvY2sFA19pZAkAlgoEAAAAAAkBDWxhc3RUaW1lc3RhbXAABQZoZWlnaHQBFHVwZGF0ZVN0cmVhbVNldHRpbmdzBANfaWQNX21heERldmlhdGlvbg9fdmFsaWRpdHlQZXJpb2QIX3N0b3BwZWQECnN0cmVhbURhdGEJALkJAgkAzAgCCQCkAwEFDV9tYXhEZXZpYXRpb24JAMwIAgkApAMBBQ9fdmFsaWRpdHlQZXJpb2QJAMwIAgkApQMBBQhfc3RvcHBlZAUDbmlsAgEsCQDMCAIJAQtTdHJpbmdFbnRyeQIJARRnZXRTdHJlYW1TZXR0aW5nc0tleQEFA19pZAUKc3RyZWFtRGF0YQUDbmlsBgFpAQppbml0aWFsaXplAgxfY29vcmRpbmF0b3IRX29yYWNsZVB1YmxpY0tleXMDAwkBC2luaXRpYWxpemVkAAYJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECFFVuYWJsZSB0byBpbml0aWFsaXplCQDMCAIJAQtTdHJpbmdFbnRyeQIFFGtfY29vcmRpbmF0b3JBZGRyZXNzCQClCAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDF9jb29yZGluYXRvcgkAzAgCCQELU3RyaW5nRW50cnkCBRRrX29yYWNsZV9wdWJsaWNfa2V5cwkBFnZlcmlmeU9yYWNsZVB1YmxpY0tleXMBBRFfb3JhY2xlUHVibGljS2V5cwkAzAgCCQEMQm9vbGVhbkVudHJ5AgUNa19pbml0aWFsaXplZAYFA25pbAFpARNzZXRPcmFjbGVQdWJsaWNLZXlzARFfb3JhY2xlUHVibGljS2V5cwMDCQEBIQEJAQtpbml0aWFsaXplZAAGCQECIT0CCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MACQACAQIiSW52YWxpZCBzZXRPcmFjbGVQdWJsaWNLZXlzIHBhcmFtcwkAzAgCCQELU3RyaW5nRW50cnkCBRRrX29yYWNsZV9wdWJsaWNfa2V5cwkBFnZlcmlmeU9yYWNsZVB1YmxpY0tleXMBBRFfb3JhY2xlUHVibGljS2V5cwUDbmlsAWkBDGNyZWF0ZVN0cmVhbQMDX2lkDV9tYXhEZXZpYXRpb24PX3ZhbGlkaXR5UGVyaW9kAwMDCQECIT0CCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MABgkAZwIAAAUNX21heERldmlhdGlvbgYJAGcCAAAFD192YWxpZGl0eVBlcmlvZAkAAgECG0ludmFsaWQgY3JlYXRlU3RyZWFtIHBhcmFtcwkBFHVwZGF0ZVN0cmVhbVNldHRpbmdzBAUDX2lkBQ1fbWF4RGV2aWF0aW9uBQ9fdmFsaWRpdHlQZXJpb2QHAWkBBXBhdXNlAQNfaWQDCQECIT0CCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MACQACAQIUSW52YWxpZCBwYXVzZSBwYXJhbXMECyR0MDQ3NDE0ODA5CQERZ2V0U3RyZWFtU2V0dGluZ3MBBQNfaWQEDG1heERldmlhdGlvbggFCyR0MDQ3NDE0ODA5Al8xBA52YWxpZGl0eVBlcmlvZAgFCyR0MDQ3NDE0ODA5Al8yBAdzdG9wcGVkCAULJHQwNDc0MTQ4MDkCXzMJARR1cGRhdGVTdHJlYW1TZXR0aW5ncwQFA19pZAUMbWF4RGV2aWF0aW9uBQ52YWxpZGl0eVBlcmlvZAYBaQEHdW5QYXVzZQEDX2lkAwkBAiE9AggFAWkGY2FsbGVyCQEMYWRtaW5BZGRyZXNzAAkAAgECFkludmFsaWQgdW5QYXVzZSBwYXJhbXMECyR0MDUwOTQ1MTYyCQERZ2V0U3RyZWFtU2V0dGluZ3MBBQNfaWQEDG1heERldmlhdGlvbggFCyR0MDUwOTQ1MTYyAl8xBA52YWxpZGl0eVBlcmlvZAgFCyR0MDUwOTQ1MTYyAl8yBAdzdG9wcGVkCAULJHQwNTA5NDUxNjICXzMJARR1cGRhdGVTdHJlYW1TZXR0aW5ncwQFA19pZAUMbWF4RGV2aWF0aW9uBQ52YWxpZGl0eVBlcmlvZAcBaQEKdXBkYXRlRGF0YQEFX2RhdGEEBnVwZGF0ZQkAvAkCBQVfZGF0YQICX18EAmlkCQCRAwIFBnVwZGF0ZQAABAl0aW1lc3RhbXAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBnVwZGF0ZQABAhdJbnZhbGlkIGRhdGE6IHRpbWVzdGFtcAMJAAACBQl0aW1lc3RhbXAFCXRpbWVzdGFtcAQFcHJpY2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBnVwZGF0ZQACAhNJbnZhbGlkIGRhdGE6IHByaWNlAwkAAAIFBXByaWNlBQVwcmljZQQGc3ByZWFkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQZ1cGRhdGUAAwIUSW52YWxpZCBkYXRhOiBzcHJlYWQDCQAAAgUGc3ByZWFkBQZzcHJlYWQECnNpZ25hdHVyZXMDCQEJaXNEZWZpbmVkAQkAswkCCQCRAwIFBnVwZGF0ZQAEAgE6CQC8CQIJAJEDAgUGdXBkYXRlAAQCAToJAMwIAgkAkQMCBQZ1cGRhdGUABAUDbmlsBAdtZXNzYWdlCQCbAwEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFAmlkAgEsCQCkAwEFCXRpbWVzdGFtcAIBLAkApAMBBQVwcmljZQIBLAkApAMBBQZzcHJlYWQEB29yYWNsZXMJARJnZXRPcmFjbGVBZGRyZXNzZXMACgEGaGFuZGxlAgRfYWNjDl9zaWduYXR1cmVEYXRhBAhzaWduZWRCeQkAtQkCBQ5fc2lnbmF0dXJlRGF0YQIBPQQGc2lnbmVyCQCRAwIFCHNpZ25lZEJ5AAAECXNpZ25hdHVyZQkAkQMCBQhzaWduZWRCeQABBA1pc1ZhbGlkU2lnbmVyCQEPY29udGFpbnNFbGVtZW50AgUHb3JhY2xlcwUGc2lnbmVyBBBpc1ZhbGlkU2lnbmF0dXJlCQD0AwMFB21lc3NhZ2UJANkEAQUJc2lnbmF0dXJlCQDZBAEFBnNpZ25lcgQGcmVzdWx0AwMFDWlzVmFsaWRTaWduZXIFEGlzVmFsaWRTaWduYXR1cmUHCQBkAgUEX2FjYwABBQRfYWNjBQZyZXN1bHQED3NpZ25hdHVyZXNDb3VudAoAAiRsBQpzaWduYXR1cmVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQZoYW5kbGUCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFBA9pc1F1b3J1bVJlYWNoZWQJAGYCBQ9zaWduYXR1cmVzQ291bnQJAGkCCQCQAwEFB29yYWNsZXMAAgQLJHQwNjUzMjY2MzIJARFnZXRTdHJlYW1TZXR0aW5ncwEFAmlkAwkAAAIFCyR0MDY1MzI2NjMyBQskdDA2NTMyNjYzMgQHc3RvcHBlZAgFCyR0MDY1MzI2NjMyAl8zBA52YWxpZGl0eVBlcmlvZAgFCyR0MDY1MzI2NjMyAl8yBAxtYXhEZXZpYXRpb24IBQskdDA2NTMyNjYzMgJfMQQDbm93CQENbGFzdFRpbWVzdGFtcAAEEGlzVmFsaWRUaW1lc3RhbXADCQBmAgUJdGltZXN0YW1wBQNub3cGCQBmAgUOdmFsaWRpdHlQZXJpb2QJAGUCBQNub3cFCXRpbWVzdGFtcAQLaU5vdFN0b3BwZWQJAQEhAQUHc3RvcHBlZAQLJHQwNjc4NDY5MTIJARFnZXRTdHJlYW1MYXN0RGF0YQEFAmlkBAlsYXN0UHJpY2UIBQskdDA2Nzg0NjkxMgJfMQQKbGFzdFNwcmVhZAgFCyR0MDY3ODQ2OTEyAl8yBBNzdHJlYW1MYXN0VGltZXN0YW1wCAULJHQwNjc4NDY5MTICXzMECmxhc3RIZWlnaHQIBQskdDA2Nzg0NjkxMgJfNAQEZGlmZgMJAAACBQlsYXN0UHJpY2UAAAAACQEDYWJzAQkBBGRpdmQCCQBlAgUFcHJpY2UFCWxhc3RQcmljZQUJbGFzdFByaWNlBAtpc1ZhbGlkRGlmZgkAZgIFDG1heERldmlhdGlvbgUEZGlmZgMDAwMFD2lzUXVvcnVtUmVhY2hlZAUQaXNWYWxpZFRpbWVzdGFtcAcFC2lOb3RTdG9wcGVkBwULaXNWYWxpZERpZmYHAwkAZgIFE3N0cmVhbUxhc3RUaW1lc3RhbXAFCXRpbWVzdGFtcAkAlAoCBQNuaWwJAJUKAwUJbGFzdFByaWNlBQpsYXN0U3ByZWFkBRNzdHJlYW1MYXN0VGltZXN0YW1wAwMDAwkBAiE9AgUFcHJpY2UFCWxhc3RQcmljZQYJAQIhPQIFBnNwcmVhZAUKbGFzdFNwcmVhZAYJAQIhPQIFCXRpbWVzdGFtcAUTc3RyZWFtTGFzdFRpbWVzdGFtcAYJAQIhPQIFCmxhc3RIZWlnaHQFBmhlaWdodAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBRNrX3N0cmVhbV9kYXRhX3ByaWNlBQJpZAUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFFGtfc3RyZWFtX2RhdGFfc3ByZWFkBQJpZAUGc3ByZWFkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBRdrX3N0cmVhbV9kYXRhX3RpbWVzdGFtcAUCaWQFCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUTa19zdHJlYW1fZGF0YV9ibG9jawUCaWQFBmhlaWdodAUDbmlsCQCVCgMFBXByaWNlBQZzcHJlYWQFCXRpbWVzdGFtcAkAlAoCBQNuaWwJAJUKAwUFcHJpY2UFBnNwcmVhZAUJdGltZXN0YW1wBAdyZWFzb25zCQDMCAIDCQEBIQEFEGlzVmFsaWRUaW1lc3RhbXACEWludmFsaWQgdGltZXN0YW1wAgAJAMwIAgMJAQEhAQULaU5vdFN0b3BwZWQCB3N0b3BwZWQCAAkAzAgCAwkBASEBBQtpc1ZhbGlkRGlmZgIYaW52YWxpZCBkaWZmICh0b28gbGFyZ2UpAgAJAMwIAgMJAQEhAQUPaXNRdW9ydW1SZWFjaGVkAhJxdW9ydW0gbm90IHJlYWNoZWQCAAUDbmlsBAZyZWFzb24JALkJAgUHcmVhc29ucwICLCAJAAIBCQCsAgICG0ludmFsaWQgdXBkYXRlRGF0ZSBwYXJhbXM6IAUGcmVhc29uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQOY29vcmRpbmF0b3JTdHIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MDCQEJaXNEZWZpbmVkAQUOY29vcmRpbmF0b3JTdHIEBWFkbWluCQCdCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFDmNvb3JkaW5hdG9yU3RyBQ9rX2FkbWluX2FkZHJlc3MDCQEJaXNEZWZpbmVkAQUFYWRtaW4JAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUFYWRtaW4JAKwCAgkArAICCQCsAgICB3N0YXR1c18JAKUIAQUEdGhpcwIBXwkA2AQBCAUCdHgCaWQHCQACAQIudW5hYmxlIHRvIHZlcmlmeTogYWRtaW4gbm90IHNldCBpbiBjb29yZGluYXRvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleXfnTU4=", "height": 2611053, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ERDrrSXn6A6wpKXfZic5Z8EiPGYowoc3mN34iGYZsFZY Next: 2D7cBcm4BDxiSHGa3eWaAE73CMPkraf1VZQTF14eB4Ys Diff:
OldNewDifferences
8484 func K (x) = {
8585 let L = getInteger(this, t(g, x))
8686 if (isDefined(L))
87- then $Tuple3(getIntegerValue(this, t(g, x)), getIntegerValue(this, t(h, x)), getIntegerValue(this, t(i, x)))
88- else $Tuple3(0, 0, E())
87+ then $Tuple4(getIntegerValue(this, t(g, x)), getIntegerValue(this, t(h, x)), getIntegerValue(this, t(i, x)), getIntegerValue(this, t(j, x)))
88+ else $Tuple4(0, 0, E(), height)
8989 }
9090
9191
212212 let aF = aE._1
213213 let aG = aE._2
214214 let aH = aE._3
215- let aI = if ((aF == 0))
215+ let aI = aE._4
216+ let aJ = if ((aF == 0))
216217 then 0
217218 else s(o((ad - aF), aF))
218- let aJ = (V > aI)
219+ let aK = (V > aJ)
219220 if (if (if (if (az)
220221 then aC
221222 else false)
222223 then aD
223224 else false)
224- then aJ
225+ then aK
225226 else false)
226227 then if ((aH > ac))
227228 then $Tuple2(nil, $Tuple3(aF, aG, aH))
228- else $Tuple2([IntegerEntry(t(g, ab), ad), IntegerEntry(t(h, ab), ae), IntegerEntry(t(i, ab), ac), IntegerEntry(t(j, ab), height)], $Tuple3(ad, ae, ac))
229+ else if (if (if (if ((ad != aF))
230+ then true
231+ else (ae != aG))
232+ then true
233+ else (ac != aH))
234+ then true
235+ else (aI != height))
236+ then $Tuple2([IntegerEntry(t(g, ab), ad), IntegerEntry(t(h, ab), ae), IntegerEntry(t(i, ab), ac), IntegerEntry(t(j, ab), height)], $Tuple3(ad, ae, ac))
237+ else $Tuple2(nil, $Tuple3(ad, ae, ac))
229238 else {
230- let aK = [if (!(aC))
239+ let aL = [if (!(aC))
231240 then "invalid timestamp"
232241 else "", if (!(aD))
233242 then "stopped"
234- else "", if (!(aJ))
243+ else "", if (!(aK))
235244 then "invalid diff (too large)"
236245 else "", if (!(az))
237246 then "quorum not reached"
238247 else ""]
239- let aL = makeString(aK, ", ")
240- throw(("Invalid updateDate params: " + aL))
248+ let aM = makeString(aL, ", ")
249+ throw(("Invalid updateDate params: " + aM))
241250 }
242251 }
243252 else throw("Strict value is not equal to itself.")
250259 }
251260
252261
253-@Verifier(aM)
254-func aN () = {
255- let aO = getString(this, b)
256- if (isDefined(aO))
262+@Verifier(aN)
263+func aO () = {
264+ let aP = getString(this, b)
265+ if (isDefined(aP))
257266 then {
258- let aP = getString(addressFromStringValue(value(aO)), c)
259- if (isDefined(aP))
260- then valueOrElse(getBoolean(addressFromStringValue(value(aP)), ((("status_" + toString(this)) + "_") + toBase58String(aM.id))), false)
267+ let aQ = getString(addressFromStringValue(value(aP)), c)
268+ if (isDefined(aQ))
269+ then valueOrElse(getBoolean(addressFromStringValue(value(aQ)), ((("status_" + toString(this)) + "_") + toBase58String(aN.id))), false)
261270 else throw("unable to verify: admin not set in coordinator")
262271 }
263- else sigVerify(aM.bodyBytes, aM.proofs[0], aM.senderPublicKey)
272+ else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
264273 }
265274
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "k_initialized"
55
66 let b = "k_coordinatorAddress"
77
88 let c = "k_admin_address"
99
1010 let d = "k_nft_manager_address"
1111
1212 let e = "k_oracle_public_keys"
1313
1414 let f = "k_stream"
1515
1616 let g = "k_stream_data_price"
1717
1818 let h = "k_stream_data_spread"
1919
2020 let i = "k_stream_data_timestamp"
2121
2222 let j = "k_stream_data_block"
2323
2424 func k () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, b), "Coordinator not set")), "Coordinator address invalid")
2525
2626
2727 func l () = addressFromString(valueOrErrorMessage(getString(k(), c), "Admin address not set"))
2828
2929
3030 func m () = valueOrElse(getBoolean(this, a), false)
3131
3232
3333 let n = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
3434
3535 func o (p,q) = fraction(p, n, q, HALFEVEN)
3636
3737
3838 func r (p,q) = fraction(p, q, n, HALFEVEN)
3939
4040
4141 func s (p) = if ((p > 0))
4242 then p
4343 else -(p)
4444
4545
4646 func t (u,v) = ((u + "_") + v)
4747
4848
4949 func w (x) = t(f, x)
5050
5151
5252 func y (z,A) = if (isDefined(indexOf(z, A)))
5353 then split(z, A)
5454 else [z]
5555
5656
5757 func B (C) = {
5858 let D = y(C, ",")
5959 if ((size(D) > 9))
6060 then throw("Max 9 signatures")
6161 else C
6262 }
6363
6464
6565 func E () = lastBlock.timestamp
6666
6767
6868 func F () = {
6969 let G = getStringValue(this, e)
7070 if (isDefined(indexOf(G, ",")))
7171 then split(G, ",")
7272 else [G]
7373 }
7474
7575
7676 func H (x) = {
7777 let u = w(x)
7878 let I = valueOrErrorMessage(getString(this, u), ("No stream with id: " + x))
7979 let J = split(I, ",")
8080 $Tuple3(valueOrErrorMessage(parseInt(J[0]), ("Invalid maxDeviation in stream: " + x)), valueOrErrorMessage(parseInt(J[1]), ("Invalid validityPeriod in stream: " + x)), (J[2] == "true"))
8181 }
8282
8383
8484 func K (x) = {
8585 let L = getInteger(this, t(g, x))
8686 if (isDefined(L))
87- then $Tuple3(getIntegerValue(this, t(g, x)), getIntegerValue(this, t(h, x)), getIntegerValue(this, t(i, x)))
88- else $Tuple3(0, 0, E())
87+ then $Tuple4(getIntegerValue(this, t(g, x)), getIntegerValue(this, t(h, x)), getIntegerValue(this, t(i, x)), getIntegerValue(this, t(j, x)))
88+ else $Tuple4(0, 0, E(), height)
8989 }
9090
9191
9292 func M (x,N,O,P) = {
9393 let Q = makeString([toString(N), toString(O), toString(P)], ",")
9494 [StringEntry(w(x), Q)]
9595 }
9696
9797
9898 @Callable(R)
9999 func initialize (S,T) = if (if (m())
100100 then true
101101 else (R.caller != this))
102102 then throw("Unable to initialize")
103103 else [StringEntry(b, toString(addressFromStringValue(S))), StringEntry(e, B(T)), BooleanEntry(a, true)]
104104
105105
106106
107107 @Callable(R)
108108 func setOraclePublicKeys (T) = if (if (!(m()))
109109 then true
110110 else (R.caller != l()))
111111 then throw("Invalid setOraclePublicKeys params")
112112 else [StringEntry(e, B(T))]
113113
114114
115115
116116 @Callable(R)
117117 func createStream (x,N,O) = if (if (if ((R.caller != l()))
118118 then true
119119 else (0 >= N))
120120 then true
121121 else (0 >= O))
122122 then throw("Invalid createStream params")
123123 else M(x, N, O, false)
124124
125125
126126
127127 @Callable(R)
128128 func pause (x) = if ((R.caller != l()))
129129 then throw("Invalid pause params")
130130 else {
131131 let U = H(x)
132132 let V = U._1
133133 let W = U._2
134134 let X = U._3
135135 M(x, V, W, true)
136136 }
137137
138138
139139
140140 @Callable(R)
141141 func unPause (x) = if ((R.caller != l()))
142142 then throw("Invalid unPause params")
143143 else {
144144 let Y = H(x)
145145 let V = Y._1
146146 let W = Y._2
147147 let X = Y._3
148148 M(x, V, W, false)
149149 }
150150
151151
152152
153153 @Callable(R)
154154 func updateData (Z) = {
155155 let aa = split_4C(Z, "__")
156156 let ab = aa[0]
157157 let ac = valueOrErrorMessage(parseInt(aa[1]), "Invalid data: timestamp")
158158 if ((ac == ac))
159159 then {
160160 let ad = valueOrErrorMessage(parseInt(aa[2]), "Invalid data: price")
161161 if ((ad == ad))
162162 then {
163163 let ae = valueOrErrorMessage(parseInt(aa[3]), "Invalid data: spread")
164164 if ((ae == ae))
165165 then {
166166 let af = if (isDefined(indexOf(aa[4], ":")))
167167 then split_4C(aa[4], ":")
168168 else [aa[4]]
169169 let ag = toBytes(((((((ab + ",") + toString(ac)) + ",") + toString(ad)) + ",") + toString(ae)))
170170 let ah = F()
171171 func ai (aj,ak) = {
172172 let al = split(ak, "=")
173173 let am = al[0]
174174 let an = al[1]
175175 let ao = containsElement(ah, am)
176176 let ap = sigVerify(ag, fromBase58String(an), fromBase58String(am))
177177 let aq = if (if (ao)
178178 then ap
179179 else false)
180180 then (aj + 1)
181181 else aj
182182 aq
183183 }
184184
185185 let ar = {
186186 let as = af
187187 let at = size(as)
188188 let au = 0
189189 func av (aw,ax) = if ((ax >= at))
190190 then aw
191191 else ai(aw, as[ax])
192192
193193 func ay (aw,ax) = if ((ax >= at))
194194 then aw
195195 else throw("List size exceeds 5")
196196
197197 ay(av(av(av(av(av(au, 0), 1), 2), 3), 4), 5)
198198 }
199199 let az = (ar > (size(ah) / 2))
200200 let aA = H(ab)
201201 if ((aA == aA))
202202 then {
203203 let X = aA._3
204204 let W = aA._2
205205 let V = aA._1
206206 let aB = E()
207207 let aC = if ((ac > aB))
208208 then true
209209 else (W > (aB - ac))
210210 let aD = !(X)
211211 let aE = K(ab)
212212 let aF = aE._1
213213 let aG = aE._2
214214 let aH = aE._3
215- let aI = if ((aF == 0))
215+ let aI = aE._4
216+ let aJ = if ((aF == 0))
216217 then 0
217218 else s(o((ad - aF), aF))
218- let aJ = (V > aI)
219+ let aK = (V > aJ)
219220 if (if (if (if (az)
220221 then aC
221222 else false)
222223 then aD
223224 else false)
224- then aJ
225+ then aK
225226 else false)
226227 then if ((aH > ac))
227228 then $Tuple2(nil, $Tuple3(aF, aG, aH))
228- else $Tuple2([IntegerEntry(t(g, ab), ad), IntegerEntry(t(h, ab), ae), IntegerEntry(t(i, ab), ac), IntegerEntry(t(j, ab), height)], $Tuple3(ad, ae, ac))
229+ else if (if (if (if ((ad != aF))
230+ then true
231+ else (ae != aG))
232+ then true
233+ else (ac != aH))
234+ then true
235+ else (aI != height))
236+ then $Tuple2([IntegerEntry(t(g, ab), ad), IntegerEntry(t(h, ab), ae), IntegerEntry(t(i, ab), ac), IntegerEntry(t(j, ab), height)], $Tuple3(ad, ae, ac))
237+ else $Tuple2(nil, $Tuple3(ad, ae, ac))
229238 else {
230- let aK = [if (!(aC))
239+ let aL = [if (!(aC))
231240 then "invalid timestamp"
232241 else "", if (!(aD))
233242 then "stopped"
234- else "", if (!(aJ))
243+ else "", if (!(aK))
235244 then "invalid diff (too large)"
236245 else "", if (!(az))
237246 then "quorum not reached"
238247 else ""]
239- let aL = makeString(aK, ", ")
240- throw(("Invalid updateDate params: " + aL))
248+ let aM = makeString(aL, ", ")
249+ throw(("Invalid updateDate params: " + aM))
241250 }
242251 }
243252 else throw("Strict value is not equal to itself.")
244253 }
245254 else throw("Strict value is not equal to itself.")
246255 }
247256 else throw("Strict value is not equal to itself.")
248257 }
249258 else throw("Strict value is not equal to itself.")
250259 }
251260
252261
253-@Verifier(aM)
254-func aN () = {
255- let aO = getString(this, b)
256- if (isDefined(aO))
262+@Verifier(aN)
263+func aO () = {
264+ let aP = getString(this, b)
265+ if (isDefined(aP))
257266 then {
258- let aP = getString(addressFromStringValue(value(aO)), c)
259- if (isDefined(aP))
260- then valueOrElse(getBoolean(addressFromStringValue(value(aP)), ((("status_" + toString(this)) + "_") + toBase58String(aM.id))), false)
267+ let aQ = getString(addressFromStringValue(value(aP)), c)
268+ if (isDefined(aQ))
269+ then valueOrElse(getBoolean(addressFromStringValue(value(aQ)), ((("status_" + toString(this)) + "_") + toBase58String(aN.id))), false)
261270 else throw("unable to verify: admin not set in coordinator")
262271 }
263- else sigVerify(aM.bodyBytes, aM.proofs[0], aM.senderPublicKey)
272+ else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
264273 }
265274

github/deemru/w8io/169f3d6 
50.64 ms