tx · DKF1cPYMdt8yN2Dg73VHU9iLDqjW7XYVzHbDFfeMKtQp 3MwiWPgTR9hudDuq4gdiBNTpuTTKDwd6DNN: -0.01000000 Waves 2020.02.10 17:37 [893302] smart account 3MwiWPgTR9hudDuq4gdiBNTpuTTKDwd6DNN > SELF 0.00000000 Waves
{ "type": 13, "id": "DKF1cPYMdt8yN2Dg73VHU9iLDqjW7XYVzHbDFfeMKtQp", "fee": 1000000, "feeAssetId": null, "timestamp": 1581345486793, "version": 1, "sender": "3MwiWPgTR9hudDuq4gdiBNTpuTTKDwd6DNN", "senderPublicKey": "6Y1ch895NG9HEC95KHF6aZjUKgqTmaEYGneqQB53oA6V", "proofs": [ "2SvxQ1uT5RojL1VeagsXXyJyGUFc37g37SxeBTqR6pxy65NfGeVkiRxn4LjDvBnG2seQSqmesRuNmavwTWoTQZbP" ], "script": "base64:AAIDAAAAAAAAAAsIARIAEgMKAQgSAAAAADgBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAAAAAAdXQVZFTEVUAAAAAAAF9eEAAAAAABBPUkRFUlNQTElUU1lNQk9MAgAAAAFfAAAAAAVQQVVMSQAAAAAAAA9CQAAAAAAPUEVSQ0VOVEFDQ1VSQUNZAAAAAAAAAAPoAAAAAAtNQVhESVNDT1VOVAAAAAAAAAAAMgAAAAAIQ0FOQ0VMRUQCAAAACGNhbmNlbGVkAAAAAANORVcCAAAAA25ldwAAAAAGRklMTEVEAgAAAAZmaWxsZWQAAAAAE05ldXRyaW5vQ29udHJhY3RLZXkCAAAAEW5ldXRyaW5vX2NvbnRyYWN0AAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADkJvbmRBc3NldElkS2V5AgAAAA1ib25kX2Fzc2V0X2lkAAAAABJOZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAABJDb250cm9sQ29udHJhY3RLZXkCAAAAEGNvbnRyb2xfY29udHJhY3QAAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAA1iYWxhbmNlX2xvY2tfAAAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAABXdhdmVzAAAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAACG5ldXRyaW5vAAAAAA1GaXJzdE9yZGVyS2V5AgAAAAtvcmRlcl9maXJzdAAAAAAMTGFzdE9yZGVyS2V5AgAAAApvcmRlcl9sYXN0AQAAAA9nZXRPcmRlclByZXZLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAALb3JkZXJfcHJldl8FAAAAB29yZGVySWQBAAAAD2dldE9yZGVyTmV4dEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAtvcmRlcl9uZXh0XwUAAAAHb3JkZXJJZAEAAAAQZ2V0T3JkZXJUb3RhbEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAxvcmRlcl90b3RhbF8FAAAAB29yZGVySWQBAAAAEGdldE9yZGVyT3duZXJLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAMb3JkZXJfb3duZXJfBQAAAAdvcmRlcklkAQAAABFnZXRPcmRlckhlaWdodEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAA1vcmRlcl9oZWlnaHRfBQAAAAdvcmRlcklkAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAA1vcmRlcl9zdGF0dXNfBQAAAAdvcmRlcklkAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAAE29yZGVyX2ZpbGxlZF90b3RhbF8FAAAAB29yZGVySWQBAAAAFGdldExhc3RPcmRlck93bmVyS2V5AAAAAQAAAAVvd25lcgkAASwAAAACAgAAABFsYXN0X29yZGVyX293bmVyXwUAAAAFb3duZXIBAAAAFmNvbnZlcnROZXV0cmlub1RvV2F2ZXMAAAACAAAABmFtb3VudAAAAAVwcmljZQkAAGsAAAADCQAAawAAAAMFAAAABmFtb3VudAAAAAAAAAAAZAUAAAAFcHJpY2UFAAAAB1dBVkVMRVQFAAAABVBBVUxJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABrAAAAAwkAAGsAAAADBQAAAAZhbW91bnQFAAAABXByaWNlAAAAAAAAAABkBQAAAAVQQVVMSQUAAAAHV0FWRUxFVAEAAAAVY29udmVydE5ldXRyaW5vVG9Cb25kAAAAAQAAAAZhbW91bnQJAABpAAAAAgUAAAAGYW1vdW50BQAAAAVQQVVMSQEAAAAVY29udmVydEJvbmRUb05ldXRyaW5vAAAAAQAAAAZhbW91bnQJAABoAAAAAgUAAAAGYW1vdW50BQAAAAVQQVVMSQEAAAASY29udmVydFdhdmVzVG9Cb25kAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAQAAABVjb252ZXJ0TmV1dHJpbm9Ub0JvbmQAAAABCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UAAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAATTmV1dHJpbm9Db250cmFjdEtleQAAAAAPY29udHJvbENvbnRyYWN0CQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABJDb250cm9sQ29udHJhY3RLZXkAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QFAAAABHRoaXMAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAAtib25kQXNzZXRJZAkAAlkAAAABCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAOQm9uZEFzc2V0SWRLZXkAAAAACmZpcnN0T3JkZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADUZpcnN0T3JkZXJLZXkAAAAACWxhc3RPcmRlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAMTGFzdE9yZGVyS2V5AAAAAAxjdXJyZW50UHJpY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QFAAAACFByaWNlS2V5AAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAAAEndhdmVzTG9ja2VkQmFsYW5jZQkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAFVdhdmVzTG9ja2VkQmFsYW5jZUtleQAAAAAHcmVzZXJ2ZQkAAGUAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlAAAAAA5uZXV0cmlub1N1cHBseQkAAGUAAAACCQAAZQAAAAIJAABkAAAAAgUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCAkBAAAAB2V4dHJhY3QAAAABCQAD7AAAAAEFAAAAD25ldXRyaW5vQXNzZXRJZAAAAAhxdWFudGl0eQkAA+sAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQJAAPrAAAAAgUAAAATbGlxdWlkYXRpb25Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkAAAAAAdzdXJwbHVzCQAAZQAAAAIJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAHcmVzZXJ2ZQUAAAAMY3VycmVudFBy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AAxyZXR1cm5BbW91bnQDCQAAZwAAAAIFAAAAD3N1cnBsdXNQb3NpdGl2ZQUAAAASbGlxdWlkYXRpb25CYWxhbmNlAAAAAAAAAAAACQAAZQAAAAIFAAAAEmxpcXVpZGF0aW9uQmFsYW5jZQUAAAAPc3VycGx1c1Bvc2l0aXZlBAAAAAtzdXJwbHVzQm9uZAkBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEFAAAAD3N1cnBsdXNQb3NpdGl2ZQMDCQAAAAAAAAIFAAAADHJldHVybkFtb3VudAAAAAAAAAAAAAkAAAAAAAACBQAAABJsaXF1aWRhdGlvbkJhbGFuY2UAAAAAAAAAAAAHCQAAAgAAAAECAAAAPWNhbm5vdCBsaXF1aWRhdGUgb3JkZXIgd2l0aG91dCBuZXV0cmlubyBvbiB0aGUgc21hcnQgY29udHJhY3QDCQAAZgAAAAIFAAAADHJldHVybkFtb3VudAAAAAAAAAAAAAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAAAxyZXR1cm5BbW91bnQFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsAwkAAGcAAAACAAAAAAAAAAAABQAAAAtzdXJwbHVzQm9uZAkAAAIAAAABAgAAAC50aGVyZSBpcyBubyBwcm9maWNpdCBvbiB0aGUgc21hcnQgY29udHJhY3Qgbm93AwkAAAAAAAACBQAAAApmaXJzdE9yZGVyAgAAAAAJAAACAAAAAQIAAAAPZW1wdHkgb3JkZXJib29rBAAAAAluZXh0T3JkZXIJAQAAAAxnZXRPcmRlck5leHQAAAABBQAAAApmaXJzdE9yZGVyBAAAAApvcmRlclRvdGFsCQEAAAANZ2V0T3JkZXJUb3RhbAAAAAEFAAAACmZpcnN0T3JkZXIEAAAACm9yZGVyT3duZXIJAQAAAA1nZXRPcmRlck93bmVyAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAALZmlsbGVkVG90YWwJAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAAGYW1vdW50CQAAZQAAAAIFAAAACm9yZGVyVG90YWwFAAAAC2ZpbGxlZFRvdGFsBAAAAAluZXdTdGF0dXMDCQAAZwAAAAIFAAAAC3N1cnBsdXNCb25kBQAAAAZhbW91bnQFAAAABkZJTExFRAUAAAADTkVXBAAAABNmaWxsYWJsZU9yZGVyQW1vdW50AwkAAGcAAAACBQAAAAtzdXJwbHVzQm9uZAUAAAAGYW1vdW50BQAAAAZhbW91bnQFAAAAC3N1cnBsdXNCb25kCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldE9yZGVyUHJldktleQAAAAEFAAAACW5leHRPcmRlcgMJAAAAAAAAAgUAAAAJbmV3U3RhdHVzBQAAAAZGSUxMRUQCAAAAAAUAAAAKZmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANRmlyc3RPcmRlcktleQMJAAAAAAAAAgUAAAAJbmV3U3RhdHVzBQAAAAZGSUxMRUQFAAAACW5leHRPcmRlcgUAAAAKZmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAMTGFzdE9yZGVyS2V5AwMJAAAAAAAAAgUAAAAJbmV3U3RhdHVzBQAAAAZGSUxMRUQJAAAAAAAAAgUAAAAKZmlyc3RPcmRlcgUAAAAJbGFzdE9yZGVyBwIAAAAABQAAAAlsYXN0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQUAAAAKZmlyc3RPcmRlcgkAAGQAAAACBQAAAAtmaWxsZWRUb3RhbAUAAAATZmlsbGFibGVPcmRlckFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAAKZmlyc3RPcmRlcgUAAAAJbmV3U3RhdHVzBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAApvcmRlck93bmVyCQEAAAAVY29udmVydEJvbmRUb05ldXRyaW5vAAAAAQUAAAATZmlsbGFibGVPcmRlckFtb3VudAUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwAAAAAjsqaJQ==", "chainId": 84, "height": 893302, "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 | + |
github/deemru/w8io/169f3d6 18.74 ms ◑