tx · 8m31RKwyQyohCMcWVDjTC3zf8WvTkCGzprbY1nTJKE1P

3NAm3p62bo4q3yMzWjJ6M4eEDBRYXxqkXLQ:  -0.05000000 Waves

2022.09.08 15:17 [2220118] smart account 3NAm3p62bo4q3yMzWjJ6M4eEDBRYXxqkXLQ > SELF 0.00000000 Waves

{ "type": 13, "id": "8m31RKwyQyohCMcWVDjTC3zf8WvTkCGzprbY1nTJKE1P", "fee": 5000000, "feeAssetId": null, "timestamp": 1662639585738, "version": 2, "chainId": 84, "sender": "3NAm3p62bo4q3yMzWjJ6M4eEDBRYXxqkXLQ", "senderPublicKey": "6ftcjfxzkWUUwSQuuRg45YwriXgjJ5RMUoG9etzbvvs3", "proofs": [ "4F1TKczNhofBQjCtJBHUJZATdu3uNN1UpUxzgmxdA2G8gWdiYuSAgi9EtuzTDDbuNbFmRzABKnLt8ZQXnz3hkKfh" ], "script": "base64:AAIFAAAAAAAAAAkIAhIFCgMICAgAAAAAAAAAAQAAAAFpAQAAAAdleGVjdXRlAAAAAwAAAARkQXBwAAAACGZ1bmN0aW9uAAAACmFyZ3NTdHJpbmcEAAAABGFyZ3MJAAS1AAAAAgUAAAAKYXJnc1N0cmluZwIAAAABLAoBAAAAAmRvAAAAAgAAAANhY2MAAAADYXJnBAAAAANpbnYJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABGRBcHAFAAAACGZ1bmN0aW9uCQAETAAAAAIFAAAAA2FyZwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAA2ludgUAAAADaW52BQAAAANhY2MJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAAAAAdpbnZva2VzCgAAAAACJGwFAAAABGFyZ3MKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwAAAAAAAAAAAACgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAACZG8AAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAAAAAAAAAAAFQAAAAAAAAAAFgAAAAAAAAAAFwAAAAAAAAAAGAAAAAAAAAAAGQAAAAAAAAAAGgAAAAAAAAAAGwAAAAAAAAAAHAAAAAAAAAAAHQAAAAAAAAAAHgAAAAAAAAAAHwAAAAAAAAAAIAAAAAAAAAAAIQAAAAAAAAAAIgAAAAAAAAAAIwAAAAAAAAAAJAAAAAAAAAAAJQAAAAAAAAAAJgAAAAAAAAAAJwAAAAAAAAAAKAAAAAAAAAAAKQAAAAAAAAAAKgAAAAAAAAAAKwAAAAAAAAAALAAAAAAAAAAALQAAAAAAAAAALgAAAAAAAAAALwAAAAAAAAAAMAAAAAAAAAAAMQAAAAAAAAAAMgAAAAAAAAAAMwAAAAAAAAAANAAAAAAAAAAANQAAAAAAAAAANgAAAAAAAAAANwAAAAAAAAAAOAAAAAAAAAAAOQAAAAAAAAAAOgAAAAAAAAAAOwAAAAAAAAAAPAAAAAAAAAAAPQAAAAAAAAAAPgAAAAAAAAAAPwAAAAAAAAAAQAAAAAAAAAAAQQAAAAAAAAAAQgAAAAAAAAAAQwAAAAAAAAAARAAAAAAAAAAARQAAAAAAAAAARgAAAAAAAAAARwAAAAAAAAAASAAAAAAAAAAASQAAAAAAAAAASgAAAAAAAAAASwAAAAAAAAAATAAAAAAAAAAATQAAAAAAAAAATgAAAAAAAAAATwAAAAAAAAAAUAAAAAAAAAAAUQAAAAAAAAAAUgAAAAAAAAAAUwAAAAAAAAAAVAAAAAAAAAAAVQAAAAAAAAAAVgAAAAAAAAAAVwAAAAAAAAAAWAAAAAAAAAAAWQAAAAAAAAAAWgAAAAAAAAAAWwAAAAAAAAAAXAAAAAAAAAAAXQAAAAAAAAAAXgAAAAAAAAAAXwAAAAAAAAAAYAAAAAAAAAAAYQAAAAAAAAAAYgAAAAAAAAAAYwAAAAAAAAAAZAMJAAAAAAAAAgUAAAAHaW52b2tlcwUAAAAHaW52b2tlcwUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5+g9CUw==", "height": 2220118, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6qGpGLMFLYXF99uFEHToFi6dzNppP4gap4De5frZV5tu Next: Gdwe3WHq8qBiuRMMuJCPBqMxfRPsUxz1HB8dWuaT5wGC Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = {
5- let c = getString(this, b)
6- if ($isInstanceOf(c, "String"))
7- then {
8- let d = c
9- d
10- }
11- else ""
4+
5+
6+@Callable(a)
7+func execute (b,c,d) = {
8+ let e = split(d, ",")
9+ func f (g,h) = {
10+ let i = invoke(Address(fromBase58String(b)), c, [h], nil)
11+ if ((i == i))
12+ then g
13+ else throw("Strict value is not equal to itself.")
14+ }
15+
16+ let j = {
17+ let k = e
18+ let l = size(k)
19+ let m = 0
20+ func n (o,p) = if ((p >= l))
21+ then o
22+ else f(o, k[p])
23+
24+ func q (o,p) = if ((p >= l))
25+ then o
26+ else throw("List size exceeds 100")
27+
28+ q(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(m, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
29+ }
30+ if ((j == j))
31+ then nil
32+ else throw("Strict value is not equal to itself.")
1233 }
1334
1435
15-func e (b) = {
16- let c = getInteger(this, b)
17- if ($isInstanceOf(c, "Int"))
18- then {
19- let d = c
20- d
21- }
22- else 0
23- }
24-
25-
26-func f (g) = {
27- let c = g
28- if ($isInstanceOf(c, "ByteVector"))
29- then {
30- let d = c
31- toBase58String(d)
32- }
33- else "WAVES"
34- }
35-
36-
37-func h (i) = if ((i == "WAVES"))
38- then unit
39- else fromBase58String(i)
40-
41-
42-@Callable(j)
43-func createOrder (k,l) = {
44- let m = (e("global_ordersAmount") + 1)
45- let n = toString(m)
46- if ((size(j.payments) != 1))
47- then throw("You should to provide payment")
48- else if ((0 >= l))
49- then throw("Amount1 cannot be less or equals 0")
50- else {
51- let o = f(j.payments[0].assetId)
52- let p = j.payments[0].amount
53- let q = a((("user_" + toString(j.caller)) + "_activeOrders"))
54- let r = {
55- let c = q
56- if (("" == c))
57- then n
58- else ((q + ",") + n)
59- }
60-[IntegerEntry("global_ordersAmount", m), StringEntry((("order_" + n) + "_token0"), o), IntegerEntry((("order_" + n) + "_amount0"), p), IntegerEntry((("order_" + n) + "_amount1"), l), StringEntry((("order_" + n) + "_token1"), k), IntegerEntry((("order_" + n) + "_fulfilled0"), 0), IntegerEntry((("order_" + n) + "_fulfilled1"), 0), StringEntry((("order_" + n) + "_owner"), toString(j.caller)), StringEntry((("order_" + n) + "_status"), "active"), StringEntry((("user_" + toString(j.caller)) + "_activeOrders"), r)]
61- }
62- }
63-
64-
65-
66-@Callable(j)
67-func fulfillOrder (n) = {
68- let s = valueOrErrorMessage(getString((("order_" + n) + "_owner")), "Cannot find order owner")
69- let t = getString((("order_" + n) + "_status"))
70- let u = valueOrErrorMessage(getString((("order_" + n) + "_token0")), "Cannot find token0")
71- let v = valueOrErrorMessage(getInteger((("order_" + n) + "_amount0")), "Cannot find amount0")
72- let w = valueOrErrorMessage(getInteger((("order_" + n) + "_fulfilled0")), "Cannot find fulfilled0")
73- let x = (v - w)
74- let y = valueOrErrorMessage(getString((("order_" + n) + "_token1")), "Cannot find token1")
75- let z = valueOrErrorMessage(getInteger((("order_" + n) + "_amount1")), "Cannot find amount1")
76- let A = valueOrErrorMessage(getInteger((("order_" + n) + "_fulfilled1")), "Cannot find fulfilled1")
77- let B = (z - A)
78- if ((t != "active"))
79- then throw("Order already closed or canceled")
80- else if ((size(j.payments) != 1))
81- then throw("You should to provide payment")
82- else {
83- let C = j.caller
84- let D = addressFromStringValue(s)
85- let E = f(j.payments[0].assetId)
86- let F = j.payments[0].amount
87- if ((E != y))
88- then throw("Wrong payment asset")
89- else if ((F >= B))
90- then [ScriptTransfer(C, (F - B), h(y)), ScriptTransfer(C, x, h(u)), ScriptTransfer(D, B, h(E)), IntegerEntry((("order_" + n) + "_fulfilled0"), (w + x)), IntegerEntry((("order_" + n) + "_fulfilled1"), (A + B)), StringEntry((("order_" + n) + "_status"), "closed")]
91- else {
92- let p = fraction(v, F, z, FLOOR)
93-[ScriptTransfer(D, F, h(E)), ScriptTransfer(C, p, h(u)), IntegerEntry((("order_" + n) + "_fulfilled0"), (w + p)), IntegerEntry((("order_" + n) + "_fulfilled1"), (A + F))]
94- }
95- }
96- }
97-
98-
99-
100-@Callable(j)
101-func cancelOrder (n) = {
102- let s = valueOrErrorMessage(getString((("order_" + n) + "_owner")), "Cannot find order owner")
103- let t = getString((("order_" + n) + "_status"))
104- let u = valueOrErrorMessage(getString((("order_" + n) + "_token0")), "Cannot find token0")
105- let v = valueOrErrorMessage(getInteger((("order_" + n) + "_amount0")), "Cannot find amount0")
106- let w = valueOrErrorMessage(getInteger((("order_" + n) + "_fulfilled0")), "Cannot find fulfilled0")
107- let x = (v - w)
108- if ((toBase58String(j.caller.bytes) != s))
109- then throw("You cannot cancel order")
110- else if ((t != "active"))
111- then throw("order is closed or canceled")
112- else [ScriptTransfer(addressFromStringValue(s), x, h(u)), StringEntry((("order_" + n) + "_status"), "canceled")]
113- }
114-
115-
116-@Verifier(G)
117-func H () = sigVerify(G.bodyBytes, G.proofs[0], G.senderPublicKey)
36+@Verifier(r)
37+func s () = sigVerify(r.bodyBytes, r.proofs[0], r.senderPublicKey)
11838

github/deemru/w8io/169f3d6 
203.40 ms