tx · 4TrBmd5tZyny5ywkKMbKzoqf8buadp49FeEJTKmsgE4h

3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo:  -0.01400000 Waves

2019.11.22 20:19 [1807052] smart account 3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo > SELF 0.00000000 Waves

{ "type": 13, "id": "4TrBmd5tZyny5ywkKMbKzoqf8buadp49FeEJTKmsgE4h", "fee": 1400000, "feeAssetId": null, "timestamp": 1574443192029, "version": 1, "sender": "3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo", "senderPublicKey": "BRnVwSVctnV8pge5vRpsJdWnkjWEJspFb6QvrmZvu3Ht", "proofs": [ "2J5QzybJzN6tq47XTeQevcKMpyd1XUqGhMVrgdEGPYU3G1K7oLD7qhVepmi7BULCmKNtrZd9dWNbD76YWzw6M5Ga" ], "script": "base64:AAIDAAAAAAAAABMIARIAEgASBAoCCAESABIDCgEIAAAASgEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAxnZXRCb29sQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEHAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAABAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcAAAAADFNFTkRUWEVYUElSRQAAAAAAAAAAHgAAAAAPTElTVFNQTElUU1lNQk9MAgAAAAFfAAAAAA5MSVNUREFUQVNZTUJPTAIAAAABKwAAAAAHV0FWRUxFVAAAAAAABfXhAAAAAAAFUEFVTEkAAAAAAAAPQkAAAAAADURFRklDSVRPRkZTRVQAAAAAAAAAAAoAAAAAEk5ldXRyaW5vQXNzZXRJZEtleQIAAAARbmV1dHJpbm9fYXNzZXRfaWQAAAAADkJvbmRBc3NldElkS2V5AgAAAA1ib25kX2Fzc2V0X2lkAAAAABJBdWN0aW9uQ29udHJhY3RLZXkCAAAAEGF1Y3Rpb25fY29udHJhY3QAAAAAFkxpcXVpZGF0aW9uQ29udHJhY3RLZXkCAAAAFGxpcXVpZGF0aW9uX2NvbnRyYWN0AAAAAA5SUERDb250cmFjdEtleQIAAAAMcnBkX2NvbnRyYWN0AAAAABFDb250b2xDb250cmFjdEtleQIAAAAQY29udHJvbF9jb250cmFjdAAAAAAbQmFsYW5jZVdhdmVzTG9ja0ludGVydmFsS2V5AgAAABtiYWxhbmNlX3dhdmVzX2xvY2tfaW50ZXJ2YWwAAAAAHkJhbGFuY2VOZXV0cmlub0xvY2tJbnRlcnZhbEtleQIAAAAeYmFsYW5jZV9uZXV0cmlub19sb2NrX2ludGVydmFsAAAAABVNaW5XYXZlc1N3YXBBbW91bnRLZXkCAAAAFW1pbl93YXZlc19zd2FwX2Ftb3VudAAAAAAYTWluTmV1dHJpbm9Td2FwQW1vdW50S2V5AgAAABhtaW5fbmV1dHJpbm9fc3dhcF9hbW91bnQAAAAAFU5vZGVPcmFjbGVQcm92aWRlcktleQIAAAAUbm9kZV9vcmFjbGVfcHJvdmlkZXIAAAAADVJQREJhbGFuY2VLZXkCAAAAC3JwZF9iYWxhbmNlAQAAABhnZXRSUERDb250cmFjdEJhbGFuY2VLZXkAAAABAAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACBQAAAA1SUERCYWxhbmNlS2V5AgAAAAFfCQACWAAAAAEFAAAAB2Fzc2V0SWQAAAAACFByaWNlS2V5AgAAAAVwcmljZQAAAAANUHJpY2VJbmRleEtleQIAAAALcHJpY2VfaW5kZXgAAAAADElzQmxvY2tlZEtleQIAAAAKaXNfYmxvY2tlZAEAAAASZ2V0UHJpY2VIaXN0b3J5S2V5AAAAAQAAAAVibG9jawkAASwAAAACCQABLAAAAAIFAAAACFByaWNlS2V5AgAAAAFfCQABpAAAAAEFAAAABWJsb2NrAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABAAAABWluZGV4CQABLAAAAAIJAAEsAAAAAgUAAAANUHJpY2VJbmRleEtleQIAAAABXwkAAaQAAAABBQAAAAVpbmRleAAAAAAQQmFsYW5jZUxvY2Vka0tleQIAAAANYmFsYW5jZV9sb2NrXwAAAAAVV2F2ZXNMb2NrZWRCYWxhbmNlS2V5CQABLAAAAAIFAAAAEEJhbGFuY2VMb2NlZGtLZXkCAAAABXdhdmVzAAAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAAQQmFsYW5jZUxvY2Vka0tleQIAAAAIbmV1dHJpbm8BAAAAIGdldFJQRFNuYXBzaG90Q29udHJhY3RCYWxhbmNlS2V5AAAAAgAAAAVjb3VudAAAAAdhc3NldElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADVJQREJhbGFuY2VLZXkCAAAAAV8JAAJYAAAAAQUAAAAHYXNzZXRJZAIAAAABXwkAAaQAAAABBQAAAAVjb3VudAEAAAAdZ2V0Q2FuY2VsTGVhc2VUeFJlc2VydmVGZWVLZXkAAAABAAAABGhhc2gJAAEsAAAAAgkAASwAAAACAgAAABtjYW5jZWxfbGVhc2VfdHhfcmVzZXJ2ZV9mZWUCAAAAAV8FAAAABGhhc2gBAAAAGGdldFdhdmVzTG9ja2VkQmFsYW5jZUtleQAAAAEAAAAFb3duZXIJAAEsAAAAAgkAASwAAAACBQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkCAAAAAV8FAAAABW93bmVyAQAAABtnZXROZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAABAAAABW93bmVyCQABLAAAAAIJAAEsAAAAAgUAAAAYTmV1dHJpbm9Mb2NrZWRCYWxhbmNlS2V5AgAAAAFfBQAAAAVvd25lcgEAAAAYZ2V0QmFsYW5jZVVubG9ja0Jsb2NrS2V5AAAAAQAAAAVvd25lcgkAASwAAAACAgAAABViYWxhbmNlX3VubG9ja19ibG9ja18FAAAABW93bmVyAQAAAA9nZXRSUERQcm9maXRLZXkAAAABAAAABWNvdW50CQABLAAAAAIJAAEsAAAAAgIAAAAKcnBkX3Byb2ZpdAIAAAABXwkAAaQAAAABBQAAAAVjb3VudAEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAaQAAAAIJAABoAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAABmFtb3VudAAAAAAAAAAAZAUAAAAFcHJpY2UFAAAAB1dBVkVMRVQFAAAABVBBVUxJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABpAAAAAgkAAGgAAAACCQAAaQAAAAIJAABoAAAAAgUAAAAGYW1vdW50BQAAAAVwcmljZQAAAAAAAAAAZAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEAAAAGYW1vdW50CQAAaQAAAAIFAAAABmFtb3VudAUAAAAFUEFVTEkBAAAAFWNvbnZlcnRCb25kVG9OZXV0cmlubwAAAAEAAAAGYW1vdW50CQAAaAAAAAIFAAAABmFtb3VudAUAAAAFUEFVTEkBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAVY29udmVydE5ldXRyaW5vVG9Cb25kAAAAAQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAZhbW91bnQFAAAABXByaWNlAAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFkxpcXVpZGF0aW9uQ29udHJhY3RLZXkAAAAAFW5ldXRyaW5vQXNzZXRJZFN0cmluZwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAA9uZXV0cmlub0Fzc2V0SWQJAAJZAAAAAQUAAAAVbmV1dHJpbm9Bc3NldElkU3RyaW5nAAAAAA9hdWN0aW9uQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEkF1Y3Rpb25Db250cmFjdEtleQAAAAALcnBkQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADlJQRENvbnRyYWN0S2V5AAAAAA9jb250cm9sQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEUNvbnRvbENvbnRyYWN0S2V5AAAAAAxjdXJyZW50UHJpY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QFAAAACFByaWNlS2V5AAAAAApwcmljZUluZGV4CQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAA1QcmljZUluZGV4S2V5AAAAAAlpc0Jsb2NrZWQJAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAAxJc0Jsb2NrZWRLZXkAAAAAEm5vZGVPcmFjbGVQcm92aWRlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAVTm9kZU9yYWNsZVByb3ZpZGVyS2V5AAAAABhiYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWwJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAG0JhbGFuY2VXYXZlc0xvY2tJbnRlcnZhbEtleQAAAAAbYmFsYW5jZU5ldXRyaW5vTG9ja0ludGVydmFsCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAB5CYWxhbmNlTmV1dHJpbm9Mb2NrSW50ZXJ2YWxLZXkAAAAAEm1pbldhdmVzU3dhcEFtb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAVTWluV2F2ZXNTd2FwQW1vdW50S2V5AAAAABVtaW5OZXV0cmlub1N3YXBBbW91bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAGE1pbk5ldXRyaW5vU3dhcEFtb3VudEtleQAAAAAHcmVzZXJ2ZQkAAGUAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlAAAAAAtib25kQXNzZXRJZAkAAlkAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA5Cb25kQXNzZXRJZEtleQAAAAAKYm9uZFN1cHBseQkAAGUAAAACCAkBAAAAB2V4dHJhY3QAAAABCQAD7AAAAAEFAAAAC2JvbmRBc3NldElkAAAACHF1YW50aXR5CQAD6wAAAAIFAAAABHRoaXMFAAAAC2JvbmRBc3NldElkAAAAAA5uZXV0cmlub1N1cHBseQkAAGQAAAACCQAAZQAAAAIICQEAAAAHZXh0cmFjdAAAAAEJAAPsAAAAAQUAAAAPbmV1dHJpbm9Bc3NldElkAAAACHF1YW50aXR5CQAD6wAAAAIFAAAABHRoaXMFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlAAAAAAdzdXJwbHVzCQAAZQAAAAIJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAHcmVzZXJ2ZQUAAAAMY3VycmVudFByaWNlBQAAAA5uZXV0cmlub1N1cHBseQAAAAAHZGVmaWNpdAkAAGUAAAACBQAAAA5uZXV0cmlub1N1cHBseQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAdyZXNlcnZlBQAAAAxjdXJyZW50UHJpY2UBAAAAFWdldFJQRENvbnRyYWN0QmFsYW5jZQAAAAEAAAAHYXNzZXRJZAkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAC3JwZENvbnRyYWN0CQEAAAAYZ2V0UlBEQ29udHJhY3RCYWxhbmNlS2V5AAAAAQUAAAAHYXNzZXRJZAEAAAAPZ2V0UHJpY2VIaXN0b3J5AAAAAQAAAAVibG9jawkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAEmdldFByaWNlSGlzdG9yeUtleQAAAAEFAAAABWJsb2NrAQAAABVnZXRIZWlnaHRQcmljZUJ5SW5kZXgAAAABAAAABWluZGV4CQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0CQEAAAAYZ2V0SGVpZ2h0UHJpY2VCeUluZGV4S2V5AAAAAQUAAAAFaW5kZXgBAAAAGmdldENhbmNlbExlYXNlVHhSZXNlcnZlRmVlAAAAAQAAAARoYXNoCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAdZ2V0Q2FuY2VsTGVhc2VUeFJlc2VydmVGZWVLZXkAAAABBQAAAARoYXNoAQAAABVnZXRXYXZlc0xvY2tlZEJhbGFuY2UAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlS2V5AAAAAQUAAAAFb3duZXIBAAAAGGdldE5ldXRyaW5vTG9ja2VkQmFsYW5jZQAAAAEAAAAFb3duZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABtnZXROZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAABBQAAAAVvd25lcgEAAAAVZ2V0VW5sb2NrQmFsYW5jZUJsb2NrAAAAAQAAAAVvd25lcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldEJhbGFuY2VVbmxvY2tCbG9ja0tleQAAAAEFAAAABW93bmVyAQAAAAxnZXRSUERQcm9maXQAAAABAAAABWNvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPZ2V0UlBEUHJvZml0S2V5AAAAAQUAAAAFY291bnQAAAAFAAAAAWkBAAAAE3N3YXBXYXZlc1RvTmV1dHJpbm8AAAAABAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIDCQAAZgAAAAIFAAAAEm1pbldhdmVzU3dhcEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAQFRoZSBzcGVjaWZpZWQgV2F2ZXMgYW1vdW50IGlzIGxlc3MgdGhhbiB0aGUgcmVxdWlyZWQgbWluaW11bSBvZiAJAAGkAAAAAQUAAAASbWluV2F2ZXNTd2FwQW1vdW50AgAAAAogd2F2ZWxldHMuAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAClPbmx5IFdhdmVzIHRva2VuIGlzIGFsbG93ZWQgZm9yIHN3YXBwaW5nLgMFAAAACWlzQmxvY2tlZAkAAAIAAAABAgAAAFpjb250cmFjdCBpcyBibG9ja2VkIGJ5IEVNRVJHRU5DWSBTSFVURE9XTiBhY3Rpb25zIHVudGlsbCByZWFjdGl2YXRpb24gYnkgZW1lcmdlbmN5IG9yYWNsZXMDCQAAZgAAAAIJAQAAABVnZXRVbmxvY2tCYWxhbmNlQmxvY2sAAAABBQAAAAdhY2NvdW50BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABmF3YWl0IAkAAaQAAAABCQAAZQAAAAIJAQAAABVnZXRVbmxvY2tCYWxhbmNlQmxvY2sAAAABBQAAAAdhY2NvdW50BQAAAAZoZWlnaHQCAAAAByBibG9ja3MDAwkBAAAAAiE9AAAAAgkBAAAAGGdldE5ldXRyaW5vTG9ja2VkQmFsYW5jZQAAAAEFAAAAB2FjY291bnQAAAAAAAAAAAAGCQEAAAACIT0AAAACCQEAAAAVZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAACJwbGVhc2Ugd2l0aGRyYXcgbG9ja2VkIGZ1bmRzIGZpcnN0CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlS2V5AAAAAQUAAAAHYWNjb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRCYWxhbmNlVW5sb2NrQmxvY2tLZXkAAAABBQAAAAdhY2NvdW50CQAAZAAAAAIFAAAABmhlaWdodAUAAAAYYmFsYW5jZVdhdmVzTG9ja0ludGVydmFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkJAABkAAAAAgUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAAE3N3YXBOZXV0cmlub1RvV2F2ZXMAAAAABAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIDCQAAZgAAAAIFAAAAFW1pbk5ldXRyaW5vU3dhcEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAQ1RoZSBzcGVjaWZpZWQgTmV1dHJpbm8gYW1vdW50IGlzIGxlc3MgdGhhbiB0aGUgcmVxdWlyZWQgbWluaW11bSBvZiAJAAGkAAAAAQUAAAAVbWluTmV1dHJpbm9Td2FwQW1vdW50AgAAABAgTmV1dHJpbm8gY2VudHMuAwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAYVRoZSBjb250cmFjdCBpcyBibG9ja2VkIGJ5IEVNRVJHRU5DWSBTSFVURE9XTi4gUGxlYXNlIHdhaXQgZm9yIHJlYWN0aXZhdGlvbiBieSBlbWVyZ2VuY3kgb3JhY2xlcy4DCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAD25ldXRyaW5vQXNzZXRJZAkAAAIAAAABAgAAADpPbmx5IGFwcHJvcHJpYXRlIE5ldXRyaW5vIHRva2VucyBhcmUgYWxsb3dlZCBmb3Igc3dhcHBpbmcuAwkAAGYAAAACCQEAAAAVZ2V0VW5sb2NrQmFsYW5jZUJsb2NrAAAAAQUAAAAHYWNjb3VudAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZhd2FpdCAJAAGkAAAAAQkAAGUAAAACCQEAAAAVZ2V0VW5sb2NrQmFsYW5jZUJsb2NrAAAAAQUAAAAHYWNjb3VudAUAAAAGaGVpZ2h0AgAAAAcgYmxvY2tzAwMJAQAAAAIhPQAAAAIJAQAAABhnZXROZXV0cmlub0xvY2tlZEJhbGFuY2UAAAABBQAAAAdhY2NvdW50AAAAAAAAAAAABgkBAAAAAiE9AAAAAgkBAAAAFWdldFdhdmVzTG9ja2VkQmFsYW5jZQAAAAEFAAAAB2FjY291bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAicGxlYXNlIHdpdGhkcmF3IGxvY2tlZCBmdW5kcyBmaXJzdAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAG2dldE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAEFAAAAB2FjY291bnQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0QmFsYW5jZVVubG9ja0Jsb2NrS2V5AAAAAQUAAAAHYWNjb3VudAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAG2JhbGFuY2VOZXV0cmlub0xvY2tJbnRlcnZhbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAYTmV1dHJpbm9Mb2NrZWRCYWxhbmNlS2V5CQAAZAAAAAIFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQgFAAAAA3BtdAAAAAZhbW91bnQFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAHYWNjb3VudAAAAAVpbmRleAQAAAAMdW5sb2NrSGVpZ2h0CQEAAAAVZ2V0VW5sb2NrQmFsYW5jZUJsb2NrAAAAAQUAAAAHYWNjb3VudAQAAAAWdXNlcldhdmVzTG9ja2VkQmFsYW5jZQkBAAAAFWdldFdhdmVzTG9ja2VkQmFsYW5jZQAAAAEFAAAAB2FjY291bnQEAAAAGXVzZXJOZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAABhnZXROZXV0cmlub0xvY2tlZEJhbGFuY2UAAAABBQAAAAdhY2NvdW50BAAAAAtpbmRleEhlaWdodAkBAAAAFWdldEhlaWdodFByaWNlQnlJbmRleAAAAAEFAAAABWluZGV4BAAAAA9wcmV2SW5kZXhIZWlnaHQJAQAAABVnZXRIZWlnaHRQcmljZUJ5SW5kZXgAAAABCQAAZQAAAAIFAAAABWluZGV4AAAAAAAAAAABBAAAAAxwcmljZUJ5SW5kZXgJAQAAAA9nZXRQcmljZUhpc3RvcnkAAAABBQAAAAtpbmRleEhlaWdodAQAAAAObmV1dHJpbm9BbW91bnQJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAWdXNlcldhdmVzTG9ja2VkQmFsYW5jZQUAAAAMcHJpY2VCeUluZGV4BAAAAAt3YXZlc0Ftb3VudAkBAAAAFmNvbnZlcnROZXV0cmlub1RvV2F2ZXMAAAACBQAAABl1c2VyTmV1dHJpbm9Mb2NrZWRCYWxhbmNlBQAAAAxwcmljZUJ5SW5kZXgDBQAAAAlpc0Jsb2NrZWQJAAACAAAAAQIAAABaY29udHJhY3QgaXMgYmxvY2tlZCBieSBFTUVSR0VOQ1kgU0hVVERPV04gYWN0aW9ucyB1bnRpbGwgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzAwkAAGYAAAACBQAAAAx1bmxvY2tIZWlnaHQFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAARcGxlYXNlIHdhaXQgZm9yOiAJAAGkAAAAAQUAAAAMdW5sb2NrSGVpZ2h0AgAAACUgYmxvY2sgaGVpZ2h0IHRvIHdpdGhkcmF3IFdBVkVTIGZ1bmRzAwMDCQAAZgAAAAIFAAAABWluZGV4BQAAAApwcmljZUluZGV4BgkAAGYAAAACBQAAAAx1bmxvY2tIZWlnaHQFAAAAC2luZGV4SGVpZ2h0BgMJAQAAAAIhPQAAAAIFAAAAD3ByZXZJbmRleEhlaWdodAAAAAAAAAAAAAkAAGcAAAACBQAAAA9wcmV2SW5kZXhIZWlnaHQFAAAADHVubG9ja0hlaWdodAcJAAACAAAAAQIAAAAbaW52YWxpZCBwcmljZSBoaXN0b3J5IGluZGV4AwMJAABnAAAAAgAAAAAAAAAAAAUAAAAObmV1dHJpbm9BbW91bnQJAABnAAAAAgAAAAAAAAAAAAUAAAALd2F2ZXNBbW91bnQHCQAAAgAAAAECAAAAE2JhbGFuY2UgZXF1YWxzIHplcm8JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlS2V5AAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAG2dldE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAEFAAAAB2FjY291bnQAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFVdhdmVzTG9ja2VkQmFsYW5jZUtleQkAAGUAAAACBQAAABJ3YXZlc0xvY2tlZEJhbGFuY2UFAAAAFnVzZXJXYXZlc0xvY2tlZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQkAAGUAAAACBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UFAAAAGXVzZXJOZXV0cmlub0xvY2tlZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQFAAAAC3dhdmVzQW1vdW50BQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWNjb3VudAUAAAAObmV1dHJpbm9BbW91bnQFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAAEXRyYW5zZmVyVG9BdWN0aW9uAAAAAAQAAAARZGVmaWNpdEJvbmRBbW91bnQJAABlAAAAAgkBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEFAAAAB2RlZmljaXQJAAPrAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAC2JvbmRBc3NldElkBAAAAAtzdXJwbHVzQm9uZAkAAGUAAAACCQEAAAAVY29udmVydE5ldXRyaW5vVG9Cb25kAAAAAQUAAAAHc3VycGx1cwkAA+sAAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAD2F1Y3Rpb25Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkAwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAWmNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOIGFjdGlvbnMgdW50aWxsIHJlYWN0aXZhdGlvbiBieSBlbWVyZ2VuY3kgb3JhY2xlcwMDCQAAZwAAAAIFAAAAEWRlZmljaXRCb25kQW1vdW50CQAAaQAAAAIJAABoAAAAAgkBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEFAAAADm5ldXRyaW5vU3VwcGx5BQAAAA1ERUZJQ0lUT0ZGU0VUAAAAAAAAAABkCQAAZgAAAAIFAAAAEWRlZmljaXRCb25kQW1vdW50AAAAAAAAAAAABwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAD2F1Y3Rpb25Db250cmFjdAUAAAARZGVmaWNpdEJvbmRBbW91bnQFAAAAC2JvbmRBc3NldElkBQAAAANuaWwDCQAAZgAAAAIFAAAAC3N1cnBsdXNCb25kAAAAAAAAAAAACQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAATbGlxdWlkYXRpb25Db250cmFjdAkBAAAAFWNvbnZlcnRCb25kVG9OZXV0cmlubwAAAAEFAAAAC3N1cnBsdXNCb25kBQAAAA9uZXV0cmlub0Fzc2V0SWQFAAAAA25pbAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAvYm9uZCB3ZXJlIGdlbmVyYXRlZCBvciBkbyBub3QgbmVlZCBpdC4gRGVmaWNpdDoJAAGkAAAAAQUAAAARZGVmaWNpdEJvbmRBbW91bnQCAAAAAXwJAAGkAAAAAQkAAGkAAAACCQAAaAAAAAIFAAAADm5ldXRyaW5vU3VwcGx5BQAAAA1ERUZJQ0lUT0ZGU0VUAAAAAAAAAABkAgAAAAouIFN1cnBsdXM6CQABpAAAAAEFAAAAC3N1cnBsdXNCb25kAAAAAWkBAAAACHRyYW5zZmVyAAAAAQAAAAdhY2NvdW50BAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQIBQAAAANwbXQAAAAGYW1vdW50CAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAAmlkCQACWAAAAAEIBQAAAAJ0eAAAAAJpZAQAAAAHJG1hdGNoMAUAAAACdHgDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABZMZWFzZUNhbmNlbFRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABBMZWFzZVRyYW5zYWN0aW9uBAAAAAlsZWFzaW5nVHgFAAAAByRtYXRjaDADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQkAAAAAAAACCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABBQAAABJub2RlT3JhY2xlUHJvdmlkZXIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkHCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleXpnN6I=", "chainId": 87, "height": 1807052, "spentComplexity": 0 } View: original | compacted Prev: 8mD5fFf3sZ58QNXZXKatW8bBoBjHcjt9aZLQHGueMK8z Next: 4jfLk7cbm1N1Lo6q9WPr6k7B96JuGSHDsCk9vKFUaTkk Diff:
OldNewDifferences
7575
7676 let n = 100000000
7777
78-let o = 100
78+let o = 1000000
7979
80-let p = 20
80+let p = 10
8181
82-let q = 90
82+let q = "neutrino_asset_id"
8383
84-let r = 10
84+let r = "bond_asset_id"
8585
86-let s = 10
86+let s = "auction_contract"
8787
88-let t = "waves"
88+let t = "liquidation_contract"
8989
90-let u = "canceled"
90+let u = "rpd_contract"
9191
92-let v = "new"
92+let v = "control_contract"
9393
94-let w = "neutrino_asset_id"
94+let w = "balance_waves_lock_interval"
9595
96-let x = "bond_asset_id"
96+let x = "balance_neutrino_lock_interval"
9797
98-let y = "reserve_contract"
98+let y = "min_waves_swap_amount"
9999
100-let z = "auction_contract"
100+let z = "min_neutrino_swap_amount"
101101
102-let A = "liquidation_contract"
102+let A = "node_oracle_provider"
103103
104-let B = "rpd_contract"
104+let B = "rpd_balance"
105105
106-let C = "control_contract"
107-
108-let D = "balance_lock_interval"
109-
110-let E = "min_waves_swap_amount"
111-
112-let F = "min_neutrino_swap_amount"
113-
114-let G = "node_address"
115-
116-let H = "oracle_node_provider"
117-
118-let I = "leasing_interval"
119-
120-let J = "rpd_balance"
121-
122-func K (L) = ((J + "_") + toBase58String(L))
106+func C (D) = ((B + "_") + toBase58String(D))
123107
124108
125-let M = "price"
109+let E = "price"
126110
127-let N = "price_index"
111+let F = "price_index"
128112
129-let O = "is_blocked"
113+let G = "is_blocked"
130114
131-let P = "leasing_expire_block"
132-
133-let Q = "leasing_index"
134-
135-let R = "leasing_amount"
136-
137-func S (T) = ((M + "_") + toString(T))
115+func H (I) = ((E + "_") + toString(I))
138116
139117
140-func U (V) = ((N + "_") + toString(V))
118+func J (K) = ((F + "_") + toString(K))
141119
142120
143-let W = "rpd_sync_index"
121+let L = "balance_lock_"
144122
145-let X = "balance_lock_"
123+let M = (L + "waves")
146124
147-let Y = (X + "waves")
125+let N = (L + "neutrino")
148126
149-let Z = (X + "neutrino")
150-
151-func aa (ab,L) = ((((J + "_") + toBase58String(L)) + "_") + toString(ab))
127+func O (P,D) = ((((B + "_") + toBase58String(D)) + "_") + toString(P))
152128
153129
154-func ac (ad) = (("cancel_lease_tx_reserve_fee" + "_") + ad)
130+func Q (R) = (("cancel_lease_tx_reserve_fee" + "_") + R)
155131
156132
157-func ae (af) = ((Y + "_") + af)
133+func S (T) = ((M + "_") + T)
158134
159135
160-func ag (af) = ((Z + "_") + af)
136+func U (T) = ((N + "_") + T)
161137
162138
163-func ah (af) = ("balance_unlock_block_" + af)
139+func V (T) = ("balance_unlock_block_" + T)
164140
165141
166-func ai (ab) = (("rpd_profit" + "_") + toString(ab))
142+func W (P) = (("rpd_profit" + "_") + toString(P))
167143
168144
169-func aj (ad) = (("lease_tx_status" + "_") + ad)
145+func X (Y,Z) = ((((Y * 100) / Z) * n) / o)
170146
171147
172-func ak (ad) = ((R + "_") + ad)
148+func aa (Y,Z) = ((((Y * Z) / 100) * o) / n)
173149
174150
175-func al (ad) = (("lease_tx" + "_") + ad)
151+func ab (Y) = (Y / o)
176152
177153
178-func am (ad) = (("leasing_expire_send" + "_") + ad)
154+func ac (Y) = (Y * o)
179155
180156
181-func an (ao,ap) = ((((ao * 100) / ap) * n) / o)
157+func ad (Y,Z) = ab(aa(Y, Z))
182158
183159
184-func aq (ao,ap) = ((((ao * ap) / 100) * o) / n)
160+let ae = a(N)
161+
162+let af = a(M)
163+
164+let ag = e(t)
165+
166+let ah = e(q)
167+
168+let ai = fromBase58String(ah)
169+
170+let aj = e(s)
171+
172+let ak = e(u)
173+
174+let al = e(v)
175+
176+let am = g(al, E)
177+
178+let an = g(al, F)
179+
180+let ao = j(al, G)
181+
182+let ap = e(A)
183+
184+let aq = a(w)
185+
186+let ar = a(x)
187+
188+let as = a(y)
189+
190+let at = a(z)
191+
192+let au = (wavesBalance(this) - af)
193+
194+let av = fromBase58String(e(r))
195+
196+let aw = (extract(assetInfo(av)).quantity - assetBalance(this, av))
197+
198+let ax = ((extract(assetInfo(ai)).quantity - assetBalance(this, ai)) + ae)
199+
200+let ay = (aa(au, am) - ax)
201+
202+let az = (ax - aa(au, am))
203+
204+func aA (D) = g(ak, C(D))
185205
186206
187-func ar (ao) = (ao / o)
207+func aB (I) = g(al, H(I))
188208
189209
190-func as (ao) = (ao * o)
210+func aC (K) = g(al, J(K))
191211
192212
193-func at (ao,ap) = ar(aq(ao, ap))
213+func aD (R) = a(Q(R))
194214
195215
196-let au = a(Z)
197-
198-let av = a(Y)
199-
200-let aw = e(A)
201-
202-let ax = e(w)
203-
204-let ay = fromBase58String(ax)
205-
206-let az = e(y)
207-
208-let aA = e(z)
209-
210-let aB = e(B)
211-
212-let aC = e(C)
213-
214-let aD = g(aC, M)
215-
216-let aE = g(aC, N)
217-
218-let aF = j(aC, O)
219-
220-let aG = a(Q)
221-
222-let aH = a(I)
223-
224-let aI = a(P)
225-
226-let aJ = a(R)
227-
228-let aK = e(G)
229-
230-let aL = e(H)
231-
232-let aM = a(W)
233-
234-let aN = a(D)
235-
236-let aO = a(E)
237-
238-let aP = a(F)
239-
240-let aQ = (wavesBalance(this) - av)
241-
242-let aR = (aQ - aJ)
243-
244-let aS = fromBase58String(e(x))
245-
246-let aT = (extract(assetInfo(aS)).quantity - assetBalance(this, aS))
247-
248-let aU = ((extract(assetInfo(ay)).quantity - assetBalance(this, ay)) + au)
249-
250-let aV = (aq(aQ, aD) - aU)
251-
252-let aW = (aU - aq(aQ, aD))
253-
254-func aX (L) = g(aB, K(L))
216+func aE (T) = a(S(T))
255217
256218
257-func aY (T) = g(aC, S(T))
219+func aF (T) = a(U(T))
258220
259221
260-func aZ (V) = g(aC, U(V))
222+func aG (T) = a(V(T))
261223
262224
263-func ba (ad) = a(ac(ad))
225+func aH (P) = a(W(P))
264226
265227
266-func bb (af) = a(ae(af))
267-
268-
269-func bc (af) = a(ag(af))
270-
271-
272-func bd (af) = a(ah(af))
273-
274-
275-func be (ab) = a(ai(ab))
276-
277-
278-func bf (ad) = e(aj(ad))
279-
280-
281-func bg (ad) = a(ak(ad))
282-
283-
284-func bh (ad) = e(al(ad))
285-
286-
287-func bi (ad) = a(am(ad))
288-
289-
290-@Callable(bj)
228+@Callable(aI)
291229 func swapWavesToNeutrino () = {
292- let bk = extract(bj.payment)
293- let bl = toString(bj.caller)
294- if ((aO > bk.amount))
295- then throw((("an amount is less than min available amount: " + toString(aO)) + " wavelets"))
296- else if (isDefined(bk.assetId))
297- then throw("can use waves only")
298- else if (aF)
230+ let aJ = extract(aI.payment)
231+ let aK = toString(aI.caller)
232+ if ((as > aJ.amount))
233+ then throw((("The specified Waves amount is less than the required minimum of " + toString(as)) + " wavelets."))
234+ else if (isDefined(aJ.assetId))
235+ then throw("Only Waves token is allowed for swapping.")
236+ else if (ao)
299237 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
300- else if ((bd(bl) > height))
301- then throw((("await " + toString((bd(bl) - height))) + " blocks"))
302- else if (if ((bc(bl) != 0))
238+ else if ((aG(aK) > height))
239+ then throw((("await " + toString((aG(aK) - height))) + " blocks"))
240+ else if (if ((aF(aK) != 0))
303241 then true
304- else (bb(bl) != 0))
242+ else (aE(aK) != 0))
305243 then throw("please withdraw locked funds first")
306- else WriteSet([DataEntry(ae(bl), bk.amount), DataEntry(ah(bl), (height + aN)), DataEntry(Y, (av + bk.amount))])
244+ else WriteSet([DataEntry(S(aK), aJ.amount), DataEntry(V(aK), (height + aq)), DataEntry(M, (af + aJ.amount))])
307245 }
308246
309247
310248
311-@Callable(bj)
249+@Callable(aI)
312250 func swapNeutrinoToWaves () = {
313- let bk = extract(bj.payment)
314- let bl = toString(bj.caller)
315- if ((aP > bk.amount))
316- then throw((("an amount is less than min available amount: " + toString(aP)) + " neutrino cents"))
317- else if (aF)
318- then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
319- else if ((bk.assetId != ay))
320- then throw("can use appropriate neutrino tokens only")
321- else if ((bd(bl) > height))
322- then throw((("await " + toString((bd(bl) - height))) + " blocks"))
323- else if (if ((bc(bl) != 0))
251+ let aJ = extract(aI.payment)
252+ let aK = toString(aI.caller)
253+ if ((at > aJ.amount))
254+ then throw((("The specified Neutrino amount is less than the required minimum of " + toString(at)) + " Neutrino cents."))
255+ else if (ao)
256+ then throw("The contract is blocked by EMERGENCY SHUTDOWN. Please wait for reactivation by emergency oracles.")
257+ else if ((aJ.assetId != ai))
258+ then throw("Only appropriate Neutrino tokens are allowed for swapping.")
259+ else if ((aG(aK) > height))
260+ then throw((("await " + toString((aG(aK) - height))) + " blocks"))
261+ else if (if ((aF(aK) != 0))
324262 then true
325- else (bb(bl) != 0))
263+ else (aE(aK) != 0))
326264 then throw("please withdraw locked funds first")
327- else WriteSet([DataEntry(ag(bl), bk.amount), DataEntry(ae(bl), (height + aN)), DataEntry(Z, (au + bk.amount))])
265+ else WriteSet([DataEntry(U(aK), aJ.amount), DataEntry(V(aK), (height + ar)), DataEntry(N, (ae + aJ.amount))])
328266 }
329267
330268
331269
332-@Callable(bj)
333-func withdraw (bl,V) = {
334- let bm = bd(bl)
335- let bn = bb(bl)
336- let bo = bc(bl)
337- let bp = aZ(V)
338- let bq = aZ((V + 1))
339- let br = aY(bp)
340- let bs = aq(bn, br)
341- let bt = an(bo, br)
342- if (aF)
270+@Callable(aI)
271+func withdraw (aK,K) = {
272+ let aL = aG(aK)
273+ let aM = aE(aK)
274+ let aN = aF(aK)
275+ let aO = aC(K)
276+ let aP = aC((K - 1))
277+ let aQ = aB(aO)
278+ let aR = aa(aM, aQ)
279+ let aS = X(aN, aQ)
280+ if (ao)
343281 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
344- else if ((bm > height))
345- then throw((("please wait for: " + toString(bm)) + " block height to withdraw WAVES funds"))
346- else if (if (if ((V > aE))
282+ else if ((aL > height))
283+ then throw((("please wait for: " + toString(aL)) + " block height to withdraw WAVES funds"))
284+ else if (if (if ((K > an))
347285 then true
348- else (bp > bm))
286+ else (aL > aO))
349287 then true
350- else if ((bq != 0))
351- then (bm >= bq)
288+ else if ((aP != 0))
289+ then (aP >= aL)
352290 else false)
353291 then throw("invalid price history index")
354- else if (if ((0 >= bs))
355- then (0 >= bt)
292+ else if (if ((0 >= aR))
293+ then (0 >= aS)
356294 else false)
357295 then throw("balance equals zero")
358- else ScriptResult(WriteSet([DataEntry(ae(bl), 0), DataEntry(ag(bl), 0), DataEntry(Y, (av - bn)), DataEntry(Z, (au - bo))]), TransferSet([ScriptTransfer(addressFromStringValue(bl), bt, unit), ScriptTransfer(addressFromStringValue(bl), bs, ay)]))
296+ else ScriptResult(WriteSet([DataEntry(S(aK), 0), DataEntry(U(aK), 0), DataEntry(M, (af - aM)), DataEntry(N, (ae - aN))]), TransferSet([ScriptTransfer(addressFromStringValue(aK), aS, unit), ScriptTransfer(addressFromStringValue(aK), aR, ai)]))
359297 }
360298
361299
362300
363-@Callable(bj)
301+@Callable(aI)
364302 func transferToAuction () = {
365- let bu = (ar(aW) - assetBalance(addressFromStringValue(aA), aS))
366- let bv = (ar(aV) - assetBalance(addressFromStringValue(aA), ay))
367- if (aF)
303+ let aT = (ab(az) - assetBalance(addressFromStringValue(aj), av))
304+ let aU = (ab(ay) - assetBalance(addressFromStringValue(aj), ai))
305+ if (ao)
368306 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
369- else if ((bu >= ((ar(aU) * s) / 100)))
370- then TransferSet([ScriptTransfer(addressFromStringValue(aA), bu, aS)])
371- else if ((bv > 0))
372- then TransferSet([ScriptTransfer(addressFromStringValue(aw), as(bv), ay)])
373- else throw(((((("bond were generated or do not need it. Deficit:" + toString(bu)) + "|") + toString(((aU * s) / 100))) + ". Surplus:") + toString(bv)))
307+ else if (if ((aT >= ((ab(ax) * p) / 100)))
308+ then (aT > 0)
309+ else false)
310+ then TransferSet([ScriptTransfer(addressFromStringValue(aj), aT, av)])
311+ else if ((aU > 0))
312+ then TransferSet([ScriptTransfer(addressFromStringValue(ag), ac(aU), ai)])
313+ else throw(((((("bond were generated or do not need it. Deficit:" + toString(aT)) + "|") + toString(((ax * p) / 100))) + ". Surplus:") + toString(aU)))
374314 }
375315
376316
377317
378-@Callable(bj)
379-func transfer (bl) = {
380- let bk = extract(bj.payment)
381- TransferSet([ScriptTransfer(addressFromStringValue(bl), bk.amount, bk.assetId)])
318+@Callable(aI)
319+func transfer (aK) = {
320+ let aJ = extract(aI.payment)
321+ TransferSet([ScriptTransfer(addressFromStringValue(aK), aJ.amount, aJ.assetId)])
382322 }
383323
384324
385-
386-@Callable(bj)
387-func nodeReward () = {
388- let bk = value(bj.payment)
389- if ((bj.caller != addressFromStringValue(aK)))
390- then throw("only node account is able to transfer staking rewards from main account")
391- else if (isDefined(bk.assetId))
392- then throw("waves tokens only allowed")
393- else {
394- let ao = aq(bk.amount, aD)
395- let bw = (aM + 1)
396- ScriptResult(WriteSet([DataEntry(W, bw), DataEntry(ai(aM), ao), DataEntry(aa(aM, ay), aX(ay))]), TransferSet([ScriptTransfer(addressFromStringValue(aB), ao, ay)]))
397- }
398- }
399-
400-
401-@Verifier(bx)
402-func by () = {
403- let bz = toBase58String(bx.id)
404- let c = bx
325+@Verifier(aV)
326+func aW () = {
327+ let aX = toBase58String(aV.id)
328+ let c = aV
405329 if (if ($isInstanceOf(c, "LeaseCancelTransaction"))
406330 then true
407331 else $isInstanceOf(c, "LeaseTransaction"))
408332 then {
409- let bA = c
410- if (sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey))
411- then (addressFromString(aL) == addressFromPublicKey(bx.senderPublicKey))
333+ let aY = c
334+ if (sigVerify(aV.bodyBytes, aV.proofs[0], aV.senderPublicKey))
335+ then (addressFromString(ap) == addressFromPublicKey(aV.senderPublicKey))
412336 else false
413337 }
414- else sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey)
338+ else sigVerify(aV.bodyBytes, aV.proofs[0], aV.senderPublicKey)
415339 }
416340
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = getInteger(this, b)
66 if ($isInstanceOf(c, "Int"))
77 then {
88 let d = c
99 d
1010 }
1111 else 0
1212 }
1313
1414
1515 func e (b) = {
1616 let c = getString(this, b)
1717 if ($isInstanceOf(c, "String"))
1818 then {
1919 let d = c
2020 d
2121 }
2222 else ""
2323 }
2424
2525
2626 func f (b) = {
2727 let c = getBoolean(this, b)
2828 if ($isInstanceOf(c, "Boolean"))
2929 then {
3030 let d = c
3131 d
3232 }
3333 else false
3434 }
3535
3636
3737 func g (h,b) = {
3838 let c = getInteger(addressFromStringValue(h), b)
3939 if ($isInstanceOf(c, "Int"))
4040 then {
4141 let d = c
4242 d
4343 }
4444 else 0
4545 }
4646
4747
4848 func i (h,b) = {
4949 let c = getString(addressFromStringValue(h), b)
5050 if ($isInstanceOf(c, "String"))
5151 then {
5252 let d = c
5353 d
5454 }
5555 else ""
5656 }
5757
5858
5959 func j (h,b) = {
6060 let c = getBoolean(addressFromStringValue(h), b)
6161 if ($isInstanceOf(c, "Boolean"))
6262 then {
6363 let d = c
6464 d
6565 }
6666 else false
6767 }
6868
6969
7070 let k = 30
7171
7272 let l = "_"
7373
7474 let m = "+"
7575
7676 let n = 100000000
7777
78-let o = 100
78+let o = 1000000
7979
80-let p = 20
80+let p = 10
8181
82-let q = 90
82+let q = "neutrino_asset_id"
8383
84-let r = 10
84+let r = "bond_asset_id"
8585
86-let s = 10
86+let s = "auction_contract"
8787
88-let t = "waves"
88+let t = "liquidation_contract"
8989
90-let u = "canceled"
90+let u = "rpd_contract"
9191
92-let v = "new"
92+let v = "control_contract"
9393
94-let w = "neutrino_asset_id"
94+let w = "balance_waves_lock_interval"
9595
96-let x = "bond_asset_id"
96+let x = "balance_neutrino_lock_interval"
9797
98-let y = "reserve_contract"
98+let y = "min_waves_swap_amount"
9999
100-let z = "auction_contract"
100+let z = "min_neutrino_swap_amount"
101101
102-let A = "liquidation_contract"
102+let A = "node_oracle_provider"
103103
104-let B = "rpd_contract"
104+let B = "rpd_balance"
105105
106-let C = "control_contract"
107-
108-let D = "balance_lock_interval"
109-
110-let E = "min_waves_swap_amount"
111-
112-let F = "min_neutrino_swap_amount"
113-
114-let G = "node_address"
115-
116-let H = "oracle_node_provider"
117-
118-let I = "leasing_interval"
119-
120-let J = "rpd_balance"
121-
122-func K (L) = ((J + "_") + toBase58String(L))
106+func C (D) = ((B + "_") + toBase58String(D))
123107
124108
125-let M = "price"
109+let E = "price"
126110
127-let N = "price_index"
111+let F = "price_index"
128112
129-let O = "is_blocked"
113+let G = "is_blocked"
130114
131-let P = "leasing_expire_block"
132-
133-let Q = "leasing_index"
134-
135-let R = "leasing_amount"
136-
137-func S (T) = ((M + "_") + toString(T))
115+func H (I) = ((E + "_") + toString(I))
138116
139117
140-func U (V) = ((N + "_") + toString(V))
118+func J (K) = ((F + "_") + toString(K))
141119
142120
143-let W = "rpd_sync_index"
121+let L = "balance_lock_"
144122
145-let X = "balance_lock_"
123+let M = (L + "waves")
146124
147-let Y = (X + "waves")
125+let N = (L + "neutrino")
148126
149-let Z = (X + "neutrino")
150-
151-func aa (ab,L) = ((((J + "_") + toBase58String(L)) + "_") + toString(ab))
127+func O (P,D) = ((((B + "_") + toBase58String(D)) + "_") + toString(P))
152128
153129
154-func ac (ad) = (("cancel_lease_tx_reserve_fee" + "_") + ad)
130+func Q (R) = (("cancel_lease_tx_reserve_fee" + "_") + R)
155131
156132
157-func ae (af) = ((Y + "_") + af)
133+func S (T) = ((M + "_") + T)
158134
159135
160-func ag (af) = ((Z + "_") + af)
136+func U (T) = ((N + "_") + T)
161137
162138
163-func ah (af) = ("balance_unlock_block_" + af)
139+func V (T) = ("balance_unlock_block_" + T)
164140
165141
166-func ai (ab) = (("rpd_profit" + "_") + toString(ab))
142+func W (P) = (("rpd_profit" + "_") + toString(P))
167143
168144
169-func aj (ad) = (("lease_tx_status" + "_") + ad)
145+func X (Y,Z) = ((((Y * 100) / Z) * n) / o)
170146
171147
172-func ak (ad) = ((R + "_") + ad)
148+func aa (Y,Z) = ((((Y * Z) / 100) * o) / n)
173149
174150
175-func al (ad) = (("lease_tx" + "_") + ad)
151+func ab (Y) = (Y / o)
176152
177153
178-func am (ad) = (("leasing_expire_send" + "_") + ad)
154+func ac (Y) = (Y * o)
179155
180156
181-func an (ao,ap) = ((((ao * 100) / ap) * n) / o)
157+func ad (Y,Z) = ab(aa(Y, Z))
182158
183159
184-func aq (ao,ap) = ((((ao * ap) / 100) * o) / n)
160+let ae = a(N)
161+
162+let af = a(M)
163+
164+let ag = e(t)
165+
166+let ah = e(q)
167+
168+let ai = fromBase58String(ah)
169+
170+let aj = e(s)
171+
172+let ak = e(u)
173+
174+let al = e(v)
175+
176+let am = g(al, E)
177+
178+let an = g(al, F)
179+
180+let ao = j(al, G)
181+
182+let ap = e(A)
183+
184+let aq = a(w)
185+
186+let ar = a(x)
187+
188+let as = a(y)
189+
190+let at = a(z)
191+
192+let au = (wavesBalance(this) - af)
193+
194+let av = fromBase58String(e(r))
195+
196+let aw = (extract(assetInfo(av)).quantity - assetBalance(this, av))
197+
198+let ax = ((extract(assetInfo(ai)).quantity - assetBalance(this, ai)) + ae)
199+
200+let ay = (aa(au, am) - ax)
201+
202+let az = (ax - aa(au, am))
203+
204+func aA (D) = g(ak, C(D))
185205
186206
187-func ar (ao) = (ao / o)
207+func aB (I) = g(al, H(I))
188208
189209
190-func as (ao) = (ao * o)
210+func aC (K) = g(al, J(K))
191211
192212
193-func at (ao,ap) = ar(aq(ao, ap))
213+func aD (R) = a(Q(R))
194214
195215
196-let au = a(Z)
197-
198-let av = a(Y)
199-
200-let aw = e(A)
201-
202-let ax = e(w)
203-
204-let ay = fromBase58String(ax)
205-
206-let az = e(y)
207-
208-let aA = e(z)
209-
210-let aB = e(B)
211-
212-let aC = e(C)
213-
214-let aD = g(aC, M)
215-
216-let aE = g(aC, N)
217-
218-let aF = j(aC, O)
219-
220-let aG = a(Q)
221-
222-let aH = a(I)
223-
224-let aI = a(P)
225-
226-let aJ = a(R)
227-
228-let aK = e(G)
229-
230-let aL = e(H)
231-
232-let aM = a(W)
233-
234-let aN = a(D)
235-
236-let aO = a(E)
237-
238-let aP = a(F)
239-
240-let aQ = (wavesBalance(this) - av)
241-
242-let aR = (aQ - aJ)
243-
244-let aS = fromBase58String(e(x))
245-
246-let aT = (extract(assetInfo(aS)).quantity - assetBalance(this, aS))
247-
248-let aU = ((extract(assetInfo(ay)).quantity - assetBalance(this, ay)) + au)
249-
250-let aV = (aq(aQ, aD) - aU)
251-
252-let aW = (aU - aq(aQ, aD))
253-
254-func aX (L) = g(aB, K(L))
216+func aE (T) = a(S(T))
255217
256218
257-func aY (T) = g(aC, S(T))
219+func aF (T) = a(U(T))
258220
259221
260-func aZ (V) = g(aC, U(V))
222+func aG (T) = a(V(T))
261223
262224
263-func ba (ad) = a(ac(ad))
225+func aH (P) = a(W(P))
264226
265227
266-func bb (af) = a(ae(af))
267-
268-
269-func bc (af) = a(ag(af))
270-
271-
272-func bd (af) = a(ah(af))
273-
274-
275-func be (ab) = a(ai(ab))
276-
277-
278-func bf (ad) = e(aj(ad))
279-
280-
281-func bg (ad) = a(ak(ad))
282-
283-
284-func bh (ad) = e(al(ad))
285-
286-
287-func bi (ad) = a(am(ad))
288-
289-
290-@Callable(bj)
228+@Callable(aI)
291229 func swapWavesToNeutrino () = {
292- let bk = extract(bj.payment)
293- let bl = toString(bj.caller)
294- if ((aO > bk.amount))
295- then throw((("an amount is less than min available amount: " + toString(aO)) + " wavelets"))
296- else if (isDefined(bk.assetId))
297- then throw("can use waves only")
298- else if (aF)
230+ let aJ = extract(aI.payment)
231+ let aK = toString(aI.caller)
232+ if ((as > aJ.amount))
233+ then throw((("The specified Waves amount is less than the required minimum of " + toString(as)) + " wavelets."))
234+ else if (isDefined(aJ.assetId))
235+ then throw("Only Waves token is allowed for swapping.")
236+ else if (ao)
299237 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
300- else if ((bd(bl) > height))
301- then throw((("await " + toString((bd(bl) - height))) + " blocks"))
302- else if (if ((bc(bl) != 0))
238+ else if ((aG(aK) > height))
239+ then throw((("await " + toString((aG(aK) - height))) + " blocks"))
240+ else if (if ((aF(aK) != 0))
303241 then true
304- else (bb(bl) != 0))
242+ else (aE(aK) != 0))
305243 then throw("please withdraw locked funds first")
306- else WriteSet([DataEntry(ae(bl), bk.amount), DataEntry(ah(bl), (height + aN)), DataEntry(Y, (av + bk.amount))])
244+ else WriteSet([DataEntry(S(aK), aJ.amount), DataEntry(V(aK), (height + aq)), DataEntry(M, (af + aJ.amount))])
307245 }
308246
309247
310248
311-@Callable(bj)
249+@Callable(aI)
312250 func swapNeutrinoToWaves () = {
313- let bk = extract(bj.payment)
314- let bl = toString(bj.caller)
315- if ((aP > bk.amount))
316- then throw((("an amount is less than min available amount: " + toString(aP)) + " neutrino cents"))
317- else if (aF)
318- then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
319- else if ((bk.assetId != ay))
320- then throw("can use appropriate neutrino tokens only")
321- else if ((bd(bl) > height))
322- then throw((("await " + toString((bd(bl) - height))) + " blocks"))
323- else if (if ((bc(bl) != 0))
251+ let aJ = extract(aI.payment)
252+ let aK = toString(aI.caller)
253+ if ((at > aJ.amount))
254+ then throw((("The specified Neutrino amount is less than the required minimum of " + toString(at)) + " Neutrino cents."))
255+ else if (ao)
256+ then throw("The contract is blocked by EMERGENCY SHUTDOWN. Please wait for reactivation by emergency oracles.")
257+ else if ((aJ.assetId != ai))
258+ then throw("Only appropriate Neutrino tokens are allowed for swapping.")
259+ else if ((aG(aK) > height))
260+ then throw((("await " + toString((aG(aK) - height))) + " blocks"))
261+ else if (if ((aF(aK) != 0))
324262 then true
325- else (bb(bl) != 0))
263+ else (aE(aK) != 0))
326264 then throw("please withdraw locked funds first")
327- else WriteSet([DataEntry(ag(bl), bk.amount), DataEntry(ae(bl), (height + aN)), DataEntry(Z, (au + bk.amount))])
265+ else WriteSet([DataEntry(U(aK), aJ.amount), DataEntry(V(aK), (height + ar)), DataEntry(N, (ae + aJ.amount))])
328266 }
329267
330268
331269
332-@Callable(bj)
333-func withdraw (bl,V) = {
334- let bm = bd(bl)
335- let bn = bb(bl)
336- let bo = bc(bl)
337- let bp = aZ(V)
338- let bq = aZ((V + 1))
339- let br = aY(bp)
340- let bs = aq(bn, br)
341- let bt = an(bo, br)
342- if (aF)
270+@Callable(aI)
271+func withdraw (aK,K) = {
272+ let aL = aG(aK)
273+ let aM = aE(aK)
274+ let aN = aF(aK)
275+ let aO = aC(K)
276+ let aP = aC((K - 1))
277+ let aQ = aB(aO)
278+ let aR = aa(aM, aQ)
279+ let aS = X(aN, aQ)
280+ if (ao)
343281 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
344- else if ((bm > height))
345- then throw((("please wait for: " + toString(bm)) + " block height to withdraw WAVES funds"))
346- else if (if (if ((V > aE))
282+ else if ((aL > height))
283+ then throw((("please wait for: " + toString(aL)) + " block height to withdraw WAVES funds"))
284+ else if (if (if ((K > an))
347285 then true
348- else (bp > bm))
286+ else (aL > aO))
349287 then true
350- else if ((bq != 0))
351- then (bm >= bq)
288+ else if ((aP != 0))
289+ then (aP >= aL)
352290 else false)
353291 then throw("invalid price history index")
354- else if (if ((0 >= bs))
355- then (0 >= bt)
292+ else if (if ((0 >= aR))
293+ then (0 >= aS)
356294 else false)
357295 then throw("balance equals zero")
358- else ScriptResult(WriteSet([DataEntry(ae(bl), 0), DataEntry(ag(bl), 0), DataEntry(Y, (av - bn)), DataEntry(Z, (au - bo))]), TransferSet([ScriptTransfer(addressFromStringValue(bl), bt, unit), ScriptTransfer(addressFromStringValue(bl), bs, ay)]))
296+ else ScriptResult(WriteSet([DataEntry(S(aK), 0), DataEntry(U(aK), 0), DataEntry(M, (af - aM)), DataEntry(N, (ae - aN))]), TransferSet([ScriptTransfer(addressFromStringValue(aK), aS, unit), ScriptTransfer(addressFromStringValue(aK), aR, ai)]))
359297 }
360298
361299
362300
363-@Callable(bj)
301+@Callable(aI)
364302 func transferToAuction () = {
365- let bu = (ar(aW) - assetBalance(addressFromStringValue(aA), aS))
366- let bv = (ar(aV) - assetBalance(addressFromStringValue(aA), ay))
367- if (aF)
303+ let aT = (ab(az) - assetBalance(addressFromStringValue(aj), av))
304+ let aU = (ab(ay) - assetBalance(addressFromStringValue(aj), ai))
305+ if (ao)
368306 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
369- else if ((bu >= ((ar(aU) * s) / 100)))
370- then TransferSet([ScriptTransfer(addressFromStringValue(aA), bu, aS)])
371- else if ((bv > 0))
372- then TransferSet([ScriptTransfer(addressFromStringValue(aw), as(bv), ay)])
373- else throw(((((("bond were generated or do not need it. Deficit:" + toString(bu)) + "|") + toString(((aU * s) / 100))) + ". Surplus:") + toString(bv)))
307+ else if (if ((aT >= ((ab(ax) * p) / 100)))
308+ then (aT > 0)
309+ else false)
310+ then TransferSet([ScriptTransfer(addressFromStringValue(aj), aT, av)])
311+ else if ((aU > 0))
312+ then TransferSet([ScriptTransfer(addressFromStringValue(ag), ac(aU), ai)])
313+ else throw(((((("bond were generated or do not need it. Deficit:" + toString(aT)) + "|") + toString(((ax * p) / 100))) + ". Surplus:") + toString(aU)))
374314 }
375315
376316
377317
378-@Callable(bj)
379-func transfer (bl) = {
380- let bk = extract(bj.payment)
381- TransferSet([ScriptTransfer(addressFromStringValue(bl), bk.amount, bk.assetId)])
318+@Callable(aI)
319+func transfer (aK) = {
320+ let aJ = extract(aI.payment)
321+ TransferSet([ScriptTransfer(addressFromStringValue(aK), aJ.amount, aJ.assetId)])
382322 }
383323
384324
385-
386-@Callable(bj)
387-func nodeReward () = {
388- let bk = value(bj.payment)
389- if ((bj.caller != addressFromStringValue(aK)))
390- then throw("only node account is able to transfer staking rewards from main account")
391- else if (isDefined(bk.assetId))
392- then throw("waves tokens only allowed")
393- else {
394- let ao = aq(bk.amount, aD)
395- let bw = (aM + 1)
396- ScriptResult(WriteSet([DataEntry(W, bw), DataEntry(ai(aM), ao), DataEntry(aa(aM, ay), aX(ay))]), TransferSet([ScriptTransfer(addressFromStringValue(aB), ao, ay)]))
397- }
398- }
399-
400-
401-@Verifier(bx)
402-func by () = {
403- let bz = toBase58String(bx.id)
404- let c = bx
325+@Verifier(aV)
326+func aW () = {
327+ let aX = toBase58String(aV.id)
328+ let c = aV
405329 if (if ($isInstanceOf(c, "LeaseCancelTransaction"))
406330 then true
407331 else $isInstanceOf(c, "LeaseTransaction"))
408332 then {
409- let bA = c
410- if (sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey))
411- then (addressFromString(aL) == addressFromPublicKey(bx.senderPublicKey))
333+ let aY = c
334+ if (sigVerify(aV.bodyBytes, aV.proofs[0], aV.senderPublicKey))
335+ then (addressFromString(ap) == addressFromPublicKey(aV.senderPublicKey))
412336 else false
413337 }
414- else sigVerify(bx.bodyBytes, bx.proofs[0], bx.senderPublicKey)
338+ else sigVerify(aV.bodyBytes, aV.proofs[0], aV.senderPublicKey)
415339 }
416340

github/deemru/w8io/3ef1775 
259.29 ms