tx · FsTRhubdMrnziK6a4eQYZEDTa7vqSbUzLuUPuCv9Pzgy 3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP: -0.01400000 Waves 2019.10.25 19:02 [1766073] smart account 3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP > SELF 0.00000000 Waves
{ "type": 13, "id": "FsTRhubdMrnziK6a4eQYZEDTa7vqSbUzLuUPuCv9Pzgy", "fee": 1400000, "feeAssetId": null, "timestamp": 1572019354677, "version": 1, "sender": "3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP", "senderPublicKey": "5RM3w4ysmDbtgfswnVNPx7DQkNwVAG3RoxNFHgt6ToNU", "proofs": [ "BMjndDjddicTpsRYQovvKN93bbEBytvD8Gcm5wosswuqpmxDA1ZSbT3w7hzKdcub93Drvext97nR6UcL7tJBT2c" ], "script": "base64:AAIDAAAAAAAAAA8IARIECgIBARIDCgEIEgAAAAA4AQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAAAAAAHV0FWRUxFVAAAAAAABfXhAAAAAAAQT1JERVJTUExJVFNZTUJPTAIAAAABXwAAAAAFUEFVTEkAAAAAAAAAAGQAAAAACENBTkNFTEVEAgAAAAhjYW5jZWxlZAAAAAADTkVXAgAAAANuZXcAAAAABkZJTExFRAIAAAAGZmlsbGVkAAAAAA9QRVJDRU5UQUNDVVJBQ1kAAAAAAAAAA+gAAAAAC01BWERJU0NPVU5UAAAAAAAAAAAyAAAAAAxPcmRlckJvb2tLZXkCAAAACW9yZGVyYm9vawAAAAANT3JkZXJQcmljZUtleQIAAAAMb3JkZXJfcHJpY2VfAAAAAA1PcmRlclRvdGFsS2V5AgAAAAxvcmRlcl90b3RhbF8AAAAAE09yZGVyRmlsbGVkVG90YWxLZXkCAAAAE29yZGVyX2ZpbGxlZF90b3RhbF8AAAAADU9yZGVyT3duZXJLZXkCAAAADG9yZGVyX293bmVyXwAAAAAOT3JkZXJIZWlnaHRLZXkCAAAADW9yZGVyX2hlaWdodF8AAAAADk9yZGVyU3RhdHVzS2V5AgAAAA1vcmRlcl9zdGF0dXNfAAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADkJvbmRBc3NldElkS2V5AgAAAA1ib25kX2Fzc2V0X2lkAAAAABJOZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAABNOZXV0cmlub0NvbnRyYWN0S2V5AgAAABFuZXV0cmlub19jb250cmFjdAAAAAASQ29udHJvbENvbnRyYWN0S2V5AgAAABBjb250cm9sX2NvbnRyYWN0AAAAAA9PcmRlckhpc3RvcnlLZXkCAAAADm9yZGVyX2hpc3RvcnlfAAAAABRTd2FwTG9ja2VkQmFsYW5jZUtleQIAAAATc3dhcF9sb2NrZWRfYmFsYW5jZQEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACBQAAAA1PcmRlclByaWNlS2V5BQAAAAdvcmRlcklkAQAAABBnZXRPcmRlclRvdGFsS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAIFAAAADU9yZGVyVG90YWxLZXkFAAAAB29yZGVySWQBAAAAEGdldE9yZGVyT3duZXJLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgUAAAANT3JkZXJPd25lcktleQUAAAAHb3JkZXJJZAEAAAARZ2V0T3JkZXJIZWlnaHRLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgUAAAAOT3JkZXJIZWlnaHRLZXkFAAAAB29yZGVySWQBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAIFAAAADk9yZGVyU3RhdHVzS2V5BQAAAAdvcmRlcklkAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAIFAAAAE09yZGVyRmlsbGVkVG90YWxLZXkFAAAAB29yZGVySWQBAAAAEmdldE9yZGVySGlzdG9yeUtleQAAAAEAAAAGaGVpZ2h0CQABLAAAAAIFAAAAD09yZGVySGlzdG9yeUtleQkAAaQAAAABBQAAAAZoZWlnaHQAAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAATTmV1dHJpbm9Db250cmFjdEtleQAAAAAPY29udHJvbENvbnRyYWN0CQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABJDb250cm9sQ29udHJhY3RLZXkAAAAADXByaWNlTmV1dHJpbm8JAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QFAAAACFByaWNlS2V5AQAAABZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAAAAAQAAAAZhbW91bnQJAABpAAAAAgkAAGgAAAACCQAAaQAAAAIJAABoAAAAAgUAAAAGYW1vdW50AAAAAAAAAABkBQAAAA1wcmljZU5ldXRyaW5vBQAAAAdXQVZFTEVUBQAAAAVQQVVMSQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAEAAAAGYW1vdW50CQAAaQAAAAIJAABoAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAABmFtb3VudAUAAAANcHJpY2VOZXV0cmlubwAAAAAAAAAAZAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEAAAAGYW1vdW50CQAAaQAAAAIFAAAABmFtb3VudAUAAAAFUEFVTEkBAAAAFWNvbnZlcnRCb25kVG9OZXV0cmlubwAAAAEAAAAGYW1vdW50CQAAaAAAAAIFAAAABmFtb3VudAUAAAAFUEFVTEkBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAEAAAAGYW1vdW50CQEAAAAVY29udmVydE5ldXRyaW5vVG9Cb25kAAAAAQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAABBQAAAAZhbW91bnQAAAAAEXN3YXBMb2NrZWRCYWxhbmNlCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAUU3dhcExvY2tlZEJhbGFuY2VLZXkAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAAtib25kQXNzZXRJZAkAAlkAAAABCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAOQm9uZEFzc2V0SWRLZXkAAAAACW9yZGVyYm9vawkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAMT3JkZXJCb29rS2V5AAAAAAdyZXNlcnZlCQAAZQAAAAIJAQAAAAx3YXZlc0JhbGFuY2UAAAABBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABFzd2FwTG9ja2VkQmFsYW5jZQAAAAAObmV1dHJpbm9TdXBwbHkEAAAABGluZm8JAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAA9uZXV0cmlub0Fzc2V0SWQJAABlAAAAAggFAAAABGluZm8AAAAIcXVhbnRpdHkJAAPrAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkAAAAAAdkZWZpY2l0CQAAZQAAAAIFAAAADm5ldXRyaW5vU3VwcGx5CQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAEFAAAAB3Jlc2VydmUBAAAADWdldE9yZGVyUHJpY2UAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEFAAAAAmlkAQAAAA1nZXRPcmRlclRvdGFsAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABBQAAAAJpZAEAAAANZ2V0T3JkZXJPd25lcgAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdC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SWQCAAAAAAkAAGYAAAACBQAAAAVwcmljZQUAAAAObmV4dE9yZGVyUHJpY2UHBgcEAAAAC3ByZXZPcmRlcklkCQABkQAAAAIFAAAABm9yZGVycwUAAAAIcG9zaXRpb24EAAAADnByZXZPcmRlclByaWNlCQEAAAANZ2V0T3JkZXJQcmljZQAAAAEFAAAAC3ByZXZPcmRlcklkBAAAABBpc1ByZXZPcmRlckVycm9yAwkAAGcAAAACBQAAAA5wcmV2T3JkZXJQcmljZQUAAAAFcHJpY2UGBwMDBQAAABBpc05leHRPcmRlckVycm9yBgUAAAAQaXNQcmV2T3JkZXJFcnJvcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB9pbnZhbGlkIG9yZGVyIGlzUHJldk9yZGVyRXJyb3I6CQABpQAAAAEFAAAAEGlzUHJldk9yZGVyRXJyb3ICAAAAEiBpc05leHRPcmRlckVycm9yOgkAAaUAAAABBQAAABBpc05leHRPcmRlckVycm9yCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxPcmRlckJvb2tLZXkJAQAAAAhhZGRPcmRlcgAAAAIFAAAACm5ld09yZGVySWQFAAAACHBvc2l0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEFAAAACm5ld09yZGVySWQFAAAABXByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0T3JkZXJUb3RhbEtleQAAAAEFAAAACm5ld09yZGVySWQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0T3JkZXJPd25lcktleQAAAAEFAAAACm5ld09yZGVySWQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0T3JkZXJIZWlnaHRLZXkAAAABBQAAAApuZXdPcmRlcklkBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAACm5ld09yZGVySWQFAAAAA05FVwUAAAADbmlsAAAAAWkBAAAAC2NhbmNlbE9yZGVyAAAAAQAAAAdvcmRlcklkBAAAAAVvd25lcgkBAAAADWdldE9yZGVyT3duZXIAAAABBQAAAAdvcmRlcklkBAAAAAZhbW91bnQJAABlAAAAAgkBAAAADWdldE9yZGVyVG90YWwAAAABBQAAAAdvcmRlcklkCQEAAAATZ2V0T3JkZXJGaWxsZWRUb3RhbAAAAAEFAAAAB29yZGVySWQDCQEAAAACIT0AAAACBQAAAAVvd25lcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAARcGVybWlzc2lvbiBkZW5pZWQDCQEAAAACIT0AAAACCQEAAAAOZ2V0T3JkZXJTdGF0dXMAAAABBQAAAAdvcmRlcklkBQAAAANORVcJAAACAAAAAQIAAAAUaW52YWxpZCBvcmRlciBzdGF0dXMJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxPcmRlckJvb2tLZXkJAQAAAAlkcm9wT3JkZXIAAAABBQAAAAdvcmRlcklkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABBQAAAAdvcmRlcklkBQAAAAhDQU5DRUxFRAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAA9uZXV0cmlub0Fzc2V0SWQFAAAAA25pbAAAAAFpAQAAAAxleGVjdXRlT3JkZXIAAAAABAAAAAtib25kQmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAAtib25kQXNzZXRJZAQAAAAPZGVmaWNpdFBvc2l0aXZlAwkAAGcAAAACAAAAAAAAAAAABQAAAAdkZWZpY2l0AAAAAAAAAAAABQAAAAdkZWZpY2l0BAAAAApib25kQW1vdW50AwkAAGcAAAACBQAAAA9kZWZpY2l0UG9zaXRpdmUFAAAAC2JvbmRCYWxhbmNlBQAAAAtib25kQmFsYW5jZQUAAAAPZGVmaWNpdFBvc2l0aXZlBAAAAAxyZXR1cm5BbW91bnQDCQAAZwAAAAIFAAAAD2RlZmljaXRQb3NpdGl2ZQUAAAALYm9uZEJhbGFuY2UAAAAAAAAAAAAJAABlAAAAAgUAAAALYm9uZEJhbGFuY2UFAAAAD2RlZmljaXRQb3NpdGl2ZQMDCQAAAAAAAAIFAAAADHJldHVybkFtb3VudAAAAAAAAAAAAAkAAAAAAAACBQAAAApib25kQW1vdW50AAAAAAAAAAAABwkAAAIAAAABAgAAAA93aXRob3V0IGRlZmljaXQDCQAAAAAAAAIFAAAACmJvbmRBbW91bnQAAAAAAAAAAAAJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAMcmV0dXJuQW1vdW50BQAAAAtib25kQXNzZXRJZAUAAAADbmlsBAAAAAdvcmRlcklkCQABkQAAAAIJAAS1AAAAAgUAAAAJb3JkZXJib29rBQAAABBPUkRFUlNQTElUU1lNQk9MAAAAAAAAAAAABAAAAAtmaWxsZWRUb3RhbAkBAAAAE2dldE9yZGVyRmlsbGVkVG90YWwAAAABBQAAAAdvcmRlcklkBAAAAApvcmRlclRvdGFsCQEAAAANZ2V0T3JkZXJUb3RhbAAAAAEFAAAAB29yZGVySWQEAAAACm9yZGVyUHJpY2UJAQAAAA1nZXRPcmRlclByaWNlAAAAAQUAAAAHb3JkZXJJZAQAAAAKb3JkZXJPd25lcgkBAAAADWdldE9yZGVyT3duZXIAAAABBQAAAAdvcmRlcklkBAAAAAZhbW91bnQJAQAAABVjb252ZXJ0TmV1dHJpbm9Ub0JvbmQAAAABCQAAaQAAAAIJAABoAAAAAgkAAGUAAAACBQAAAApvcmRlclRvdGFsBQAAAAtmaWxsZWRUb3RhbAAAAAAAAAAAZAUAAAAKb3JkZXJQcmljZQQAAAAMbmV3T3JkZXJib29rAwkAAGcAAAACBQAAAApib25kQW1vdW50BQAAAAZhbW91bnQJAQAAAAlkcm9wT3JkZXIAAAABBQAAAAdvcmRlcklkBQAAAAlvcmRlcmJvb2sEAAAADGZpbGxlZEFtb3VudAMJAABnAAAAAgUAAAAKYm9uZEFtb3VudAUAAAAGYW1vdW50BQAAAAZhbW91bnQFAAAACmJvbmRBbW91bnQEAAAABXRvdGFsCQAAaQAAAAIJAABoAAAAAgkAAGgAAAACBQAAAAxmaWxsZWRBbW91bnQFAAAACm9yZGVyUHJpY2UFAAAABVBBVUxJAAAAAAAAAABkBAAAAAZzdGF0dXMDCQAAZwAAAAIFAAAACmJvbmRBbW91bnQFAAAABmFtb3VudAUAAAAGRklMTEVEBQAAAANORVcDCQAAAAAAAAIFAAAABXRvdGFsAAAAAAAAAAAACQAAAgAAAAECAAAAEHRvdGFsIGVxdWFsIHplcm8JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxPcmRlckJvb2tLZXkFAAAADG5ld09yZGVyYm9vawkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFmdldE9yZGVyRmlsbGVkVG90YWxLZXkAAAABBQAAAAdvcmRlcklkCQAAZAAAAAIFAAAAC2ZpbGxlZFRvdGFsBQAAAAV0b3RhbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAAHb3JkZXJJZAUAAAAGc3RhdHVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0T3JkZXJIaXN0b3J5S2V5AAAAAQUAAAAGaGVpZ2h0BQAAAApvcmRlclByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAApvcmRlck93bmVyBQAAAAxmaWxsZWRBbW91bnQFAAAAC2JvbmRBc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAABXRvdGFsBQAAAA9uZXV0cmlub0Fzc2V0SWQFAAAAA25pbAAAAAAEXShO", "chainId": 87, "height": 1766073, "spentComplexity": 0 } View: original | compacted Prev: 4JW7Rhdy3AVBcyTg4KeNiPZ7MsA9fpsN2S6LVxxENpdG Next: ANTbZ3eRvEXsXVXuDCMsy9rhehNtCjPg4RtopjYWTZQB Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b) = { | |
5 | 5 | let c = getInteger(this, b) | |
6 | 6 | if ($isInstanceOf(c, "Int")) | |
7 | 7 | then { | |
8 | 8 | let d = c | |
9 | 9 | d | |
10 | 10 | } | |
11 | 11 | else 0 | |
12 | 12 | } | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func e (b) = { | |
16 | 16 | let c = getString(this, b) | |
17 | 17 | if ($isInstanceOf(c, "String")) | |
18 | 18 | then { | |
19 | 19 | let d = c | |
20 | 20 | d | |
21 | 21 | } | |
22 | 22 | else "" | |
23 | 23 | } | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func f (g,b) = { | |
27 | 27 | let c = getString(g, b) | |
28 | 28 | if ($isInstanceOf(c, "String")) | |
29 | 29 | then { | |
30 | 30 | let d = c | |
31 | 31 | d | |
32 | 32 | } | |
33 | 33 | else "" | |
34 | 34 | } | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func h (g,b) = { | |
38 | 38 | let c = getInteger(g, b) | |
39 | 39 | if ($isInstanceOf(c, "Int")) | |
40 | 40 | then { | |
41 | 41 | let d = c | |
42 | 42 | d | |
43 | 43 | } | |
44 | 44 | else 0 | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | let i = 100000000 | |
49 | 49 | ||
50 | 50 | let j = "_" | |
51 | 51 | ||
52 | 52 | let k = 100 | |
53 | 53 | ||
54 | 54 | let l = "canceled" | |
55 | 55 | ||
56 | 56 | let m = "new" | |
57 | 57 | ||
58 | 58 | let n = "filled" | |
59 | 59 | ||
60 | 60 | let o = 1000 | |
61 | 61 | ||
62 | 62 | let p = 50 | |
63 | 63 | ||
64 | 64 | let q = "orderbook" | |
65 | 65 | ||
66 | 66 | let r = "order_price_" | |
67 | 67 | ||
68 | 68 | let s = "order_total_" | |
69 | 69 | ||
70 | 70 | let t = "order_filled_total_" | |
71 | 71 | ||
72 | 72 | let u = "order_owner_" | |
73 | 73 | ||
74 | 74 | let v = "order_height_" | |
75 | 75 | ||
76 | 76 | let w = "order_status_" | |
77 | 77 | ||
78 | 78 | let x = "price" | |
79 | 79 | ||
80 | 80 | let y = "bond_asset_id" | |
81 | 81 | ||
82 | 82 | let z = "neutrino_asset_id" | |
83 | 83 | ||
84 | 84 | let A = "neutrino_contract" | |
85 | 85 | ||
86 | 86 | let B = "control_contract" | |
87 | 87 | ||
88 | 88 | let C = "order_history_" | |
89 | 89 | ||
90 | 90 | let D = "swap_locked_balance" | |
91 | 91 | ||
92 | 92 | func E (F) = (r + F) | |
93 | 93 | ||
94 | 94 | ||
95 | 95 | func G (F) = (s + F) | |
96 | 96 | ||
97 | 97 | ||
98 | 98 | func H (F) = (u + F) | |
99 | 99 | ||
100 | 100 | ||
101 | 101 | func I (F) = (v + F) | |
102 | 102 | ||
103 | 103 | ||
104 | 104 | func J (F) = (w + F) | |
105 | 105 | ||
106 | 106 | ||
107 | 107 | func K (F) = (t + F) | |
108 | 108 | ||
109 | 109 | ||
110 | 110 | func L (M) = (C + toString(M)) | |
111 | 111 | ||
112 | 112 | ||
113 | 113 | let N = addressFromStringValue(e(A)) | |
114 | 114 | ||
115 | 115 | let O = addressFromStringValue(f(N, B)) | |
116 | 116 | ||
117 | 117 | let P = h(O, x) | |
118 | 118 | ||
119 | 119 | func Q (R) = ((((R * 100) / P) * i) / k) | |
120 | 120 | ||
121 | 121 | ||
122 | 122 | func S (R) = ((((R * P) / 100) * k) / i) | |
123 | 123 | ||
124 | 124 | ||
125 | 125 | func T (R) = (R / k) | |
126 | 126 | ||
127 | 127 | ||
128 | 128 | func U (R) = (R * k) | |
129 | 129 | ||
130 | 130 | ||
131 | 131 | func V (R) = T(S(R)) | |
132 | 132 | ||
133 | 133 | ||
134 | 134 | let W = h(N, D) | |
135 | 135 | ||
136 | 136 | let X = fromBase58String(f(N, z)) | |
137 | 137 | ||
138 | 138 | let Y = fromBase58String(f(N, y)) | |
139 | 139 | ||
140 | 140 | let Z = e(q) | |
141 | 141 | ||
142 | 142 | let aa = (wavesBalance(N) - W) | |
143 | 143 | ||
144 | 144 | let ab = { | |
145 | 145 | let ac = extract(assetInfo(X)) | |
146 | 146 | (ac.quantity - assetBalance(N, X)) | |
147 | 147 | } | |
148 | 148 | ||
149 | 149 | let ad = (ab - S(aa)) | |
150 | 150 | ||
151 | 151 | func ae (af) = a(E(af)) | |
152 | 152 | ||
153 | 153 | ||
154 | 154 | func ag (af) = a(G(af)) | |
155 | 155 | ||
156 | 156 | ||
157 | 157 | func ah (af) = e(H(af)) | |
158 | 158 | ||
159 | 159 | ||
160 | 160 | func ai (af) = e(J(af)) | |
161 | 161 | ||
162 | 162 | ||
163 | 163 | func aj (af) = a(K(af)) | |
164 | 164 | ||
165 | 165 | ||
166 | 166 | func ak (af) = (af + j) | |
167 | 167 | ||
168 | 168 | ||
169 | 169 | func al (F,am) = { | |
170 | 170 | let an = split(Z, j) | |
171 | 171 | let ao = ak(F) | |
172 | 172 | if ((am == 0)) | |
173 | 173 | then (ao + Z) | |
174 | 174 | else if ((am >= (size(an) - 1))) | |
175 | 175 | then (Z + ao) | |
176 | 176 | else { | |
177 | 177 | let ap = split(Z, ak(an[am])) | |
178 | 178 | (((ap[0] + ao) + ak(an[am])) + ap[1]) | |
179 | 179 | } | |
180 | 180 | } | |
181 | 181 | ||
182 | 182 | ||
183 | 183 | func aq (F) = { | |
184 | 184 | let ap = split(Z, ak(F)) | |
185 | 185 | (ap[0] + ap[1]) | |
186 | 186 | } | |
187 | 187 | ||
188 | 188 | ||
189 | 189 | @Callable(ar) | |
190 | 190 | func setOrder (as,am) = { | |
191 | 191 | let at = extract(ar.payment) | |
192 | 192 | let au = toBase58String(keccak256((((toBytes(as) + toBytes(at.amount)) + ar.caller.bytes) + toBytes(height)))) | |
193 | 193 | if ((p > as)) | |
194 | 194 | then throw("max discount is 50%") | |
195 | 195 | else if ((at.assetId != X)) | |
196 | 196 | then throw("can use neutrino only") | |
197 | 197 | else if ((0 >= as)) | |
198 | 198 | then throw("price less zero") | |
199 | 199 | else if ((ah(au) != "")) | |
200 | 200 | then throw("order exists") | |
201 | 201 | else { | |
202 | 202 | let an = split(Z, j) | |
203 | 203 | let av = if ((am == 0)) | |
204 | 204 | then "" | |
205 | 205 | else an[(am - 1)] | |
206 | 206 | let aw = ae(av) | |
207 | 207 | let ax = if (if ((av != "")) | |
208 | 208 | then (as > aw) | |
209 | 209 | else false) | |
210 | 210 | then true | |
211 | 211 | else false | |
212 | 212 | let ay = an[am] | |
213 | 213 | let az = ae(ay) | |
214 | 214 | let aA = if ((az >= as)) | |
215 | 215 | then true | |
216 | 216 | else false | |
217 | 217 | if (if (ax) | |
218 | 218 | then true | |
219 | 219 | else aA) | |
220 | 220 | then throw(((("invalid order isPrevOrderError:" + toString(aA)) + " isNextOrderError:") + toString(ax))) | |
221 | 221 | else WriteSet([DataEntry(q, al(au, am)), DataEntry(E(au), as), DataEntry(G(au), at.amount), DataEntry(H(au), toString(ar.caller)), DataEntry(I(au), height), DataEntry(J(au), m)]) | |
222 | 222 | } | |
223 | 223 | } | |
224 | 224 | ||
225 | 225 | ||
226 | 226 | ||
227 | 227 | @Callable(ar) | |
228 | 228 | func cancelOrder (F) = { | |
229 | 229 | let aB = ah(F) | |
230 | 230 | let R = (ag(F) - aj(F)) | |
231 | 231 | if ((aB != toString(ar.caller))) | |
232 | 232 | then throw("permission denied") | |
233 | 233 | else if ((ai(F) != m)) | |
234 | 234 | then throw("invalid order status") | |
235 | 235 | else ScriptResult(WriteSet([DataEntry(q, aq(F)), DataEntry(J(F), l)]), TransferSet([ScriptTransfer(ar.caller, R, X)])) | |
236 | 236 | } | |
237 | 237 | ||
238 | 238 | ||
239 | 239 | ||
240 | 240 | @Callable(ar) | |
241 | 241 | func executeOrder () = { | |
242 | 242 | let aC = assetBalance(this, Y) | |
243 | 243 | let aD = if ((0 >= ad)) | |
244 | 244 | then 0 | |
245 | 245 | else ad | |
246 | 246 | let aE = if ((aD >= aC)) | |
247 | 247 | then aC | |
248 | 248 | else aD | |
249 | 249 | let aF = if ((aD >= aC)) | |
250 | 250 | then 0 | |
251 | 251 | else (aC - aD) | |
252 | 252 | if (if ((aF == 0)) | |
253 | 253 | then (aE == 0) | |
254 | 254 | else false) | |
255 | 255 | then throw("without deficit") | |
256 | 256 | else if ((aE == 0)) | |
257 | 257 | then TransferSet([ScriptTransfer(N, aF, Y)]) | |
258 | 258 | else { | |
259 | 259 | let F = split(Z, j)[0] | |
260 | 260 | let aG = aj(F) | |
261 | 261 | let aH = ag(F) | |
262 | 262 | let aI = ae(F) | |
263 | 263 | let aJ = ah(F) | |
264 | 264 | let R = T((((aH - aG) * 100) / aI)) | |
265 | 265 | let aK = if ((aE >= R)) | |
266 | 266 | then aq(F) | |
267 | 267 | else Z | |
268 | 268 | let aL = if ((aE >= R)) | |
269 | 269 | then R | |
270 | 270 | else aE | |
271 | 271 | let aM = (((aL * aI) * k) / 100) | |
272 | 272 | let aN = if ((aE >= R)) | |
273 | 273 | then n | |
274 | 274 | else m | |
275 | 275 | if ((aM == 0)) | |
276 | 276 | then throw("total equal zero") | |
277 | 277 | else ScriptResult(WriteSet([DataEntry(q, aK), DataEntry(K(F), (aG + aM)), DataEntry(J(F), aN), DataEntry(L(height), aI)]), TransferSet([ScriptTransfer(addressFromStringValue(aJ), aL, Y), ScriptTransfer(N, aM, X)])) | |
278 | 278 | } | |
279 | 279 | } | |
280 | 280 | ||
281 | 281 |
github/deemru/w8io/873ac7e 201.49 ms ◑![]()