tx · 9xV3NZfnThZWeRC7en7UmY9ZA86EiSDBNfFEPCRJSrwk

3MrtHeXquGPcRd3YjJQHfY1Ss6oSDpfxGuL:  -0.01400000 Waves

2019.09.13 11:12 [674139] smart account 3MrtHeXquGPcRd3YjJQHfY1Ss6oSDpfxGuL > SELF 0.00000000 Waves

{ "type": 13, "id": "9xV3NZfnThZWeRC7en7UmY9ZA86EiSDBNfFEPCRJSrwk", "fee": 1400000, "feeAssetId": null, "timestamp": 1568362386296, "version": 1, "sender": "3MrtHeXquGPcRd3YjJQHfY1Ss6oSDpfxGuL", "senderPublicKey": "3nmDHSgwcZ79tNbGjppGBY9MbYm4qLZEJcZ32D2WmxkG", "proofs": [ "2rtHEFJqvC6quzsxKvctkErkEgpgtPRM5eJiVgvog9uCwwpkqk3aWnUsWPNbDWmW141mFHK3MagqTH5AZKJVJkgU" ], "script": "base64:AAIDAAAAAAAAAAAAAABIAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADGdldEJvb2xCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcBAAAAGGdldE51bWJlckJ5S2V5QW5kQWRkcmVzcwAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlLZXlBbmRBZGRyZXNzAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAFmdldEJvb2xCeUtleUFuZEFkZHJlc3MAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwAAAAAPTGlzdFNwbGl0U3ltYm9sAgAAAAFfAAAAABNTbmFwc2hvdEJsb2NrRXhwaXJlAAAAAAAAAAAKAAAAABBCYWxhbmNlTG9ja0Jsb2NrAAAAAAAAAAACAAAAABNMaXN0RGF0YVNwbGl0U3ltYm9sAgAAAAErAAAAAAdXYXZlbGV0AAAAAAAF9eEAAAAAABBNaW5pbWFsQm9uZE9yZGVyCQAAaAAAAAIAAAAAAAAAAAoFAAAAB1dhdmVsZXQAAAAADk1pbmltYWxTdXJwbHVzCQAAaAAAAAIAAAAAAAAAAAoFAAAAB1dhdmVsZXQAAAAAEUFwcGx5QmxvY2tUaW1lb3V0AAAAAAAAAAAKAAAAABBMZWFzZUNvbnRyYWN0S2V5AgAAAA5sZWFzZV9jb250cmFjdAAAAAASTmV1dHJpbm9Bc3NldElkS2V5AgAAABFuZXV0cmlub19hc3NldF9pZAAAAAAOQm9uZEFzc2V0SWRLZXkCAAAADWJvbmRfYXNzZXRfaWQAAAAAEkF1Y3Rpb25Db250cmFjdEtleQIAAAAQYXVjdGlvbl9jb250cmFjdAAAAAAIUHJpY2VLZXkCAAAABXByaWNlAAAAABFOZXV0cmlub1N1cHBseUtleQIAAAAPbmV1dHJpbm9fc3VwcGx5AAAAAA9XYXZlc1Jlc2VydmVLZXkCAAAADXdhdmVzX3Jlc2VydmUAAAAAEk5ldXRyaW5vQmFsYW5jZUtleQIAAAAJbmV1dHJpbm9fAAAAAA9XYXZlc0JhbGFuY2VLZXkCAAAABndhdmVzXwAAAAAPQmFsYW5jZUJsb2NrS2V5AgAAAA5iYWxhbmNlX2Jsb2NrXwAAAAAMT3JkZXJib29rS2V5AgAAAAlvcmRlcmJvb2sAAAAADU9yZGVyVG90YWxLZXkCAAAADG9yZGVyX3RvdGFsXwAAAAANT3JkZXJPd25lcktleQIAAAAMb3JkZXJfb3duZXJfAAAAAA5PcmRlckhlaWdodEtleQIAAAANb3JkZXJfaGVpZ2h0XwAAAAART3JkZXJib29rVG90YWxLZXkCAAAAD29yZGVyYm9va190b3RhbAAAAAAZT3JkZXJib29rVG90YWxTbmFwc2hvdEtleQIAAAAYb3JkZXJib29rX3RvdGFsX3NuYXBzaG90AAAAAApTdXJwbHVzS2V5AgAAAAdzdXJwbHVzAAAAABBTbmFwc2hvdEJsb2NrS2V5AgAAAA5zbmFwc2hvdF9ibG9jawAAAAAUT3JkZXJib29rU25hcHNob3RLZXkCAAAAEm9yZGVyYm9va19zbmFwc2hvdAAAAAAVQm9uZEdlbmVyYXRlZEJsb2NrS2V5AgAAABRib25kX2dlbmVyYXRlZF9ibG9jawAAAAAXQWNjb3VudFNuYXBzaG90QmxvY2tLZXkCAAAAF2FjY291bnRfc25hcHNob3RfYmxvY2tfAAAAABdBY2NvdW50U25hcHNob3RPd25lcktleQIAAAAXYWNjb3VudF9zbmFwc2hvdF9vd25lcl8AAAAAGEFjY291bnRTbmFwc2hvdEFtb3VudEtleQIAAAAYYWNjb3VudF9zbmFwc2hvdF9hbW91bnRfAAAAABZBY2NvdW50U25hcHNob3ROb2RlS2V5AgAAABZhY2NvdW50X3NuYXBzaG90X25vZGVfAAAAABZTbmFwc2hvdE5vZGVCYWxhbmNlS2V5AgAAABZzbmFwc2hvdF9ub2RlX2JhbGFuY2VfAAAAAA5Ob2RlQmFsYW5jZUtleQIAAAANbm9kZV9iYWxhbmNlXwAAAAAUSXNTZW50Tm9kZUJhbGFuY2VLZXkCAAAAFWlzX3NlbnRfbm9kZV9iYWxhbmNlXwAAAAASTm9kZVByb3ZpZGVyU3RhdHVzAgAAAAtub2RlX3N0YXR1cwAAAAAFcHJpY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAACFByaWNlS2V5AAAAAAdyZXNlcnZlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA9XYXZlc1Jlc2VydmVLZXkAAAAADm5ldXRyaW5vU3VwcGx5CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABFOZXV0cmlub1N1cHBseUtleQAAAAAOb3JkZXJib29rVG90YWwJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAEU9yZGVyYm9va1RvdGFsS2V5AAAAAAlvcmRlcmJvb2sJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADE9yZGVyYm9va0tleQAAAAAHc3VycGx1cwkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAKU3VycGx1c0tleQAAAAANc25hcHNob3RCbG9jawkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAQU25hcHNob3RCbG9ja0tleQAAAAARbGFzdEJvbmRHZW5lcmF0ZWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAFUJvbmRHZW5lcmF0ZWRCbG9ja0tleQAAAAARb3JkZXJib29rU25hcHNob3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFE9yZGVyYm9va1NuYXBzaG90S2V5AAAAABZvcmRlcmJvb2tUb3RhbFNuYXBzaG90CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABlPcmRlcmJvb2tUb3RhbFNuYXBzaG90S2V5AAAAAA9uZXV0cmlub0Fzc2V0SWQJAAJZAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAAtib25kQXNzZXRJZAkAAlkAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA5Cb25kQXNzZXRJZEtleQAAAAAPYXVjdGlvbkNvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABJBdWN0aW9uQ29udHJhY3RLZXkAAAAADWxlYXNlQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEExlYXNlQ29udHJhY3RLZXkAAAAACmJvbmRTdXBwbHkEAAAABGluZm8JAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAAtib25kQXNzZXRJZAkAAGUAAAACCAUAAAAEaW5mbwAAAAhxdWFudGl0eQkAA+sAAAACBQAAAAR0aGlzBQAAAAtib25kQXNzZXRJZAEAAAAPZ2V0V2F2ZXNCYWxhbmNlAAAAAQAAAAVvd25lcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkAASwAAAACBQAAAA9XYXZlc0JhbGFuY2VLZXkFAAAABW93bmVyAQAAABJnZXROZXV0cmlub0JhbGFuY2UAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQABLAAAAAIFAAAAEk5ldXRyaW5vQmFsYW5jZUtleQUAAAAFb3duZXIBAAAAD2dldEJhbGFuY2VCbG9jawAAAAEAAAAFb3duZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAAEsAAAAAgUAAAAPQmFsYW5jZUJsb2NrS2V5BQAAAAVvd25lcgEAAAANZ2V0T3JkZXJUb3RhbAAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAAEsAAAAAgUAAAANT3JkZXJUb3RhbEtleQUAAAACaWQBAAAADWdldE9yZGVyT3duZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQABLAAAAAIFAAAADU9yZGVyT3duZXJLZXkFAAAAAmlkAQAAABdnZXRBY2NvdW50U25hcHNob3RCbG9jawAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAAEsAAAAAgUAAAAXQWNjb3VudFNuYXBzaG90QmxvY2tLZXkFAAAAAmlkAQAAABdnZXRBY2NvdW50U25hcHNob3RPd25lcgAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAAEsAAAAAgUAAAAXQWNjb3VudFNuYXBzaG90T3duZXJLZXkFAAAAAmlkAQAAABhnZXRBY2NvdW50U25hcHNob3RBbW91bnQAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQABLAAAAAIFAAAAGEFjY291bnRTbmFwc2hvdEFtb3VudEtleQUAAAACaWQBAAAADmdldE5vZGVCYWxhbmNlAAAAAgAAAAdhZGRyZXNzAAAABWJsb2NrCQEAAAAYZ2V0TnVtYmVyQnlLZXlBbmRBZGRyZXNzAAAAAgUAAAANbGVhc2VDb250cmFjdAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAOTm9kZUJhbGFuY2VLZXkFAAAAB2FkZHJlc3MFAAAAD0xpc3RTcGxpdFN5bWJvbAkAAaQAAAABBQAAAAVibG9jawEAAAARaXNTZW50Tm9kZUJhbGFuY2UAAAACAAAAB2FkZHJlc3MAAAAFYmxvY2sJAQAAAAxnZXRCb29sQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAAC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ZAAAAAIFAAAADXNuYXBzaG90QmxvY2sFAAAAE1NuYXBzaG90QmxvY2tFeHBpcmUJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFE9yZGVyYm9va1NuYXBzaG90S2V5BQAAAAlvcmRlcmJvb2sJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGU9yZGVyYm9va1RvdGFsU25hcHNob3RLZXkFAAAADm9yZGVyYm9va1RvdGFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABBTbmFwc2hvdEJsb2NrS2V5BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAClN1cnBsdXNLZXkFAAAAB3N1cnBsdXMFAAAAA25pbAkAAAIAAAABAgAAABllcnJvciBjcmVhdGUgbmV3IHNuYXBzaG90AAAAAWkBAAAAEHNuYXBzaG90TmV1dHJpbm8AAAABAAAAB2FkZHJlc3MEAAAABW93bmVyCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FkZHJlc3MEAAAAE3VzZXJOZXV0cmlub0JhbGFuY2UJAAPrAAAAAgUAAAAFb3duZXIFAAAAD25ldXRyaW5vQXNzZXRJZAQAAAAPdXNlckJvbmRCYWxhbmNlCQAD6wAAAAIFAAAABW93bmVyBQAAAAtib25kQXNzZXRJZAQAAAAGYW1vdW50CQAAZAAAAAIFAAAAD3VzZXJCb25kQmFsYW5jZQUAAAATdXNlck5ldXRyaW5vQmFsYW5jZQQAAAACaWQJAAJYAAAAAQkAAfUAAAABCQAAywAAAAIJAADLAAAAAgkAAZoAAAABBQAAAAZhbW91bnQIBQAAAAVvd25lcgAAAAVieXRlcwkAAZoAAAABBQAAAAZoZWlnaHQDCQEAAAACIT0AAAACCQEAAAAXZ2V0QWNjb3VudFNuYXBzaG90T3duZXIAAAABBQAAAAJpZAIAAAAACQAAAgAAAAECAAAACWlkIGV4aXN0cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABhBY2NvdW50U25hcHNob3RBbW91bnRLZXkFAAAAAmlkBQAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAXQWNjb3VudFNuYXBzaG90QmxvY2tLZXkFAAAAAmlkBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAXQWNjb3VudFNuYXBzaG90T3duZXJLZXkFAAAAAmlkCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAADbmlsAAAAAWkBAAAADmdldE5ld05ldXRyaW5vAAAAAQAAAAJpZAQAAAATdXNlck5ldXRyaW5vQmFsYW5jZQkAA+sAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAD25ldXRyaW5vQXNzZXRJZAQAAAAPdXNlckJvbmRCYWxhbmNlCQAD6wAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAALYm9uZEFzc2V0SWQEAAAACWFsbG93Qm9uZAkAAGUAAAACBQAAAApib25kU3VwcGx5BQAAABZvcmRlcmJvb2tUb3RhbFNuYXBzaG90BAAAAA5iYWxhbmNlU3VycGx1cwkAAGUAAAACBQAAAAdzdXJwbHVzCQEAAAAVY29udmVydEJvbmRUb05ldXRyaW5vAAAAAQUAAAAWb3JkZXJib29rVG90YWxTbmFwc2hvdAQAAAAFYmxvY2sJAQAAABdnZXRBY2NvdW50U25hcHNob3RCbG9jawAAAAEFAAAAAmlkBAAAAAZhbW91bnQJAQAAABhnZXRBY2NvdW50U25hcHNob3RBbW91bnQAAAABBQAAAAJpZAMJAABnAAAAAgAAAAAAAAAAAAUAAAAOYmFsYW5jZVN1cnBsdXMJAAACAAAAAQIAAAAZc3VycGx1cyBpcyBsZXNzIHRoYW4gemVybwMJAABmAAAAAgUAAAAFYmxvY2sFAAAADXNuYXBzaG90QmxvY2sJAAACAAAAAQIAAAARd2FpdCBuZXcgc25hcHNob3QDCQAAZgAAAAIFAAAABmFtb3VudAkAAGQAAAACBQAAAA91c2VyQm9uZEJhbGFuY2UFAAAAE3VzZXJOZXV0cmlub0JhbGFuY2UJAAACAAAAAQIAAAAYaW52YWxpZCBiYWxhbmNlIHNuYXBzaG90CQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABhBY2NvdW50U25hcHNob3RBbW91bnRLZXkFAAAAAmlkAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAF0FjY291bnRTbmFwc2hvdEJsb2NrS2V5BQAAAAJpZAAAAAAAAAAAAAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgkAAGkAAAACCQAAaAAAAAIFAAAADmJhbGFuY2VTdXJwbHVzCQAAaQAAAAIJAABoAAAAAgUAAAAGYW1vdW50AAAAAAAAAABkCQAAZAAAAAIFAAAADm5ldXRyaW5vU3VwcGx5BQAAAAlhbGxvd0JvbmQAAAAAAAAAAGQFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAADXNlbmRUb0xlYXNpbmcAAAACAAAADG5vZGVQcm92aWRlcgAAAAVibG9jawQAAAAKbm9kZUFtb3VudAkBAAAADmdldE5vZGVCYWxhbmNlAAAAAgUAAAAMbm9kZVByb3ZpZGVyBQAAAAVibG9jawMJAAAAAAAAAgkBAAAAEWlzU2VudE5vZGVCYWxhbmNlAAAAAgUAAAAMbm9kZVByb3ZpZGVyBQAAAAVibG9jawYJAAACAAAAAQIAAAAPZnVuZHMgd2VyZSBzZW50AwkAAGYAAAACBQAAAAZoZWlnaHQJAABkAAAAAgUAAAAFYmxvY2sFAAAAEUFwcGx5QmxvY2tUaW1lb3V0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABthcHBseSBzZXR0aW5nIHRpbWUgZXhwaXJlICgJAAGkAAAAAQkAAGQAAAACBQAAAAVibG9jawUAAAARQXBwbHlCbG9ja1RpbWVvdXQCAAAAASkJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABRJc1NlbnROb2RlQmFsYW5jZUtleQUAAAAMbm9kZVByb3ZpZGVyBQAAAA9MaXN0U3BsaXRTeW1ib2wJAAGkAAAAAQUAAAAFYmxvY2sGBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAxub2RlUHJvdmlkZXIFAAAACm5vZGVBbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAADCYeUx", "chainId": 84, "height": 674139, "spentComplexity": 0 } View: original | compacted Prev: D7rMd5wCUNHjsU9MGv2sYXix4gSZab5LT4mVsLrPYZNv Next: BGgBG4KjMnG5GXgBmojNUcK71hmc2MufTovZqsV5zGa6 Diff:
OldNewDifferences
202202 func aw (h,av) = f((((S + h) + k) + toString(av)))
203203
204204
205-@Callable(ax)
205+func ax (ay) = ((ay * 100) / U)
206+
207+
208+func az (ay) = ((ay * U) / 100)
209+
210+
211+func aA (ay) = (ay / o)
212+
213+
214+func aB (ay) = (ay * o)
215+
216+
217+func aC (ay) = aA(az(ay))
218+
219+
220+@Callable(aD)
206221 func setCurrentPrice (U) = WriteSet([DataEntry(w, U)])
207222
208223
209224
210-@Callable(ax)
225+@Callable(aD)
211226 func swapWavesToNeutrino () = {
212- let ay = extract(ax.payment)
213- if (isDefined(ay.assetId))
227+ let aE = extract(aD.payment)
228+ if (isDefined(aE.assetId))
214229 then throw("can use waves only")
215230 else {
216- let az = toBase58String(ax.caller.bytes)
217- let aA = (((ay.amount * U) / 100) + am(az))
218- WriteSet([DataEntry((z + toString(ax.caller)), aA), DataEntry((B + toString(ax.caller)), height), DataEntry(y, (V + ay.amount)), DataEntry(x, (W + aA))])
231+ let aF = toBase58String(aD.caller.bytes)
232+ let ay = az(aE.amount)
233+ WriteSet([DataEntry((z + toString(aD.caller)), (ay + am(aF))), DataEntry((B + toString(aD.caller)), height), DataEntry(y, (V + aE.amount)), DataEntry(x, (W + ay))])
219234 }
220235 }
221236
222237
223238
224-@Callable(ax)
239+@Callable(aD)
225240 func swapNeutrinoToWaves () = {
226- let ay = extract(ax.payment)
227- if ((ay.assetId != ae))
241+ let aE = extract(aD.payment)
242+ if ((aE.assetId != ae))
228243 then throw("can use neutrino only")
229244 else {
230- let az = toBase58String(ax.caller.bytes)
231- let aA = (((ay.amount / U) * 100) + ak(az))
232- WriteSet([DataEntry((A + toString(ax.caller)), aA), DataEntry((B + toString(ax.caller)), height), DataEntry(y, (V - aA)), DataEntry(x, (W - ay.amount))])
245+ let aF = toBase58String(aD.caller.bytes)
246+ let ay = ax(aE.amount)
247+ WriteSet([DataEntry((A + toString(aD.caller)), (ay + ak(aF))), DataEntry((B + toString(aD.caller)), height), DataEntry(y, (V - ay)), DataEntry(x, (W - aE.amount))])
233248 }
234249 }
235250
236251
237252
238-@Callable(ax)
239-func withdraw (az) = if (((an(az) + m) > height))
253+@Callable(aD)
254+func withdraw (aF) = if (((an(aF) + m) > height))
240255 then throw("wait a couple of blocks for withdraw")
241- else ScriptResult(WriteSet([DataEntry((A + az), 0), DataEntry((z + az), 0)]), TransferSet([ScriptTransfer(ax.caller, am(az), ae), ScriptTransfer(ax.caller, ak(az), unit)]))
256+ else ScriptResult(WriteSet([DataEntry((A + aF), 0), DataEntry((z + aF), 0)]), TransferSet([ScriptTransfer(aD.caller, am(aF), ae), ScriptTransfer(aD.caller, ak(aF), unit)]))
242257
243258
244259
245-@Callable(ax)
260+@Callable(aD)
246261 func generateBond () = {
247- let aB = (W - (((V * U) / 100) / o))
248- if (if ((aB >= p))
262+ let aG = (W - az(V))
263+ if (if ((aG >= p))
249264 then (height > (ab + l))
250265 else false)
251- then ScriptResult(WriteSet([DataEntry(L, height)]), TransferSet([ScriptTransfer(addressFromStringValue(ag), (aB / o), af)]))
252- else throw(("deficit did not reach the threshold. deficit =" + toString(aB)))
266+ then ScriptResult(WriteSet([DataEntry(L, height)]), TransferSet([ScriptTransfer(addressFromStringValue(ag), aA(aG), af)]))
267+ else throw(("deficit did not reach the threshold. deficit =" + toString(aG)))
253268 }
254269
255270
256271
257-@Callable(ax)
272+@Callable(aD)
258273 func setOrder () = {
259- let ay = extract(ax.payment)
260- let aC = toBase58String(keccak256(((toBytes(ay.amount) + ax.caller.bytes) + toBytes(height))))
261- if ((ay.assetId != af))
274+ let aE = extract(aD.payment)
275+ let aH = toBase58String(keccak256(((toBytes(aE.amount) + aD.caller.bytes) + toBytes(height))))
276+ if ((aE.assetId != af))
262277 then throw("can use bond only")
263- else if ((aq(aC) != ""))
278+ else if ((aq(aH) != ""))
264279 then throw("order exists")
265- else WriteSet([DataEntry(G, (X + ay.amount)), DataEntry(C, ((Y + aC) + k)), DataEntry((D + aC), ay.amount), DataEntry((E + aC), toString(ax.caller)), DataEntry((F + aC), height)])
280+ else WriteSet([DataEntry(G, (X + aE.amount)), DataEntry(C, ((Y + aH) + k)), DataEntry((D + aH), aE.amount), DataEntry((E + aH), toString(aD.caller)), DataEntry((F + aH), height)])
266281 }
267282
268283
269284
270-@Callable(ax)
271-func cancelOrder (aD) = {
272- let al = aq(aD)
273- let aE = ao(aD)
274- if ((al != toString(ax.caller)))
285+@Callable(aD)
286+func cancelOrder (aI) = {
287+ let al = aq(aI)
288+ let aJ = ao(aI)
289+ if ((al != toString(aD.caller)))
275290 then throw("permission denied")
276291 else {
277- let aF = split(Y, (aD + k))[0]
278- let aG = split(Y, (aD + k))[1]
279- ScriptResult(WriteSet([DataEntry(G, (X - aE)), DataEntry(C, (aF + aG)), DataEntry((D + aD), 0)]), TransferSet([ScriptTransfer(ax.caller, aE, unit)]))
292+ let aK = split(Y, (aI + k))[0]
293+ let aL = split(Y, (aI + k))[1]
294+ ScriptResult(WriteSet([DataEntry(G, (X - aJ)), DataEntry(C, (aK + aL)), DataEntry((D + aI), 0)]), TransferSet([ScriptTransfer(aD.caller, aJ, unit)]))
280295 }
281296 }
282297
283298
284299
285-@Callable(ax)
300+@Callable(aD)
286301 func executeOrder () = {
287- let aD = split(ac, k)[0]
288- let aH = ao(aD)
302+ let aI = split(ac, k)[0]
303+ let aM = ao(aI)
289304 if ((0 >= Z))
290305 then throw("surplus is less than zero")
291306 else {
292- let aI = split(Y, (aD + k))
293- let aJ = (aI[0] + aI[1])
294- let aA = ((aH - (Z / o)) * o)
295- ScriptResult(WriteSet([DataEntry(G, (X - (if ((Z >= aH))
296- then aH
297- else Z))), DataEntry(C, aJ), DataEntry(K, split(ac, (aD + k))[1]), DataEntry((D + aD), if ((0 >= aA))
307+ let aN = split(Y, (aI + k))
308+ let aO = (aN[0] + aN[1])
309+ let ay = aB((aM - aA(Z)))
310+ ScriptResult(WriteSet([DataEntry(G, (X - (if ((Z >= aM))
311+ then aM
312+ else Z))), DataEntry(C, aO), DataEntry(K, split(ac, (aI + k))[1]), DataEntry((D + aI), if ((0 >= ay))
298313 then 0
299- else aA)]), TransferSet([ScriptTransfer(ax.caller, if ((Z >= aH))
300- then (aH * o)
314+ else ay)]), TransferSet([ScriptTransfer(aD.caller, if ((Z >= aM))
315+ then aB(aM)
301316 else Z, ae)]))
302317 }
303318 }
304319
305320
306321
307-@Callable(ax)
322+@Callable(aD)
308323 func createSnapshot () = {
309- let aK = (((V * U) / 100) - W)
310- if (if ((0 >= aK))
324+ let aP = (az(V) - W)
325+ if (if ((0 >= aP))
311326 then true
312- else (q > aK))
327+ else (q > aP))
313328 then throw("surplus is less minimum")
314329 else if ((height >= (aa + l)))
315330 then WriteSet([DataEntry(K, Y), DataEntry(H, X), DataEntry(J, height), DataEntry(I, Z)])
318333
319334
320335
321-@Callable(ax)
336+@Callable(aD)
322337 func snapshotNeutrino (h) = {
323338 let al = addressFromStringValue(h)
324- let aL = assetBalance(al, ae)
325- let aM = assetBalance(al, af)
326- let aA = (aM + aL)
327- let ap = toBase58String(keccak256(((toBytes(aA) + al.bytes) + toBytes(height))))
339+ let aQ = assetBalance(al, ae)
340+ let aR = assetBalance(al, af)
341+ let ay = (aR + aQ)
342+ let ap = toBase58String(keccak256(((toBytes(ay) + al.bytes) + toBytes(height))))
328343 if ((as(ap) != ""))
329344 then throw("id exists")
330- else WriteSet([DataEntry((O + ap), aA), DataEntry((M + ap), height), DataEntry((N + ap), toString(ax.caller))])
345+ else WriteSet([DataEntry((O + ap), ay), DataEntry((M + ap), height), DataEntry((N + ap), toString(aD.caller))])
331346 }
332347
333348
334349
335-@Callable(ax)
350+@Callable(aD)
336351 func getNewNeutrino (ap) = {
337- let aL = assetBalance(ax.caller, ae)
338- let aM = assetBalance(ax.caller, af)
339- let aN = (ai - ad)
340- let aO = (Z - (ad * o))
352+ let aQ = assetBalance(aD.caller, ae)
353+ let aR = assetBalance(aD.caller, af)
354+ let aS = (ai - ad)
355+ let aT = (Z - aB(ad))
341356 let av = ar(ap)
342- let aA = at(ap)
343- if ((0 >= aO))
357+ let ay = at(ap)
358+ if ((0 >= aT))
344359 then throw("surplus is less than zero")
345360 else if ((av > aa))
346361 then throw("wait new snapshot")
347- else if ((aA > (aM + aL)))
362+ else if ((ay > (aR + aQ)))
348363 then throw("invalid balance snapshot")
349- else ScriptResult(WriteSet([DataEntry((O + ap), 0), DataEntry((M + ap), 0)]), TransferSet([ScriptTransfer(ax.caller, ((aO * ((aA * 100) / (W + aN))) / 100), ae)]))
364+ else ScriptResult(WriteSet([DataEntry((O + ap), 0), DataEntry((M + ap), 0)]), TransferSet([ScriptTransfer(aD.caller, ((aT * ((ay * 100) / (W + aS))) / 100), ae)]))
350365 }
351366
352367
353368
354-@Callable(ax)
355-func sendToLeasing (aP,av) = {
356- let aQ = au(aP, av)
357- if ((aw(aP, av) == true))
369+@Callable(aD)
370+func sendToLeasing (aU,av) = {
371+ let aV = au(aU, av)
372+ if ((aw(aU, av) == true))
358373 then throw("funds were sent")
359374 else if ((height > (av + r)))
360375 then throw((("apply setting time expire (" + toString((av + r))) + ")"))
361- else ScriptResult(WriteSet([DataEntry((((S + aP) + k) + toString(av)), true)]), TransferSet([ScriptTransfer(addressFromStringValue(aP), aQ, unit)]))
376+ else ScriptResult(WriteSet([DataEntry((((S + aU) + k) + toString(av)), true)]), TransferSet([ScriptTransfer(addressFromStringValue(aU), aV, unit)]))
362377 }
363378
364379
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 = "_"
7171
7272 let l = 10
7373
7474 let m = 2
7575
7676 let n = "+"
7777
7878 let o = 100000000
7979
8080 let p = (10 * o)
8181
8282 let q = (10 * o)
8383
8484 let r = 10
8585
8686 let s = "lease_contract"
8787
8888 let t = "neutrino_asset_id"
8989
9090 let u = "bond_asset_id"
9191
9292 let v = "auction_contract"
9393
9494 let w = "price"
9595
9696 let x = "neutrino_supply"
9797
9898 let y = "waves_reserve"
9999
100100 let z = "neutrino_"
101101
102102 let A = "waves_"
103103
104104 let B = "balance_block_"
105105
106106 let C = "orderbook"
107107
108108 let D = "order_total_"
109109
110110 let E = "order_owner_"
111111
112112 let F = "order_height_"
113113
114114 let G = "orderbook_total"
115115
116116 let H = "orderbook_total_snapshot"
117117
118118 let I = "surplus"
119119
120120 let J = "snapshot_block"
121121
122122 let K = "orderbook_snapshot"
123123
124124 let L = "bond_generated_block"
125125
126126 let M = "account_snapshot_block_"
127127
128128 let N = "account_snapshot_owner_"
129129
130130 let O = "account_snapshot_amount_"
131131
132132 let P = "account_snapshot_node_"
133133
134134 let Q = "snapshot_node_balance_"
135135
136136 let R = "node_balance_"
137137
138138 let S = "is_sent_node_balance_"
139139
140140 let T = "node_status"
141141
142142 let U = a(w)
143143
144144 let V = a(y)
145145
146146 let W = a(x)
147147
148148 let X = a(G)
149149
150150 let Y = e(C)
151151
152152 let Z = a(I)
153153
154154 let aa = a(J)
155155
156156 let ab = a(L)
157157
158158 let ac = e(K)
159159
160160 let ad = a(H)
161161
162162 let ae = fromBase58String(e(t))
163163
164164 let af = fromBase58String(e(u))
165165
166166 let ag = e(v)
167167
168168 let ah = e(s)
169169
170170 let ai = {
171171 let aj = extract(assetInfo(af))
172172 (aj.quantity - assetBalance(this, af))
173173 }
174174
175175 func ak (al) = a((A + al))
176176
177177
178178 func am (al) = a((z + al))
179179
180180
181181 func an (al) = a((B + al))
182182
183183
184184 func ao (ap) = a((D + ap))
185185
186186
187187 func aq (ap) = e((E + ap))
188188
189189
190190 func ar (ap) = a((M + ap))
191191
192192
193193 func as (ap) = e((N + ap))
194194
195195
196196 func at (ap) = a((O + ap))
197197
198198
199199 func au (h,av) = g(ah, (((R + h) + k) + toString(av)))
200200
201201
202202 func aw (h,av) = f((((S + h) + k) + toString(av)))
203203
204204
205-@Callable(ax)
205+func ax (ay) = ((ay * 100) / U)
206+
207+
208+func az (ay) = ((ay * U) / 100)
209+
210+
211+func aA (ay) = (ay / o)
212+
213+
214+func aB (ay) = (ay * o)
215+
216+
217+func aC (ay) = aA(az(ay))
218+
219+
220+@Callable(aD)
206221 func setCurrentPrice (U) = WriteSet([DataEntry(w, U)])
207222
208223
209224
210-@Callable(ax)
225+@Callable(aD)
211226 func swapWavesToNeutrino () = {
212- let ay = extract(ax.payment)
213- if (isDefined(ay.assetId))
227+ let aE = extract(aD.payment)
228+ if (isDefined(aE.assetId))
214229 then throw("can use waves only")
215230 else {
216- let az = toBase58String(ax.caller.bytes)
217- let aA = (((ay.amount * U) / 100) + am(az))
218- WriteSet([DataEntry((z + toString(ax.caller)), aA), DataEntry((B + toString(ax.caller)), height), DataEntry(y, (V + ay.amount)), DataEntry(x, (W + aA))])
231+ let aF = toBase58String(aD.caller.bytes)
232+ let ay = az(aE.amount)
233+ WriteSet([DataEntry((z + toString(aD.caller)), (ay + am(aF))), DataEntry((B + toString(aD.caller)), height), DataEntry(y, (V + aE.amount)), DataEntry(x, (W + ay))])
219234 }
220235 }
221236
222237
223238
224-@Callable(ax)
239+@Callable(aD)
225240 func swapNeutrinoToWaves () = {
226- let ay = extract(ax.payment)
227- if ((ay.assetId != ae))
241+ let aE = extract(aD.payment)
242+ if ((aE.assetId != ae))
228243 then throw("can use neutrino only")
229244 else {
230- let az = toBase58String(ax.caller.bytes)
231- let aA = (((ay.amount / U) * 100) + ak(az))
232- WriteSet([DataEntry((A + toString(ax.caller)), aA), DataEntry((B + toString(ax.caller)), height), DataEntry(y, (V - aA)), DataEntry(x, (W - ay.amount))])
245+ let aF = toBase58String(aD.caller.bytes)
246+ let ay = ax(aE.amount)
247+ WriteSet([DataEntry((A + toString(aD.caller)), (ay + ak(aF))), DataEntry((B + toString(aD.caller)), height), DataEntry(y, (V - ay)), DataEntry(x, (W - aE.amount))])
233248 }
234249 }
235250
236251
237252
238-@Callable(ax)
239-func withdraw (az) = if (((an(az) + m) > height))
253+@Callable(aD)
254+func withdraw (aF) = if (((an(aF) + m) > height))
240255 then throw("wait a couple of blocks for withdraw")
241- else ScriptResult(WriteSet([DataEntry((A + az), 0), DataEntry((z + az), 0)]), TransferSet([ScriptTransfer(ax.caller, am(az), ae), ScriptTransfer(ax.caller, ak(az), unit)]))
256+ else ScriptResult(WriteSet([DataEntry((A + aF), 0), DataEntry((z + aF), 0)]), TransferSet([ScriptTransfer(aD.caller, am(aF), ae), ScriptTransfer(aD.caller, ak(aF), unit)]))
242257
243258
244259
245-@Callable(ax)
260+@Callable(aD)
246261 func generateBond () = {
247- let aB = (W - (((V * U) / 100) / o))
248- if (if ((aB >= p))
262+ let aG = (W - az(V))
263+ if (if ((aG >= p))
249264 then (height > (ab + l))
250265 else false)
251- then ScriptResult(WriteSet([DataEntry(L, height)]), TransferSet([ScriptTransfer(addressFromStringValue(ag), (aB / o), af)]))
252- else throw(("deficit did not reach the threshold. deficit =" + toString(aB)))
266+ then ScriptResult(WriteSet([DataEntry(L, height)]), TransferSet([ScriptTransfer(addressFromStringValue(ag), aA(aG), af)]))
267+ else throw(("deficit did not reach the threshold. deficit =" + toString(aG)))
253268 }
254269
255270
256271
257-@Callable(ax)
272+@Callable(aD)
258273 func setOrder () = {
259- let ay = extract(ax.payment)
260- let aC = toBase58String(keccak256(((toBytes(ay.amount) + ax.caller.bytes) + toBytes(height))))
261- if ((ay.assetId != af))
274+ let aE = extract(aD.payment)
275+ let aH = toBase58String(keccak256(((toBytes(aE.amount) + aD.caller.bytes) + toBytes(height))))
276+ if ((aE.assetId != af))
262277 then throw("can use bond only")
263- else if ((aq(aC) != ""))
278+ else if ((aq(aH) != ""))
264279 then throw("order exists")
265- else WriteSet([DataEntry(G, (X + ay.amount)), DataEntry(C, ((Y + aC) + k)), DataEntry((D + aC), ay.amount), DataEntry((E + aC), toString(ax.caller)), DataEntry((F + aC), height)])
280+ else WriteSet([DataEntry(G, (X + aE.amount)), DataEntry(C, ((Y + aH) + k)), DataEntry((D + aH), aE.amount), DataEntry((E + aH), toString(aD.caller)), DataEntry((F + aH), height)])
266281 }
267282
268283
269284
270-@Callable(ax)
271-func cancelOrder (aD) = {
272- let al = aq(aD)
273- let aE = ao(aD)
274- if ((al != toString(ax.caller)))
285+@Callable(aD)
286+func cancelOrder (aI) = {
287+ let al = aq(aI)
288+ let aJ = ao(aI)
289+ if ((al != toString(aD.caller)))
275290 then throw("permission denied")
276291 else {
277- let aF = split(Y, (aD + k))[0]
278- let aG = split(Y, (aD + k))[1]
279- ScriptResult(WriteSet([DataEntry(G, (X - aE)), DataEntry(C, (aF + aG)), DataEntry((D + aD), 0)]), TransferSet([ScriptTransfer(ax.caller, aE, unit)]))
292+ let aK = split(Y, (aI + k))[0]
293+ let aL = split(Y, (aI + k))[1]
294+ ScriptResult(WriteSet([DataEntry(G, (X - aJ)), DataEntry(C, (aK + aL)), DataEntry((D + aI), 0)]), TransferSet([ScriptTransfer(aD.caller, aJ, unit)]))
280295 }
281296 }
282297
283298
284299
285-@Callable(ax)
300+@Callable(aD)
286301 func executeOrder () = {
287- let aD = split(ac, k)[0]
288- let aH = ao(aD)
302+ let aI = split(ac, k)[0]
303+ let aM = ao(aI)
289304 if ((0 >= Z))
290305 then throw("surplus is less than zero")
291306 else {
292- let aI = split(Y, (aD + k))
293- let aJ = (aI[0] + aI[1])
294- let aA = ((aH - (Z / o)) * o)
295- ScriptResult(WriteSet([DataEntry(G, (X - (if ((Z >= aH))
296- then aH
297- else Z))), DataEntry(C, aJ), DataEntry(K, split(ac, (aD + k))[1]), DataEntry((D + aD), if ((0 >= aA))
307+ let aN = split(Y, (aI + k))
308+ let aO = (aN[0] + aN[1])
309+ let ay = aB((aM - aA(Z)))
310+ ScriptResult(WriteSet([DataEntry(G, (X - (if ((Z >= aM))
311+ then aM
312+ else Z))), DataEntry(C, aO), DataEntry(K, split(ac, (aI + k))[1]), DataEntry((D + aI), if ((0 >= ay))
298313 then 0
299- else aA)]), TransferSet([ScriptTransfer(ax.caller, if ((Z >= aH))
300- then (aH * o)
314+ else ay)]), TransferSet([ScriptTransfer(aD.caller, if ((Z >= aM))
315+ then aB(aM)
301316 else Z, ae)]))
302317 }
303318 }
304319
305320
306321
307-@Callable(ax)
322+@Callable(aD)
308323 func createSnapshot () = {
309- let aK = (((V * U) / 100) - W)
310- if (if ((0 >= aK))
324+ let aP = (az(V) - W)
325+ if (if ((0 >= aP))
311326 then true
312- else (q > aK))
327+ else (q > aP))
313328 then throw("surplus is less minimum")
314329 else if ((height >= (aa + l)))
315330 then WriteSet([DataEntry(K, Y), DataEntry(H, X), DataEntry(J, height), DataEntry(I, Z)])
316331 else throw("error create new snapshot")
317332 }
318333
319334
320335
321-@Callable(ax)
336+@Callable(aD)
322337 func snapshotNeutrino (h) = {
323338 let al = addressFromStringValue(h)
324- let aL = assetBalance(al, ae)
325- let aM = assetBalance(al, af)
326- let aA = (aM + aL)
327- let ap = toBase58String(keccak256(((toBytes(aA) + al.bytes) + toBytes(height))))
339+ let aQ = assetBalance(al, ae)
340+ let aR = assetBalance(al, af)
341+ let ay = (aR + aQ)
342+ let ap = toBase58String(keccak256(((toBytes(ay) + al.bytes) + toBytes(height))))
328343 if ((as(ap) != ""))
329344 then throw("id exists")
330- else WriteSet([DataEntry((O + ap), aA), DataEntry((M + ap), height), DataEntry((N + ap), toString(ax.caller))])
345+ else WriteSet([DataEntry((O + ap), ay), DataEntry((M + ap), height), DataEntry((N + ap), toString(aD.caller))])
331346 }
332347
333348
334349
335-@Callable(ax)
350+@Callable(aD)
336351 func getNewNeutrino (ap) = {
337- let aL = assetBalance(ax.caller, ae)
338- let aM = assetBalance(ax.caller, af)
339- let aN = (ai - ad)
340- let aO = (Z - (ad * o))
352+ let aQ = assetBalance(aD.caller, ae)
353+ let aR = assetBalance(aD.caller, af)
354+ let aS = (ai - ad)
355+ let aT = (Z - aB(ad))
341356 let av = ar(ap)
342- let aA = at(ap)
343- if ((0 >= aO))
357+ let ay = at(ap)
358+ if ((0 >= aT))
344359 then throw("surplus is less than zero")
345360 else if ((av > aa))
346361 then throw("wait new snapshot")
347- else if ((aA > (aM + aL)))
362+ else if ((ay > (aR + aQ)))
348363 then throw("invalid balance snapshot")
349- else ScriptResult(WriteSet([DataEntry((O + ap), 0), DataEntry((M + ap), 0)]), TransferSet([ScriptTransfer(ax.caller, ((aO * ((aA * 100) / (W + aN))) / 100), ae)]))
364+ else ScriptResult(WriteSet([DataEntry((O + ap), 0), DataEntry((M + ap), 0)]), TransferSet([ScriptTransfer(aD.caller, ((aT * ((ay * 100) / (W + aS))) / 100), ae)]))
350365 }
351366
352367
353368
354-@Callable(ax)
355-func sendToLeasing (aP,av) = {
356- let aQ = au(aP, av)
357- if ((aw(aP, av) == true))
369+@Callable(aD)
370+func sendToLeasing (aU,av) = {
371+ let aV = au(aU, av)
372+ if ((aw(aU, av) == true))
358373 then throw("funds were sent")
359374 else if ((height > (av + r)))
360375 then throw((("apply setting time expire (" + toString((av + r))) + ")"))
361- else ScriptResult(WriteSet([DataEntry((((S + aP) + k) + toString(av)), true)]), TransferSet([ScriptTransfer(addressFromStringValue(aP), aQ, unit)]))
376+ else ScriptResult(WriteSet([DataEntry((((S + aU) + k) + toString(av)), true)]), TransferSet([ScriptTransfer(addressFromStringValue(aU), aV, unit)]))
362377 }
363378
364379

github/deemru/w8io/169f3d6 
103.66 ms