tx · H3UofYNkUJ8D63DUTZuGKak9KpzMzCkeqazg2xhaNKhL

3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta:  -0.01000000 Waves

2023.12.02 23:40 [2869514] smart account 3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta > SELF 0.00000000 Waves

{ "type": 13, "id": "H3UofYNkUJ8D63DUTZuGKak9KpzMzCkeqazg2xhaNKhL", "fee": 1000000, "feeAssetId": null, "timestamp": 1701549670682, "version": 2, "chainId": 84, "sender": "3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta", "senderPublicKey": "4rSYGN3SSXzknh6jLyLqqGdGor584DXdjdP2BAbz7kgt", "proofs": [ "4BBj5HShwuQR67ho37BmTtunwf5UNbACsoGJg9Adq6hD1BhE1ou1t9WmXgQAGkydHedGYF4SSeJUP9NBsVC2MTSk" ], "script": "base64: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", "height": 2869514, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Ach4bwBsL6XXVp42LMqZTrHReaC6ZLX2T2ct9qLyWRc Next: F9aNEkQxcrYLxtMGTZ6zrL1Qys4mC7oPdV14yoVoPSwZ Diff:
OldNewDifferences
2121 func i (g,j) = ((("%s%s__orderId__" + g) + "__") + j)
2222
2323
24-func k (g) = ("%s%s__serviceFee__" + g)
24+func k (l) = ("%s%s__serviceFee__" + l)
2525
2626
27-func l (m) = m
27+func m (n) = n
2828
2929
30-func n (o) = if ((o == unit))
30+func o (l) = if ((l == unit))
3131 then "WAVES"
32- else toBase58String(value(o))
32+ else toBase58String(value(l))
3333
3434
3535 func p (q) = if ((q == "WAVES"))
3737 else fromBase58String(q)
3838
3939
40-func r (o) = {
41- let s = p(o)
40+func r (l) = {
41+ let s = p(l)
4242 if (if ((s != unit))
4343 then (assetInfo(value(s)) == unit)
4444 else false)
45- then throw("Invalid assetId: assetInfo missing")
46- else n(s)
45+ then false
46+ else true
4747 }
4848
4949
5050 @Callable(t)
51-func escrow (g,m,o,u) = if (isDefined(getString(this, i(g, toString(t.caller)))))
52- then throw("Order with this id already exists.")
53- else if ((0 >= m))
54- then throw("Non-positive order amount")
55- else {
56- let v = (m - u)
57-[StringEntry(i(g, toString(t.caller)), g), IntegerEntry(k(g), u), IntegerEntry(h(g), v), StringEntry(f(g), o)]
58- }
51+func escrow (g,n,l,u) = if (!(r(l)))
52+ then throw("Invalid assetId")
53+ else if (isDefined(getString(this, i(g, toString(t.caller)))))
54+ then throw("Order with this id already exists.")
55+ else if ((0 >= n))
56+ then throw("Non-positive order amount")
57+ else {
58+ let v = (n - u)
59+ if (isDefined(getInteger(this, k(l))))
60+ then {
61+ let w = (getIntegerValue(k(l)) + u)
62+[StringEntry(i(g, toString(t.caller)), g), DeleteEntry(k(l)), IntegerEntry(k(l), w), IntegerEntry(h(g), v), StringEntry(f(g), l)]
63+ }
64+ else [StringEntry(i(g, toString(t.caller)), g), IntegerEntry(k(l), u), IntegerEntry(h(g), v), StringEntry(f(g), l)]
65+ }
5966
6067
6168
6269 @Callable(t)
63-func deal (g,c,m,w) = if (!(isDefined(getString(this, i(g, toString(t.caller))))))
70+func deal (g,c,n,u,x) = if (!(isDefined(getString(this, i(g, toString(t.caller))))))
6471 then throw("Order not found.")
65- else if ((m > getIntegerValue(h(g))))
72+ else if ((n > getIntegerValue(h(g))))
6673 then throw("The transaction cannot be executed because the seller does not have enough funds")
6774 else {
68- let x = (getIntegerValue(h(g)) - m)
69- let y = f(g)
70- let z = getString(this, y)
71- let q = value(z)
72- if ((w > x))
73- then [ScriptTransfer(addressFromStringValue(c), m, p(q)), ScriptTransfer(t.caller, x, p(q)), ScriptTransfer(a, getIntegerValue(k(g)), p(q)), DeleteEntry(k(g)), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
74- else [ScriptTransfer(addressFromStringValue(c), m, p(q)), DeleteEntry(h(g)), IntegerEntry(h(g), x)]
75+ let y = (getIntegerValue(h(g)) - n)
76+ let z = f(g)
77+ let A = getString(this, z)
78+ let q = value(A)
79+ let w = (getIntegerValue(k(q)) + u)
80+ if ((x > y))
81+ then [ScriptTransfer(addressFromStringValue(c), n, p(q)), ScriptTransfer(t.caller, y, p(q)), DeleteEntry(k(q)), IntegerEntry(k(q), w), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
82+ else [ScriptTransfer(addressFromStringValue(c), n, p(q)), DeleteEntry(k(q)), IntegerEntry(k(q), w), DeleteEntry(h(g)), IntegerEntry(h(g), y)]
7583 }
7684
7785
8088 func cancel (g) = if (!(isDefined(getString(this, i(g, toString(t.caller))))))
8189 then throw(("You don't have an active order with this id: " + g))
8290 else {
83- let x = getIntegerValue(h(g))
84- let y = f(g)
85- let z = getString(this, y)
86- let q = value(z)
87-[ScriptTransfer(t.caller, x, p(q)), ScriptTransfer(a, getIntegerValue(k(g)), p(q)), DeleteEntry(k(g)), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
91+ let y = getIntegerValue(h(g))
92+ let z = f(g)
93+ let A = getString(this, z)
94+ let q = value(A)
95+[ScriptTransfer(t.caller, y, p(q)), ScriptTransfer(a, getIntegerValue(k(g)), p(q)), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
8896 }
97+
98+
99+
100+@Callable(t)
101+func serviceFee (l) = if (!(r(l)))
102+ then throw("Invalid assetId")
103+ else if ((t.caller != a))
104+ then throw("Invalid caller")
105+ else [ScriptTransfer(t.caller, getIntegerValue(k(l)), p(l))]
89106
90107
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = addressFromStringValue("3Mp6TThvbb8z9npqz4AK3ByqAbvs7dYS8uR")
55
66 func b (c) = ("%s%s__partner__" + c)
77
88
99 func d (c) = ("%s%s__wantedAssetId__" + c)
1010
1111
1212 func e (c) = ("%s%s__wantedAmount__" + c)
1313
1414
1515 func f (g) = ("%s%s__assetId__" + g)
1616
1717
1818 func h (g) = ("%s%s__amount__" + g)
1919
2020
2121 func i (g,j) = ((("%s%s__orderId__" + g) + "__") + j)
2222
2323
24-func k (g) = ("%s%s__serviceFee__" + g)
24+func k (l) = ("%s%s__serviceFee__" + l)
2525
2626
27-func l (m) = m
27+func m (n) = n
2828
2929
30-func n (o) = if ((o == unit))
30+func o (l) = if ((l == unit))
3131 then "WAVES"
32- else toBase58String(value(o))
32+ else toBase58String(value(l))
3333
3434
3535 func p (q) = if ((q == "WAVES"))
3636 then unit
3737 else fromBase58String(q)
3838
3939
40-func r (o) = {
41- let s = p(o)
40+func r (l) = {
41+ let s = p(l)
4242 if (if ((s != unit))
4343 then (assetInfo(value(s)) == unit)
4444 else false)
45- then throw("Invalid assetId: assetInfo missing")
46- else n(s)
45+ then false
46+ else true
4747 }
4848
4949
5050 @Callable(t)
51-func escrow (g,m,o,u) = if (isDefined(getString(this, i(g, toString(t.caller)))))
52- then throw("Order with this id already exists.")
53- else if ((0 >= m))
54- then throw("Non-positive order amount")
55- else {
56- let v = (m - u)
57-[StringEntry(i(g, toString(t.caller)), g), IntegerEntry(k(g), u), IntegerEntry(h(g), v), StringEntry(f(g), o)]
58- }
51+func escrow (g,n,l,u) = if (!(r(l)))
52+ then throw("Invalid assetId")
53+ else if (isDefined(getString(this, i(g, toString(t.caller)))))
54+ then throw("Order with this id already exists.")
55+ else if ((0 >= n))
56+ then throw("Non-positive order amount")
57+ else {
58+ let v = (n - u)
59+ if (isDefined(getInteger(this, k(l))))
60+ then {
61+ let w = (getIntegerValue(k(l)) + u)
62+[StringEntry(i(g, toString(t.caller)), g), DeleteEntry(k(l)), IntegerEntry(k(l), w), IntegerEntry(h(g), v), StringEntry(f(g), l)]
63+ }
64+ else [StringEntry(i(g, toString(t.caller)), g), IntegerEntry(k(l), u), IntegerEntry(h(g), v), StringEntry(f(g), l)]
65+ }
5966
6067
6168
6269 @Callable(t)
63-func deal (g,c,m,w) = if (!(isDefined(getString(this, i(g, toString(t.caller))))))
70+func deal (g,c,n,u,x) = if (!(isDefined(getString(this, i(g, toString(t.caller))))))
6471 then throw("Order not found.")
65- else if ((m > getIntegerValue(h(g))))
72+ else if ((n > getIntegerValue(h(g))))
6673 then throw("The transaction cannot be executed because the seller does not have enough funds")
6774 else {
68- let x = (getIntegerValue(h(g)) - m)
69- let y = f(g)
70- let z = getString(this, y)
71- let q = value(z)
72- if ((w > x))
73- then [ScriptTransfer(addressFromStringValue(c), m, p(q)), ScriptTransfer(t.caller, x, p(q)), ScriptTransfer(a, getIntegerValue(k(g)), p(q)), DeleteEntry(k(g)), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
74- else [ScriptTransfer(addressFromStringValue(c), m, p(q)), DeleteEntry(h(g)), IntegerEntry(h(g), x)]
75+ let y = (getIntegerValue(h(g)) - n)
76+ let z = f(g)
77+ let A = getString(this, z)
78+ let q = value(A)
79+ let w = (getIntegerValue(k(q)) + u)
80+ if ((x > y))
81+ then [ScriptTransfer(addressFromStringValue(c), n, p(q)), ScriptTransfer(t.caller, y, p(q)), DeleteEntry(k(q)), IntegerEntry(k(q), w), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
82+ else [ScriptTransfer(addressFromStringValue(c), n, p(q)), DeleteEntry(k(q)), IntegerEntry(k(q), w), DeleteEntry(h(g)), IntegerEntry(h(g), y)]
7583 }
7684
7785
7886
7987 @Callable(t)
8088 func cancel (g) = if (!(isDefined(getString(this, i(g, toString(t.caller))))))
8189 then throw(("You don't have an active order with this id: " + g))
8290 else {
83- let x = getIntegerValue(h(g))
84- let y = f(g)
85- let z = getString(this, y)
86- let q = value(z)
87-[ScriptTransfer(t.caller, x, p(q)), ScriptTransfer(a, getIntegerValue(k(g)), p(q)), DeleteEntry(k(g)), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
91+ let y = getIntegerValue(h(g))
92+ let z = f(g)
93+ let A = getString(this, z)
94+ let q = value(A)
95+[ScriptTransfer(t.caller, y, p(q)), ScriptTransfer(a, getIntegerValue(k(g)), p(q)), DeleteEntry(h(g)), DeleteEntry(i(g, toString(t.caller))), DeleteEntry(f(g))]
8896 }
97+
98+
99+
100+@Callable(t)
101+func serviceFee (l) = if (!(r(l)))
102+ then throw("Invalid assetId")
103+ else if ((t.caller != a))
104+ then throw("Invalid caller")
105+ else [ScriptTransfer(t.caller, getIntegerValue(k(l)), p(l))]
89106
90107

github/deemru/w8io/169f3d6 
38.22 ms