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