tx · 7bLkhTLYM1UZWF91TKLDp9eJNWr2brhKyuzSUiDwWaZY

3N61RYWc9QuqKUwLvowpZZLpgUnqpQSFwLq:  -0.01000000 Waves

2024.03.05 23:57 [3005225] smart account 3N61RYWc9QuqKUwLvowpZZLpgUnqpQSFwLq > SELF 0.00000000 Waves

{ "type": 13, "id": "7bLkhTLYM1UZWF91TKLDp9eJNWr2brhKyuzSUiDwWaZY", "fee": 1000000, "feeAssetId": null, "timestamp": 1709672241235, "version": 2, "chainId": 84, "sender": "3N61RYWc9QuqKUwLvowpZZLpgUnqpQSFwLq", "senderPublicKey": "HdwFH8HPYu3HG27yK6bszu1CdR4uik4HgzyTimeSfcYf", "proofs": [ "41hDEWuU1Nxf5i7NUkDhbbABX3Fn4S5hcbH4n6WVYEC7rGKtgekACjbqrtyM2Z89GZQKXoveFfph176MGeimHoNj" ], "script": "base64:BgIOCAISABIDCgEBEgMKAQgPABBhbW91bnRBc3NldElkS2V5Ag1hbW91bnRBc3NldElkAA9wcmljZUFzc2V0SWRLZXkCDHByaWNlQXNzZXRJZAAKZmVlUmF0ZUtleQIHZmVlUmF0ZQEKZ2V0QXNzZXRJZAENYXNzZXRJZFN0cmluZwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nAQ9nZXRBc3NldEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJAPAHAgUEdGhpcwUCaWQICQDvBwEFBHRoaXMJYXZhaWxhYmxlABNhbW91bnRBc3NldElkU3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBRBhbW91bnRBc3NldElkS2V5AA1hbW91bnRBc3NldElkCQEKZ2V0QXNzZXRJZAEFE2Ftb3VudEFzc2V0SWRTdHJpbmcAEnByaWNlQXNzZXRJZFN0cmluZwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUPcHJpY2VBc3NldElkS2V5AAxwcmljZUFzc2V0SWQJAQpnZXRBc3NldElkAQUScHJpY2VBc3NldElkU3RyaW5nAAZTQ0FMRTgAgMLXLwAHZmVlUmF0ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQpmZWVSYXRlS2V5AMCaDAEJY2FsY1ByaWNlAAkAawMJAQ9nZXRBc3NldEJhbGFuY2UBBQxwcmljZUFzc2V0SWQFBlNDQUxFOAkBD2dldEFzc2V0QmFsYW5jZQEFDWFtb3VudEFzc2V0SWQBEWNhbGNSYXdTZW5kQW1vdW50Awlpbml0QW1CYWwJaW5pdFByQmFsDXBheW1lbnRBbW91bnQECG5ld1ByQmFsCQBkAgUJaW5pdFByQmFsBQ1wYXltZW50QW1vdW50BAhuZXdBbUJhbAkAawMFCWluaXRBbUJhbAUJaW5pdFByQmFsBQhuZXdQckJhbAQKc2VuZEFtb3VudAkAZQIFCWluaXRBbUJhbAUIbmV3QW1CYWwFCnNlbmRBbW91bnQBDmNhbGNTZW5kQW1vdW50Aw5wYXltZW50QXNzZXRJZA1wYXltZW50QW1vdW50CHJlYWRvbmx5BAskdDAxMzU3MTUwOQMJAAACBQ5wYXltZW50QXNzZXRJZAUNYW1vdW50QXNzZXRJZAkAlAoCBQxwcmljZUFzc2V0SWQFDWFtb3VudEFzc2V0SWQJAJQKAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBAlhbUFzc2V0SWQIBQskdDAxMzU3MTUwOQJfMQQJcHJBc3NldElkCAULJHQwMTM1NzE1MDkCXzIECWluaXRBbUJhbAkBD2dldEFzc2V0QmFsYW5jZQEFCWFtQXNzZXRJZAQJaW5pdFByQmFsCQBlAgkBD2dldEFzc2V0QmFsYW5jZQEFCXByQXNzZXRJZAMFCHJlYWRvbmx5AAAFDXBheW1lbnRBbW91bnQEDXJhd1NlbmRBbW91bnQJARFjYWxjUmF3U2VuZEFtb3VudAMFCWluaXRBbUJhbAUJaW5pdFByQmFsBQ1wYXltZW50QW1vdW50BAlmZWVBbW91bnQJAGsDBQ1yYXdTZW5kQW1vdW50BQdmZWVSYXRlBQZTQ0FMRTgECnNlbmRBbW91bnQJAGUCBQ1yYXdTZW5kQW1vdW50BQlmZWVBbW91bnQEDXVzZXJSZWFsUHJpY2UDCQAAAgUOcGF5bWVudEFzc2V0SWQFDWFtb3VudEFzc2V0SWQJAGsDBQpzZW5kQW1vdW50BQZTQ0FMRTgFDXBheW1lbnRBbW91bnQJAGsDBQ1wYXltZW50QW1vdW50BQZTQ0FMRTgFCnNlbmRBbW91bnQJAJYKBAUKc2VuZEFtb3VudAUJZmVlQW1vdW50BQlhbUFzc2V0SWQFDXVzZXJSZWFsUHJpY2UBDHN3YXBJbnRlcm5hbAIHYWRkcmVzcwFpBAZjaGVja3MJAMwIAgMJAGYCCQCQAwEIBQFpCHBheW1lbnRzAAAGCQACAQIYc2hvdWxkIGJlIHdpdGggMSBwYXltZW50CQDMCAIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQ1hbW91bnRBc3NldElkCQDMCAIFDHByaWNlQXNzZXRJZAUDbmlsCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQGCQACAQkAuQkCCQDMCAICGXBheW1lbnQgYXNzZXRJZCBzaG91bGQgYmUJAMwIAgUTYW1vdW50QXNzZXRJZFN0cmluZwkAzAgCAgJvcgkAzAgCBRJwcmljZUFzc2V0SWRTdHJpbmcFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA5wYXltZW50QXNzZXRJZAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBA1wYXltZW50QW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQLJHQwMjUxMjI2MjIJAQ5jYWxjU2VuZEFtb3VudAMFDnBheW1lbnRBc3NldElkBQ1wYXltZW50QW1vdW50BwQKc2VuZEFtb3VudAgFCyR0MDI1MTIyNjIyAl8xBAlmZWVBbW91bnQIBQskdDAyNTEyMjYyMgJfMgQLc2VuZEFzc2V0SWQIBQskdDAyNTEyMjYyMgJfMwQNdXNlclJlYWxQcmljZQgFCyR0MDI1MTIyNjIyAl80BAtzZW5kQWN0aW9ucwMJAGYCBQlmZWVBbW91bnQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQdhZGRyZXNzBQpzZW5kQW1vdW50BQtzZW5kQXNzZXRJZAUDbmlsCQACAQIRYW1vdW50IGlzIHRvbyBsb3cJAJQKAgULc2VuZEFjdGlvbnMJAJYKBAUKc2VuZEFtb3VudAUJZmVlQW1vdW50BQtzZW5kQXNzZXRJZAUNdXNlclJlYWxQcmljZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMBaQEEc3dhcAAJAQxzd2FwSW50ZXJuYWwCCAUBaQZjYWxsZXIFAWkBaQEKc3dhcE5vTGVzcwEJbWluQW1vdW50BAskdDAyOTgwMzAzMgkBDHN3YXBJbnRlcm5hbAIIBQFpBmNhbGxlcgUBaQQLc2VuZEFjdGlvbnMIBQskdDAyOTgwMzAzMgJfMQQFdHVwbGUIBQskdDAyOTgwMzAzMgJfMgQLJHQwMzAzNzMxMDAFBXR1cGxlBApzZW5kQW1vdW50CAULJHQwMzAzNzMxMDACXzEECWZlZUFtb3VudAgFCyR0MDMwMzczMTAwAl8yBAtzZW5kQXNzZXRJZAgFCyR0MDMwMzczMTAwAl8zBA11c2VyUmVhbFByaWNlCAULJHQwMzAzNzMxMDACXzQDCQBmAgUJbWluQW1vdW50BQpzZW5kQW1vdW50CQACAQkAuQkCCQDMCAICGlByaWNlIHNsaXBwZWQuIG1pbkFtb3VudDogCQDMCAIJAKQDAQUJbWluQW1vdW50CQDMCAICDSBzd2FwQW1vdW50OiAJAMwIAgkApAMBBQpzZW5kQW1vdW50BQNuaWwCAAkAlAoCBQtzZW5kQWN0aW9ucwUFdHVwbGUBaQEHc3dhcEZvcgEHYWRkcmVzcwkBDHN3YXBJbnRlcm5hbAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MFAWkAe/KElw==", "height": 3005225, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 62q9vi4LD3HiJ5WcLB9THCwBaxTnGJojVLAywVhPULra Next: Dsqx1vYTXVkoXgB9eMjse8rbhQVLaRQWBXzWRvWnPsp Diff:
OldNewDifferences
4646 }
4747
4848
49-func x (y,t) = {
50- let z = if ((y == k))
49+func x (y,t,z) = {
50+ let A = if ((y == k))
5151 then $Tuple2(m, k)
5252 else $Tuple2(k, m)
53- let A = z._1
54- let B = z._2
55- let r = f(A)
56- let s = f(B)
57- let C = q(r, s, t)
58- let D = fraction(C, o, n)
59- let w = (C - D)
60- let E = if ((y == k))
53+ let B = A._1
54+ let C = A._2
55+ let r = f(B)
56+ let s = (f(C) - (if (z)
57+ then 0
58+ else t))
59+ let D = q(r, s, t)
60+ let E = fraction(D, o, n)
61+ let w = (D - E)
62+ let F = if ((y == k))
6163 then fraction(w, n, t)
6264 else fraction(t, n, w)
63- $Tuple4(w, D, A, E)
65+ $Tuple4(w, E, B, F)
6466 }
6567
6668
67-func F (G,H) = {
68- let I = [if ((size(H.payments) > 0))
69+func G (H,I) = {
70+ let J = [if ((size(I.payments) > 0))
6971 then true
70- else throw("should be with 1 payment"), if (containsElement([k, m], H.payments[0].assetId))
72+ else throw("should be with 1 payment"), if (containsElement([k, m], I.payments[0].assetId))
7173 then true
7274 else throw(makeString(["payment assetId should be", j, "or", l], " "))]
73- if ((I == I))
75+ if ((J == J))
7476 then {
75- let y = H.payments[0].assetId
76- let t = H.payments[0].amount
77- let J = x(y, t)
78- let w = J._1
79- let D = J._2
80- let K = J._3
81- let E = J._4
82- let L = if ((D > 0))
83- then [ScriptTransfer(G, w, K)]
77+ let y = I.payments[0].assetId
78+ let t = I.payments[0].amount
79+ let K = x(y, t, false)
80+ let w = K._1
81+ let E = K._2
82+ let L = K._3
83+ let F = K._4
84+ let M = if ((E > 0))
85+ then [ScriptTransfer(H, w, L)]
8486 else throw("amount is too low")
85- $Tuple2(L, $Tuple4(w, D, K, E))
87+ $Tuple2(M, $Tuple4(w, E, L, F))
8688 }
8789 else throw("Strict value is not equal to itself.")
8890 }
8991
9092
91-@Callable(H)
92-func swap () = F(H.caller, H)
93+@Callable(I)
94+func swap () = G(I.caller, I)
9395
9496
9597
96-@Callable(H)
97-func swapNoLess (M) = {
98- let N = F(H.caller, H)
99- let L = N._1
100- let O = N._2
101- let P = O
102- let w = P._1
103- let D = P._2
104- let K = P._3
105- let E = P._4
106- if ((M > w))
107- then throw(makeString(["Price slipped. minAmount: ", toString(M), " swapAmount: ", toString(w)], ""))
108- else $Tuple2(L, O)
98+@Callable(I)
99+func swapNoLess (N) = {
100+ let O = G(I.caller, I)
101+ let M = O._1
102+ let P = O._2
103+ let Q = P
104+ let w = Q._1
105+ let E = Q._2
106+ let L = Q._3
107+ let F = Q._4
108+ if ((N > w))
109+ then throw(makeString(["Price slipped. minAmount: ", toString(N), " swapAmount: ", toString(w)], ""))
110+ else $Tuple2(M, P)
109111 }
110112
111113
112114
113-@Callable(H)
114-func swapFor (G) = F(addressFromStringValue(G), H)
115+@Callable(I)
116+func swapFor (H) = G(addressFromStringValue(H), I)
115117
116118
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "amountAssetId"
55
66 let b = "priceAssetId"
77
88 let c = "feeRate"
99
1010 func d (e) = if ((e == "WAVES"))
1111 then unit
1212 else fromBase58String(e)
1313
1414
1515 func f (g) = {
1616 let h = g
1717 if ($isInstanceOf(h, "ByteVector"))
1818 then {
1919 let i = h
2020 assetBalance(this, i)
2121 }
2222 else wavesBalance(this).available
2323 }
2424
2525
2626 let j = getStringValue(this, a)
2727
2828 let k = d(j)
2929
3030 let l = getStringValue(this, b)
3131
3232 let m = d(l)
3333
3434 let n = 100000000
3535
3636 let o = valueOrElse(getInteger(this, c), 200000)
3737
3838 func p () = fraction(f(m), n, f(k))
3939
4040
4141 func q (r,s,t) = {
4242 let u = (s + t)
4343 let v = fraction(r, s, u)
4444 let w = (r - v)
4545 w
4646 }
4747
4848
49-func x (y,t) = {
50- let z = if ((y == k))
49+func x (y,t,z) = {
50+ let A = if ((y == k))
5151 then $Tuple2(m, k)
5252 else $Tuple2(k, m)
53- let A = z._1
54- let B = z._2
55- let r = f(A)
56- let s = f(B)
57- let C = q(r, s, t)
58- let D = fraction(C, o, n)
59- let w = (C - D)
60- let E = if ((y == k))
53+ let B = A._1
54+ let C = A._2
55+ let r = f(B)
56+ let s = (f(C) - (if (z)
57+ then 0
58+ else t))
59+ let D = q(r, s, t)
60+ let E = fraction(D, o, n)
61+ let w = (D - E)
62+ let F = if ((y == k))
6163 then fraction(w, n, t)
6264 else fraction(t, n, w)
63- $Tuple4(w, D, A, E)
65+ $Tuple4(w, E, B, F)
6466 }
6567
6668
67-func F (G,H) = {
68- let I = [if ((size(H.payments) > 0))
69+func G (H,I) = {
70+ let J = [if ((size(I.payments) > 0))
6971 then true
70- else throw("should be with 1 payment"), if (containsElement([k, m], H.payments[0].assetId))
72+ else throw("should be with 1 payment"), if (containsElement([k, m], I.payments[0].assetId))
7173 then true
7274 else throw(makeString(["payment assetId should be", j, "or", l], " "))]
73- if ((I == I))
75+ if ((J == J))
7476 then {
75- let y = H.payments[0].assetId
76- let t = H.payments[0].amount
77- let J = x(y, t)
78- let w = J._1
79- let D = J._2
80- let K = J._3
81- let E = J._4
82- let L = if ((D > 0))
83- then [ScriptTransfer(G, w, K)]
77+ let y = I.payments[0].assetId
78+ let t = I.payments[0].amount
79+ let K = x(y, t, false)
80+ let w = K._1
81+ let E = K._2
82+ let L = K._3
83+ let F = K._4
84+ let M = if ((E > 0))
85+ then [ScriptTransfer(H, w, L)]
8486 else throw("amount is too low")
85- $Tuple2(L, $Tuple4(w, D, K, E))
87+ $Tuple2(M, $Tuple4(w, E, L, F))
8688 }
8789 else throw("Strict value is not equal to itself.")
8890 }
8991
9092
91-@Callable(H)
92-func swap () = F(H.caller, H)
93+@Callable(I)
94+func swap () = G(I.caller, I)
9395
9496
9597
96-@Callable(H)
97-func swapNoLess (M) = {
98- let N = F(H.caller, H)
99- let L = N._1
100- let O = N._2
101- let P = O
102- let w = P._1
103- let D = P._2
104- let K = P._3
105- let E = P._4
106- if ((M > w))
107- then throw(makeString(["Price slipped. minAmount: ", toString(M), " swapAmount: ", toString(w)], ""))
108- else $Tuple2(L, O)
98+@Callable(I)
99+func swapNoLess (N) = {
100+ let O = G(I.caller, I)
101+ let M = O._1
102+ let P = O._2
103+ let Q = P
104+ let w = Q._1
105+ let E = Q._2
106+ let L = Q._3
107+ let F = Q._4
108+ if ((N > w))
109+ then throw(makeString(["Price slipped. minAmount: ", toString(N), " swapAmount: ", toString(w)], ""))
110+ else $Tuple2(M, P)
109111 }
110112
111113
112114
113-@Callable(H)
114-func swapFor (G) = F(addressFromStringValue(G), H)
115+@Callable(I)
116+func swapFor (H) = G(addressFromStringValue(H), I)
115117
116118

github/deemru/w8io/169f3d6 
46.91 ms