tx · 1Mh8dJKr6Hedyb3EnSz3RA5LaLFGZjK8NcsfJyA4Pb2
3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv: -0.01400000 Waves
2019.09.11 00:42 [670576] smart account 3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv > SELF 0.00000000 Waves
{
"type": 13,
"id": "1Mh8dJKr6Hedyb3EnSz3RA5LaLFGZjK8NcsfJyA4Pb2",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1568151763987,
"version": 1,
"sender": "3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv",
"senderPublicKey": "BxHnTcjvN9ZtnKfdKYp6aKRdkMB4ZHxHnTDr5dWx5Vz2",
"proofs": [
"5xNUR7Fdzvcx8iLQRoho13AG6NYVrGAU67pJ62vgpSRMHCL61TZo5w7t1tbXQHUgPuZxWTmMqnTX1YQvWro1odk8"
],
"script": "base64:AAIDAAAAAAAAAAAAAAAAAAAAAwAAAAFpAQAAAAhtYWtlU2VsbAAAAAIAAAAKcHJpY2VBc3NldAAAAAVwcmljZQMDCQEAAAACIT0AAAACBQAAAApwcmljZUFzc2V0AgAAAAVXQVZFUwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkAA+wAAAABCQACWQAAAAEFAAAACnByaWNlQXNzZXQHCQAAAgAAAAECAAAAI1RoZXJlIGlzIG5vIGFzc2V0IHdpdGggc3BlY2lmaWVkIGlkAwkAAGcAAAACAAAAAAAAAAAABQAAAAVwcmljZQkAAAIAAAABAgAAABZwcmljZSBtdXN0IGJlIHBvc2l0aXZlBAAAAAdwYXltZW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAFpAAAAB3BheW1lbnQCAAAAEXdoZXJlIGlzIHBheW1lbnQ/AwkAAGcAAAACAAAAAAAAAAAACAUAAAAHcGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQIAAAAXYW1vdW50IG11c3QgYmUgcG9zaXRpdmUEAAAAB29yZGVySWQJAAEsAAAAAgIAAAAFc2VsbF8JAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAALYW1vdW50QXNzZXQEAAAAByRtYXRjaDAIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXAFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABcAIAAAAFV0FWRVMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAHX2Ftb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAADV9hbW91bnRfYXNzZXQFAAAAC2Ftb3VudEFzc2V0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAABl9wcmljZQUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAMX3ByaWNlX2Fzc2V0BQAAAApwcmljZUFzc2V0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAABl9vd25lcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAABl9zcGVudAAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAAB21ha2VCdXkAAAACAAAAC2Ftb3VudEFzc2V0AAAABXByaWNlAwMJAQAAAAIhPQAAAAIFAAAAC2Ftb3VudEFzc2V0AgAAAAVXQVZFUwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkAA+wAAAABCQACWQAAAAEFAAAAC2Ftb3VudEFzc2V0BwkAAAIAAAABAgAAACNUaGVyZSBpcyBubyBhc3NldCB3aXRoIHNwZWNpZmllZCBpZAMJAABnAAAAAgAAAAAAAAAAAAUAAAAFcHJpY2UJAAACAAAAAQIAAAAWcHJpY2UgbXVzdCBiZSBwb3NpdGl2ZQQAAAAHcGF5bWVudAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAUAAAABaQAAAAdwYXltZW50AgAAABF3aGVyZSBpcyBwYXltZW50PwMJAABnAAAAAgAAAAAAAAAAAAgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQAAAgAAAAECAAAAF2Ftb3VudCBtdXN0IGJlIHBvc2l0aXZlBAAAAAdvcmRlcklkCQABLAAAAAICAAAABGJ1eV8JAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAKcHJpY2VBc3NldAQAAAAHJG1hdGNoMAgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcAUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFwAgAAAAVXQVZFUwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAdvcmRlcklkAgAAAAdfYW1vdW50CQAAaQAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAANX2Ftb3VudF9hc3NldAUAAAALYW1vdW50QXNzZXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX3ByaWNlBQAAAAVwcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAdvcmRlcklkAgAAAAxfcHJpY2VfYXNzZXQFAAAACnByaWNlQXNzZXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX293bmVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX3NwZW50AAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAIdGFrZVNlbGwAAAABAAAAAmlkBAAAAAdwYXltZW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAFpAAAAB3BheW1lbnQCAAAAEXdoZXJlIGlzIHBheW1lbnQ/AwkAAGcAAAACAAAAAAAAAAAACAUAAAAHcGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQIAAAAXYW1vdW50IG11c3QgYmUgcG9zaXRpdmUEAAAAB29yZGVySWQJAAEsAAAAAgIAAAAFc2VsbF8FAAAAAmlkBAAAAAxwYXltZW50QXNzZXQEAAAAByRtYXRjaDAIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXAFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABcAIAAAAFV0FWRVMEAAAACnByaWNlQXNzZXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAB29yZGVySWQCAAAADF9wcmljZV9hc3NldAIAAAAjdGhlcmUgaXMgbm8gb3JkZXIgd2l0aCBzcGVjaWZpZWQgaWQDCQEAAAACIT0AAAACBQAAAApwcmljZUFzc2V0BQAAAAxwYXltZW50QXNzZXQJAAACAAAAAQkAASwAAAACAgAAABZwYXltZW50IGFzc2V0IG11c3QgYmUgBQAAAApwcmljZUFzc2V0BAAAAAVwcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAdvcmRlcklkAgAAAAZfcHJpY2UEAAAABmFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAdvcmRlcklkAgAAAAdfYW1vdW50BAAAAAlidXlBbW91bnQJAABpAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAVwcmljZQQAAAAFb3duZXIJAQAAAAV2YWx1ZQAAAAEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX293bmVyBAAAAAthbW91bnRBc3NldAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAdvcmRlcklkAgAAAA1fYW1vdW50X2Fzc2V0BAAAAAVzcGVudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAdvcmRlcklkAgAAAAZfc3BlbnQDCQAAZgAAAAIFAAAACWJ1eUFtb3VudAkAAGUAAAACBQAAAAZhbW91bnQFAAAABXNwZW50CQAAAgAAAAECAAAAGm5vdCBlbm91Z3RoIGFzc2V0IGluIG9yZGVyCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAdvcmRlcklkAgAAAAZfc3BlbnQJAABkAAAAAgUAAAAFc3BlbnQFAAAACWJ1eUFtb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAJYnV5QW1vdW50AwkAAAAAAAACBQAAAAthbW91bnRBc3NldAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAALYW1vdW50QXNzZXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFb3duZXIIBQAAAAdwYXltZW50AAAABmFtb3VudAMJAAAAAAAAAgUAAAAKcHJpY2VBc3NldAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAKcHJpY2VBc3NldAUAAAADbmlsAAAAAACebR4=",
"chainId": 84,
"height": 670576,
"spentComplexity": 0
}
View: original | compacted
Prev: cgaJd6ZDpxK2rVq1ugUFMwwfz5ypyQ1k7q8MQ47KAu5
Next: FfyAK5oJ4T7L8KFXMAK4MrU3gJ6NykijhpygHAE7dmiW
Diff:
Old | New | | Differences |
---|
4 | 4 | | |
---|
5 | 5 | | |
---|
6 | 6 | | @Callable(a) |
---|
7 | | - | func makeSell (b,c,d) = if (if ((b != "WAVES")) |
---|
| 7 | + | func makeSell (b,c) = if (if ((b != "WAVES")) |
---|
8 | 8 | | then !(isDefined(assetInfo(fromBase58String(b)))) |
---|
9 | 9 | | else false) |
---|
10 | 10 | | then throw("There is no asset with specified id") |
---|
11 | 11 | | else if ((0 >= c)) |
---|
12 | 12 | | then throw("price must be positive") |
---|
13 | 13 | | else { |
---|
14 | | - | let e = valueOrErrorMessage(a.payment, "where is payment?") |
---|
15 | | - | if ((0 >= e.amount)) |
---|
| 14 | + | let d = valueOrErrorMessage(a.payment, "where is payment?") |
---|
| 15 | + | if ((0 >= d.amount)) |
---|
16 | 16 | | then throw("amount must be positive") |
---|
17 | 17 | | else { |
---|
18 | | - | let f = ("sell_" + toBase58String(a.transactionId)) |
---|
19 | | - | let g = { |
---|
20 | | - | let h = e.assetId |
---|
21 | | - | if ($isInstanceOf(h, "ByteVector")) |
---|
| 18 | + | let e = ("sell_" + toBase58String(a.transactionId)) |
---|
| 19 | + | let f = { |
---|
| 20 | + | let g = d.assetId |
---|
| 21 | + | if ($isInstanceOf(g, "ByteVector")) |
---|
22 | 22 | | then { |
---|
23 | | - | let i = h |
---|
24 | | - | toBase58String(i) |
---|
| 23 | + | let h = g |
---|
| 24 | + | toBase58String(h) |
---|
25 | 25 | | } |
---|
26 | 26 | | else "WAVES" |
---|
27 | 27 | | } |
---|
28 | | - | WriteSet([DataEntry((f + "_amount"), e.amount), DataEntry((f + "_amount_asset"), g), DataEntry((f + "_price"), c), DataEntry((f + "_price_asset"), b), DataEntry((f + "_owner"), toBase58String(a.caller.bytes)), DataEntry((f + "_spent"), 0)]) |
---|
| 28 | + | WriteSet([DataEntry((e + "_amount"), d.amount), DataEntry((e + "_amount_asset"), f), DataEntry((e + "_price"), c), DataEntry((e + "_price_asset"), b), DataEntry((e + "_owner"), toBase58String(a.caller.bytes)), DataEntry((e + "_spent"), 0)]) |
---|
29 | 29 | | } |
---|
30 | 30 | | } |
---|
31 | 31 | | |
---|
32 | 32 | | |
---|
33 | 33 | | |
---|
34 | 34 | | @Callable(a) |
---|
35 | | - | func makeBuy (g,c,d) = if (if ((g != "WAVES")) |
---|
36 | | - | then !(isDefined(assetInfo(fromBase58String(g)))) |
---|
| 35 | + | func makeBuy (f,c) = if (if ((f != "WAVES")) |
---|
| 36 | + | then !(isDefined(assetInfo(fromBase58String(f)))) |
---|
37 | 37 | | else false) |
---|
38 | 38 | | then throw("There is no asset with specified id") |
---|
39 | 39 | | else if ((0 >= c)) |
---|
40 | 40 | | then throw("price must be positive") |
---|
41 | 41 | | else { |
---|
42 | | - | let e = valueOrErrorMessage(a.payment, "where is payment?") |
---|
43 | | - | if ((0 >= e.amount)) |
---|
| 42 | + | let d = valueOrErrorMessage(a.payment, "where is payment?") |
---|
| 43 | + | if ((0 >= d.amount)) |
---|
44 | 44 | | then throw("amount must be positive") |
---|
45 | 45 | | else { |
---|
46 | | - | let f = ("buy_" + toBase58String(a.transactionId)) |
---|
| 46 | + | let e = ("buy_" + toBase58String(a.transactionId)) |
---|
47 | 47 | | let b = { |
---|
48 | | - | let h = e.assetId |
---|
49 | | - | if ($isInstanceOf(h, "ByteVector")) |
---|
| 48 | + | let g = d.assetId |
---|
| 49 | + | if ($isInstanceOf(g, "ByteVector")) |
---|
50 | 50 | | then { |
---|
51 | | - | let i = h |
---|
52 | | - | toBase58String(i) |
---|
| 51 | + | let h = g |
---|
| 52 | + | toBase58String(h) |
---|
53 | 53 | | } |
---|
54 | 54 | | else "WAVES" |
---|
55 | 55 | | } |
---|
56 | | - | WriteSet([DataEntry((f + "_amount"), (e.amount / c)), DataEntry((f + "_amount_asset"), g), DataEntry((f + "_price"), c), DataEntry((f + "_price_asset"), b), DataEntry((f + "_owner"), toBase58String(a.caller.bytes)), DataEntry((f + "_spent"), 0)]) |
---|
| 56 | + | WriteSet([DataEntry((e + "_amount"), (d.amount / c)), DataEntry((e + "_amount_asset"), f), DataEntry((e + "_price"), c), DataEntry((e + "_price_asset"), b), DataEntry((e + "_owner"), toBase58String(a.caller.bytes)), DataEntry((e + "_spent"), 0)]) |
---|
57 | 57 | | } |
---|
58 | 58 | | } |
---|
59 | 59 | | |
---|
60 | 60 | | |
---|
61 | 61 | | |
---|
62 | 62 | | @Callable(a) |
---|
63 | | - | func takeSell (j) = { |
---|
64 | | - | let e = valueOrErrorMessage(a.payment, "where is payment?") |
---|
65 | | - | if ((0 >= e.amount)) |
---|
| 63 | + | func takeSell (i) = { |
---|
| 64 | + | let d = valueOrErrorMessage(a.payment, "where is payment?") |
---|
| 65 | + | if ((0 >= d.amount)) |
---|
66 | 66 | | then throw("amount must be positive") |
---|
67 | 67 | | else { |
---|
68 | | - | let f = ("sell_" + j) |
---|
69 | | - | let k = { |
---|
70 | | - | let h = e.assetId |
---|
71 | | - | if ($isInstanceOf(h, "ByteVector")) |
---|
| 68 | + | let e = ("sell_" + i) |
---|
| 69 | + | let j = { |
---|
| 70 | + | let g = d.assetId |
---|
| 71 | + | if ($isInstanceOf(g, "ByteVector")) |
---|
72 | 72 | | then { |
---|
73 | | - | let i = h |
---|
74 | | - | toBase58String(i) |
---|
| 73 | + | let h = g |
---|
| 74 | + | toBase58String(h) |
---|
75 | 75 | | } |
---|
76 | 76 | | else "WAVES" |
---|
77 | 77 | | } |
---|
78 | | - | let b = valueOrErrorMessage(getString(this, (f + "_price_asset")), "there is no order with specified id") |
---|
79 | | - | if ((b != k)) |
---|
| 78 | + | let b = valueOrErrorMessage(getString(this, (e + "_price_asset")), "there is no order with specified id") |
---|
| 79 | + | if ((b != j)) |
---|
80 | 80 | | then throw(("payment asset must be " + b)) |
---|
81 | 81 | | else { |
---|
82 | | - | let c = getIntegerValue(this, (f + "_price")) |
---|
83 | | - | let l = getIntegerValue(this, (f + "_amount")) |
---|
84 | | - | let m = (e.amount / c) |
---|
85 | | - | let n = value(addressFromString(getStringValue(this, (f + "_owner")))) |
---|
86 | | - | let g = getStringValue(this, (f + "_amount_asset")) |
---|
87 | | - | let o = getIntegerValue(this, (f + "_spent")) |
---|
88 | | - | if ((m > (l - o))) |
---|
| 82 | + | let c = getIntegerValue(this, (e + "_price")) |
---|
| 83 | + | let k = getIntegerValue(this, (e + "_amount")) |
---|
| 84 | + | let l = (d.amount / c) |
---|
| 85 | + | let m = value(addressFromString(getStringValue(this, (e + "_owner")))) |
---|
| 86 | + | let f = getStringValue(this, (e + "_amount_asset")) |
---|
| 87 | + | let n = getIntegerValue(this, (e + "_spent")) |
---|
| 88 | + | if ((l > (k - n))) |
---|
89 | 89 | | then throw("not enougth asset in order") |
---|
90 | | - | else ScriptResult(WriteSet([DataEntry((f + "_spent"), (o + m))]), TransferSet([ScriptTransfer(a.caller, m, if ((g == "WAVES")) |
---|
| 90 | + | else ScriptResult(WriteSet([DataEntry((e + "_spent"), (n + l))]), TransferSet([ScriptTransfer(a.caller, l, if ((f == "WAVES")) |
---|
91 | 91 | | then unit |
---|
92 | | - | else fromBase58String(g)), ScriptTransfer(n, e.amount, if ((b == "WAVES")) |
---|
| 92 | + | else fromBase58String(f)), ScriptTransfer(m, d.amount, if ((b == "WAVES")) |
---|
93 | 93 | | then unit |
---|
94 | 94 | | else fromBase58String(b))])) |
---|
95 | 95 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | |
---|
5 | 5 | | |
---|
6 | 6 | | @Callable(a) |
---|
7 | | - | func makeSell (b,c,d) = if (if ((b != "WAVES")) |
---|
| 7 | + | func makeSell (b,c) = if (if ((b != "WAVES")) |
---|
8 | 8 | | then !(isDefined(assetInfo(fromBase58String(b)))) |
---|
9 | 9 | | else false) |
---|
10 | 10 | | then throw("There is no asset with specified id") |
---|
11 | 11 | | else if ((0 >= c)) |
---|
12 | 12 | | then throw("price must be positive") |
---|
13 | 13 | | else { |
---|
14 | | - | let e = valueOrErrorMessage(a.payment, "where is payment?") |
---|
15 | | - | if ((0 >= e.amount)) |
---|
| 14 | + | let d = valueOrErrorMessage(a.payment, "where is payment?") |
---|
| 15 | + | if ((0 >= d.amount)) |
---|
16 | 16 | | then throw("amount must be positive") |
---|
17 | 17 | | else { |
---|
18 | | - | let f = ("sell_" + toBase58String(a.transactionId)) |
---|
19 | | - | let g = { |
---|
20 | | - | let h = e.assetId |
---|
21 | | - | if ($isInstanceOf(h, "ByteVector")) |
---|
| 18 | + | let e = ("sell_" + toBase58String(a.transactionId)) |
---|
| 19 | + | let f = { |
---|
| 20 | + | let g = d.assetId |
---|
| 21 | + | if ($isInstanceOf(g, "ByteVector")) |
---|
22 | 22 | | then { |
---|
23 | | - | let i = h |
---|
24 | | - | toBase58String(i) |
---|
| 23 | + | let h = g |
---|
| 24 | + | toBase58String(h) |
---|
25 | 25 | | } |
---|
26 | 26 | | else "WAVES" |
---|
27 | 27 | | } |
---|
28 | | - | WriteSet([DataEntry((f + "_amount"), e.amount), DataEntry((f + "_amount_asset"), g), DataEntry((f + "_price"), c), DataEntry((f + "_price_asset"), b), DataEntry((f + "_owner"), toBase58String(a.caller.bytes)), DataEntry((f + "_spent"), 0)]) |
---|
| 28 | + | WriteSet([DataEntry((e + "_amount"), d.amount), DataEntry((e + "_amount_asset"), f), DataEntry((e + "_price"), c), DataEntry((e + "_price_asset"), b), DataEntry((e + "_owner"), toBase58String(a.caller.bytes)), DataEntry((e + "_spent"), 0)]) |
---|
29 | 29 | | } |
---|
30 | 30 | | } |
---|
31 | 31 | | |
---|
32 | 32 | | |
---|
33 | 33 | | |
---|
34 | 34 | | @Callable(a) |
---|
35 | | - | func makeBuy (g,c,d) = if (if ((g != "WAVES")) |
---|
36 | | - | then !(isDefined(assetInfo(fromBase58String(g)))) |
---|
| 35 | + | func makeBuy (f,c) = if (if ((f != "WAVES")) |
---|
| 36 | + | then !(isDefined(assetInfo(fromBase58String(f)))) |
---|
37 | 37 | | else false) |
---|
38 | 38 | | then throw("There is no asset with specified id") |
---|
39 | 39 | | else if ((0 >= c)) |
---|
40 | 40 | | then throw("price must be positive") |
---|
41 | 41 | | else { |
---|
42 | | - | let e = valueOrErrorMessage(a.payment, "where is payment?") |
---|
43 | | - | if ((0 >= e.amount)) |
---|
| 42 | + | let d = valueOrErrorMessage(a.payment, "where is payment?") |
---|
| 43 | + | if ((0 >= d.amount)) |
---|
44 | 44 | | then throw("amount must be positive") |
---|
45 | 45 | | else { |
---|
46 | | - | let f = ("buy_" + toBase58String(a.transactionId)) |
---|
| 46 | + | let e = ("buy_" + toBase58String(a.transactionId)) |
---|
47 | 47 | | let b = { |
---|
48 | | - | let h = e.assetId |
---|
49 | | - | if ($isInstanceOf(h, "ByteVector")) |
---|
| 48 | + | let g = d.assetId |
---|
| 49 | + | if ($isInstanceOf(g, "ByteVector")) |
---|
50 | 50 | | then { |
---|
51 | | - | let i = h |
---|
52 | | - | toBase58String(i) |
---|
| 51 | + | let h = g |
---|
| 52 | + | toBase58String(h) |
---|
53 | 53 | | } |
---|
54 | 54 | | else "WAVES" |
---|
55 | 55 | | } |
---|
56 | | - | WriteSet([DataEntry((f + "_amount"), (e.amount / c)), DataEntry((f + "_amount_asset"), g), DataEntry((f + "_price"), c), DataEntry((f + "_price_asset"), b), DataEntry((f + "_owner"), toBase58String(a.caller.bytes)), DataEntry((f + "_spent"), 0)]) |
---|
| 56 | + | WriteSet([DataEntry((e + "_amount"), (d.amount / c)), DataEntry((e + "_amount_asset"), f), DataEntry((e + "_price"), c), DataEntry((e + "_price_asset"), b), DataEntry((e + "_owner"), toBase58String(a.caller.bytes)), DataEntry((e + "_spent"), 0)]) |
---|
57 | 57 | | } |
---|
58 | 58 | | } |
---|
59 | 59 | | |
---|
60 | 60 | | |
---|
61 | 61 | | |
---|
62 | 62 | | @Callable(a) |
---|
63 | | - | func takeSell (j) = { |
---|
64 | | - | let e = valueOrErrorMessage(a.payment, "where is payment?") |
---|
65 | | - | if ((0 >= e.amount)) |
---|
| 63 | + | func takeSell (i) = { |
---|
| 64 | + | let d = valueOrErrorMessage(a.payment, "where is payment?") |
---|
| 65 | + | if ((0 >= d.amount)) |
---|
66 | 66 | | then throw("amount must be positive") |
---|
67 | 67 | | else { |
---|
68 | | - | let f = ("sell_" + j) |
---|
69 | | - | let k = { |
---|
70 | | - | let h = e.assetId |
---|
71 | | - | if ($isInstanceOf(h, "ByteVector")) |
---|
| 68 | + | let e = ("sell_" + i) |
---|
| 69 | + | let j = { |
---|
| 70 | + | let g = d.assetId |
---|
| 71 | + | if ($isInstanceOf(g, "ByteVector")) |
---|
72 | 72 | | then { |
---|
73 | | - | let i = h |
---|
74 | | - | toBase58String(i) |
---|
| 73 | + | let h = g |
---|
| 74 | + | toBase58String(h) |
---|
75 | 75 | | } |
---|
76 | 76 | | else "WAVES" |
---|
77 | 77 | | } |
---|
78 | | - | let b = valueOrErrorMessage(getString(this, (f + "_price_asset")), "there is no order with specified id") |
---|
79 | | - | if ((b != k)) |
---|
| 78 | + | let b = valueOrErrorMessage(getString(this, (e + "_price_asset")), "there is no order with specified id") |
---|
| 79 | + | if ((b != j)) |
---|
80 | 80 | | then throw(("payment asset must be " + b)) |
---|
81 | 81 | | else { |
---|
82 | | - | let c = getIntegerValue(this, (f + "_price")) |
---|
83 | | - | let l = getIntegerValue(this, (f + "_amount")) |
---|
84 | | - | let m = (e.amount / c) |
---|
85 | | - | let n = value(addressFromString(getStringValue(this, (f + "_owner")))) |
---|
86 | | - | let g = getStringValue(this, (f + "_amount_asset")) |
---|
87 | | - | let o = getIntegerValue(this, (f + "_spent")) |
---|
88 | | - | if ((m > (l - o))) |
---|
| 82 | + | let c = getIntegerValue(this, (e + "_price")) |
---|
| 83 | + | let k = getIntegerValue(this, (e + "_amount")) |
---|
| 84 | + | let l = (d.amount / c) |
---|
| 85 | + | let m = value(addressFromString(getStringValue(this, (e + "_owner")))) |
---|
| 86 | + | let f = getStringValue(this, (e + "_amount_asset")) |
---|
| 87 | + | let n = getIntegerValue(this, (e + "_spent")) |
---|
| 88 | + | if ((l > (k - n))) |
---|
89 | 89 | | then throw("not enougth asset in order") |
---|
90 | | - | else ScriptResult(WriteSet([DataEntry((f + "_spent"), (o + m))]), TransferSet([ScriptTransfer(a.caller, m, if ((g == "WAVES")) |
---|
| 90 | + | else ScriptResult(WriteSet([DataEntry((e + "_spent"), (n + l))]), TransferSet([ScriptTransfer(a.caller, l, if ((f == "WAVES")) |
---|
91 | 91 | | then unit |
---|
92 | | - | else fromBase58String(g)), ScriptTransfer(n, e.amount, if ((b == "WAVES")) |
---|
| 92 | + | else fromBase58String(f)), ScriptTransfer(m, d.amount, if ((b == "WAVES")) |
---|
93 | 93 | | then unit |
---|
94 | 94 | | else fromBase58String(b))])) |
---|
95 | 95 | | } |
---|
96 | 96 | | } |
---|
97 | 97 | | } |
---|
98 | 98 | | |
---|
99 | 99 | | |
---|