tx · F8nTKySWeVnKND6Bu5ni6jf9ACcQi1PwhLTi9xUQP2aT

3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo:  -0.14000000 Waves

2022.06.26 11:36 [3178762] smart account 3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo > SELF 0.00000000 Waves

{ "type": 13, "id": "F8nTKySWeVnKND6Bu5ni6jf9ACcQi1PwhLTi9xUQP2aT", "fee": 14000000, "feeAssetId": null, "timestamp": 1656233094711, "version": 1, "sender": "3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo", "senderPublicKey": "BRnVwSVctnV8pge5vRpsJdWnkjWEJspFb6QvrmZvu3Ht", "proofs": [ "5VEVnTUQAHEkUtujYwEamnNyNgCmSMs5j1hcwkLt5vkm5zoXYZtkVDjeyrtZAUXrSESQbVSvtgyuusrkfbBYprxZ", "2UGLHJ2NVijv2Cu9mUcF4EHEXnkeGhnuJx7BsHyXRSKrvWnjnTcCyJTDUqNAgCmCzj4bauJqvAy58HiiHWSNSNgY", "5QL7Mz5y6oSSgtg7MLS6HZU7ZbEc2oZzRejsVPzuLcbmkBbiUbxmph5mg1kk1FSKsVrNVKWMi3SLa4TADiveGeHh", "44JK3pu5Gk69xSeiy3NmFchcVXSCRtwFJDzcwUpwjoupTZgh9NqfgDKZPGLgYiW8Sz93K6MUQ1uUVo3huZ6sxx9b" ], "script": "base64:AAIFAAAAAAAAAD0IAhIOCgwICAgICAgBAQEBAQESBQoDCAgBEgASABIFCgMIAQgSAwoBARIECgIBCBIAEgQKAggBEgQKAggBAAAAfgAAAAALcmV2aXNpb25OdW0CAAAAKGIzZmY3NDcyYTFkNTRhOWYwYzhmNmQ2NjY1YzQ0NThjMzZhMzFlNDgBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACAgAAAA9NYW5kYXRvcnkgdGhpcy4FAAAAA2tleQIAAAAPIGlzIG5vdCBkZWZpbmVkAQAAAAVsY2FsYwAAAAEAAAABbAkABDkAAAABBQAAAAFsAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQAAAAAAAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkCAAAAAAEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5BwEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkAAAAAAAAAAAABAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAHYWRkcmVzcwUAAAADa2V5AgAAAAABAAAAFmdldEJvb2xCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAB2FkZHJlc3MFAAAAA2tleQcBAAAACWFzQW55TGlzdAAAAAEAAAABdgQAAAAHJG1hdGNoMAUAAAABdgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAJTGlzdFtBbnldBAAAAAFsBQAAAAckbWF0Y2gwBQAAAAFsCQAAAgAAAAECAAAAG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEAAAAIYXNTdHJpbmcAAAABAAAAAXYEAAAAByRtYXRjaDAFAAAAAXYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwkAAAIAAAABAgAAABhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBAAAABWFzSW50AAAAAQAAAAF2BAAAAAckbWF0Y2gwBQAAAAF2AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWkFAAAAByRtYXRjaDAFAAAAAWkJAAACAAAAAQIAAAAVZmFpbCB0byBjYXN0IGludG8gSW50AQAAAAlhc1BheW1lbnQAAAABAAAAAXYEAAAAByRtYXRjaDAFAAAAAXYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0F0dGFjaGVkUGF5bWVudAQAAAABcAUAAAAHJG1hdGNoMAUAAAABcAkAAAIAAAABAgAAACFmYWlsIHRvIGNhc3QgaW50byBBdHRhY2hlZFBheW1lbnQBAAAAEmFzU3dhcFBhcmFtc1NUUlVDVAAAAAEAAAABdgQAAAAHJG1hdGNoMAUAAAABdgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZKEludCwgSW50LCBJbnQsIEludCwgSW50KQQAAAAGc3RydWN0BQAAAAckbWF0Y2gwBQAAAAZzdHJ1Y3QJAAACAAAAAQIAAAAVZmFpbCB0byBjYXN0IGludG8gSW50AAAAAANTRVACAAAAAl9fAAAAAAdXQVZFTEVUAAAAAAAF9eEAAAAAAAVQQVVMSQAAAAAAAA9CQAAAAAAIUFJJQ0VMRVQAAAAAAAAPQkAAAAAADkRFRkFVTFRTV0FQRkVFAAAAAAAAAE4gAAAAAAxJZHhOZXRBbW91bnQAAAAAAAAAAAAAAAAADElkeEZlZUFtb3VudAAAAAAAAAAAAQAAAAAOSWR4R3Jvc3NBbW91bnQAAAAAAAAAAAIAAAAAEk5ldXRyaW5vQXNzZXRJZEtleQIAAAARbmV1dHJpbm9fYXNzZXRfaWQAAAAADkJvbmRBc3NldElkS2V5AgAAAA1ib25kX2Fzc2V0X2lkAAAAABJBdWN0aW9uQ29udHJhY3RLZXkCAAAAEGF1Y3Rpb25fY29udHJhY3QAAAAAFk5zYnRTdGFraW5nQ29udHJhY3RLZXkCAAAAE25zYnRTdGFraW5nQ29udHJhY3QAAAAAFkxpcXVpZGF0aW9uQ29udHJhY3RLZXkCAAAAFGxpcXVpZGF0aW9uX2NvbnRyYWN0AAAAAA5SUERDb250cmFjdEtleQIAAAAMcnBkX2NvbnRyYWN0AAAAABFDb250b2xDb250cmFjdEtleQIAAAAQY29udHJvbF9jb250cmFjdAAAAAAPTWF0aENvbnRyYWN0S2V5AgAAAA1tYXRoX2NvbnRyYWN0AAAAABtCYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWxLZXkCAAAAG2JhbGFuY2Vfd2F2ZXNfbG9ja19pbnRlcnZhbAAAAAAeQmFsYW5jZU5ldXRyaW5vTG9ja0ludGVydmFsS2V5AgAAAB5iYWxhbmNlX25ldXRyaW5vX2xvY2tfaW50ZXJ2YWwAAAAAFU1pbldhdmVzU3dhcEFtb3VudEtleQIAAAAVbWluX3dhdmVzX3N3YXBfYW1vdW50AAAAABhNaW5OZXV0cmlub1N3YXBBbW91bnRLZXkCAAAAGG1pbl9uZXV0cmlub19zd2FwX2Ftb3VudAAAAAAbTm9kZU9yYWNsZVByb3ZpZGVyUHViS2V5S2V5AgAAABRub2RlX29yYWNsZV9wcm92aWRlcgAAAAAVTmV1dHJpbm9PdXRGZWVQYXJ0S2V5AgAAABhuZXV0cmlub091dF9zd2FwX2ZlZVBhcnQAAAAAEldhdmVzT3V0RmVlUGFydEtleQIAAAAVd2F2ZXNPdXRfc3dhcF9mZWVQYXJ0AAAAABVGZWVzTWFuYWdlckFkZHJlc3NLZXkCAAAAFGZlZXNfbWFuYWdlcl9hZGRyZXNzAQAAAA9rZXlOb2RlUmVnaXN0cnkAAAABAAAA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bG9ja18FAAAACHN3YXBUeXBlAQAAABR0b3RhbExvY2tlZEJ5VXNlcktFWQAAAAIAAAAIc3dhcFR5cGUAAAAFb3duZXIJAAS5AAAAAgkABEwAAAACAgAAAAxiYWxhbmNlX2xvY2sJAARMAAAAAgUAAAAIc3dhcFR5cGUJAARMAAAAAgUAAAAFb3duZXIFAAAAA25pbAIAAAABXwEAAAAWYmFsYW5jZUxvY2tJbnRlcnZhbEtFWQAAAAEAAAAIc3dhcFR5cGUJAAEsAAAAAgkAASwAAAACAgAAAAhiYWxhbmNlXwUAAAAIc3dhcFR5cGUCAAAADl9sb2NrX2ludGVydmFsAQAAABpub2RlQmFsYW5jZUxvY2tJbnRlcnZhbEtFWQAAAAACAAAAGmJhbGFuY2Vfbm9kZV9sb2NrX2ludGVydmFsAQAAAA1vdXRGZWVQYXJ0S0VZAAAAAQAAAAhzd2FwVHlwZQkAASwAAAACBQAAAAhzd2FwVHlwZQIAAAAQT3V0X3N3YXBfZmVlUGFydAEAAAARc3dhcHNUaW1lZnJhbWVLRVkAAAAAAgAAAA9zd2Fwc190aW1lZnJhbWUBAAAAEW1pblN3YXBBbW91bnRSRUFEAAAAAQAAAAhzd2FwVHlwZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAQbWluU3dhcEFtb3VudEtFWQAAAAEFAAAACHN3YXBUeXBlAAAAAAAAAAAAAQAAABJzd2Fwc1RpbWVmcmFtZVJFQUQAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABFzd2Fwc1RpbWVmcmFtZUtFWQAAAAAAAAAAAAAABaABAAAAD3RvdGFsTG9ja2VkUkVBRAAAAAEAAAAIc3dhcFR5cGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAADnRvdGFsTG9ja2VkS0VZAAAAAQUAAAAIc3dhcFR5cGUAAAAAAAAAAAABAAAAFXRvdGFsTG9ja2VkQnlVc2VyUkVBRAAAAAIAAAAIc3dhcFR5cGUAAAAFb3duZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFHRvdGFsTG9ja2VkQnlVc2VyS0VZAAAAAgUAAAAIc3dhcFR5cGUFAAAABW93bmVyAAAAAAAAAAAAAQAAABdiYWxhbmNlTG9ja0ludGVydmFsUkVBRAAAAAEAAAAIc3dhcFR5cGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFmJhbGFuY2VMb2NrSW50ZXJ2YWxLRVkAAAABBQAAAAhzd2FwVHlwZQAAAAAAAAAFoAEAAAAbbm9kZUJhbGFuY2VMb2NrSW50ZXJ2YWxSRUFEAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAabm9kZUJhbGFuY2VMb2NrSW50ZXJ2YWxLRVkAAAAAAAAAAAAAAAABAQAAABhrZXlTd2FwVXNlclNwZW50SW5QZXJpb2QAAAABAAAAC3VzZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAABVzd2FwVXNlclNwZW50SW5QZXJpb2QJAARMAAAAAgUAAAALdXNlckFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAABVrZXlVc2VyTGFzdFN3YXBIZWlnaHQAAAABAAAAC3VzZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAABJ1c2VyTGFzdFN3YXBIZWlnaHQJAARMAAAAAgUAAAALdXNlckFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAABVmZWVNYW5hZ2VyQWRkcmVzc1JFQUQAAAAACQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAFUZlZXNNYW5hZ2VyQWRkcmVzc0tleQkAASwAAAACBQAAABVGZWVzTWFuYWdlckFkZHJlc3NLZXkCAAAAESBpcyBub3Qgc3BlY2lmaWVkCQABLAAAAAIFAAAAFUZlZXNNYW5hZ2VyQWRkcmVzc0tleQIAAAAXIGludmFsaWQgYWRkcmVzcyBmb3JtYXQBAAAAFmNvbnZlcnROZXV0cmlub1RvV2F2ZXMAAAACAAAABmFtb3VudAAAAAVwcmljZQkAAGsAAAADCQAAawAAAAMFAAAABmFtb3VudAUAAAAIUFJJQ0VMRVQFAAAABXByaWNlBQAAAAdXQVZFTEVUBQAAAAVQQVVMSQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50BQAAAAVwcmljZQUAAAAIUFJJQ0VMRVQFAAAABVBBVUxJBQAAAAdXQVZFTEVUAQAAABJjb252ZXJ0V2F2ZXNUb0JvbmQAAAACAAAABmFtb3VudAAAAAVwcmljZQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAZhbW91bnQFAAAABXByaWNlAQAAABZjb252ZXJ0SnNvbkFycmF5VG9MaXN0AAAAAQAAAAlqc29uQXJyYXkJAAS1AAAAAgUAAAAJanNvbkFycmF5AgAAAAEsAQAAABFtaW5Td2FwQW1vdW50RkFJTAAAAAIAAAAIc3dhcFR5cGUAAAANbWluU3dhcEFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABhUaGUgc3BlY2lmaWVkIGFtb3VudCBpbiAFAAAACHN3YXBUeXBlAgAAACsgc3dhcCBpcyBsZXNzIHRoYW4gdGhlIHJlcXVpcmVkIG1pbmltdW0gb2YgCQABpAAAAAEFAAAADW1pblN3YXBBbW91bnQBAAAAFWVtZXJnZW5jeVNodXRkb3duRkFJTAAAAAAJAAACAAAAAQIAAABaY29udHJhY3QgaXMgYmxvY2tlZCBieSBFTUVSR0VOQ1kgU0hVVERPV04gYWN0aW9ucyB1bnRpbGwgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzAQAAAA5wcmljZUluZGV4RkFJTAAAAAUAAAAFaW5kZXgAAAAKcHJpY2VJbmRleAAAAAtpbmRleEhlaWdodAAAAAx1bmxvY2tIZWlnaHQAAAAPcHJldkluZGV4SGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAI2ludmFsaWQgcHJpY2UgaGlzdG9yeSBpbmRleDogaW5kZXg9CQABpAAAAAEFAAAABWluZGV4AgAAAAwgcHJpY2VJbmRleD0JAAGkAAAAAQUAAAAKcHJpY2VJbmRleAIAAAANIGluZGV4SGVpZ2h0PQkAAaQAAAABBQAAAAtpbmRleEhlaWdodAIAAAAOIHVubG9ja0hlaWdodD0JAAGkAAAAAQUAAAAMdW5sb2NrSGVpZ2h0AgAAABEgcHJldkluZGV4SGVpZ2h0PQkAAaQAAAABBQAAAA9wcmV2SW5kZXhIZWlnaHQAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFkxpcXVpZGF0aW9uQ29udHJhY3RLZXkAAAAAFm5zYnRTdGFraW5nQ29udHJhY3RTdHIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFk5zYnRTdGFraW5nQ29udHJhY3RLZXkAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABJOZXV0cmlub0Fzc2V0SWRLZXkAAAAAD2F1Y3Rpb25Db250cmFjdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAASQXVjdGlvbkNvbnRyYWN0S2V5AAAAAAtycGRDb250cmFjdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAOUlBEQ29udHJhY3RLZXkAAAAAEmNvbnRyb2xDb250cmFjdFN0cgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAARQ29udG9sQ29udHJhY3RLZXkAAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAASY29udHJvbENvbnRyYWN0U3RyAAAAABNtYXRoQ29udHJhY3RBZGRyZXNzCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA9NYXRoQ29udHJhY3RLZXkAAAAACnByaWNlSW5kZXgJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABJjb250cm9sQ29udHJhY3RTdHIFAAAADVByaWNlSW5kZXhLZXkAAAAACWlzQmxvY2tlZAkBAAAAFmdldEJvb2xCeUFkZHJlc3NBbmRLZXkAAAACBQAAABJjb250cm9sQ29udHJhY3RTdHIFAAAADElzQmxvY2tlZEtleQAAAAAYbm9kZU9yYWNsZVByb3ZpZGVyUHViS2V5CQACWQAAAAEJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAG05vZGVPcmFjbGVQcm92aWRlclB1YktleUtleQAAAAALYm9uZEFzc2V0SWQJAAJZAAAAAQIAAAAsNm5TcFZ5Tkg3eU02OWVnNDQ2d3JRUjk0aXBiYmNtWk1VMUVOUHdhbkM5N2cAAAAAFWRlcHJlY2F0ZWRCb25kQXNzZXRJZAkAAlkAAAABAgAAACw5NzVha1pCZm5NajUxM1U3TVphSEt6UXJtc0V4NWFFM3dkV0tUckhCaGJqRgAAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAEdGhpcwAAAAAMbWF0aENvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABNtYXRoQ29udHJhY3RBZGRyZXNzAAAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZuc2J0U3Rha2luZ0NvbnRyYWN0U3RyAAAAAAxjdXJyZW50UHJpY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABJjb250cm9sQ29udHJhY3RTdHIFAAAACFByaWNlS2V5AQAAABtjaGVja0lzVmFsaWRNaW5TcG9uc29yZWRGZWUAAAABAAAAAnR4BAAAAA5NSU5UUkFOU0ZFUkZFRQAAAAAAAAGGoAQAAAAWU3BvbnNvcmVkRmVlVXBwZXJCb3VuZAAAAAAAAAAD6AQAAAAPcmVhbE5ldXRyaW5vRmVlCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAADk1JTlRSQU5TRkVSRkVFBQAAAAxjdXJyZW50UHJpY2UEAAAADm1pbk5ldXRyaW5vRmVlCQAAaAAAAAIFAAAAD3JlYWxOZXV0cmlub0ZlZQAAAAAAAAAAAgQAAAAObWF4TmV1dHJpbm9GZWUJAABrAAAAAwUAAAAPcmVhbE5ldXRyaW5vRmVlBQAAABZTcG9uc29yZWRGZWVVcHBlckJvdW5kAAAAAAAAAABkBAAAAAhpbnB1dEZlZQkBAAAABXZhbHVlAAAAAQgFAAAAAnR4AAAAFG1pblNwb25zb3JlZEFzc2V0RmVlAwMJAABnAAAAAgUAAAAIaW5wdXRGZWUFAAAADm1pbk5ldXRyaW5vRmVlCQAAZwAAAAIFAAAADm1heE5ldXRyaW5vRmVlBQAAAAhpbnB1dEZlZQcJAAAAAAAAAggFAAAAAnR4AAAAB2Fzc2V0SWQFAAAAD25ldXRyaW5vQXNzZXRJZAcBAAAAD2dldFByaWNlSGlzdG9yeQAAAAEAAAAFYmxvY2sJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABJjb250cm9sQ29udHJhY3RTdHIJAQAAABJnZXRQcmljZUhpc3RvcnlLZXkAAAABBQAAAAVibG9jawEAAAAVZ2V0SGVpZ2h0UHJpY2VCeUluZGV4AAAAAQAAAAVpbmRleAkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAEmNvbnRyb2xDb250cmFjdFN0cgkBAAAAGGdldEhlaWdodFByaWNlQnlJbmRleEtleQAAAAEFAAAABWluZGV4AQAAABZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AAAAAQAAAAt1c2VyQWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACAgAAAAtwYXJhbUJ5VXNlcgkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwkABEwAAAACAgAAAAZhbW91bnQFAAAAA25pbAUAAAADU0VQAAAAAAxzSWR4U3dhcFR5cGUAAAAAAAAAAAEAAAAACnNJZHhTdGF0dXMAAAAAAAAAAAIAAAAADHNJZHhJbkFtb3VudAAAAAAAAAAAAwAAAAAJc0lkeFByaWNlAAAAAAAAAAAEAAAAABBzSWR4T3V0TmV0QW1vdW50AAAAAAAAAAAFAAAAABBzSWR4T3V0RmVlQW1vdW50AAAAAAAAAAAGAAAAAA9zSWR4U3RhcnRIZWlnaHQAAAAAAAAAAAcAAAAAEnNJZHhTdGFydFRpbWVzdGFtcAAAAAAAAAAACAAAAAANc0lkeEVuZEhlaWdodAAAAAAAAAAACQAAAAAQc0lkeEVuZFRpbWVzdGFtcAAAAAAAAAAACgAAAAAUc0lkeFNlbGZVbmxvY2tIZWlnaHQAAAAAAAAAAAsAAAAAFHNJZHhSYW5kVW5sb2NrSGVpZ2h0AAAAAAAAAAAMAAAAAAlzSWR4SW5kZXgAAAAAAAAAAA0AAAAAEHNJZHhXaXRoZHJhd1R4SWQAAAAAAAAAAA4AAAAAC3NJZHhNaW5SYW5kAAAAAAAAAAAPAAAAAAtzSWR4TWF4UmFuZAAAAAAAAAAAEAEAAAAHc3dhcEtFWQAAAAIAAAALdXNlckFkZHJlc3MAAAAEdHhJZAkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgUAAAALdXNlckFkZHJlc3MJAARMAAAAAgUAAAAEdHhJZAUAAAADbmlsBQAAAANTRVABAAAAC3N0clN3YXBEQVRBAAAAEAAAAAhzd2FwVHlwZQAAAAZzdGF0dXMAAAAIaW5BbW91bnQAAAAFcHJpY2UAAAAMb3V0TmV0QW1vdW50AAAADG91dEZlZUFtb3VudAAAAAtzdGFydEhlaWdodAAAAA5zdGFydFRpbWVzdGFtcAAAAAllbmRIZWlnaHQAAAAMZW5kVGltZXN0YW1wAAAAEHNlbGZVbmxvY2tIZWlnaHQAAAAQcmFuZFVubG9ja0hlaWdodAAAAAVpbmRleAAAAAx3aXRoZHJhd1R4SWQAAAAHcmFuZE1pbgAAAAdyYW5kTWF4CQAEuQAAAAIJAARMAAAAAgIAAAAcJXMlcyVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlcwkABEwAAAACBQAAAAhzd2FwVHlwZQkABEwAAAACBQAAAAZzdGF0dXMJAARMAAAAAgUAAAAIaW5BbW91bnQJAARMAAAAAgUAAAAFcHJpY2UJAARMAAAAAgUAAAAMb3V0TmV0QW1vdW50CQAETAAAAAIFAAAADG91dEZlZUFtb3VudAkABEwAAAACBQAAAAtzdGFydEhlaWdodAkABEwAAAACBQAAAA5zdGFydFRpbWVzdGFtcAkABEwAAAACBQAAAAllbmRIZWlnaHQJAARMAAAAAgUAAAAMZW5kVGltZXN0YW1wCQAETAAAAAIFAAAAEHNlbGZVbmxvY2tIZWlnaHQJAARMAAAAAgUAAAAQcmFuZFVubG9ja0hlaWdodAkABEwAAAACBQAAAAVpbmRleAkABEwAAAACBQAAAAx3aXRoZHJhd1R4SWQJAARMAAAAAgUAAAAHcmFuZE1pbgkABEwAAAACBQAAAAdyYW5kTWF4BQAAAANuaWwFAAAAA1NFUAEAAAAPcGVuZGluZ1N3YXBEQVRBAAAAAwAAAAhzd2FwVHlwZQAAAA1pbkFzc2V0QW1vdW50AAAAEHNlbGZVbmxvY2tIZWlnaHQJAQAAAAtzdHJTd2FwREFUQQAAABAFAAAACHN3YXBUeXBlAgAAAAdQRU5ESU5HCQABpAAAAAEFAAAADWluQXNzZXRBbW91bnQCAAAAATACAAAAATACAAAAATAJAAGkAAAAAQUAAAAGaGVpZ2h0CQABpAAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAgAAAAEwAgAAAAEwCQABpAAAAAEFAAAAEHNlbGZVbmxvY2tIZWlnaHQCAAAAATACAAAAATACAAAABE5VTEwCAAAAATACAAAAATABAAAADmZpbmlzaFN3YXBEQVRBAAAABwAAAAlkYXRhQXJyYXkAAAAFcHJpY2UAAAAMb3V0TmV0QW1vdW50AAAADG91dEZlZUFtb3VudAAAABByYW5kVW5sb2NrSGVpZ2h0AAAABWluZGV4AAAADHdpdGhkcmF3VHhJZAkBAAAAC3N0clN3YXBEQVRBAAAAEAkAAZEAAAACBQAAAAlkYXRhQXJyYXkFAAAADHNJZHhTd2FwVHlwZQIAAAAIRklOSVNIRUQJAAGRAAAAAgUAAAAJZGF0YUFycmF5BQAAAAxzSWR4SW5BbW91bnQJAAGkAAAAAQUAAAAFcHJpY2UJAAGkAAAAAQUAAAAMb3V0TmV0QW1vdW50CQABpAAAAAEFAAAADG91dEZlZUFtb3VudAkAAZEAAAACBQAAAAlkYXRhQXJyYXkFAAAAD3NJZHhTdGFydEhlaWdodAkAAZEAAAACBQAAAAlkYXRhQXJyYXkFAAAAEnNJZHhTdGFydFRpbWVzdGFtcAkAAaQAAAABBQAAAAZoZWlnaHQJAAGkAAAAAQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAGRAAAAAgUAAAAJZGF0YUFycmF5BQAAABRzSWR4U2VsZlVubG9ja0hlaWdodAkAAaQAAAABBQAAABByYW5kVW5sb2NrSGVpZ2h0CQABpAAAAAEFAAAABWluZGV4BQAAAAx3aXRoZHJhd1R4SWQJAAGRAAAA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CQEAAAALTGVhc2VDYW5jZWwAAAABCQEAAAAFdmFsdWUAAAABBQAAAAhvbGRMZWFzZQUAAAADbmlsBQAAAANuaWwEAAAADmxlYXNlQW1vdW50S2V5CQEAAAARZ2V0TGVhc2VBbW91bnRLZXkAAAABBQAAAAlub2RlSW5kZXgEAAAABWxlYXNlCQAERAAAAAIJAQAAABxnZXRTdGFraW5nTm9kZUFkZHJlc3NCeUluZGV4AAAAAQUAAAAJbm9kZUluZGV4BQAAAA5uZXdMZWFzZUFtb3VudAkABE4AAAACBQAAAA51bmxlYXNlT3JFbXB0eQkABEwAAAACBQAAAAVsZWFzZQkABEwAAAACCQEAAAALQmluYXJ5RW50cnkAAAACBQAAAApsZWFzZUlkS2V5CQEAAAAFbGNhbGMAAAABBQAAAAVsZWFzZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldExlYXNlQW1vdW50S2V5AAAAAQUAAAAJbm9kZUluZGV4BQAAAA5uZXdMZWFzZUFtb3VudAUAAAADbmlsBQAAAANuaWwBAAAADHJlYWROb2RlSW5mbwAAAAEAAAAHbm9kZUlkeAQAAAALbm9kZUFkZHJlc3MJAQAAABxnZXRTdGFraW5nTm9kZUFkZHJlc3NCeUluZGV4AAAAAQUAAAAHbm9kZUlkeAQAAAAMbGVhc2VkQW10S0VZCQEAAAARZ2V0TGVhc2VBbW91bnRLZXkAAAABBQAAAAdub2RlSWR4BAAAAAlsZWFzZWRBbXQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAADGxlYXNlZEFtdEtFWQQAAAAKbGVhc2VJZEtFWQkBAAAADWdldExlYXNlSWRLZXkAAAABBQAAAAdub2RlSWR4BAAAAAdsZWFzZUlkCQEAAAAFdmFsdWUAAAABCQAEHAAAAAIFAAAABHRoaXMFAAAACmxlYXNlSWRLRVkJAAUXAAAABQUAAAALbm9kZUFkZHJlc3MFAAAADGxlYXNlZEFtdEtFWQUAAAAJbGVhc2VkQW10BQAAAApsZWFzZUlkS0VZBQAAAAdsZWFzZUlkAQAAAApjb21tb25Td2FwAAAABQAAAAhzd2FwVHlwZQAAAAlwbXRBbW91bnQAAAAOdXNlckFkZHJlc3NTdHIAAAAGdHhJZDU4AAAAG3N3YXBQYXJhbXNCeVVzZXJTWVNSRUFET05MWQQAAAANJHQwMTY2NDkxNjcyOQUAAAAbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZBAAAAAxzd2FwTGltaXRNYXgIBQAAAA0kdDAxNjY0OTE2NzI5AAAAAl8xBAAAAA5zd2FwTGltaXRTcGVudAgFAAAADSR0MDE2NjQ5MTY3MjkAAAACXzIEAAAADmJsY2tzMkxtdFJlc2V0CAUAAAANJHQwMTY2NDkxNjcyOQAAAAJfMwQAAAANbWluU3dhcEFtb3VudAkBAAAAEW1pblN3YXBBbW91bnRSRUFEAAAAAQUAAAAIc3dhcFR5cGUEAAAAC3RvdGFsTG9ja2VkCQEAAAAPdG90YWxMb2NrZWRSRUFEAAAAAQUAAAAIc3dhcFR5cGUEAAAAEXRvdGFsTG9ja2VkQnlVc2VyCQEAAAAVdG90YWxMb2NrZWRCeVVzZXJSRUFEAAAAAgUAAAAIc3dhcFR5cGUFAAAADnVzZXJBZGRyZXNzU3RyBAAAAAtub2RlQWRkcmVzcwkBAAAAFWdldFN0YWtpbmdOb2RlQnlJbmRleAAAAAEAAAAAAAAAAAAEAAAADHByaWNlQnlJbmRleAkBAAAAD2dldFByaWNlSGlzdG9yeQAAAAEJAQAAABVnZXRIZWlnaHRQcmljZUJ5SW5kZXgAAAABBQAAAApwcmljZUluZGV4BAAAAAxpc1N3YXBCeU5vZGUJAAAAAAAAAgUAAAALbm9kZUFkZHJlc3MFAAAADnVzZXJBZGRyZXNzU3RyBAAAABZiYWxhbmNlTG9ja01heEludGVydmFsAwUAAAAMaXNTd2FwQnlOb2RlCQEAAAAbbm9kZUJhbGFuY2VMb2NrSW50ZXJ2YWxSRUFEAAAAAAkBAAAAF2JhbGFuY2VMb2NrSW50ZXJ2YWxSRUFEAAAAAQUAAAAIc3dhcFR5cGUEAAAAEHNlbGZVbmxvY2tIZWlnaHQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABZiYWxhbmNlTG9ja01heEludGVydmFsBAAAAA5zd2FwVXNkblZvbHVtZQMJAAAAAAAAAgUAAAAIc3dhcFR5cGUCAAAACG5ldXRyaW5vBQAAAAlwbXRBbW91bnQJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAJcG10QW1vdW50BQAAAAxwcmljZUJ5SW5kZXgDCQAAZgAAAAIFAAAADW1pblN3YXBBbW91bnQFAAAACXBtdEFtb3VudAkBAAAAEW1pblN3YXBBbW91bnRGQUlMAAAAAgUAAAAIc3dhcFR5cGUFAAAADW1pblN3YXBBbW91bnQDAwkBAAAAASEAAAABBQAAAAxpc1N3YXBCeU5vZGUJAABmAAAAAgUAAAAOc3dhcExpbWl0U3BlbnQAAAAAAAAAAAAHCQAAAgAAAAEJAAEsAAAAAgIAAAA6WW91IGhhdmUgZXhjZWVkZWQgc3dhcCBsaW1pdCEgTmV4dCBhbGxvd2VkIHN3YXAgaGVpZ2h0IGlzIAkAAaQAAAABCQAAZAAAAAIFAAAABmhlaWdodAUAAAAOYmxja3MyTG10UmVzZXQDAwkBAAAAASEAAAABBQAAAAxpc1N3YXBCeU5vZGUJAABmAAAAAgUAAAAOc3dhcFVzZG5Wb2x1bWUFAAAADHN3YXBMaW1pdE1heAcJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAuWW91IGhhdmUgZXhjZWVkZWQgeW91ciBzd2FwIGxpbWl0ISBSZXF1ZXN0ZWQ6IAkAAaQAAAABBQAAAA5zd2FwVXNkblZvbHVtZQIAAAANLCBhdmFpbGFibGU6IAkAAaQAAAABBQAAAAxzd2FwTGltaXRNYXgDBQAAAAlpc0Jsb2NrZWQJAQAAABVlbWVyZ2VuY3lTaHV0ZG93bkZBSUwAAAAABAAAAAlsZWFzZVBhcnQDCQAAAAAAAAIFAAAACHN3YXBUeXBlAgAAAAV3YXZlcwkBAAAAFnByZXBhcmVVbmxlYXNlQW5kTGVhc2UAAAABAAAAAAAAAAAABQAAAANuaWwJAAUUAAAAAgkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAYa2V5U3dhcFVzZXJTcGVudEluUGVyaW9kAAAAAQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADnN3YXBVc2RuVm9sdW1lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAVa2V5VXNlckxhc3RTd2FwSGVpZ2h0AAAAAQUAAAAOdXNlckFkZHJlc3NTdHIFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFHRvdGFsTG9ja2VkQnlVc2VyS0VZAAAAAgUAAAAIc3dhcFR5cGUFAAAADnVzZXJBZGRyZXNzU3RyCQAAZAAAAAIFAAAAEXRvdGFsTG9ja2VkQnlVc2VyBQAAAAlwbXRBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABhnZXRCYWxhbmNlVW5sb2NrQmxvY2tLZXkAAAABBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAQc2VsZlVubG9ja0hlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADnRvdGFsTG9ja2VkS0VZAAAAAQUAAAAIc3dhcFR5cGUJAABkAAAAAgUAAAALdG90YWxMb2NrZWQFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAHc3dhcEtFWQAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAZ0eElkNTgJAQAAAA9wZW5kaW5nU3dhcERBVEEAAAADBQAAAAhzd2FwVHlwZQUAAAAJcG10QW1vdW50BQAAABBzZWxmVW5sb2NrSGVpZ2h0BQAAAANuaWwFAAAACWxlYXNlUGFydAUAAAAEdW5pdAEAAAAOY29tbW9uV2l0aGRyYXcAAAAEAAAAB2FjY291bnQAAAAFaW5kZXgAAAAIc3dhcFR4SWQAAAAMd2l0aGRyYXdUeElkBAAAAAt1c2VyQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAHYWNjb3VudAQAAAARZmVlTWFuYWdlckFkZHJlc3MJAQAAABVmZWVNYW5hZ2VyQWRkcmVzc1JFQUQAAAAABAAAAAlkYXRhQXJyYXkJAQAAABJzd2FwRGF0YUZhaWxPclJFQUQAAAACBQAAAAdhY2NvdW50BQAAAAhzd2FwVHhJZAQAAAAQc2VsZlVubG9ja0hlaWdodAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAAUc0lkeFNlbGZVbmxvY2tIZWlnaHQEAAAACHN3YXBUeXBlCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAAMc0lkeFN3YXBUeXBlBAAAAAhpbkFtb3VudAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAAMc0lkeEluQW1vdW50BAAAAApzd2FwU3RhdHVzCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAAKc0lkeFN0YXR1cwQAAAALc3RhcnRIZWlnaHQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAlkYXRhQXJyYXkFAAAAD3NJZHhTdGFydEhlaWdodAQAAAAKb3V0RmVlUGFydAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAANb3V0RmVlUGFydEtFWQAAAAEFAAAACHN3YXBUeXBlBQAAAA5ERUZBVUxUU1dBUEZFRQQAAAALdG90YWxMb2NrZWQJAQAAAA90b3RhbExvY2tlZFJFQUQAAAABBQAAAAhzd2FwVHlwZQQAAAARdG90YWxMb2NrZWRCeVVzZXIJAQAAABV0b3RhbExvY2tlZEJ5VXNlclJFQUQAAAACBQAAAAhzd2FwVHlwZQUAAAAHYWNjb3VudAQAAAAMdW5sb2NrSGVpZ2h0BQAAABBzZWxmVW5sb2NrSGVpZ2h0BAAAAAtpbmRleEhlaWdodAkBAAAAFWdldEhlaWdodFByaWNlQnlJbmRleAAAAAEFAAAABWluZGV4BAAAAA9wcmV2SW5kZXhIZWlnaHQJAQAAABVnZXRIZWlnaHRQcmljZUJ5SW5kZXgAAAABCQAAZQAAAAIFAAAABWluZGV4AAAAAAAAAAABBAAAAAxwcmljZUJ5SW5kZXgJAQAAAA9nZXRQcmljZUhpc3RvcnkAAAABBQAAAAtpbmRleEhlaWdodAQAAAATb3V0QW1vdW50R3Jvc3NUdXBsZQMJAAAAAAAAAgUAAAAIc3dhcFR5cGUCAAAABXdhdmVzCQAFFAAAAAIJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAIaW5BbW91bnQFAAAADHByaWNlQnlJbmRleAUAAAAPbmV1dHJpbm9Bc3NldElkAwkAAAAAAAACBQAAAAhzd2FwVHlwZQIAAAAIbmV1dHJpbm8JAAUUAAAAAgkBAAAAFmNvbnZlcnROZXV0cmlub1RvV2F2ZXMAAAACBQAAAAhpbkFtb3VudAUAAAAMcHJpY2VCeUluZGV4BQAAAAR1bml0CQAAAgAAAAEJAAEsAAAAAgIAAAAWVW5zdXBwb3J0ZWQgc3dhcCB0eXBlIAUAAAAIc3dhcFR5cGUEAAAADHBheW91dHNBcnJheQkBAAAACWFwcGx5RmVlcwAAAAIIBQAAABNvdXRBbW91bnRHcm9zc1R1cGxlAAAAAl8xBQAAAApvdXRGZWVQYXJ0BAAAAAxvdXROZXRBbW91bnQJAAGRAAAAAgUAAAAMcGF5b3V0c0FycmF5BQAAAAxJZHhOZXRBbW91bnQEAAAADG91dEZlZUFtb3VudAkAAZEAAAACBQAAAAxwYXlvdXRzQXJyYXkFAAAADElkeEZlZUFtb3VudAMFAAAACWlzQmxvY2tlZAkBAAAAFWVtZXJnZW5jeVNodXRkb3duRkFJTAAAAAADCQEAAAACIT0AAAACBQAAAApzd2FwU3RhdHVzAgAAAAdQRU5ESU5HCQAAAgAAAAECAAAAH3N3YXAgaGFzIGJlZW4gYWxyZWFkeSBwcm9jZXNzZWQDCQAAZgAAAAIFAAAADHVubG9ja0hlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABFwbGVhc2Ugd2FpdCBmb3I6IAkAAaQAAAABBQAAAAx1bmxvY2tIZWlnaHQCAAAAHyBibG9jayBoZWlnaHQgdG8gd2l0aGRyYXcgZnVuZHMDAwMJAABmAAAAAgUAAAAFaW5kZXgFAAAACnByaWNlSW5kZXgGCQAAZgAAAAIFAAAADHVubG9ja0hlaWdodAUAAAALaW5kZXhIZWlnaHQGAwkBAAAAAiE9AAAAAgUAAAAPcHJldkluZGV4SGVpZ2h0AAAAAAAAAAAACQAAZwAAAAIFAAAAD3ByZXZJbmRleEhlaWdodAUAAAAMdW5sb2NrSGVpZ2h0BwkBAAAADnByaWNlSW5kZXhGQUlMAAAABQUAAAAFaW5kZXgFAAAACnByaWNlSW5kZXgFAAAAC2luZGV4SGVpZ2h0BQAAAAx1bmxvY2tIZWlnaHQFAAAAD3ByZXZJbmRleEhlaWdodAMJAABnAAAAAgAAAAAAAAAAAAkAAZEAAAACBQAAAAxwYXlvdXRzQXJyYXkFAAAADklkeEdyb3NzQW1vdW50CQAAAgAAAAECAAAAE2JhbGFuY2UgZXF1YWxzIHplcm8DAwkAAGYAAAACAAAAAAAAAAAABQAAAApvdXRGZWVQYXJ0BgkAAGcAAAACBQAAAApvdXRGZWVQYXJ0BQAAAAVQQVVMSQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB5pbnZhbGlkIG91dEZlZVBhcnQgY29uZmlnIGZvciAFAAAACHN3YXBUeXBlAgAAABIgc3dhcDogb3V0RmVlUGFydD0JAAGkAAAAAQUAAAAKb3V0RmVlUGFydAQAAAANdW5sZWFzZUFtb3VudAMDCQAAAAAAAAIFAAAACHN3YXBUeXBlAgAAAAhuZXV0cmlubwkAAGYAAAACCAUAAAATb3V0QW1vdW50R3Jvc3NUdXBsZQAAAAJfMQAAAAAAAAAAAAcIBQAAABNvdXRBbW91bnRHcm9zc1R1cGxlAAAAAl8xAAAAAAAAAAAABAAAAAVzdGF0ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFHRvdGFsTG9ja2VkQnlVc2VyS0VZAAAAAgUAAAAIc3dhcFR5cGUFAAAAB2FjY291bnQJAABlAAAAAgUAAAARdG90YWxMb2NrZWRCeVVzZXIFAAAACGluQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAOdG90YWxMb2NrZWRLRVkAAAABBQAAAAhzd2FwVHlwZQkAAGUAAAACBQAAAAt0b3RhbExvY2tlZAUAAAAIaW5BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAADG91dE5ldEFtb3VudAgFAAAAE291dEFtb3VudEdyb3NzVHVwbGUAAAACXzIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAB3N3YXBLRVkAAAACBQAAAAdhY2NvdW50BQAAAAhzd2FwVHhJZAkBAAAADmZpbmlzaFN3YXBEQVRBAAAABwUAAAAJZGF0YUFycmF5BQAAAAxwcmljZUJ5SW5kZXgFAAAADG91dE5ldEFtb3VudAUAAAAMb3V0RmVlQW1vdW50BQAAAAx1bmxvY2tIZWlnaHQFAAAABWluZGV4BQAAAAx3aXRoZHJhd1R4SWQFAAAAA25pbAkABRUAAAADBQAAAAVzdGF0ZQkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIIBQAAABNvdXRBbW91bnRHcm9zc1R1cGxlAAAAAl8yBQAAAAxvdXRGZWVBbW91bnQFAAAADXVubGVhc2VBbW91bnQAAAAKAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAADAAAABJuZXV0cmlub0Fzc2V0SWRQcm0AAAAOYm9uZEFzc2V0SWRQcm0AAAASYXVjdGlvbkNvbnRyYWN0UHJtAAAAFmxpcXVpZGF0aW9uQ29udHJhY3RQcm0AAAAOcnBkQ29udHJhY3RQcm0AAAAbbm9kZU9yYWNsZVByb3ZpZGVyUHViS2V5UHJtAAAAG2JhbGFuY2VXYXZlc0xvY2tJbnRlcnZhbFBybQAAAB5iYWxhbmNlTmV1dHJpbm9Mb2NrSW50ZXJ2YWxQcm0AAAAVbWluV2F2ZXNTd2FwQW1vdW50UHJtAAAAGG1pbk5ldXRyaW5vU3dhcEFtb3VudFBybQAAABVuZXV0cmlub091dEZlZVBhcnRQcm0AAAASd2F2ZXNPdXRGZWVQYXJ0UHJtBAAAAAtjaGVja0NhbGxlcgkBAAAACHRoaXNPbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAABNubyBwYXltZW50cyBhbGxvd2VkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEk5ldXRyaW5vQXNzZXRJZEtleQUAAAASbmV1dHJpbm9Bc3NldElkUHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADkJvbmRBc3NldElkS2V5BQAAAA5ib25kQXNzZXRJZFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJBdWN0aW9uQ29udHJhY3RLZXkFAAAAEmF1Y3Rpb25Db250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABZMaXF1aWRhdGlvbkNvbnRyYWN0S2V5BQAAABZsaXF1aWRhdGlvbkNvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADlJQRENvbnRyYWN0S2V5BQAAAA5ycGRDb250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABtOb2RlT3JhY2xlUHJvdmlkZXJQdWJLZXlLZXkFAAAAG25vZGVPcmFjbGVQcm92aWRlclB1YktleVBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAbQmFsYW5jZVdhdmVzTG9ja0ludGVydmFsS2V5BQAAABtiYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWxQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAHkJhbGFuY2VOZXV0cmlub0xvY2tJbnRlcnZhbEtleQUAAAAeYmFsYW5jZU5ldXRyaW5vTG9ja0ludGVydmFsUHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVNaW5XYXZlc1N3YXBBbW91bnRLZXkFAAAAFW1pbldhdmVzU3dhcEFtb3VudFBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAYTWluTmV1dHJpbm9Td2FwQW1vdW50S2V5BQAAABhtaW5OZXV0cmlub1N3YXBBbW91bnRQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFU5ldXRyaW5vT3V0RmVlUGFydEtleQUAAAAVbmV1dHJpbm9PdXRGZWVQYXJ0UHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJXYXZlc091dEZlZVBhcnRLZXkFAAAAEndhdmVzT3V0RmVlUGFydFBybQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA1jb25zdHJ1Y3RvclYyAAAAAwAAAAxtYXRoQ29udHJhY3QAAAATbnNidFN0YWtpbmdDb250cmFjdAAAABRzd2Fwc1RpbWVmcmFtZUJsb2NrcwQAAAALY2hlY2tDYWxsZXIJAQAAAAh0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RWxzZQAAAAIJAAQiAAAAAQIAAAAcJXMlc19fY2ZnX19sZWFzaW5nTWFuYWdlclB1YgIAAAAsN0FVTVg1NHVrWU1ZdlBtbWE3eW9GZjVOalpoczRCdTVuejNFejlFVjhzdXIEAAAABm1uZ1B1YgkAAlkAAAABBQAAAAdtbmdQdWJTBAAAAA5ub2RlUmVnQWRkclN0cgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABCIAAAABAgAAAB8lcyVzX19jZmdfX25vZGVzUmVnaXN0cnlBZGRyZXNzAgAAACMzUDl2S3FRS2pVZG1wWEFmaVdhdThrclJFWUFZMVhyNjlwRQQAAAALbm9kZVJlZ0FkZHIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADm5vZGVSZWdBZGRyU3RyBAAAABFsR3JvdXBOb2RlTGlzdEtFWQkBAAAAGGdldExlYXNlR3JvdXBOb2RlTGlzdEtleQAAAAEFAAAACGdyb3VwTnVtBAAAAApsR3JOb2RlT3B0CQAEHQAAAAIFAAAABHRoaXMFAAAAEWxHcm91cE5vZGVMaXN0S0VZAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAACmxHck5vZGVPcHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABmdyb3VwIAkAAaQAAAABBQAAAAhncm91cE51bQIAAAAUIGFscmVhZHkgaW5pdGlhbGl6ZWQEAAAABW5MaXN0CQAEtQAAAAIFAAAABm5MaXN0UwUAAAADU0VQBAAAAAhleHBDb3VudAkAAZAAAAABBQAAAAVuSWR4cwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAGbW5nUHViCQAAAgAAAAECAAAAHmFwcHJvdmVMZWFzaW5ncyBub3QgYXV0aG9yaXplZAQAAAANJHQwMjcyNDIyNzMwNAkBAAAADHJlYWROb2RlSW5mbwAAAAEAAAAAAAAAAAAEAAAABm5BZGRyMAgFAAAADSR0MDI3MjQyMjczMDQAAAACXzEEAAAACGxBbXRLRVkwCAUAAAANJHQwMjcyNDIyNzMwNAAAAAJfMgQAAAAFbEFtdDAIBQAAAA0kdDAyNzI0MjI3MzA0AAAAAl8zBAAAAAdsSWRLRVkwCAUAAAANJHQwMjcyNDIy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AAAAAgUAAAAGaGVpZ2h0BQAAAA5sYXN0U3dhcEhlaWdodAQAAAARaXNTd2FwVGltZWxpZmVOZXcJAABnAAAAAgUAAAAZcGFzc2VkQmxvY2tzQWZ0ZXJMYXN0U3dhcAUAAAAXc3dhcExpbWl0VGltZWxpZmVCbG9ja3MEAAAADnN3YXBMaW1pdFNwZW50AwUAAAARaXNTd2FwVGltZWxpZmVOZXcAAAAAAAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAGGtleVN3YXBVc2VyU3BlbnRJblBlcmlvZAAAAAEFAAAADnVzZXJBZGRyZXNzU3RyAAAAAAAAAAAABAAAAA5ibGNrczJMbXRSZXNldAMFAAAAEWlzU3dhcFRpbWVsaWZlTmV3AAAAAAAAAAAACQAAZQAAAAIFAAAAF3N3YXBMaW1pdFRpbWVsaWZlQmxvY2tzBQAAABlwYXNzZWRCbG9ja3NBZnRlckxhc3RTd2FwCQAFFAAAAAIFAAAAA25pbAkABRcAAAAFBQAAAAxzd2FwTGltaXRNYXgFAAAADnN3YXBMaW1pdFNwZW50BQAAAA5ibGNrczJMbXRSZXNldAUAAAAIZ25zYnRBbXQFAAAADWduc2J0QW10VG90YWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAACaWQJAAJYAAAAAQgFAAAAAnR4AAAAAmlkBAAAABNwdWJLZXlBZG1pbnNMaXN0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAsR0pkTFNhTGl2NUs3eHVlamFjOG1jUmNIb3lvM2RQckVTcnZrdEczYTZNQVIJAARMAAAAAgIAAAAsRVl3Wm1VUmQ1S0thUVJCanNWYTZnOERQaXNGb1M2U292Ukp0RmlMNWdNSFUJAARMAAAAAgIAAAAsRHRtQWZ1RGRDckhLOHNwZEFlQVl6cTZNc1plZ2VEOWduc3JwdVRSa0NiVkEJAARMAAAAAgIAAAAsNVdSWEZTandjVGJOZktjSnM4WnFYbVNTV1lzU1ZKVXRNdk1xWmo1aEg0TmMFAAAAA25pbAUAAAADU0VQBAAAABBwdWJLZXlBZG1pbnNMaXN0CQAEtQAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAPY29udHJvbENvbnRyYWN0AgAAAAwlc19fbXVsdGlzaWcFAAAAE3B1YktleUFkbWluc0xpc3RTdHIFAAAAA1NFUAQAAAAFY291bnQJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAEAAAAAAAAAAAEAAAAAAAAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAwkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAMAAAAAAAAAAAIAAAAAAAAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABVTcG9uc29yRmVlVHJhbnNhY3Rpb24EAAAACXNwb25zb3JUeAUAAAAHJG1hdGNoMAMJAQAAABtjaGVja0lzVmFsaWRNaW5TcG9uc29yZWRGZWUAAAABBQAAAAlzcG9uc29yVHgJAABnAAAAAgUAAAAFY291bnQAAAAAAAAAAAMHCQAAZwAAAAIFAAAABWNvdW50AAAAAAAAAAADXIXJug==", "chainId": 87, "height": 3178762, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DGXi5G7e3V7w9tE5cozZBow8awPHPhgjJbDHU4bXrn5U Next: CXT7k9xw21RWt7bJJzsd33bqgs9kTBEZZUwQqYr1fDHe Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b,c) = valueOrErrorMessage(getString(b, c), (("Mandatory this." + c) + " is not defined"))
4+let a = "b3ff7472a1d54a9f0c8f6d6665c4458c36a31e48"
5+
6+func b (c,d) = valueOrErrorMessage(getString(c, d), (("Mandatory this." + d) + " is not defined"))
57
68
7-func d (e) = calculateLeaseId(e)
9+func e (f) = calculateLeaseId(f)
810
911
10-func f (c) = valueOrElse(getInteger(this, c), 0)
12+func g (d) = valueOrElse(getInteger(this, d), 0)
1113
1214
13-func g (c) = valueOrElse(getString(this, c), "")
15+func h (d) = valueOrElse(getString(this, d), "")
1416
1517
16-func h (c) = valueOrElse(getBoolean(this, c), false)
18+func i (d) = valueOrElse(getBoolean(this, d), false)
1719
1820
19-func i (b,c) = valueOrElse(getInteger(addressFromStringValue(b), c), 0)
21+func j (c,d) = valueOrElse(getInteger(addressFromStringValue(c), d), 0)
2022
2123
22-func j (b,c) = valueOrElse(getString(addressFromStringValue(b), c), "")
24+func k (c,d) = valueOrElse(getString(addressFromStringValue(c), d), "")
2325
2426
25-func k (b,c) = valueOrElse(getBoolean(addressFromStringValue(b), c), false)
27+func l (c,d) = valueOrElse(getBoolean(addressFromStringValue(c), d), false)
2628
2729
28-func l (m) = {
29- let n = m
30- if ($isInstanceOf(n, "List[Any]"))
30+func m (n) = {
31+ let o = n
32+ if ($isInstanceOf(o, "List[Any]"))
3133 then {
32- let o = n
33- o
34+ let f = o
35+ f
3436 }
3537 else throw("fail to cast into List[Any]")
3638 }
3739
3840
39-func p (m) = {
40- let n = m
41- if ($isInstanceOf(n, "String"))
41+func p (n) = {
42+ let o = n
43+ if ($isInstanceOf(o, "String"))
4244 then {
43- let q = n
45+ let q = o
4446 q
4547 }
4648 else throw("fail to cast into String")
4749 }
4850
4951
50-func r (m) = {
51- let n = m
52- if ($isInstanceOf(n, "Int"))
52+func r (n) = {
53+ let o = n
54+ if ($isInstanceOf(o, "Int"))
5355 then {
54- let s = n
56+ let s = o
5557 s
5658 }
5759 else throw("fail to cast into Int")
5860 }
5961
6062
61-func t (m) = {
62- let n = m
63- if ($isInstanceOf(n, "(Int, Int, Int, Int, Int)"))
63+func t (n) = {
64+ let o = n
65+ if ($isInstanceOf(o, "AttachedPayment"))
6466 then {
65- let u = n
67+ let u = o
6668 u
69+ }
70+ else throw("fail to cast into AttachedPayment")
71+ }
72+
73+
74+func v (n) = {
75+ let o = n
76+ if ($isInstanceOf(o, "(Int, Int, Int, Int, Int)"))
77+ then {
78+ let w = o
79+ w
6780 }
6881 else throw("fail to cast into Int")
6982 }
7083
7184
72-let v = ["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
85+let x = "__"
7386
74-let w = "__"
75-
76-let x = 100000000
77-
78-let y = 1000000
87+let y = 100000000
7988
8089 let z = 1000000
8190
82-let A = 20000
91+let A = 1000000
8392
84-let B = 0
93+let B = 20000
8594
86-let C = 1
95+let C = 0
8796
88-let D = 2
97+let D = 1
8998
90-let E = "neutrino_asset_id"
99+let E = 2
91100
92-let F = "bond_asset_id"
101+let F = "neutrino_asset_id"
93102
94-let G = "auction_contract"
103+let G = "bond_asset_id"
95104
96-let H = "nsbtStakingContract"
105+let H = "auction_contract"
97106
98-let I = "liquidation_contract"
107+let I = "nsbtStakingContract"
99108
100-let J = "rpd_contract"
109+let J = "liquidation_contract"
101110
102-let K = "control_contract"
111+let K = "rpd_contract"
103112
104-let L = "math_contract"
113+let L = "control_contract"
105114
106-let M = "balance_waves_lock_interval"
115+let M = "math_contract"
107116
108-let N = "balance_neutrino_lock_interval"
117+let N = "balance_waves_lock_interval"
109118
110-let O = "min_waves_swap_amount"
119+let O = "balance_neutrino_lock_interval"
111120
112-let P = "min_neutrino_swap_amount"
121+let P = "min_waves_swap_amount"
113122
114-let Q = "node_oracle_provider"
123+let Q = "min_neutrino_swap_amount"
115124
116-let R = "neutrinoOut_swap_feePart"
125+let R = "node_oracle_provider"
117126
118-let S = "wavesOut_swap_feePart"
127+let S = "neutrinoOut_swap_feePart"
119128
120-let T = "fees_manager_address"
129+let T = "wavesOut_swap_feePart"
121130
122-func U (b) = ("%s__" + b)
131+let U = "fees_manager_address"
132+
133+func V (c) = ("%s__" + c)
123134
124135
125-let V = "price"
136+let W = "price"
126137
127-let W = "price_index"
138+let X = "price_index"
128139
129-let X = "is_blocked"
140+let Y = "is_blocked"
130141
131-func Y (Z) = ((V + "_") + toString(Z))
142+func Z (aa) = ((W + "_") + toString(aa))
132143
133144
134-func aa (ab) = ((W + "_") + toString(ab))
145+func ab (ac) = ((X + "_") + toString(ac))
135146
136147
137-func ac (ad) = g(makeString(["%s%d%s", "lease", toString(ad), "nodeAddress"], w))
148+func ad (ae) = h(makeString(["%s%d%s", "lease", toString(ae), "nodeAddress"], x))
138149
139150
140-func ae (ad) = addressFromStringValue(ac(ad))
151+func af (ae) = addressFromStringValue(ad(ae))
141152
142153
143-func af () = valueOrElse(getInteger(this, makeString(["%s%s", "lease", "sponsorshipWavesReserve"], w)), (1000 * x))
154+func ag () = valueOrElse(getInteger(this, makeString(["%s%s", "lease", "sponsorshipWavesReserve"], x)), (1000 * y))
144155
145156
146-func ag (ah) = ("balance_unlock_block_" + ah)
157+func ah (ai) = ("balance_unlock_block_" + ai)
147158
148159
149-func ai (aj) = makeString(["%s%d%s", "lease", toString(aj), "id"], w)
160+func aj (ak) = makeString(["%s%d%s", "lease", toString(ak), "id"], x)
150161
151162
152-func ak (al) = makeString(["%s%s%s", "leaseByAddress", al, "id"], w)
163+func al (am) = makeString(["%s%s%s", "leaseByAddress", am, "id"], x)
153164
154165
155-func am (aj) = makeString(["%s%d%s", "lease", toString(aj), "amount"], w)
166+func an (ak) = makeString(["%s%d%s", "lease", toString(ak), "amount"], x)
156167
157168
158-func an (al) = makeString(["%s%s%s", "leaseByAddress", al, "amount"], w)
169+func ao (am) = makeString(["%s%s%s", "leaseByAddress", am, "amount"], x)
159170
160171
161-func ao (ap) = makeString(["%s%d%s", "leaseGroup", toString(ap), "nodeList"], w)
172+func ap (aq) = makeString(["%s%d%s", "leaseGroup", toString(aq), "nodeList"], x)
162173
163174
164-func aq (ar) = (("min_" + ar) + "_swap_amount")
175+func ar (as) = (("min_" + as) + "_swap_amount")
165176
166177
167-func as (ar) = ("balance_lock_" + ar)
178+func at (as) = ("balance_lock_" + as)
168179
169180
170-func at (ar,ah) = makeString(["balance_lock", ar, ah], "_")
181+func au (as,ai) = makeString(["balance_lock", as, ai], "_")
171182
172183
173-func au (ar) = (("balance_" + ar) + "_lock_interval")
184+func av (as) = (("balance_" + as) + "_lock_interval")
174185
175186
176-func av () = "balance_node_lock_interval"
187+func aw () = "balance_node_lock_interval"
177188
178189
179-func aw (ar) = (ar + "Out_swap_feePart")
190+func ax (as) = (as + "Out_swap_feePart")
180191
181192
182-func ax () = "swaps_timeframe"
193+func ay () = "swaps_timeframe"
183194
184195
185-func ay (ar) = valueOrElse(getInteger(this, aq(ar)), 0)
196+func az (as) = valueOrElse(getInteger(this, ar(as)), 0)
186197
187198
188-func az () = valueOrElse(getInteger(this, ax()), 1440)
199+func aA () = valueOrElse(getInteger(this, ay()), 1440)
189200
190201
191-func aA (ar) = valueOrElse(getInteger(this, as(ar)), 0)
202+func aB (as) = valueOrElse(getInteger(this, at(as)), 0)
192203
193204
194-func aB (ar,ah) = valueOrElse(getInteger(this, at(ar, ah)), 0)
205+func aC (as,ai) = valueOrElse(getInteger(this, au(as, ai)), 0)
195206
196207
197-func aC (ar) = valueOrElse(getInteger(this, au(ar)), 1440)
208+func aD (as) = valueOrElse(getInteger(this, av(as)), 1440)
198209
199210
200-func aD () = valueOrElse(getInteger(this, av()), 1)
211+func aE () = valueOrElse(getInteger(this, aw()), 1)
201212
202213
203-func aE (aF) = makeString(["%s%s", "swapUserSpentInPeriod", aF], w)
214+func aF (aG) = makeString(["%s%s", "swapUserSpentInPeriod", aG], x)
204215
205216
206-func aG (aF) = makeString(["%s%s", "userLastSwapHeight", aF], w)
217+func aH (aG) = makeString(["%s%s", "userLastSwapHeight", aG], x)
207218
208219
209-func aH () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, T), (T + " is not specified"))), (T + " invalid address format"))
220+func aI () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, U), (U + " is not specified"))), (U + " invalid address format"))
210221
211222
212-func aI (aJ,aK) = fraction(fraction(aJ, z, aK), x, y)
223+func aJ (aK,aL) = fraction(fraction(aK, A, aL), y, z)
213224
214225
215-func aL (aJ,aK) = fraction(fraction(aJ, aK, z), y, x)
226+func aM (aK,aL) = fraction(fraction(aK, aL, A), z, y)
216227
217228
218-func aM (aJ,aK) = aL(aJ, aK)
229+func aN (aK,aL) = aM(aK, aL)
219230
220231
221-func aN (aO) = split(aO, ",")
232+func aO (aP) = split(aP, ",")
222233
223234
224-func aP (ar,aQ) = throw(((("The specified amount in " + ar) + " swap is less than the required minimum of ") + toString(aQ)))
235+func aQ (as,aR) = throw(((("The specified amount in " + as) + " swap is less than the required minimum of ") + toString(aR)))
225236
226237
227-func aR () = throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
238+func aS () = throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
228239
229240
230-func aS (ab,aT,aU,aV,aW) = throw(((((((((("invalid price history index: index=" + toString(ab)) + " priceIndex=") + toString(aT)) + " indexHeight=") + toString(aU)) + " unlockHeight=") + toString(aV)) + " prevIndexHeight=") + toString(aW)))
241+func aT (ac,aU,aV,aW,aX) = throw(((((((((("invalid price history index: index=" + toString(ac)) + " priceIndex=") + toString(aU)) + " indexHeight=") + toString(aV)) + " unlockHeight=") + toString(aW)) + " prevIndexHeight=") + toString(aX)))
231242
232243
233-let aX = g(I)
244+let aY = h(J)
234245
235-let aY = g(H)
246+let aZ = h(I)
236247
237-let aZ = fromBase58String(g(E))
248+let ba = fromBase58String(h(F))
238249
239-let ba = g(G)
250+let bb = h(H)
240251
241-let bb = g(J)
252+let bc = h(K)
242253
243-let bc = g(K)
254+let bd = h(L)
244255
245-let bd = g(L)
256+let be = addressFromStringValue(bd)
246257
247-let aT = i(bc, W)
258+let bf = h(M)
248259
249-let be = k(bc, X)
260+let aU = j(bd, X)
250261
251-let bf = fromBase58String(g(Q))
262+let bg = l(bd, Y)
252263
253-let bg = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
264+let bh = fromBase58String(h(R))
254265
255-let bh = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
266+let bi = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
256267
257-let bi = this
268+let bj = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
258269
259-let bj = addressFromStringValue(bd)
270+let bk = this
260271
261-let bk = addressFromStringValue(aY)
272+let bl = addressFromStringValue(bf)
262273
263-let bl = i(bc, V)
274+let bm = addressFromStringValue(aZ)
264275
265-func bm (bn) = {
266- let bo = 100000
267- let bp = 1000
268- let bq = aL(bo, bl)
269- let br = (bq * 2)
270- let bs = fraction(bq, bp, 100)
271- let bt = value(bn.minSponsoredAssetFee)
272- if (if ((bt >= br))
273- then (bs >= bt)
276+let bn = j(bd, W)
277+
278+func bo (bp) = {
279+ let bq = 100000
280+ let br = 1000
281+ let bs = aM(bq, bn)
282+ let bt = (bs * 2)
283+ let bu = fraction(bs, br, 100)
284+ let bv = value(bp.minSponsoredAssetFee)
285+ if (if ((bv >= bt))
286+ then (bu >= bv)
274287 else false)
275- then (bn.assetId == aZ)
288+ then (bp.assetId == ba)
276289 else false
277290 }
278291
279292
280-func bu (Z) = i(bc, Y(Z))
293+func bw (aa) = j(bd, Z(aa))
281294
282295
283-func bv (ab) = i(bc, aa(ab))
296+func bx (ac) = j(bd, ab(ac))
284297
285298
286-func bw (aF) = makeString(["%s%s%s", "paramByUser", aF, "amount"], w)
299+func by (aG) = makeString(["%s%s%s", "paramByUser", aG, "amount"], x)
287300
288301
289-let bx = 1
302+let bz = 1
290303
291-let by = 2
304+let bA = 2
292305
293-let bz = 3
306+let bB = 3
294307
295-let bA = 4
308+let bC = 4
296309
297-let bB = 5
310+let bD = 5
298311
299-let bC = 6
312+let bE = 6
300313
301-let bD = 7
314+let bF = 7
302315
303-let bE = 8
316+let bG = 8
304317
305-let bF = 9
318+let bH = 9
306319
307-let bG = 10
320+let bI = 10
308321
309-let bH = 11
322+let bJ = 11
310323
311-let bI = 12
324+let bK = 12
312325
313-let bJ = 13
326+let bL = 13
314327
315-let bK = 14
328+let bM = 14
316329
317-let bL = 15
330+let bN = 15
318331
319-let bM = 16
332+let bO = 16
320333
321-func bN (aF,bO) = makeString(["%s%s", aF, bO], w)
334+func bP (aG,bQ) = makeString(["%s%s", aG, bQ], x)
322335
323336
324-func bP (ar,bQ,bR,aK,bS,bT,bU,bV,bW,bX,bY,bZ,ab,ca,cb,cc) = makeString(["%s%s%d%d%d%d%d%d%d%d%d%d%d%s", ar, bQ, bR, aK, bS, bT, bU, bV, bW, bX, bY, bZ, ab, ca, cb, cc], w)
337+func bR (as,bS,bT,aL,bU,bV,bW,bX,bY,bZ,ca,cb,ac,cc,cd,ce) = makeString(["%s%s%d%d%d%d%d%d%d%d%d%d%d%s", as, bS, bT, aL, bU, bV, bW, bX, bY, bZ, ca, cb, ac, cc, cd, ce], x)
325338
326339
327-func cd (ar,ce,bY) = bP(ar, "PENDING", toString(ce), "0", "0", "0", toString(height), toString(lastBlock.timestamp), "0", "0", toString(bY), "0", "0", "NULL", "0", "0")
340+func cf (as,cg,ca) = bR(as, "PENDING", toString(cg), "0", "0", "0", toString(height), toString(lastBlock.timestamp), "0", "0", toString(ca), "0", "0", "NULL", "0", "0")
328341
329342
330-func cf (cg,aK,bS,bT,bZ,ab,ca) = bP(cg[bx], "FINISHED", cg[bz], toString(aK), toString(bS), toString(bT), cg[bD], cg[bE], toString(height), toString(lastBlock.timestamp), cg[bH], toString(bZ), toString(ab), ca, cg[bL], cg[bM])
343+func ch (ci,aL,bU,bV,cb,ac,cc) = bR(ci[bz], "FINISHED", ci[bB], toString(aL), toString(bU), toString(bV), ci[bF], ci[bG], toString(height), toString(lastBlock.timestamp), ci[bJ], toString(cb), toString(ac), cc, ci[bN], ci[bO])
331344
332345
333-func ch (aF,ci) = {
334- let cj = bN(aF, ci)
335- split(valueOrErrorMessage(getString(this, cj), ("no swap data for " + cj)), w)
346+func cj (aG,ck) = {
347+ let cl = bP(aG, ck)
348+ split(valueOrErrorMessage(getString(this, cl), ("no swap data for " + cl)), x)
336349 }
337350
338351
339-func ck (cl,cm) = {
340- let cn = fraction(cl, cm, y)
341-[(cl - cn), cn, cl]
352+func cm (cn,co) = {
353+ let cp = fraction(cn, co, z)
354+[(cn - cp), cp, cn]
342355 }
343356
344357
345-func co (cp) = if ((0 > cp))
346- then -(cp)
347- else cp
358+func cq (cr) = if ((0 > cr))
359+ then -(cr)
360+ else cr
348361
349362
350-func cq (cr) = {
351- let cs = ((wavesBalance(bi).available - cr) - af())
352- let ct = f(am(0))
353- let cu = f(am(1))
354- let cv = (cs + ct)
355- let cw = (cs + cu)
356- if (if ((cv > 0))
363+func cs (ct) = {
364+ let cu = ((wavesBalance(bk).available - ct) - ag())
365+ let cv = g(an(0))
366+ let cw = g(an(1))
367+ let cx = (cu + cv)
368+ let cy = (cu + cw)
369+ if (if ((cx > 0))
357370 then true
358- else (cw > 0))
371+ else (cy > 0))
359372 then {
360- let cx = co((cv - cu))
361- let cy = co((cw - ct))
362- if ((cy >= cx))
363- then $Tuple2(0, cv)
364- else $Tuple2(1, cw)
373+ let cz = cq((cx - cw))
374+ let cA = cq((cy - cv))
375+ if ((cA >= cz))
376+ then $Tuple2(0, cx)
377+ else $Tuple2(1, cy)
365378 }
366379 else $Tuple2(-1, 0)
367380 }
368381
369382
370-func cz (cA) = if ((cA.caller != this))
383+func cB (s) = if ((s.caller != this))
371384 then throw("Permission denied: this contract only allowed")
372385 else true
373386
374387
375-func cB (cr) = {
376- let cC = cq(cr)
377- let aj = cC._1
378- let cD = cC._2
379- if ((cD > 0))
388+func cC (ct) = {
389+ let cD = cs(ct)
390+ let ak = cD._1
391+ let cE = cD._2
392+ if ((cE > 0))
380393 then {
381- let cE = ai(aj)
382- let cF = getBinary(this, cE)
383- let cG = if (isDefined(cF))
384- then [LeaseCancel(value(cF))]
394+ let cF = aj(ak)
395+ let cG = getBinary(this, cF)
396+ let cH = if (isDefined(cG))
397+ then [LeaseCancel(value(cG))]
385398 else nil
386- let cH = am(aj)
387- let cI = Lease(ae(aj), cD)
388- (cG ++ [cI, BinaryEntry(cE, d(cI)), IntegerEntry(am(aj), cD)])
399+ let cI = an(ak)
400+ let cJ = Lease(af(ak), cE)
401+ (cH ++ [cJ, BinaryEntry(cF, e(cJ)), IntegerEntry(an(ak), cE)])
389402 }
390403 else nil
391404 }
392405
393406
394-func cJ (ar,cK,cL,cM,cN) = {
395- let cO = cN
396- let cP = cO._1
397- let cQ = cO._2
398- let cR = cO._3
399- let aQ = ay(ar)
400- let cS = aA(ar)
401- let cT = aB(ar, cL)
402- let al = ac(0)
403- let cU = bu(bv(aT))
404- let cV = (al == cL)
405- let cW = if (cV)
406- then aD()
407- else aC(ar)
408- let bY = (height + cW)
409- let cX = if ((ar == "neutrino"))
410- then cK
411- else aL(cK, cU)
412- if ((aQ > cK))
413- then aP(ar, aQ)
414- else if (if (!(cV))
415- then (cQ > 0)
407+func cK (cL) = {
408+ let am = af(cL)
409+ let cM = an(cL)
410+ let cN = g(cM)
411+ let cO = aj(cL)
412+ let cP = value(getBinary(this, cO))
413+ $Tuple5(am, cM, cN, cO, cP)
414+ }
415+
416+
417+func cQ (as,cR,cS,cT,cU) = {
418+ let cV = cU
419+ let cW = cV._1
420+ let cX = cV._2
421+ let cY = cV._3
422+ let aR = az(as)
423+ let cZ = aB(as)
424+ let da = aC(as, cS)
425+ let am = ad(0)
426+ let db = bw(bx(aU))
427+ let dc = (am == cS)
428+ let dd = if (dc)
429+ then aE()
430+ else aD(as)
431+ let ca = (height + dd)
432+ let de = if ((as == "neutrino"))
433+ then cR
434+ else aM(cR, db)
435+ if ((aR > cR))
436+ then aQ(as, aR)
437+ else if (if (!(dc))
438+ then (cX > 0)
416439 else false)
417- then throw(("You have exceeded swap limit! Next allowed swap height is " + toString((height + cR))))
418- else if (if (!(cV))
419- then (cX > cP)
440+ then throw(("You have exceeded swap limit! Next allowed swap height is " + toString((height + cY))))
441+ else if (if (!(dc))
442+ then (de > cW)
420443 else false)
421- then throw(((("You have exceeded your swap limit! Requested: " + toString(cX)) + ", available: ") + toString(cP)))
422- else if (be)
423- then aR()
444+ then throw(((("You have exceeded your swap limit! Requested: " + toString(de)) + ", available: ") + toString(cW)))
445+ else if (bg)
446+ then aS()
424447 else {
425- let cY = if ((ar == "waves"))
426- then cB(0)
448+ let df = if ((as == "waves"))
449+ then cC(0)
427450 else nil
428- $Tuple2(([IntegerEntry(aE(cL), cX), IntegerEntry(aG(cL), height), IntegerEntry(at(ar, cL), (cT + cK)), IntegerEntry(ag(cL), bY), IntegerEntry(as(ar), (cS + cK)), StringEntry(bN(cL, cM), cd(ar, cK, bY))] ++ cY), unit)
451+ $Tuple2(([IntegerEntry(aF(cS), de), IntegerEntry(aH(cS), height), IntegerEntry(au(as, cS), (da + cR)), IntegerEntry(ah(cS), ca), IntegerEntry(at(as), (cZ + cR)), StringEntry(bP(cS, cT), cf(as, cR, ca))] ++ df), unit)
429452 }
430453 }
431454
432455
433-func cZ (da,ab,ci,ca) = {
434- let aF = addressFromStringValue(da)
435- let db = aH()
436- let cg = ch(da, ci)
437- let bY = parseIntValue(cg[bH])
438- let ar = cg[bx]
439- let bR = parseIntValue(cg[bz])
440- let dc = cg[by]
441- let bU = parseIntValue(cg[bD])
442- let dd = valueOrElse(getInteger(this, aw(ar)), A)
443- let cS = aA(ar)
444- let cT = aB(ar, da)
445- let aV = bY
446- let aU = bv(ab)
447- let aW = bv((ab - 1))
448- let cU = bu(aU)
449- let de = if ((ar == "waves"))
450- then $Tuple2(aL(bR, cU), aZ)
451- else if ((ar == "neutrino"))
452- then $Tuple2(aI(bR, cU), unit)
453- else throw(("Unsupported swap type " + ar))
454- let df = ck(de._1, dd)
455- let bS = df[B]
456- let bT = df[C]
457- if (be)
458- then aR()
459- else if ((dc != "PENDING"))
456+func dg (dh,ac,ck,cc) = {
457+ let aG = addressFromStringValue(dh)
458+ let di = aI()
459+ let ci = cj(dh, ck)
460+ let ca = parseIntValue(ci[bJ])
461+ let as = ci[bz]
462+ let bT = parseIntValue(ci[bB])
463+ let dj = ci[bA]
464+ let bW = parseIntValue(ci[bF])
465+ let dk = valueOrElse(getInteger(this, ax(as)), B)
466+ let cZ = aB(as)
467+ let da = aC(as, dh)
468+ let aW = ca
469+ let aV = bx(ac)
470+ let aX = bx((ac - 1))
471+ let db = bw(aV)
472+ let dl = if ((as == "waves"))
473+ then $Tuple2(aM(bT, db), ba)
474+ else if ((as == "neutrino"))
475+ then $Tuple2(aJ(bT, db), unit)
476+ else throw(("Unsupported swap type " + as))
477+ let dm = cm(dl._1, dk)
478+ let bU = dm[C]
479+ let bV = dm[D]
480+ if (bg)
481+ then aS()
482+ else if ((dj != "PENDING"))
460483 then throw("swap has been already processed")
461- else if ((aV > height))
462- then throw((("please wait for: " + toString(aV)) + " block height to withdraw funds"))
463- else if (if (if ((ab > aT))
484+ else if ((aW > height))
485+ then throw((("please wait for: " + toString(aW)) + " block height to withdraw funds"))
486+ else if (if (if ((ac > aU))
464487 then true
465- else (aV > aU))
488+ else (aW > aV))
466489 then true
467- else if ((aW != 0))
468- then (aW >= aV)
490+ else if ((aX != 0))
491+ then (aX >= aW)
469492 else false)
470- then aS(ab, aT, aU, aV, aW)
471- else if ((0 >= df[D]))
493+ then aT(ac, aU, aV, aW, aX)
494+ else if ((0 >= dm[E]))
472495 then throw("balance equals zero")
473- else if (if ((0 > dd))
496+ else if (if ((0 > dk))
474497 then true
475- else (dd >= y))
476- then throw(((("invalid outFeePart config for " + ar) + " swap: outFeePart=") + toString(dd)))
498+ else (dk >= z))
499+ then throw(((("invalid outFeePart config for " + as) + " swap: outFeePart=") + toString(dk)))
477500 else {
478- let cY = if (if ((ar == "neutrino"))
479- then (de._1 > 0)
501+ let ct = if (if ((as == "neutrino"))
502+ then (dl._1 > 0)
480503 else false)
481- then cB(de._1)
482- else nil
483- let dg = (cY ++ [IntegerEntry(at(ar, da), (cT - bR)), IntegerEntry(as(ar), (cS - bR)), ScriptTransfer(aF, bS, de._2), StringEntry(bN(da, ci), cf(cg, cU, bS, bT, aV, ab, ca))])
484- $Tuple2(dg, AttachedPayment(de._2, bT))
504+ then dl._1
505+ else 0
506+ let dn = [IntegerEntry(au(as, dh), (da - bT)), IntegerEntry(at(as), (cZ - bT)), ScriptTransfer(aG, bU, dl._2), StringEntry(bP(dh, ck), ch(ci, db, bU, bV, aW, ac, cc))]
507+ $Tuple3(dn, AttachedPayment(dl._2, bV), ct)
485508 }
486509 }
487510
488511
489-func dh (di) = {
490- let al = ae(di)
491- let dj = am(di)
492- let dk = f(dj)
493- let dl = ai(di)
494- let dm = value(getBinary(this, dl))
495- $Tuple5(al, dj, dk, dl, dm)
496- }
497-
498-
499-@Callable(cA)
500-func constructor (dn,do,dp,dq,dr,ds,dt,du,dv,dw,dx,dy) = {
501- let dz = cz(cA)
502- if ((dz == dz))
503- then if ((size(cA.payments) != 0))
512+@Callable(s)
513+func constructor (do,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz) = {
514+ let dA = cB(s)
515+ if ((dA == dA))
516+ then if ((size(s.payments) != 0))
504517 then throw("no payments allowed")
505- else [StringEntry(E, dn), StringEntry(F, do), StringEntry(G, dp), StringEntry(I, dq), StringEntry(J, dr), StringEntry(Q, ds), IntegerEntry(M, dt), IntegerEntry(N, du), IntegerEntry(O, dv), IntegerEntry(P, dw), IntegerEntry(R, dx), IntegerEntry(S, dy)]
518+ else [StringEntry(F, do), StringEntry(G, dp), StringEntry(H, dq), StringEntry(J, dr), StringEntry(K, ds), StringEntry(R, dt), IntegerEntry(N, du), IntegerEntry(O, dv), IntegerEntry(P, dw), IntegerEntry(Q, dx), IntegerEntry(S, dy), IntegerEntry(T, dz)]
506519 else throw("Strict value is not equal to itself.")
507520 }
508521
509522
510523
511-@Callable(cA)
512-func constructorV2 (bj,bk,dA) = {
513- let dz = cz(cA)
514- if ((dz == dz))
515- then if ((size(cA.payments) != 0))
524+@Callable(s)
525+func constructorV2 (bl,bm,dB) = {
526+ let dA = cB(s)
527+ if ((dA == dA))
528+ then if ((size(s.payments) != 0))
516529 then throw("no payments allowed")
517- else [StringEntry(L, bj), StringEntry(H, bk), IntegerEntry(ax(), dA)]
530+ else [StringEntry(M, bl), StringEntry(I, bm), IntegerEntry(ay(), dB)]
518531 else throw("Strict value is not equal to itself.")
519532 }
520533
521534
522535
523-@Callable(cA)
524-func swapWavesToNeutrino () = if ((size(cA.payments) != 1))
536+@Callable(s)
537+func swapWavesToNeutrino () = if ((size(s.payments) != 1))
525538 then throw("swapWavesToNeutrino require only one payment")
526539 else {
527- let dB = value(cA.payments[0])
528- if (isDefined(dB.assetId))
540+ let dC = value(s.payments[0])
541+ if (isDefined(dC.assetId))
529542 then throw("Only Waves token is allowed for swapping.")
530543 else {
531- let aF = toString(cA.caller)
532- let cM = toBase58String(cA.transactionId)
533- let dC = t(invoke(this, "swapParamsByUserSYSREADONLY", [aF, 0], nil))
534- let dD = cJ("waves", dB.amount, aF, cM, dC)
535- dD
544+ let aG = toString(s.caller)
545+ let cT = toBase58String(s.transactionId)
546+ let dD = v(invoke(this, "swapParamsByUserSYSREADONLY", [aG, 0], nil))
547+ let dE = cQ("waves", dC.amount, aG, cT, dD)
548+ dE
536549 }
537550 }
538551
539552
540553
541-@Callable(cA)
542-func swapNeutrinoToWaves () = if ((size(cA.payments) != 1))
554+@Callable(s)
555+func swapNeutrinoToWaves () = if ((size(s.payments) != 1))
543556 then throw("swapNeutrinoToWaves require only one payment")
544557 else {
545- let dB = value(cA.payments[0])
546- if ((dB.assetId != aZ))
558+ let dC = value(s.payments[0])
559+ if ((dC.assetId != ba))
547560 then throw("Only appropriate Neutrino tokens are allowed for swapping.")
548561 else {
549- let aF = toString(cA.caller)
550- let cM = toBase58String(cA.transactionId)
551- let dC = t(invoke(this, "swapParamsByUserSYSREADONLY", [aF, 0], nil))
552- let dD = cJ("neutrino", dB.amount, aF, cM, dC)
553- dD
562+ let aG = toString(s.caller)
563+ let cT = toBase58String(s.transactionId)
564+ let dD = v(invoke(this, "swapParamsByUserSYSREADONLY", [aG, 0], nil))
565+ let dE = cQ("neutrino", dC.amount, aG, cT, dD)
566+ dE
554567 }
555568 }
556569
557570
558571
559-@Callable(cA)
560-func withdraw (da,ab,ci) = if ((size(cA.payments) != 0))
561- then throw("no payments allowed")
562- else {
563- let dE = cZ(da, ab, ci, toBase58String(cA.transactionId))
564- let dg = dE._1
565- let dF = dE._2
566- let dG = invoke(bk, "deposit", nil, [dF])
567- if ((dG == dG))
568- then dg
569- else throw("Strict value is not equal to itself.")
570- }
572+@Callable(s)
573+func withdraw (dh,ac,ck) = {
574+ let bQ = toBase58String(s.transactionId)
575+ if ((size(s.payments) != 0))
576+ then throw("no payments allowed")
577+ else {
578+ let dF = dg(dh, ac, ck, bQ)
579+ let dn = dF._1
580+ let dG = dF._2
581+ let dH = dF._3
582+ let dI = invoke(this, "internalUnleaseAndLease", [dH], nil)
583+ if ((dI == dI))
584+ then if ((0 >= dG.amount))
585+ then dn
586+ else {
587+ let dJ = invoke(bm, "deposit", nil, [dG])
588+ if ((dJ == dJ))
589+ then dn
590+ else throw("Strict value is not equal to itself.")
591+ }
592+ else throw("Strict value is not equal to itself.")
593+ }
594+ }
571595
572596
573597
574-@Callable(cA)
575-func transferToAuction () = if ((size(cA.payments) != 0))
576- then throw("no payments allowed")
577- else {
578- let dH = l(invoke(bj, "calcNeutinoMetricsREADONLY", nil, nil))
579- let dI = r(dH[3])
580- let dJ = r(dH[5])
581- let dK = r(dH[6])
582- let dL = r(dH[9])
583- let dM = (dJ - assetBalance(addressFromStringValue(ba), bg))
584- let dN = (dK - assetBalance(addressFromStringValue(aX), aZ))
585- if (be)
586- then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
587- else if ((dM > (1 * y)))
588- then [ScriptTransfer(addressFromStringValue(ba), dM, bg)]
589- else if ((dN >= (1 * y)))
590- then [ScriptTransfer(addressFromStringValue(aX), dN, aZ)]
591- else throw(((((((("bond were generated or do not need it. Deficit:" + toString(dM)) + "|") + toString(0)) + ". Surplus:") + toString(dN)) + "|") + toString(dK)))
592- }
598+@Callable(s)
599+func internalUnleaseAndLease (ct) = if ((s.caller != this))
600+ then throw("internalUnleaseAndLease is not public method")
601+ else cC(ct)
593602
594603
595604
596-@Callable(cA)
597-func transferUsdnToUser (aJ,dO) = if ((cA.caller != addressFromStringValue(ba)))
605+@Callable(s)
606+func transferUsdnToUser (aK,dK) = if ((s.caller != addressFromStringValue(bb)))
598607 then throw("Only auction contract is authorized")
599- else [ScriptTransfer(addressFromStringValue(dO), aJ, aZ)]
608+ else [ScriptTransfer(addressFromStringValue(dK), aK, ba)]
600609
601610
602611
603-@Callable(cA)
604-func acceptWaves () = if ((cA.caller != addressFromStringValue(ba)))
612+@Callable(s)
613+func acceptWaves () = if ((s.caller != addressFromStringValue(bb)))
605614 then throw("Currently only auction contract is allowed to call")
606- else $Tuple2(cB(0), "success")
615+ else $Tuple2(cC(0), "success")
607616
608617
609618
610-@Callable(cA)
611-func approveLeasings (dP,ap) = {
612- let dQ = (500000 * x)
613- let dR = [0, 1, 2, 3, 4, 5, 6, 7]
614- let dS = valueOrElse(getString("%s%s__cfg__leasingManagerPub"), "7AUMX54ukYMYvPmma7yoFf5NjZhs4Bu5nz3Ez9EV8sur")
615- let dT = fromBase58String(dS)
616- let dU = valueOrElse(getString("%s%s__cfg__nodesRegistryAddress"), "3P9vKqQKjUdmpXAfiWau8krREYAY1Xr69pE")
617- let dV = addressFromStringValue(dU)
618- let dW = ao(ap)
619- let dX = getString(this, dW)
620- if (isDefined(dX))
621- then throw((("group " + toString(ap)) + " already initialized"))
619+@Callable(s)
620+func approveLeasings (dL,aq) = {
621+ let dM = (500000 * y)
622+ let dN = [0, 1, 2, 3, 4, 5, 6, 7]
623+ let dO = valueOrElse(getString("%s%s__cfg__leasingManagerPub"), "7AUMX54ukYMYvPmma7yoFf5NjZhs4Bu5nz3Ez9EV8sur")
624+ let dP = fromBase58String(dO)
625+ let dQ = valueOrElse(getString("%s%s__cfg__nodesRegistryAddress"), "3P9vKqQKjUdmpXAfiWau8krREYAY1Xr69pE")
626+ let dR = addressFromStringValue(dQ)
627+ let dS = ap(aq)
628+ let dT = getString(this, dS)
629+ if (isDefined(dT))
630+ then throw((("group " + toString(aq)) + " already initialized"))
622631 else {
623- let dY = split(dP, w)
624- let dZ = size(dR)
625- if ((cA.callerPublicKey != dT))
632+ let dU = split(dL, x)
633+ let dV = size(dN)
634+ if ((s.callerPublicKey != dP))
626635 then throw("approveLeasings not authorized")
627636 else {
628- let ea = dh(0)
629- let eb = ea._1
630- let ec = ea._2
631- let ed = ea._3
632- let ee = ea._4
633- let ef = ea._5
634- let eg = dh(1)
635- let eh = eg._1
636- let ei = eg._2
637- let ej = eg._3
638- let ek = eg._4
639- let el = eg._5
640- let em = Lease(eb, (ed - ((dQ * dZ) / 2)))
641- let en = Lease(eh, (ej - ((dQ * dZ) / 2)))
642- let eo = invoke(dV, "validateAndApproveLeasings", [dP], nil)
643- if ((eo == eo))
637+ let dW = cK(0)
638+ let dX = dW._1
639+ let dY = dW._2
640+ let dZ = dW._3
641+ let ea = dW._4
642+ let eb = dW._5
643+ let ec = cK(1)
644+ let ed = ec._1
645+ let ee = ec._2
646+ let ef = ec._3
647+ let eg = ec._4
648+ let eh = ec._5
649+ let ei = Lease(dX, (dZ - ((dM * dV) / 2)))
650+ let ej = Lease(ed, (ef - ((dM * dV) / 2)))
651+ let ek = invoke(dR, "validateAndApproveLeasings", [dL], nil)
652+ if ((ek == ek))
644653 then {
645- func ep (eq,cA) = {
646- let er = dY[cA]
647- let es = Lease(addressFromStringValue(er), dQ)
648- (eq ++ [es, BinaryEntry(ak(er), d(es)), IntegerEntry(an(er), dQ)])
654+ func el (em,s) = {
655+ let en = dU[s]
656+ let eo = Lease(addressFromStringValue(en), dM)
657+ (em ++ [eo, BinaryEntry(al(en), e(eo)), IntegerEntry(ao(en), dM)])
649658 }
650659
651- ([StringEntry(dW, dP), BinaryEntry(ee, d(em)), BinaryEntry(ek, d(en)), IntegerEntry(ec, em.amount), IntegerEntry(ei, en.amount), LeaseCancel(ef), LeaseCancel(el), em, en] ++ {
652- let et = dR
653- let eu = size(et)
654- let ev = nil
655- func ew (ex,ey) = if ((ey >= eu))
656- then ex
657- else ep(ex, et[ey])
660+ ([StringEntry(dS, dL), BinaryEntry(ea, e(ei)), BinaryEntry(eg, e(ej)), IntegerEntry(dY, ei.amount), IntegerEntry(ee, ej.amount), LeaseCancel(eb), LeaseCancel(eh), ei, ej] ++ {
661+ let ep = dN
662+ let eq = size(ep)
663+ let er = nil
664+ func es (et,eu) = if ((eu >= eq))
665+ then et
666+ else el(et, ep[eu])
658667
659- func ez (ex,ey) = if ((ey >= eu))
660- then ex
668+ func ev (et,eu) = if ((eu >= eq))
669+ then et
661670 else throw("List size exceeds 8")
662671
663- ez(ew(ew(ew(ew(ew(ew(ew(ew(ev, 0), 1), 2), 3), 4), 5), 6), 7), 8)
672+ ev(es(es(es(es(es(es(es(es(er, 0), 1), 2), 3), 4), 5), 6), 7), 8)
664673 })
665674 }
666675 else throw("Strict value is not equal to itself.")
670679
671680
672681
673-@Callable(cA)
674-func swapParamsByUserSYSREADONLY (cL,eA) = {
675- let eB = l(invoke(bk, "nsbtStakingSYSREADONLY", [cL], nil))
676- if ((eB == eB))
682+@Callable(s)
683+func swapParamsByUserSYSREADONLY (cS,ew) = {
684+ let ex = m(invoke(bm, "nsbtStakingSYSREADONLY", [cS], nil))
685+ if ((ex == ex))
677686 then {
678- let eC = (r(eB[0]) + eA)
679- let eD = (r(eB[1]) + eA)
680- let cP = r(invoke(bj, "calcSwapLimitREADONLY", [eC], nil))
681- let eE = valueOrElse(getInteger(this, aG(cL)), 0)
682- let eF = az()
683- let eG = (height - eE)
684- let eH = (eG >= eF)
685- let cQ = if (eH)
687+ let ey = (r(ex[0]) + ew)
688+ let ez = (r(ex[1]) + ew)
689+ let cW = r(invoke(bl, "calcSwapLimitREADONLY", [ey], nil))
690+ let eA = valueOrElse(getInteger(this, aH(cS)), 0)
691+ let eB = aA()
692+ let eC = (height - eA)
693+ let eD = (eC >= eB)
694+ let cX = if (eD)
686695 then 0
687- else valueOrElse(getInteger(this, aE(cL)), 0)
688- let cR = if (eH)
696+ else valueOrElse(getInteger(this, aF(cS)), 0)
697+ let cY = if (eD)
689698 then 0
690- else (eF - eG)
691- $Tuple2(nil, $Tuple5(cP, cQ, cR, eC, eD))
699+ else (eB - eC)
700+ $Tuple2(nil, $Tuple5(cW, cX, cY, ey, ez))
692701 }
693702 else throw("Strict value is not equal to itself.")
694703 }
695704
696705
697-@Verifier(bn)
698-func eI () = {
699- let eJ = toBase58String(bn.id)
700- let eK = ((((if (sigVerify(bn.bodyBytes, bn.proofs[0], fromBase58String(v[0])))
706+@Verifier(bp)
707+func eE () = {
708+ let eF = toBase58String(bp.id)
709+ let eG = makeString(["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "EYwZmURd5KKaQRBjsVa6g8DPisFoS6SovRJtFiL5gMHU", "DtmAfuDdCrHK8spdAeAYzq6MsZegeD9gnsrpuTRkCbVA", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"], x)
710+ let eH = split(valueOrElse(getString(be, "%s__multisig"), eG), x)
711+ let eI = ((((if (sigVerify(bp.bodyBytes, bp.proofs[0], fromBase58String(eH[0])))
701712 then 1
702- else 0) + (if (sigVerify(bn.bodyBytes, bn.proofs[1], fromBase58String(v[1])))
713+ else 0) + (if (sigVerify(bp.bodyBytes, bp.proofs[1], fromBase58String(eH[1])))
703714 then 1
704- else 0)) + (if (sigVerify(bn.bodyBytes, bn.proofs[2], fromBase58String(v[2])))
715+ else 0)) + (if (sigVerify(bp.bodyBytes, bp.proofs[2], fromBase58String(eH[2])))
705716 then 1
706- else 0)) + (if (sigVerify(bn.bodyBytes, bn.proofs[3], fromBase58String(v[3])))
717+ else 0)) + (if (sigVerify(bp.bodyBytes, bp.proofs[3], fromBase58String(eH[3])))
707718 then 2
708719 else 0))
709- let n = bn
710- if ($isInstanceOf(n, "SponsorFeeTransaction"))
720+ let o = bp
721+ if ($isInstanceOf(o, "SponsorFeeTransaction"))
711722 then {
712- let eL = n
713- if (bm(eL))
714- then (eK >= 3)
723+ let eJ = o
724+ if (bo(eJ))
725+ then (eI >= 3)
715726 else false
716727 }
717- else (eK >= 3)
728+ else (eI >= 3)
718729 }
719730
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b,c) = valueOrErrorMessage(getString(b, c), (("Mandatory this." + c) + " is not defined"))
4+let a = "b3ff7472a1d54a9f0c8f6d6665c4458c36a31e48"
5+
6+func b (c,d) = valueOrErrorMessage(getString(c, d), (("Mandatory this." + d) + " is not defined"))
57
68
7-func d (e) = calculateLeaseId(e)
9+func e (f) = calculateLeaseId(f)
810
911
10-func f (c) = valueOrElse(getInteger(this, c), 0)
12+func g (d) = valueOrElse(getInteger(this, d), 0)
1113
1214
13-func g (c) = valueOrElse(getString(this, c), "")
15+func h (d) = valueOrElse(getString(this, d), "")
1416
1517
16-func h (c) = valueOrElse(getBoolean(this, c), false)
18+func i (d) = valueOrElse(getBoolean(this, d), false)
1719
1820
19-func i (b,c) = valueOrElse(getInteger(addressFromStringValue(b), c), 0)
21+func j (c,d) = valueOrElse(getInteger(addressFromStringValue(c), d), 0)
2022
2123
22-func j (b,c) = valueOrElse(getString(addressFromStringValue(b), c), "")
24+func k (c,d) = valueOrElse(getString(addressFromStringValue(c), d), "")
2325
2426
25-func k (b,c) = valueOrElse(getBoolean(addressFromStringValue(b), c), false)
27+func l (c,d) = valueOrElse(getBoolean(addressFromStringValue(c), d), false)
2628
2729
28-func l (m) = {
29- let n = m
30- if ($isInstanceOf(n, "List[Any]"))
30+func m (n) = {
31+ let o = n
32+ if ($isInstanceOf(o, "List[Any]"))
3133 then {
32- let o = n
33- o
34+ let f = o
35+ f
3436 }
3537 else throw("fail to cast into List[Any]")
3638 }
3739
3840
39-func p (m) = {
40- let n = m
41- if ($isInstanceOf(n, "String"))
41+func p (n) = {
42+ let o = n
43+ if ($isInstanceOf(o, "String"))
4244 then {
43- let q = n
45+ let q = o
4446 q
4547 }
4648 else throw("fail to cast into String")
4749 }
4850
4951
50-func r (m) = {
51- let n = m
52- if ($isInstanceOf(n, "Int"))
52+func r (n) = {
53+ let o = n
54+ if ($isInstanceOf(o, "Int"))
5355 then {
54- let s = n
56+ let s = o
5557 s
5658 }
5759 else throw("fail to cast into Int")
5860 }
5961
6062
61-func t (m) = {
62- let n = m
63- if ($isInstanceOf(n, "(Int, Int, Int, Int, Int)"))
63+func t (n) = {
64+ let o = n
65+ if ($isInstanceOf(o, "AttachedPayment"))
6466 then {
65- let u = n
67+ let u = o
6668 u
69+ }
70+ else throw("fail to cast into AttachedPayment")
71+ }
72+
73+
74+func v (n) = {
75+ let o = n
76+ if ($isInstanceOf(o, "(Int, Int, Int, Int, Int)"))
77+ then {
78+ let w = o
79+ w
6780 }
6881 else throw("fail to cast into Int")
6982 }
7083
7184
72-let v = ["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
85+let x = "__"
7386
74-let w = "__"
75-
76-let x = 100000000
77-
78-let y = 1000000
87+let y = 100000000
7988
8089 let z = 1000000
8190
82-let A = 20000
91+let A = 1000000
8392
84-let B = 0
93+let B = 20000
8594
86-let C = 1
95+let C = 0
8796
88-let D = 2
97+let D = 1
8998
90-let E = "neutrino_asset_id"
99+let E = 2
91100
92-let F = "bond_asset_id"
101+let F = "neutrino_asset_id"
93102
94-let G = "auction_contract"
103+let G = "bond_asset_id"
95104
96-let H = "nsbtStakingContract"
105+let H = "auction_contract"
97106
98-let I = "liquidation_contract"
107+let I = "nsbtStakingContract"
99108
100-let J = "rpd_contract"
109+let J = "liquidation_contract"
101110
102-let K = "control_contract"
111+let K = "rpd_contract"
103112
104-let L = "math_contract"
113+let L = "control_contract"
105114
106-let M = "balance_waves_lock_interval"
115+let M = "math_contract"
107116
108-let N = "balance_neutrino_lock_interval"
117+let N = "balance_waves_lock_interval"
109118
110-let O = "min_waves_swap_amount"
119+let O = "balance_neutrino_lock_interval"
111120
112-let P = "min_neutrino_swap_amount"
121+let P = "min_waves_swap_amount"
113122
114-let Q = "node_oracle_provider"
123+let Q = "min_neutrino_swap_amount"
115124
116-let R = "neutrinoOut_swap_feePart"
125+let R = "node_oracle_provider"
117126
118-let S = "wavesOut_swap_feePart"
127+let S = "neutrinoOut_swap_feePart"
119128
120-let T = "fees_manager_address"
129+let T = "wavesOut_swap_feePart"
121130
122-func U (b) = ("%s__" + b)
131+let U = "fees_manager_address"
132+
133+func V (c) = ("%s__" + c)
123134
124135
125-let V = "price"
136+let W = "price"
126137
127-let W = "price_index"
138+let X = "price_index"
128139
129-let X = "is_blocked"
140+let Y = "is_blocked"
130141
131-func Y (Z) = ((V + "_") + toString(Z))
142+func Z (aa) = ((W + "_") + toString(aa))
132143
133144
134-func aa (ab) = ((W + "_") + toString(ab))
145+func ab (ac) = ((X + "_") + toString(ac))
135146
136147
137-func ac (ad) = g(makeString(["%s%d%s", "lease", toString(ad), "nodeAddress"], w))
148+func ad (ae) = h(makeString(["%s%d%s", "lease", toString(ae), "nodeAddress"], x))
138149
139150
140-func ae (ad) = addressFromStringValue(ac(ad))
151+func af (ae) = addressFromStringValue(ad(ae))
141152
142153
143-func af () = valueOrElse(getInteger(this, makeString(["%s%s", "lease", "sponsorshipWavesReserve"], w)), (1000 * x))
154+func ag () = valueOrElse(getInteger(this, makeString(["%s%s", "lease", "sponsorshipWavesReserve"], x)), (1000 * y))
144155
145156
146-func ag (ah) = ("balance_unlock_block_" + ah)
157+func ah (ai) = ("balance_unlock_block_" + ai)
147158
148159
149-func ai (aj) = makeString(["%s%d%s", "lease", toString(aj), "id"], w)
160+func aj (ak) = makeString(["%s%d%s", "lease", toString(ak), "id"], x)
150161
151162
152-func ak (al) = makeString(["%s%s%s", "leaseByAddress", al, "id"], w)
163+func al (am) = makeString(["%s%s%s", "leaseByAddress", am, "id"], x)
153164
154165
155-func am (aj) = makeString(["%s%d%s", "lease", toString(aj), "amount"], w)
166+func an (ak) = makeString(["%s%d%s", "lease", toString(ak), "amount"], x)
156167
157168
158-func an (al) = makeString(["%s%s%s", "leaseByAddress", al, "amount"], w)
169+func ao (am) = makeString(["%s%s%s", "leaseByAddress", am, "amount"], x)
159170
160171
161-func ao (ap) = makeString(["%s%d%s", "leaseGroup", toString(ap), "nodeList"], w)
172+func ap (aq) = makeString(["%s%d%s", "leaseGroup", toString(aq), "nodeList"], x)
162173
163174
164-func aq (ar) = (("min_" + ar) + "_swap_amount")
175+func ar (as) = (("min_" + as) + "_swap_amount")
165176
166177
167-func as (ar) = ("balance_lock_" + ar)
178+func at (as) = ("balance_lock_" + as)
168179
169180
170-func at (ar,ah) = makeString(["balance_lock", ar, ah], "_")
181+func au (as,ai) = makeString(["balance_lock", as, ai], "_")
171182
172183
173-func au (ar) = (("balance_" + ar) + "_lock_interval")
184+func av (as) = (("balance_" + as) + "_lock_interval")
174185
175186
176-func av () = "balance_node_lock_interval"
187+func aw () = "balance_node_lock_interval"
177188
178189
179-func aw (ar) = (ar + "Out_swap_feePart")
190+func ax (as) = (as + "Out_swap_feePart")
180191
181192
182-func ax () = "swaps_timeframe"
193+func ay () = "swaps_timeframe"
183194
184195
185-func ay (ar) = valueOrElse(getInteger(this, aq(ar)), 0)
196+func az (as) = valueOrElse(getInteger(this, ar(as)), 0)
186197
187198
188-func az () = valueOrElse(getInteger(this, ax()), 1440)
199+func aA () = valueOrElse(getInteger(this, ay()), 1440)
189200
190201
191-func aA (ar) = valueOrElse(getInteger(this, as(ar)), 0)
202+func aB (as) = valueOrElse(getInteger(this, at(as)), 0)
192203
193204
194-func aB (ar,ah) = valueOrElse(getInteger(this, at(ar, ah)), 0)
205+func aC (as,ai) = valueOrElse(getInteger(this, au(as, ai)), 0)
195206
196207
197-func aC (ar) = valueOrElse(getInteger(this, au(ar)), 1440)
208+func aD (as) = valueOrElse(getInteger(this, av(as)), 1440)
198209
199210
200-func aD () = valueOrElse(getInteger(this, av()), 1)
211+func aE () = valueOrElse(getInteger(this, aw()), 1)
201212
202213
203-func aE (aF) = makeString(["%s%s", "swapUserSpentInPeriod", aF], w)
214+func aF (aG) = makeString(["%s%s", "swapUserSpentInPeriod", aG], x)
204215
205216
206-func aG (aF) = makeString(["%s%s", "userLastSwapHeight", aF], w)
217+func aH (aG) = makeString(["%s%s", "userLastSwapHeight", aG], x)
207218
208219
209-func aH () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, T), (T + " is not specified"))), (T + " invalid address format"))
220+func aI () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, U), (U + " is not specified"))), (U + " invalid address format"))
210221
211222
212-func aI (aJ,aK) = fraction(fraction(aJ, z, aK), x, y)
223+func aJ (aK,aL) = fraction(fraction(aK, A, aL), y, z)
213224
214225
215-func aL (aJ,aK) = fraction(fraction(aJ, aK, z), y, x)
226+func aM (aK,aL) = fraction(fraction(aK, aL, A), z, y)
216227
217228
218-func aM (aJ,aK) = aL(aJ, aK)
229+func aN (aK,aL) = aM(aK, aL)
219230
220231
221-func aN (aO) = split(aO, ",")
232+func aO (aP) = split(aP, ",")
222233
223234
224-func aP (ar,aQ) = throw(((("The specified amount in " + ar) + " swap is less than the required minimum of ") + toString(aQ)))
235+func aQ (as,aR) = throw(((("The specified amount in " + as) + " swap is less than the required minimum of ") + toString(aR)))
225236
226237
227-func aR () = throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
238+func aS () = throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
228239
229240
230-func aS (ab,aT,aU,aV,aW) = throw(((((((((("invalid price history index: index=" + toString(ab)) + " priceIndex=") + toString(aT)) + " indexHeight=") + toString(aU)) + " unlockHeight=") + toString(aV)) + " prevIndexHeight=") + toString(aW)))
241+func aT (ac,aU,aV,aW,aX) = throw(((((((((("invalid price history index: index=" + toString(ac)) + " priceIndex=") + toString(aU)) + " indexHeight=") + toString(aV)) + " unlockHeight=") + toString(aW)) + " prevIndexHeight=") + toString(aX)))
231242
232243
233-let aX = g(I)
244+let aY = h(J)
234245
235-let aY = g(H)
246+let aZ = h(I)
236247
237-let aZ = fromBase58String(g(E))
248+let ba = fromBase58String(h(F))
238249
239-let ba = g(G)
250+let bb = h(H)
240251
241-let bb = g(J)
252+let bc = h(K)
242253
243-let bc = g(K)
254+let bd = h(L)
244255
245-let bd = g(L)
256+let be = addressFromStringValue(bd)
246257
247-let aT = i(bc, W)
258+let bf = h(M)
248259
249-let be = k(bc, X)
260+let aU = j(bd, X)
250261
251-let bf = fromBase58String(g(Q))
262+let bg = l(bd, Y)
252263
253-let bg = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
264+let bh = fromBase58String(h(R))
254265
255-let bh = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
266+let bi = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
256267
257-let bi = this
268+let bj = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
258269
259-let bj = addressFromStringValue(bd)
270+let bk = this
260271
261-let bk = addressFromStringValue(aY)
272+let bl = addressFromStringValue(bf)
262273
263-let bl = i(bc, V)
274+let bm = addressFromStringValue(aZ)
264275
265-func bm (bn) = {
266- let bo = 100000
267- let bp = 1000
268- let bq = aL(bo, bl)
269- let br = (bq * 2)
270- let bs = fraction(bq, bp, 100)
271- let bt = value(bn.minSponsoredAssetFee)
272- if (if ((bt >= br))
273- then (bs >= bt)
276+let bn = j(bd, W)
277+
278+func bo (bp) = {
279+ let bq = 100000
280+ let br = 1000
281+ let bs = aM(bq, bn)
282+ let bt = (bs * 2)
283+ let bu = fraction(bs, br, 100)
284+ let bv = value(bp.minSponsoredAssetFee)
285+ if (if ((bv >= bt))
286+ then (bu >= bv)
274287 else false)
275- then (bn.assetId == aZ)
288+ then (bp.assetId == ba)
276289 else false
277290 }
278291
279292
280-func bu (Z) = i(bc, Y(Z))
293+func bw (aa) = j(bd, Z(aa))
281294
282295
283-func bv (ab) = i(bc, aa(ab))
296+func bx (ac) = j(bd, ab(ac))
284297
285298
286-func bw (aF) = makeString(["%s%s%s", "paramByUser", aF, "amount"], w)
299+func by (aG) = makeString(["%s%s%s", "paramByUser", aG, "amount"], x)
287300
288301
289-let bx = 1
302+let bz = 1
290303
291-let by = 2
304+let bA = 2
292305
293-let bz = 3
306+let bB = 3
294307
295-let bA = 4
308+let bC = 4
296309
297-let bB = 5
310+let bD = 5
298311
299-let bC = 6
312+let bE = 6
300313
301-let bD = 7
314+let bF = 7
302315
303-let bE = 8
316+let bG = 8
304317
305-let bF = 9
318+let bH = 9
306319
307-let bG = 10
320+let bI = 10
308321
309-let bH = 11
322+let bJ = 11
310323
311-let bI = 12
324+let bK = 12
312325
313-let bJ = 13
326+let bL = 13
314327
315-let bK = 14
328+let bM = 14
316329
317-let bL = 15
330+let bN = 15
318331
319-let bM = 16
332+let bO = 16
320333
321-func bN (aF,bO) = makeString(["%s%s", aF, bO], w)
334+func bP (aG,bQ) = makeString(["%s%s", aG, bQ], x)
322335
323336
324-func bP (ar,bQ,bR,aK,bS,bT,bU,bV,bW,bX,bY,bZ,ab,ca,cb,cc) = makeString(["%s%s%d%d%d%d%d%d%d%d%d%d%d%s", ar, bQ, bR, aK, bS, bT, bU, bV, bW, bX, bY, bZ, ab, ca, cb, cc], w)
337+func bR (as,bS,bT,aL,bU,bV,bW,bX,bY,bZ,ca,cb,ac,cc,cd,ce) = makeString(["%s%s%d%d%d%d%d%d%d%d%d%d%d%s", as, bS, bT, aL, bU, bV, bW, bX, bY, bZ, ca, cb, ac, cc, cd, ce], x)
325338
326339
327-func cd (ar,ce,bY) = bP(ar, "PENDING", toString(ce), "0", "0", "0", toString(height), toString(lastBlock.timestamp), "0", "0", toString(bY), "0", "0", "NULL", "0", "0")
340+func cf (as,cg,ca) = bR(as, "PENDING", toString(cg), "0", "0", "0", toString(height), toString(lastBlock.timestamp), "0", "0", toString(ca), "0", "0", "NULL", "0", "0")
328341
329342
330-func cf (cg,aK,bS,bT,bZ,ab,ca) = bP(cg[bx], "FINISHED", cg[bz], toString(aK), toString(bS), toString(bT), cg[bD], cg[bE], toString(height), toString(lastBlock.timestamp), cg[bH], toString(bZ), toString(ab), ca, cg[bL], cg[bM])
343+func ch (ci,aL,bU,bV,cb,ac,cc) = bR(ci[bz], "FINISHED", ci[bB], toString(aL), toString(bU), toString(bV), ci[bF], ci[bG], toString(height), toString(lastBlock.timestamp), ci[bJ], toString(cb), toString(ac), cc, ci[bN], ci[bO])
331344
332345
333-func ch (aF,ci) = {
334- let cj = bN(aF, ci)
335- split(valueOrErrorMessage(getString(this, cj), ("no swap data for " + cj)), w)
346+func cj (aG,ck) = {
347+ let cl = bP(aG, ck)
348+ split(valueOrErrorMessage(getString(this, cl), ("no swap data for " + cl)), x)
336349 }
337350
338351
339-func ck (cl,cm) = {
340- let cn = fraction(cl, cm, y)
341-[(cl - cn), cn, cl]
352+func cm (cn,co) = {
353+ let cp = fraction(cn, co, z)
354+[(cn - cp), cp, cn]
342355 }
343356
344357
345-func co (cp) = if ((0 > cp))
346- then -(cp)
347- else cp
358+func cq (cr) = if ((0 > cr))
359+ then -(cr)
360+ else cr
348361
349362
350-func cq (cr) = {
351- let cs = ((wavesBalance(bi).available - cr) - af())
352- let ct = f(am(0))
353- let cu = f(am(1))
354- let cv = (cs + ct)
355- let cw = (cs + cu)
356- if (if ((cv > 0))
363+func cs (ct) = {
364+ let cu = ((wavesBalance(bk).available - ct) - ag())
365+ let cv = g(an(0))
366+ let cw = g(an(1))
367+ let cx = (cu + cv)
368+ let cy = (cu + cw)
369+ if (if ((cx > 0))
357370 then true
358- else (cw > 0))
371+ else (cy > 0))
359372 then {
360- let cx = co((cv - cu))
361- let cy = co((cw - ct))
362- if ((cy >= cx))
363- then $Tuple2(0, cv)
364- else $Tuple2(1, cw)
373+ let cz = cq((cx - cw))
374+ let cA = cq((cy - cv))
375+ if ((cA >= cz))
376+ then $Tuple2(0, cx)
377+ else $Tuple2(1, cy)
365378 }
366379 else $Tuple2(-1, 0)
367380 }
368381
369382
370-func cz (cA) = if ((cA.caller != this))
383+func cB (s) = if ((s.caller != this))
371384 then throw("Permission denied: this contract only allowed")
372385 else true
373386
374387
375-func cB (cr) = {
376- let cC = cq(cr)
377- let aj = cC._1
378- let cD = cC._2
379- if ((cD > 0))
388+func cC (ct) = {
389+ let cD = cs(ct)
390+ let ak = cD._1
391+ let cE = cD._2
392+ if ((cE > 0))
380393 then {
381- let cE = ai(aj)
382- let cF = getBinary(this, cE)
383- let cG = if (isDefined(cF))
384- then [LeaseCancel(value(cF))]
394+ let cF = aj(ak)
395+ let cG = getBinary(this, cF)
396+ let cH = if (isDefined(cG))
397+ then [LeaseCancel(value(cG))]
385398 else nil
386- let cH = am(aj)
387- let cI = Lease(ae(aj), cD)
388- (cG ++ [cI, BinaryEntry(cE, d(cI)), IntegerEntry(am(aj), cD)])
399+ let cI = an(ak)
400+ let cJ = Lease(af(ak), cE)
401+ (cH ++ [cJ, BinaryEntry(cF, e(cJ)), IntegerEntry(an(ak), cE)])
389402 }
390403 else nil
391404 }
392405
393406
394-func cJ (ar,cK,cL,cM,cN) = {
395- let cO = cN
396- let cP = cO._1
397- let cQ = cO._2
398- let cR = cO._3
399- let aQ = ay(ar)
400- let cS = aA(ar)
401- let cT = aB(ar, cL)
402- let al = ac(0)
403- let cU = bu(bv(aT))
404- let cV = (al == cL)
405- let cW = if (cV)
406- then aD()
407- else aC(ar)
408- let bY = (height + cW)
409- let cX = if ((ar == "neutrino"))
410- then cK
411- else aL(cK, cU)
412- if ((aQ > cK))
413- then aP(ar, aQ)
414- else if (if (!(cV))
415- then (cQ > 0)
407+func cK (cL) = {
408+ let am = af(cL)
409+ let cM = an(cL)
410+ let cN = g(cM)
411+ let cO = aj(cL)
412+ let cP = value(getBinary(this, cO))
413+ $Tuple5(am, cM, cN, cO, cP)
414+ }
415+
416+
417+func cQ (as,cR,cS,cT,cU) = {
418+ let cV = cU
419+ let cW = cV._1
420+ let cX = cV._2
421+ let cY = cV._3
422+ let aR = az(as)
423+ let cZ = aB(as)
424+ let da = aC(as, cS)
425+ let am = ad(0)
426+ let db = bw(bx(aU))
427+ let dc = (am == cS)
428+ let dd = if (dc)
429+ then aE()
430+ else aD(as)
431+ let ca = (height + dd)
432+ let de = if ((as == "neutrino"))
433+ then cR
434+ else aM(cR, db)
435+ if ((aR > cR))
436+ then aQ(as, aR)
437+ else if (if (!(dc))
438+ then (cX > 0)
416439 else false)
417- then throw(("You have exceeded swap limit! Next allowed swap height is " + toString((height + cR))))
418- else if (if (!(cV))
419- then (cX > cP)
440+ then throw(("You have exceeded swap limit! Next allowed swap height is " + toString((height + cY))))
441+ else if (if (!(dc))
442+ then (de > cW)
420443 else false)
421- then throw(((("You have exceeded your swap limit! Requested: " + toString(cX)) + ", available: ") + toString(cP)))
422- else if (be)
423- then aR()
444+ then throw(((("You have exceeded your swap limit! Requested: " + toString(de)) + ", available: ") + toString(cW)))
445+ else if (bg)
446+ then aS()
424447 else {
425- let cY = if ((ar == "waves"))
426- then cB(0)
448+ let df = if ((as == "waves"))
449+ then cC(0)
427450 else nil
428- $Tuple2(([IntegerEntry(aE(cL), cX), IntegerEntry(aG(cL), height), IntegerEntry(at(ar, cL), (cT + cK)), IntegerEntry(ag(cL), bY), IntegerEntry(as(ar), (cS + cK)), StringEntry(bN(cL, cM), cd(ar, cK, bY))] ++ cY), unit)
451+ $Tuple2(([IntegerEntry(aF(cS), de), IntegerEntry(aH(cS), height), IntegerEntry(au(as, cS), (da + cR)), IntegerEntry(ah(cS), ca), IntegerEntry(at(as), (cZ + cR)), StringEntry(bP(cS, cT), cf(as, cR, ca))] ++ df), unit)
429452 }
430453 }
431454
432455
433-func cZ (da,ab,ci,ca) = {
434- let aF = addressFromStringValue(da)
435- let db = aH()
436- let cg = ch(da, ci)
437- let bY = parseIntValue(cg[bH])
438- let ar = cg[bx]
439- let bR = parseIntValue(cg[bz])
440- let dc = cg[by]
441- let bU = parseIntValue(cg[bD])
442- let dd = valueOrElse(getInteger(this, aw(ar)), A)
443- let cS = aA(ar)
444- let cT = aB(ar, da)
445- let aV = bY
446- let aU = bv(ab)
447- let aW = bv((ab - 1))
448- let cU = bu(aU)
449- let de = if ((ar == "waves"))
450- then $Tuple2(aL(bR, cU), aZ)
451- else if ((ar == "neutrino"))
452- then $Tuple2(aI(bR, cU), unit)
453- else throw(("Unsupported swap type " + ar))
454- let df = ck(de._1, dd)
455- let bS = df[B]
456- let bT = df[C]
457- if (be)
458- then aR()
459- else if ((dc != "PENDING"))
456+func dg (dh,ac,ck,cc) = {
457+ let aG = addressFromStringValue(dh)
458+ let di = aI()
459+ let ci = cj(dh, ck)
460+ let ca = parseIntValue(ci[bJ])
461+ let as = ci[bz]
462+ let bT = parseIntValue(ci[bB])
463+ let dj = ci[bA]
464+ let bW = parseIntValue(ci[bF])
465+ let dk = valueOrElse(getInteger(this, ax(as)), B)
466+ let cZ = aB(as)
467+ let da = aC(as, dh)
468+ let aW = ca
469+ let aV = bx(ac)
470+ let aX = bx((ac - 1))
471+ let db = bw(aV)
472+ let dl = if ((as == "waves"))
473+ then $Tuple2(aM(bT, db), ba)
474+ else if ((as == "neutrino"))
475+ then $Tuple2(aJ(bT, db), unit)
476+ else throw(("Unsupported swap type " + as))
477+ let dm = cm(dl._1, dk)
478+ let bU = dm[C]
479+ let bV = dm[D]
480+ if (bg)
481+ then aS()
482+ else if ((dj != "PENDING"))
460483 then throw("swap has been already processed")
461- else if ((aV > height))
462- then throw((("please wait for: " + toString(aV)) + " block height to withdraw funds"))
463- else if (if (if ((ab > aT))
484+ else if ((aW > height))
485+ then throw((("please wait for: " + toString(aW)) + " block height to withdraw funds"))
486+ else if (if (if ((ac > aU))
464487 then true
465- else (aV > aU))
488+ else (aW > aV))
466489 then true
467- else if ((aW != 0))
468- then (aW >= aV)
490+ else if ((aX != 0))
491+ then (aX >= aW)
469492 else false)
470- then aS(ab, aT, aU, aV, aW)
471- else if ((0 >= df[D]))
493+ then aT(ac, aU, aV, aW, aX)
494+ else if ((0 >= dm[E]))
472495 then throw("balance equals zero")
473- else if (if ((0 > dd))
496+ else if (if ((0 > dk))
474497 then true
475- else (dd >= y))
476- then throw(((("invalid outFeePart config for " + ar) + " swap: outFeePart=") + toString(dd)))
498+ else (dk >= z))
499+ then throw(((("invalid outFeePart config for " + as) + " swap: outFeePart=") + toString(dk)))
477500 else {
478- let cY = if (if ((ar == "neutrino"))
479- then (de._1 > 0)
501+ let ct = if (if ((as == "neutrino"))
502+ then (dl._1 > 0)
480503 else false)
481- then cB(de._1)
482- else nil
483- let dg = (cY ++ [IntegerEntry(at(ar, da), (cT - bR)), IntegerEntry(as(ar), (cS - bR)), ScriptTransfer(aF, bS, de._2), StringEntry(bN(da, ci), cf(cg, cU, bS, bT, aV, ab, ca))])
484- $Tuple2(dg, AttachedPayment(de._2, bT))
504+ then dl._1
505+ else 0
506+ let dn = [IntegerEntry(au(as, dh), (da - bT)), IntegerEntry(at(as), (cZ - bT)), ScriptTransfer(aG, bU, dl._2), StringEntry(bP(dh, ck), ch(ci, db, bU, bV, aW, ac, cc))]
507+ $Tuple3(dn, AttachedPayment(dl._2, bV), ct)
485508 }
486509 }
487510
488511
489-func dh (di) = {
490- let al = ae(di)
491- let dj = am(di)
492- let dk = f(dj)
493- let dl = ai(di)
494- let dm = value(getBinary(this, dl))
495- $Tuple5(al, dj, dk, dl, dm)
496- }
497-
498-
499-@Callable(cA)
500-func constructor (dn,do,dp,dq,dr,ds,dt,du,dv,dw,dx,dy) = {
501- let dz = cz(cA)
502- if ((dz == dz))
503- then if ((size(cA.payments) != 0))
512+@Callable(s)
513+func constructor (do,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz) = {
514+ let dA = cB(s)
515+ if ((dA == dA))
516+ then if ((size(s.payments) != 0))
504517 then throw("no payments allowed")
505- else [StringEntry(E, dn), StringEntry(F, do), StringEntry(G, dp), StringEntry(I, dq), StringEntry(J, dr), StringEntry(Q, ds), IntegerEntry(M, dt), IntegerEntry(N, du), IntegerEntry(O, dv), IntegerEntry(P, dw), IntegerEntry(R, dx), IntegerEntry(S, dy)]
518+ else [StringEntry(F, do), StringEntry(G, dp), StringEntry(H, dq), StringEntry(J, dr), StringEntry(K, ds), StringEntry(R, dt), IntegerEntry(N, du), IntegerEntry(O, dv), IntegerEntry(P, dw), IntegerEntry(Q, dx), IntegerEntry(S, dy), IntegerEntry(T, dz)]
506519 else throw("Strict value is not equal to itself.")
507520 }
508521
509522
510523
511-@Callable(cA)
512-func constructorV2 (bj,bk,dA) = {
513- let dz = cz(cA)
514- if ((dz == dz))
515- then if ((size(cA.payments) != 0))
524+@Callable(s)
525+func constructorV2 (bl,bm,dB) = {
526+ let dA = cB(s)
527+ if ((dA == dA))
528+ then if ((size(s.payments) != 0))
516529 then throw("no payments allowed")
517- else [StringEntry(L, bj), StringEntry(H, bk), IntegerEntry(ax(), dA)]
530+ else [StringEntry(M, bl), StringEntry(I, bm), IntegerEntry(ay(), dB)]
518531 else throw("Strict value is not equal to itself.")
519532 }
520533
521534
522535
523-@Callable(cA)
524-func swapWavesToNeutrino () = if ((size(cA.payments) != 1))
536+@Callable(s)
537+func swapWavesToNeutrino () = if ((size(s.payments) != 1))
525538 then throw("swapWavesToNeutrino require only one payment")
526539 else {
527- let dB = value(cA.payments[0])
528- if (isDefined(dB.assetId))
540+ let dC = value(s.payments[0])
541+ if (isDefined(dC.assetId))
529542 then throw("Only Waves token is allowed for swapping.")
530543 else {
531- let aF = toString(cA.caller)
532- let cM = toBase58String(cA.transactionId)
533- let dC = t(invoke(this, "swapParamsByUserSYSREADONLY", [aF, 0], nil))
534- let dD = cJ("waves", dB.amount, aF, cM, dC)
535- dD
544+ let aG = toString(s.caller)
545+ let cT = toBase58String(s.transactionId)
546+ let dD = v(invoke(this, "swapParamsByUserSYSREADONLY", [aG, 0], nil))
547+ let dE = cQ("waves", dC.amount, aG, cT, dD)
548+ dE
536549 }
537550 }
538551
539552
540553
541-@Callable(cA)
542-func swapNeutrinoToWaves () = if ((size(cA.payments) != 1))
554+@Callable(s)
555+func swapNeutrinoToWaves () = if ((size(s.payments) != 1))
543556 then throw("swapNeutrinoToWaves require only one payment")
544557 else {
545- let dB = value(cA.payments[0])
546- if ((dB.assetId != aZ))
558+ let dC = value(s.payments[0])
559+ if ((dC.assetId != ba))
547560 then throw("Only appropriate Neutrino tokens are allowed for swapping.")
548561 else {
549- let aF = toString(cA.caller)
550- let cM = toBase58String(cA.transactionId)
551- let dC = t(invoke(this, "swapParamsByUserSYSREADONLY", [aF, 0], nil))
552- let dD = cJ("neutrino", dB.amount, aF, cM, dC)
553- dD
562+ let aG = toString(s.caller)
563+ let cT = toBase58String(s.transactionId)
564+ let dD = v(invoke(this, "swapParamsByUserSYSREADONLY", [aG, 0], nil))
565+ let dE = cQ("neutrino", dC.amount, aG, cT, dD)
566+ dE
554567 }
555568 }
556569
557570
558571
559-@Callable(cA)
560-func withdraw (da,ab,ci) = if ((size(cA.payments) != 0))
561- then throw("no payments allowed")
562- else {
563- let dE = cZ(da, ab, ci, toBase58String(cA.transactionId))
564- let dg = dE._1
565- let dF = dE._2
566- let dG = invoke(bk, "deposit", nil, [dF])
567- if ((dG == dG))
568- then dg
569- else throw("Strict value is not equal to itself.")
570- }
572+@Callable(s)
573+func withdraw (dh,ac,ck) = {
574+ let bQ = toBase58String(s.transactionId)
575+ if ((size(s.payments) != 0))
576+ then throw("no payments allowed")
577+ else {
578+ let dF = dg(dh, ac, ck, bQ)
579+ let dn = dF._1
580+ let dG = dF._2
581+ let dH = dF._3
582+ let dI = invoke(this, "internalUnleaseAndLease", [dH], nil)
583+ if ((dI == dI))
584+ then if ((0 >= dG.amount))
585+ then dn
586+ else {
587+ let dJ = invoke(bm, "deposit", nil, [dG])
588+ if ((dJ == dJ))
589+ then dn
590+ else throw("Strict value is not equal to itself.")
591+ }
592+ else throw("Strict value is not equal to itself.")
593+ }
594+ }
571595
572596
573597
574-@Callable(cA)
575-func transferToAuction () = if ((size(cA.payments) != 0))
576- then throw("no payments allowed")
577- else {
578- let dH = l(invoke(bj, "calcNeutinoMetricsREADONLY", nil, nil))
579- let dI = r(dH[3])
580- let dJ = r(dH[5])
581- let dK = r(dH[6])
582- let dL = r(dH[9])
583- let dM = (dJ - assetBalance(addressFromStringValue(ba), bg))
584- let dN = (dK - assetBalance(addressFromStringValue(aX), aZ))
585- if (be)
586- then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
587- else if ((dM > (1 * y)))
588- then [ScriptTransfer(addressFromStringValue(ba), dM, bg)]
589- else if ((dN >= (1 * y)))
590- then [ScriptTransfer(addressFromStringValue(aX), dN, aZ)]
591- else throw(((((((("bond were generated or do not need it. Deficit:" + toString(dM)) + "|") + toString(0)) + ". Surplus:") + toString(dN)) + "|") + toString(dK)))
592- }
598+@Callable(s)
599+func internalUnleaseAndLease (ct) = if ((s.caller != this))
600+ then throw("internalUnleaseAndLease is not public method")
601+ else cC(ct)
593602
594603
595604
596-@Callable(cA)
597-func transferUsdnToUser (aJ,dO) = if ((cA.caller != addressFromStringValue(ba)))
605+@Callable(s)
606+func transferUsdnToUser (aK,dK) = if ((s.caller != addressFromStringValue(bb)))
598607 then throw("Only auction contract is authorized")
599- else [ScriptTransfer(addressFromStringValue(dO), aJ, aZ)]
608+ else [ScriptTransfer(addressFromStringValue(dK), aK, ba)]
600609
601610
602611
603-@Callable(cA)
604-func acceptWaves () = if ((cA.caller != addressFromStringValue(ba)))
612+@Callable(s)
613+func acceptWaves () = if ((s.caller != addressFromStringValue(bb)))
605614 then throw("Currently only auction contract is allowed to call")
606- else $Tuple2(cB(0), "success")
615+ else $Tuple2(cC(0), "success")
607616
608617
609618
610-@Callable(cA)
611-func approveLeasings (dP,ap) = {
612- let dQ = (500000 * x)
613- let dR = [0, 1, 2, 3, 4, 5, 6, 7]
614- let dS = valueOrElse(getString("%s%s__cfg__leasingManagerPub"), "7AUMX54ukYMYvPmma7yoFf5NjZhs4Bu5nz3Ez9EV8sur")
615- let dT = fromBase58String(dS)
616- let dU = valueOrElse(getString("%s%s__cfg__nodesRegistryAddress"), "3P9vKqQKjUdmpXAfiWau8krREYAY1Xr69pE")
617- let dV = addressFromStringValue(dU)
618- let dW = ao(ap)
619- let dX = getString(this, dW)
620- if (isDefined(dX))
621- then throw((("group " + toString(ap)) + " already initialized"))
619+@Callable(s)
620+func approveLeasings (dL,aq) = {
621+ let dM = (500000 * y)
622+ let dN = [0, 1, 2, 3, 4, 5, 6, 7]
623+ let dO = valueOrElse(getString("%s%s__cfg__leasingManagerPub"), "7AUMX54ukYMYvPmma7yoFf5NjZhs4Bu5nz3Ez9EV8sur")
624+ let dP = fromBase58String(dO)
625+ let dQ = valueOrElse(getString("%s%s__cfg__nodesRegistryAddress"), "3P9vKqQKjUdmpXAfiWau8krREYAY1Xr69pE")
626+ let dR = addressFromStringValue(dQ)
627+ let dS = ap(aq)
628+ let dT = getString(this, dS)
629+ if (isDefined(dT))
630+ then throw((("group " + toString(aq)) + " already initialized"))
622631 else {
623- let dY = split(dP, w)
624- let dZ = size(dR)
625- if ((cA.callerPublicKey != dT))
632+ let dU = split(dL, x)
633+ let dV = size(dN)
634+ if ((s.callerPublicKey != dP))
626635 then throw("approveLeasings not authorized")
627636 else {
628- let ea = dh(0)
629- let eb = ea._1
630- let ec = ea._2
631- let ed = ea._3
632- let ee = ea._4
633- let ef = ea._5
634- let eg = dh(1)
635- let eh = eg._1
636- let ei = eg._2
637- let ej = eg._3
638- let ek = eg._4
639- let el = eg._5
640- let em = Lease(eb, (ed - ((dQ * dZ) / 2)))
641- let en = Lease(eh, (ej - ((dQ * dZ) / 2)))
642- let eo = invoke(dV, "validateAndApproveLeasings", [dP], nil)
643- if ((eo == eo))
637+ let dW = cK(0)
638+ let dX = dW._1
639+ let dY = dW._2
640+ let dZ = dW._3
641+ let ea = dW._4
642+ let eb = dW._5
643+ let ec = cK(1)
644+ let ed = ec._1
645+ let ee = ec._2
646+ let ef = ec._3
647+ let eg = ec._4
648+ let eh = ec._5
649+ let ei = Lease(dX, (dZ - ((dM * dV) / 2)))
650+ let ej = Lease(ed, (ef - ((dM * dV) / 2)))
651+ let ek = invoke(dR, "validateAndApproveLeasings", [dL], nil)
652+ if ((ek == ek))
644653 then {
645- func ep (eq,cA) = {
646- let er = dY[cA]
647- let es = Lease(addressFromStringValue(er), dQ)
648- (eq ++ [es, BinaryEntry(ak(er), d(es)), IntegerEntry(an(er), dQ)])
654+ func el (em,s) = {
655+ let en = dU[s]
656+ let eo = Lease(addressFromStringValue(en), dM)
657+ (em ++ [eo, BinaryEntry(al(en), e(eo)), IntegerEntry(ao(en), dM)])
649658 }
650659
651- ([StringEntry(dW, dP), BinaryEntry(ee, d(em)), BinaryEntry(ek, d(en)), IntegerEntry(ec, em.amount), IntegerEntry(ei, en.amount), LeaseCancel(ef), LeaseCancel(el), em, en] ++ {
652- let et = dR
653- let eu = size(et)
654- let ev = nil
655- func ew (ex,ey) = if ((ey >= eu))
656- then ex
657- else ep(ex, et[ey])
660+ ([StringEntry(dS, dL), BinaryEntry(ea, e(ei)), BinaryEntry(eg, e(ej)), IntegerEntry(dY, ei.amount), IntegerEntry(ee, ej.amount), LeaseCancel(eb), LeaseCancel(eh), ei, ej] ++ {
661+ let ep = dN
662+ let eq = size(ep)
663+ let er = nil
664+ func es (et,eu) = if ((eu >= eq))
665+ then et
666+ else el(et, ep[eu])
658667
659- func ez (ex,ey) = if ((ey >= eu))
660- then ex
668+ func ev (et,eu) = if ((eu >= eq))
669+ then et
661670 else throw("List size exceeds 8")
662671
663- ez(ew(ew(ew(ew(ew(ew(ew(ew(ev, 0), 1), 2), 3), 4), 5), 6), 7), 8)
672+ ev(es(es(es(es(es(es(es(es(er, 0), 1), 2), 3), 4), 5), 6), 7), 8)
664673 })
665674 }
666675 else throw("Strict value is not equal to itself.")
667676 }
668677 }
669678 }
670679
671680
672681
673-@Callable(cA)
674-func swapParamsByUserSYSREADONLY (cL,eA) = {
675- let eB = l(invoke(bk, "nsbtStakingSYSREADONLY", [cL], nil))
676- if ((eB == eB))
682+@Callable(s)
683+func swapParamsByUserSYSREADONLY (cS,ew) = {
684+ let ex = m(invoke(bm, "nsbtStakingSYSREADONLY", [cS], nil))
685+ if ((ex == ex))
677686 then {
678- let eC = (r(eB[0]) + eA)
679- let eD = (r(eB[1]) + eA)
680- let cP = r(invoke(bj, "calcSwapLimitREADONLY", [eC], nil))
681- let eE = valueOrElse(getInteger(this, aG(cL)), 0)
682- let eF = az()
683- let eG = (height - eE)
684- let eH = (eG >= eF)
685- let cQ = if (eH)
687+ let ey = (r(ex[0]) + ew)
688+ let ez = (r(ex[1]) + ew)
689+ let cW = r(invoke(bl, "calcSwapLimitREADONLY", [ey], nil))
690+ let eA = valueOrElse(getInteger(this, aH(cS)), 0)
691+ let eB = aA()
692+ let eC = (height - eA)
693+ let eD = (eC >= eB)
694+ let cX = if (eD)
686695 then 0
687- else valueOrElse(getInteger(this, aE(cL)), 0)
688- let cR = if (eH)
696+ else valueOrElse(getInteger(this, aF(cS)), 0)
697+ let cY = if (eD)
689698 then 0
690- else (eF - eG)
691- $Tuple2(nil, $Tuple5(cP, cQ, cR, eC, eD))
699+ else (eB - eC)
700+ $Tuple2(nil, $Tuple5(cW, cX, cY, ey, ez))
692701 }
693702 else throw("Strict value is not equal to itself.")
694703 }
695704
696705
697-@Verifier(bn)
698-func eI () = {
699- let eJ = toBase58String(bn.id)
700- let eK = ((((if (sigVerify(bn.bodyBytes, bn.proofs[0], fromBase58String(v[0])))
706+@Verifier(bp)
707+func eE () = {
708+ let eF = toBase58String(bp.id)
709+ let eG = makeString(["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "EYwZmURd5KKaQRBjsVa6g8DPisFoS6SovRJtFiL5gMHU", "DtmAfuDdCrHK8spdAeAYzq6MsZegeD9gnsrpuTRkCbVA", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"], x)
710+ let eH = split(valueOrElse(getString(be, "%s__multisig"), eG), x)
711+ let eI = ((((if (sigVerify(bp.bodyBytes, bp.proofs[0], fromBase58String(eH[0])))
701712 then 1
702- else 0) + (if (sigVerify(bn.bodyBytes, bn.proofs[1], fromBase58String(v[1])))
713+ else 0) + (if (sigVerify(bp.bodyBytes, bp.proofs[1], fromBase58String(eH[1])))
703714 then 1
704- else 0)) + (if (sigVerify(bn.bodyBytes, bn.proofs[2], fromBase58String(v[2])))
715+ else 0)) + (if (sigVerify(bp.bodyBytes, bp.proofs[2], fromBase58String(eH[2])))
705716 then 1
706- else 0)) + (if (sigVerify(bn.bodyBytes, bn.proofs[3], fromBase58String(v[3])))
717+ else 0)) + (if (sigVerify(bp.bodyBytes, bp.proofs[3], fromBase58String(eH[3])))
707718 then 2
708719 else 0))
709- let n = bn
710- if ($isInstanceOf(n, "SponsorFeeTransaction"))
720+ let o = bp
721+ if ($isInstanceOf(o, "SponsorFeeTransaction"))
711722 then {
712- let eL = n
713- if (bm(eL))
714- then (eK >= 3)
723+ let eJ = o
724+ if (bo(eJ))
725+ then (eI >= 3)
715726 else false
716727 }
717- else (eK >= 3)
728+ else (eI >= 3)
718729 }
719730

github/deemru/w8io/6500d08 
299.21 ms