tx · xNdrfhkYUJxGwz9JFF1EiwbWZSFHcNawLiTtRAqnhwM

3MrtHeXquGPcRd3YjJQHfY1Ss6oSDpfxGuL:  -0.01400000 Waves

2019.09.18 10:30 [681397] smart account 3MrtHeXquGPcRd3YjJQHfY1Ss6oSDpfxGuL > SELF 0.00000000 Waves

{ "type": 13, "id": "xNdrfhkYUJxGwz9JFF1EiwbWZSFHcNawLiTtRAqnhwM", "fee": 1400000, "feeAssetId": null, "timestamp": 1568791802725, "version": 1, "sender": "3MrtHeXquGPcRd3YjJQHfY1Ss6oSDpfxGuL", "senderPublicKey": "3nmDHSgwcZ79tNbGjppGBY9MbYm4qLZEJcZ32D2WmxkG", "proofs": [ "FH9yQA5D2eNFTUd4WT2RVghfWWQuU4rW1qNVzjfTyzsPJMCqu1VnxLiKn3797SoP62NA9HS1QobZmKV4Ckv4vPu" ], "script": "base64:AAIDAAAAAAAAAAAAAABGAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADGdldEJvb2xCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcBAAAAGGdldE51bWJlckJ5S2V5QW5kQWRkcmVzcwAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlLZXlBbmRBZGRyZXNzAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAFmdldEJvb2xCeUtleUFuZEFkZHJlc3MAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwAAAAAPTGlzdFNwbGl0U3ltYm9sAgAAAAFfAAAAABBCYWxhbmNlTG9ja0Jsb2NrAAAAAAAAAAAAAAAAABNMaXN0RGF0YVNwbGl0U3ltYm9sAgAAAAErAAAAAAdXYXZlbGV0AAAAAAAF9eEAAAAAABBNaW5pbWFsQm9uZE9yZGVyCQAAaAAAAAIAAAAAAAAAAAoFAAAAB1dhdmVsZXQAAAAADk1pbmltYWxTdXJwbHVzCQAAaAAAAAIAAAAAAAAAAAoFAAAAB1dhdmVsZXQAAAAAEUFwcGx5QmxvY2tUaW1lb3V0AAAAAAAAAAAKAAAAABBMZWFzZUNvbnRyYWN0S2V5AgAAAA5sZWFzZV9jb250cmFjdAAAAAASTmV1dHJpbm9Bc3NldElkS2V5AgAAABFuZXV0cmlub19hc3NldF9pZAAAAAAOQm9uZEFzc2V0SWRLZXkCAAAADWJvbmRfYXNzZXRfaWQAAAAAEkF1Y3Rpb25Db250cmFjdEtleQIAAAAQYXVjdGlvbl9jb250cmFjdAAAAAAIUHJpY2VLZXkCAAAABXByaWNlAAAAABJOZXV0cmlub0JhbGFuY2VLZXkCAAAACW5ldXRyaW5vXwAAAAAPV2F2ZXNCYWxhbmNlS2V5AgAAAAZ3YXZlc18AAAAAD0JhbGFuY2VCbG9ja0tleQIAAAAOYmFsYW5jZV9ibG9ja18AAAAADE9yZGVyYm9va0tleQIAAAAJb3JkZXJib29rAAAAAA1PcmRlclRvdGFsS2V5AgAAAAxvcmRlcl90b3RhbF8AAAAADU9yZGVyT3duZXJLZXkCAAAADG9yZGVyX293bmVyXwAAAAAOT3JkZXJIZWlnaHRLZXkCAAAADW9yZGVyX2hlaWdodF8AAAAAE09yZGVyRmlsbGVkVG90YWxLZXkCAAAAE29yZGVyX2ZpbGxlZF90b3RhbF8AAAAAEFNuYXBzaG90QmxvY2tLZXkCAAAADnNuYXBzaG90X2Jsb2NrAAAAABRPcmRlcmJvb2tTbmFwc2hvdEtleQIAAAASb3JkZXJib29rX3NuYXBzaG90AAAAABVCb25kR2VuZXJhdGVkQmxvY2tLZXkCAAAAFGJvbmRfZ2VuZXJhdGVkX2Jsb2NrAAAAABdBY2NvdW50U25hcHNob3RCbG9ja0tleQIAAAAXYWNjb3VudF9zbmFwc2hvdF9ibG9ja18AAAAAF0FjY291bnRTbmFwc2hvdE93bmVyS2V5AgAAABdhY2NvdW50X3NuYXBzaG90X293bmVyXwAAAAAYQWNjb3VudFNuYXBzaG90QW1vdW50S2V5AgAAABhhY2NvdW50X3NuYXBzaG90X2Ftb3VudF8AAAAAFkFjY291bnRTbmFwc2hvdE5vZGVLZXkCAAAAFmFjY291bnRfc25hcHNob3Rfbm9kZV8AAAAAFlNuYXBzaG90Tm9kZUJhbGFuY2VLZXkCAAAAFnNuYXBzaG90X25vZGVfYmFsYW5jZV8AAAAADk5vZGVCYWxhbmNlS2V5AgAAAA1ub2RlX2JhbGFuY2VfAAAAABRJc1NlbnROb2RlQmFsYW5jZUtleQIAAAAVaXNfc2VudF9ub2RlX2JhbGFuY2VfAAAAABJOb2RlUHJvdmlkZXJTdGF0dXMCAAAAC25vZGVfc3RhdHVzAAAAAA5PcmRlclN0YXR1c0tleQIAAAANb3JkZXJfc3RhdHVzXwAAAAAPbmV1dHJpbm9Bc3NldElkCQACWQAAAAEJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEk5ldXRyaW5vQXNzZXRJZEtleQAAAAAFcHJpY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAACFByaWNlS2V5AAAAAAdyZXNlcnZlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwAAAAAObmV1dHJpbm9TdXBwbHkEAAAABGluZm8JAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAA9uZXV0cmlub0Fzc2V0SWQJAABlAAAAAggFAAAABGluZm8AAAAIcXVhbnRpdHkJAAPrAAAAAgUAAAAEdGhpcwUAAAAPbmV1dHJpbm9Bc3NldElkAAAAAAlvcmRlcmJvb2sJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADE9yZGVyYm9va0tleQAAAAANc25hcHNob3RCbG9jawkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAQU25hcHNob3RCbG9ja0tleQAAAAARbGFzdEJvbmRHZW5lcmF0ZWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAFUJvbmRHZW5lcmF0ZWRCbG9ja0tleQAAAAARb3JkZXJib29rU25hcHNob3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFE9yZGVyYm9va1NuYXBzaG90S2V5AAAAAAtib25kQXNzZXRJZAkAAlkAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA5Cb25kQXNzZXRJZEtleQAAAAAPYXVjdGlvbkNvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABJBdWN0aW9uQ29udHJhY3RLZXkAAAAADWxlYXNlQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEExlYXNlQ29udHJhY3RLZXkAAAAACmJvbmRTdXBwbHkEAAAABGluZm8JAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAAtib25kQXNzZXRJZAkAAGUAAAACCAUAAAAEaW5mbwAAAAhxdWFudGl0eQkAA+sAAAACBQAAAAR0aGlzBQAAAAtib25kQXNzZXRJZAEAAAAPZ2V0V2F2ZXNCYWxhbmNlAAAAAQAAAAVvd25lcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkAASwAAAACBQAAAA9XYXZlc0JhbGFuY2VLZXkFAAAABW93bmVyAQAAABJnZXROZXV0cmlub0JhbGFuY2UAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQABLAAAAAIFAAAAEk5ldXRyaW5vQmFsYW5jZUtleQUAAAAFb3duZXIBAAAAD2dldEJhbGFuY2VCbG9jawAAAAEAAAAFb3duZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAAEsAAAAAgUAAAAPQmFsYW5jZUJsb2NrS2V5BQAAAAVvd25lcgEAAAANZ2V0T3JkZXJUb3RhbAAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAAEsAAAAAgUAAAANT3JkZXJUb3RhbEtleQUAAAACaWQBAAAADWdldE9yZGVyT3duZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQABLAAAAAIFAAAADU9yZGVyT3duZXJLZXkFAAAAAmlkAQAAABdnZXRBY2NvdW50U25hcHNob3RCbG9jawAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAAEsAAAAAgUAAAAXQWNjb3VudFNuYXBzaG90QmxvY2tLZXkFAAAAAmlkAQAAABdnZXRBY2NvdW50U25hcHNob3RPd25lcgAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAAEsAAAAAgUAAAAXQWNjb3VudFNuYXBzaG90T3duZXJLZXkFAAAAAmlkAQAAABhnZXRBY2NvdW50U25hcHNob3RBbW91bnQAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQABLAAAAAIFAAAAGEFjY291bnRTbmFwc2hvdEFtb3VudEtleQUAAAACaWQBAAAADmdldE5vZGVCYWxhbmNlAAAAAgAAAAdhZGRyZXNzAAAABWJsb2NrCQEAAAAYZ2V0TnVtYmVyQnlLZXlBbmRBZGRyZXNzAAAAAgUAAAANbGVhc2VDb250cmFjdAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAOTm9kZUJhbGFuY2VLZXkFAAAAB2FkZHJlc3MFAAAAD0xpc3RTcGxpdFN5bWJvbAkAAaQAAAABBQAAAAVibG9jawEAAAARaXNTZW50Tm9kZUJhbGFuY2UAAAACAAAAB2FkZHJlc3MAAAAFYmxvY2sJAQAAAAxnZXRCb29sQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABRJc1NlbnROb2RlQmFsYW5jZUtleQUAAAAHYWRkcmVzcwUAAAAPTGlzdFNwbGl0U3ltYm9sCQABpAAAAAEFAAAABWJsb2NrAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkAASwAAAACBQAAABNPcmRlckZpbGxlZFRvdGFsS2V5BQAAAAJpZAEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAEAAAAGYW1vdW50CQAAaQAAAAIJAABoAAAAAgUAAAAGYW1vdW50AAAAAAAAAABkBQAAAAVwcmljZQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAEA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Y291bnQFAAAAEEJhbGFuY2VMb2NrQmxvY2sFAAAABmhlaWdodAkAAAIAAAABAgAAACR3YWl0IGEgY291cGxlIG9mIGJsb2NrcyBmb3Igd2l0aGRyYXcJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAD1dhdmVzQmFsYW5jZUtleQUAAAAHYWNjb3VudAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABJOZXV0cmlub0JhbGFuY2VLZXkFAAAAB2FjY291bnQAAAAAAAAAAAAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQJAQAAABJnZXROZXV0cmlub0JhbGFuY2UAAAABBQAAAAdhY2NvdW50BQAAAA9uZXV0cmlub0Fzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50CQEAAAAPZ2V0V2F2ZXNCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAADGdlbmVyYXRlQm9uZAAAAAAEAAAAB2RlZmljaXQJAABlAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAQUAAAAHcmVzZXJ2ZQQAAAAOYmFsYW5jZUF1Y3Rpb24JAAPrAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAC2JvbmRBc3NldElkBAAAAAZhbW91bnQJAABlAAAAAgkBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEFAAAAB2RlZmljaXQFAAAADmJhbGFuY2VBdWN0aW9uAwkAAGYAAAACBQAAAAZhbW91bnQA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ZXJPd25lcgkBAAAADWdldE9yZGVyT3duZXIAAAABBQAAAAdvcmRlcklkBAAAAAtmaWxsZWRUb3RhbAkBAAAAE2dldE9yZGVyRmlsbGVkVG90YWwAAAABBQAAAAdvcmRlcklkAwkAAGcAAAACAAAAAAAAAAAABQAAAAdzdXJwbHVzCQAAAgAAAAECAAAAGXN1cnBsdXMgaXMgbGVzcyB0aGFuIHplcm8EAAAABmFtb3VudAkAAGUAAAACBQAAAApvcmRlclRvdGFsBQAAAAtmaWxsZWRUb3RhbAQAAAALc3VycGx1c0JvbmQJAQAAABVjb252ZXJ0TmV1dHJpbm9Ub0JvbmQAAAABBQAAAAdzdXJwbHVzBAAAAAZzdGF0dXMDCQAAZwAAAAIFAAAAC3N1cnBsdXNCb25kBQAAAAZhbW91bnQFAAAABkZJTExFRAUAAAADTkVXBAAAAA5uZXdGaWxsZWRUb3RhbAMJAABnAAAAAgUAAAALc3VycGx1c0JvbmQFAAAABmFtb3VudAUAAAAKb3JkZXJUb3RhbAUAAAALc3VycGx1c0JvbmQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxPcmRlcmJvb2tLZXkJAAGRAAAAAgkABLUAAAACBQAAAAlvcmRlcmJvb2sJAAEsAAAAAgUAAAAHb3JkZXJJZAUAAAAPTGlzdFNwbGl0U3ltYm9sAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAE09yZGVyRmlsbGVkVG90YWxLZXkFAAAAB29yZGVySWQJAABkAAAAAgUAAAALZmlsbGVkVG90YWwFAAAADm5ld0ZpbGxlZFRvdGFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADk9yZGVyU3RhdHVzS2V5BQAAAAdvcmRlcklkBQAAAAZzdGF0dXMFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAACm9yZGVyT3duZXIJAQAAABVjb252ZXJ0Qm9uZFRvTmV1dHJpbm8AAAABBQAAAA5uZXdGaWxsZWRUb3RhbAUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwAAAAA2JoVUQ==", "chainId": 84, "height": 681397, "spentComplexity": 0 } View: original | compacted Prev: 4LoBcYALToq4aumjUjYaUDK95DHvzLSnsS5SceTMUSrR Next: none Diff:
OldNewDifferences
105105
106106 let C = "order_height_"
107107
108-let D = "orderbook_total"
108+let D = "order_filled_total_"
109109
110-let E = "orderbook_total_snapshot"
110+let E = "snapshot_block"
111111
112-let F = "snapshot_block"
112+let F = "orderbook_snapshot"
113113
114-let G = "orderbook_snapshot"
114+let G = "bond_generated_block"
115115
116-let H = "bond_generated_block"
116+let H = "account_snapshot_block_"
117117
118-let I = "account_snapshot_block_"
118+let I = "account_snapshot_owner_"
119119
120-let J = "account_snapshot_owner_"
120+let J = "account_snapshot_amount_"
121121
122-let K = "account_snapshot_amount_"
122+let K = "account_snapshot_node_"
123123
124-let L = "account_snapshot_node_"
124+let L = "snapshot_node_balance_"
125125
126-let M = "snapshot_node_balance_"
126+let M = "node_balance_"
127127
128-let N = "node_balance_"
128+let N = "is_sent_node_balance_"
129129
130-let O = "is_sent_node_balance_"
130+let O = "node_status"
131131
132-let P = "node_status"
132+let P = "order_status_"
133133
134134 let Q = fromBase58String(e(s))
135135
142142 (U.quantity - assetBalance(this, Q))
143143 }
144144
145-let V = a(D)
145+let V = e(z)
146146
147-let W = e(z)
147+let W = a(E)
148148
149-let X = a(F)
149+let X = a(G)
150150
151-let Y = a(H)
151+let Y = e(F)
152152
153-let Z = e(G)
153+let Z = fromBase58String(e(t))
154154
155-let aa = a(E)
155+let aa = e(u)
156156
157-let ab = fromBase58String(e(t))
157+let ab = e(r)
158158
159-let ac = e(u)
160-
161-let ad = e(r)
162-
163-let ae = {
164- let U = extract(assetInfo(ab))
165- (U.quantity - assetBalance(this, ab))
159+let ac = {
160+ let U = extract(assetInfo(Z))
161+ (U.quantity - assetBalance(this, Z))
166162 }
167163
168-func af (ag) = a((x + ag))
164+func ad (ae) = a((x + ae))
169165
170166
171-func ah (ag) = a((w + ag))
167+func af (ae) = a((w + ae))
172168
173169
174-func ai (ag) = a((y + ag))
170+func ag (ae) = a((y + ae))
175171
176172
177-func aj (ak) = a((A + ak))
173+func ah (ai) = a((A + ai))
178174
179175
180-func al (ak) = e((B + ak))
176+func aj (ai) = e((B + ai))
181177
182178
183-func am (ak) = a((I + ak))
179+func ak (ai) = a((H + ai))
184180
185181
186-func an (ak) = e((J + ak))
182+func al (ai) = e((I + ai))
187183
188184
189-func ao (ak) = a((K + ak))
185+func am (ai) = a((J + ai))
190186
191187
192-func ap (h,aq) = g(ad, (((N + h) + k) + toString(aq)))
188+func an (h,ao) = g(ab, (((M + h) + k) + toString(ao)))
193189
194190
195-func ar (h,aq) = f((((O + h) + k) + toString(aq)))
191+func ap (h,ao) = f((((N + h) + k) + toString(ao)))
196192
197193
198-func as (at) = ((at * 100) / R)
194+func aq (ai) = a((D + ai))
199195
200196
201-func au (at) = ((at * R) / 100)
197+func ar (as) = ((as * 100) / R)
202198
203199
204-func av (at) = (at / n)
200+func at (as) = ((as * R) / 100)
205201
206202
207-func aw (at) = (at * n)
203+func au (as) = (as / n)
208204
209205
210-func ax (at) = av(au(at))
206+func av (as) = (as * n)
211207
212208
213-let ay = (au(S) - T)
209+func aw (as) = au(at(as))
214210
215-@Callable(az)
211+
212+let ax = (at(S) - T)
213+
214+let ay = "canceled"
215+
216+let az = "new"
217+
218+let aA = "filled"
219+
220+@Callable(aB)
216221 func setCurrentPrice (R) = WriteSet([DataEntry(v, R), DataEntry(((v + k) + toString(height)), R)])
217222
218223
219224
220-@Callable(az)
225+@Callable(aB)
221226 func swapWavesToNeutrino () = {
222- let aA = extract(az.payment)
223- if (isDefined(aA.assetId))
227+ let aC = extract(aB.payment)
228+ if (isDefined(aC.assetId))
224229 then throw("can use waves only")
225230 else {
226- let aB = toBase58String(az.caller.bytes)
227- let at = au(aA.amount)
228- WriteSet([DataEntry((w + toString(az.caller)), (at + ah(aB))), DataEntry((y + toString(az.caller)), height)])
231+ let aD = toBase58String(aB.caller.bytes)
232+ let as = at(aC.amount)
233+ WriteSet([DataEntry((w + toString(aB.caller)), (as + af(aD))), DataEntry((y + toString(aB.caller)), height)])
229234 }
230235 }
231236
232237
233238
234-@Callable(az)
239+@Callable(aB)
235240 func swapNeutrinoToWaves () = {
236- let aA = extract(az.payment)
237- if ((aA.assetId != Q))
241+ let aC = extract(aB.payment)
242+ if ((aC.assetId != Q))
238243 then throw("can use neutrino only")
239244 else {
240- let aB = toBase58String(az.caller.bytes)
241- let at = as(aA.amount)
242- WriteSet([DataEntry((x + toString(az.caller)), (at + af(aB))), DataEntry((y + toString(az.caller)), height)])
245+ let aD = toBase58String(aB.caller.bytes)
246+ let as = ar(aC.amount)
247+ WriteSet([DataEntry((x + toString(aB.caller)), (as + ad(aD))), DataEntry((y + toString(aB.caller)), height)])
243248 }
244249 }
245250
246251
247252
248-@Callable(az)
249-func withdraw (aB) = if (((ai(aB) + l) >= height))
253+@Callable(aB)
254+func withdraw (aD) = if (((ag(aD) + l) >= height))
250255 then throw("wait a couple of blocks for withdraw")
251- else ScriptResult(WriteSet([DataEntry((x + aB), 0), DataEntry((w + aB), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(aB), ah(aB), Q), ScriptTransfer(addressFromStringValue(aB), af(aB), unit)]))
256+ else ScriptResult(WriteSet([DataEntry((x + aD), 0), DataEntry((w + aD), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(aD), af(aD), Q), ScriptTransfer(addressFromStringValue(aD), ad(aD), unit)]))
252257
253258
254259
255-@Callable(az)
260+@Callable(aB)
256261 func generateBond () = {
257- let aC = (T - au(S))
258- let aD = assetBalance(addressFromStringValue(ac), ab)
259- let at = (av(aC) - aD)
260- if ((at > 0))
261- then TransferSet([ScriptTransfer(addressFromStringValue(ac), at, ab)])
262- else throw(("deficit did not reach the threshold. deficit =" + toString(aC)))
262+ let aE = (T - at(S))
263+ let aF = assetBalance(addressFromStringValue(aa), Z)
264+ let as = (au(aE) - aF)
265+ if ((as > 0))
266+ then TransferSet([ScriptTransfer(addressFromStringValue(aa), as, Z)])
267+ else throw(("deficit did not reach the threshold. deficit =" + toString(aE)))
263268 }
264269
265270
266271
267-@Callable(az)
272+@Callable(aB)
268273 func setOrder () = {
269- let aA = extract(az.payment)
270- let aE = toBase58String(keccak256(((toBytes(aA.amount) + az.caller.bytes) + toBytes(height))))
271- if ((aA.assetId != ab))
274+ let aC = extract(aB.payment)
275+ let aG = toBase58String(keccak256(((toBytes(aC.amount) + aB.caller.bytes) + toBytes(height))))
276+ if ((aC.assetId != Z))
272277 then throw("can use bond only")
273- else if ((al(aE) != ""))
278+ else if ((aj(aG) != ""))
274279 then throw("order exists")
275- else WriteSet([DataEntry(D, (V + aA.amount)), DataEntry(z, ((W + aE) + k)), DataEntry((A + aE), aA.amount), DataEntry((B + aE), toString(az.caller)), DataEntry((C + aE), height)])
280+ else WriteSet([DataEntry(z, ((V + aG) + k)), DataEntry((A + aG), aC.amount), DataEntry((B + aG), toString(aB.caller)), DataEntry((C + aG), height)])
276281 }
277282
278283
279284
280-@Callable(az)
281-func cancelOrder (aF) = {
282- let ag = al(aF)
283- let aG = aj(aF)
284- if ((ag != toString(az.caller)))
285+@Callable(aB)
286+func cancelOrder (aH) = {
287+ let ae = aj(aH)
288+ let as = (ah(aH) - aq(aH))
289+ if ((ae != toString(aB.caller)))
285290 then throw("permission denied")
286291 else {
287- let aH = split(W, (aF + k))[0]
288- let aI = split(W, (aF + k))[1]
289- ScriptResult(WriteSet([DataEntry(D, (V - aG)), DataEntry(z, (aH + aI)), DataEntry((A + aF), 0)]), TransferSet([ScriptTransfer(az.caller, aG, unit)]))
292+ let aI = split(V, (aH + k))
293+ ScriptResult(WriteSet([DataEntry(z, (aI[0] + aI[1])), DataEntry((P + aH), ay)]), TransferSet([ScriptTransfer(aB.caller, as, Z)]))
290294 }
291295 }
292296
293297
294298
295-@Callable(az)
299+@Callable(aB)
296300 func executeOrder () = {
297- let aF = split(W, k)[0]
298- let aJ = aj(aF)
299- let aK = al(aF)
300- if ((0 >= ay))
301+ let aH = split(V, k)[0]
302+ let aJ = ah(aH)
303+ let aK = aj(aH)
304+ let aL = aq(aH)
305+ if ((0 >= ax))
301306 then throw("surplus is less than zero")
302307 else {
303- let at = aw((aJ - av(ay)))
304- ScriptResult(WriteSet([DataEntry(D, (V - (if ((ay >= aJ))
308+ let as = (aJ - aL)
309+ let aM = au(ax)
310+ let aN = if ((aM >= as))
311+ then aA
312+ else az
313+ let aO = if ((aM >= as))
305314 then aJ
306- else ay))), DataEntry(z, split(W, (aF + k))[1]), DataEntry((A + aF), if ((0 >= at))
307- then 0
308- else at)]), TransferSet([ScriptTransfer(addressFromStringValue(aK), if ((ay >= aJ))
309- then aw(aJ)
310- else ay, Q)]))
315+ else aM
316+ ScriptResult(WriteSet([DataEntry(z, split(V, (aH + k))[1]), DataEntry((D + aH), (aL + aO)), DataEntry((P + aH), aN)]), TransferSet([ScriptTransfer(addressFromStringValue(aK), av(aO), Q)]))
311317 }
312318 }
313319
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 = 0
7373
7474 let m = "+"
7575
7676 let n = 100000000
7777
7878 let o = (10 * n)
7979
8080 let p = (10 * n)
8181
8282 let q = 10
8383
8484 let r = "lease_contract"
8585
8686 let s = "neutrino_asset_id"
8787
8888 let t = "bond_asset_id"
8989
9090 let u = "auction_contract"
9191
9292 let v = "price"
9393
9494 let w = "neutrino_"
9595
9696 let x = "waves_"
9797
9898 let y = "balance_block_"
9999
100100 let z = "orderbook"
101101
102102 let A = "order_total_"
103103
104104 let B = "order_owner_"
105105
106106 let C = "order_height_"
107107
108-let D = "orderbook_total"
108+let D = "order_filled_total_"
109109
110-let E = "orderbook_total_snapshot"
110+let E = "snapshot_block"
111111
112-let F = "snapshot_block"
112+let F = "orderbook_snapshot"
113113
114-let G = "orderbook_snapshot"
114+let G = "bond_generated_block"
115115
116-let H = "bond_generated_block"
116+let H = "account_snapshot_block_"
117117
118-let I = "account_snapshot_block_"
118+let I = "account_snapshot_owner_"
119119
120-let J = "account_snapshot_owner_"
120+let J = "account_snapshot_amount_"
121121
122-let K = "account_snapshot_amount_"
122+let K = "account_snapshot_node_"
123123
124-let L = "account_snapshot_node_"
124+let L = "snapshot_node_balance_"
125125
126-let M = "snapshot_node_balance_"
126+let M = "node_balance_"
127127
128-let N = "node_balance_"
128+let N = "is_sent_node_balance_"
129129
130-let O = "is_sent_node_balance_"
130+let O = "node_status"
131131
132-let P = "node_status"
132+let P = "order_status_"
133133
134134 let Q = fromBase58String(e(s))
135135
136136 let R = a(v)
137137
138138 let S = wavesBalance(this)
139139
140140 let T = {
141141 let U = extract(assetInfo(Q))
142142 (U.quantity - assetBalance(this, Q))
143143 }
144144
145-let V = a(D)
145+let V = e(z)
146146
147-let W = e(z)
147+let W = a(E)
148148
149-let X = a(F)
149+let X = a(G)
150150
151-let Y = a(H)
151+let Y = e(F)
152152
153-let Z = e(G)
153+let Z = fromBase58String(e(t))
154154
155-let aa = a(E)
155+let aa = e(u)
156156
157-let ab = fromBase58String(e(t))
157+let ab = e(r)
158158
159-let ac = e(u)
160-
161-let ad = e(r)
162-
163-let ae = {
164- let U = extract(assetInfo(ab))
165- (U.quantity - assetBalance(this, ab))
159+let ac = {
160+ let U = extract(assetInfo(Z))
161+ (U.quantity - assetBalance(this, Z))
166162 }
167163
168-func af (ag) = a((x + ag))
164+func ad (ae) = a((x + ae))
169165
170166
171-func ah (ag) = a((w + ag))
167+func af (ae) = a((w + ae))
172168
173169
174-func ai (ag) = a((y + ag))
170+func ag (ae) = a((y + ae))
175171
176172
177-func aj (ak) = a((A + ak))
173+func ah (ai) = a((A + ai))
178174
179175
180-func al (ak) = e((B + ak))
176+func aj (ai) = e((B + ai))
181177
182178
183-func am (ak) = a((I + ak))
179+func ak (ai) = a((H + ai))
184180
185181
186-func an (ak) = e((J + ak))
182+func al (ai) = e((I + ai))
187183
188184
189-func ao (ak) = a((K + ak))
185+func am (ai) = a((J + ai))
190186
191187
192-func ap (h,aq) = g(ad, (((N + h) + k) + toString(aq)))
188+func an (h,ao) = g(ab, (((M + h) + k) + toString(ao)))
193189
194190
195-func ar (h,aq) = f((((O + h) + k) + toString(aq)))
191+func ap (h,ao) = f((((N + h) + k) + toString(ao)))
196192
197193
198-func as (at) = ((at * 100) / R)
194+func aq (ai) = a((D + ai))
199195
200196
201-func au (at) = ((at * R) / 100)
197+func ar (as) = ((as * 100) / R)
202198
203199
204-func av (at) = (at / n)
200+func at (as) = ((as * R) / 100)
205201
206202
207-func aw (at) = (at * n)
203+func au (as) = (as / n)
208204
209205
210-func ax (at) = av(au(at))
206+func av (as) = (as * n)
211207
212208
213-let ay = (au(S) - T)
209+func aw (as) = au(at(as))
214210
215-@Callable(az)
211+
212+let ax = (at(S) - T)
213+
214+let ay = "canceled"
215+
216+let az = "new"
217+
218+let aA = "filled"
219+
220+@Callable(aB)
216221 func setCurrentPrice (R) = WriteSet([DataEntry(v, R), DataEntry(((v + k) + toString(height)), R)])
217222
218223
219224
220-@Callable(az)
225+@Callable(aB)
221226 func swapWavesToNeutrino () = {
222- let aA = extract(az.payment)
223- if (isDefined(aA.assetId))
227+ let aC = extract(aB.payment)
228+ if (isDefined(aC.assetId))
224229 then throw("can use waves only")
225230 else {
226- let aB = toBase58String(az.caller.bytes)
227- let at = au(aA.amount)
228- WriteSet([DataEntry((w + toString(az.caller)), (at + ah(aB))), DataEntry((y + toString(az.caller)), height)])
231+ let aD = toBase58String(aB.caller.bytes)
232+ let as = at(aC.amount)
233+ WriteSet([DataEntry((w + toString(aB.caller)), (as + af(aD))), DataEntry((y + toString(aB.caller)), height)])
229234 }
230235 }
231236
232237
233238
234-@Callable(az)
239+@Callable(aB)
235240 func swapNeutrinoToWaves () = {
236- let aA = extract(az.payment)
237- if ((aA.assetId != Q))
241+ let aC = extract(aB.payment)
242+ if ((aC.assetId != Q))
238243 then throw("can use neutrino only")
239244 else {
240- let aB = toBase58String(az.caller.bytes)
241- let at = as(aA.amount)
242- WriteSet([DataEntry((x + toString(az.caller)), (at + af(aB))), DataEntry((y + toString(az.caller)), height)])
245+ let aD = toBase58String(aB.caller.bytes)
246+ let as = ar(aC.amount)
247+ WriteSet([DataEntry((x + toString(aB.caller)), (as + ad(aD))), DataEntry((y + toString(aB.caller)), height)])
243248 }
244249 }
245250
246251
247252
248-@Callable(az)
249-func withdraw (aB) = if (((ai(aB) + l) >= height))
253+@Callable(aB)
254+func withdraw (aD) = if (((ag(aD) + l) >= height))
250255 then throw("wait a couple of blocks for withdraw")
251- else ScriptResult(WriteSet([DataEntry((x + aB), 0), DataEntry((w + aB), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(aB), ah(aB), Q), ScriptTransfer(addressFromStringValue(aB), af(aB), unit)]))
256+ else ScriptResult(WriteSet([DataEntry((x + aD), 0), DataEntry((w + aD), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(aD), af(aD), Q), ScriptTransfer(addressFromStringValue(aD), ad(aD), unit)]))
252257
253258
254259
255-@Callable(az)
260+@Callable(aB)
256261 func generateBond () = {
257- let aC = (T - au(S))
258- let aD = assetBalance(addressFromStringValue(ac), ab)
259- let at = (av(aC) - aD)
260- if ((at > 0))
261- then TransferSet([ScriptTransfer(addressFromStringValue(ac), at, ab)])
262- else throw(("deficit did not reach the threshold. deficit =" + toString(aC)))
262+ let aE = (T - at(S))
263+ let aF = assetBalance(addressFromStringValue(aa), Z)
264+ let as = (au(aE) - aF)
265+ if ((as > 0))
266+ then TransferSet([ScriptTransfer(addressFromStringValue(aa), as, Z)])
267+ else throw(("deficit did not reach the threshold. deficit =" + toString(aE)))
263268 }
264269
265270
266271
267-@Callable(az)
272+@Callable(aB)
268273 func setOrder () = {
269- let aA = extract(az.payment)
270- let aE = toBase58String(keccak256(((toBytes(aA.amount) + az.caller.bytes) + toBytes(height))))
271- if ((aA.assetId != ab))
274+ let aC = extract(aB.payment)
275+ let aG = toBase58String(keccak256(((toBytes(aC.amount) + aB.caller.bytes) + toBytes(height))))
276+ if ((aC.assetId != Z))
272277 then throw("can use bond only")
273- else if ((al(aE) != ""))
278+ else if ((aj(aG) != ""))
274279 then throw("order exists")
275- else WriteSet([DataEntry(D, (V + aA.amount)), DataEntry(z, ((W + aE) + k)), DataEntry((A + aE), aA.amount), DataEntry((B + aE), toString(az.caller)), DataEntry((C + aE), height)])
280+ else WriteSet([DataEntry(z, ((V + aG) + k)), DataEntry((A + aG), aC.amount), DataEntry((B + aG), toString(aB.caller)), DataEntry((C + aG), height)])
276281 }
277282
278283
279284
280-@Callable(az)
281-func cancelOrder (aF) = {
282- let ag = al(aF)
283- let aG = aj(aF)
284- if ((ag != toString(az.caller)))
285+@Callable(aB)
286+func cancelOrder (aH) = {
287+ let ae = aj(aH)
288+ let as = (ah(aH) - aq(aH))
289+ if ((ae != toString(aB.caller)))
285290 then throw("permission denied")
286291 else {
287- let aH = split(W, (aF + k))[0]
288- let aI = split(W, (aF + k))[1]
289- ScriptResult(WriteSet([DataEntry(D, (V - aG)), DataEntry(z, (aH + aI)), DataEntry((A + aF), 0)]), TransferSet([ScriptTransfer(az.caller, aG, unit)]))
292+ let aI = split(V, (aH + k))
293+ ScriptResult(WriteSet([DataEntry(z, (aI[0] + aI[1])), DataEntry((P + aH), ay)]), TransferSet([ScriptTransfer(aB.caller, as, Z)]))
290294 }
291295 }
292296
293297
294298
295-@Callable(az)
299+@Callable(aB)
296300 func executeOrder () = {
297- let aF = split(W, k)[0]
298- let aJ = aj(aF)
299- let aK = al(aF)
300- if ((0 >= ay))
301+ let aH = split(V, k)[0]
302+ let aJ = ah(aH)
303+ let aK = aj(aH)
304+ let aL = aq(aH)
305+ if ((0 >= ax))
301306 then throw("surplus is less than zero")
302307 else {
303- let at = aw((aJ - av(ay)))
304- ScriptResult(WriteSet([DataEntry(D, (V - (if ((ay >= aJ))
308+ let as = (aJ - aL)
309+ let aM = au(ax)
310+ let aN = if ((aM >= as))
311+ then aA
312+ else az
313+ let aO = if ((aM >= as))
305314 then aJ
306- else ay))), DataEntry(z, split(W, (aF + k))[1]), DataEntry((A + aF), if ((0 >= at))
307- then 0
308- else at)]), TransferSet([ScriptTransfer(addressFromStringValue(aK), if ((ay >= aJ))
309- then aw(aJ)
310- else ay, Q)]))
315+ else aM
316+ ScriptResult(WriteSet([DataEntry(z, split(V, (aH + k))[1]), DataEntry((D + aH), (aL + aO)), DataEntry((P + aH), aN)]), TransferSet([ScriptTransfer(addressFromStringValue(aK), av(aO), Q)]))
311317 }
312318 }
313319
314320

github/deemru/w8io/873ac7e 
82.58 ms