tx · 7N2EXuiBVFiZofNKHDCSv4C4rwMCm9toECHF4eYEZgiZ

3N8y4wxX3JC4TdrCJBXX16SjWf6X256hrep:  -0.01000000 Waves

2022.12.06 02:10 [2347701] smart account 3N8y4wxX3JC4TdrCJBXX16SjWf6X256hrep > SELF 0.00000000 Waves

{ "type": 13, "id": "7N2EXuiBVFiZofNKHDCSv4C4rwMCm9toECHF4eYEZgiZ", "fee": 1000000, "feeAssetId": null, "timestamp": 1670281864484, "version": 2, "chainId": 84, "sender": "3N8y4wxX3JC4TdrCJBXX16SjWf6X256hrep", "senderPublicKey": "7v5L7QkXxfkirALdyqmox38QCsa9jtfAtgUfHTh34eWq", "proofs": [ "2mAiP4sfEN46upx8RWwGiFCvQWfJxWejDBEtHgVx7cxgx8uZRvBmcsgMG9Q3AmKYPzniLcoruPG7CQaetTVhYjtu" ], "script": "base64:BgIICAISBAoCAQEcAAVNVUxUNgDAhD0ABU1VTFQ4AIDC1y8AC3VzZG5Bc3NldElkASD3dur394PKZdtuE+4CO89YKZWpwdGN8kvabNgdYoDI3gALYmFja0VuZEFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNONVNwWDIxUjNSNzVRbzRlYjNNd0ZGdlc3VFV6eWh2YXZ2AA9zdGFraW5nQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNOREN5Qkc1cTg1SnVhUmlpZ1VlRXRhaW55akNRVDNYcFptAA9ERUZBVUxUTE9DQVRJT04CD0FmcmljYV9GX0FmcmljYQAGTlVNUkVTAAYAE0ZBQ1RPUllNQVhXQVJFSE9VU0UAgMivoCUACHJlc1R5cGVzCQDMCAICA09pbAkAzAgCAgNPcmUJAMwIAgIEV29vZAkAzAgCAgRTYW5kCQDMCAICBENsYXkJAMwIAgIHT3JnYW5pYwUDbmlsAApjb250aW5lbnRzCQDMCAICCEFtZXJpY2FzCQDMCAICBkV1cm9wZQkAzAgCAgRBc2lhCQDMCAICBkFmcmljYQkAzAgCAgdPY2VhbmlhBQNuaWwBHmtleUZhY3RvcnlXYXJlaG91c2VCeUlkQW5kVHlwZQIJZmFjdG9yeUlkB3Jlc1R5cGUJAKwCAgkArAICCQCsAgICG2ZhY3RvcnlXaEJ5Q29udGluZW50QW5kUmVzXwUJZmFjdG9yeUlkAgFfCQCkAwEFB3Jlc1R5cGUBEWtleUFzc2V0SWRUb093bmVyAQdhc3NldElkCQCsAgICCW5mdE93bmVyXwUHYXNzZXRJZAEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEHYXNzZXRJZAkArAICAgtzdGFrZWRUaW1lXwUHYXNzZXRJZAEUa2V5U3Rha2VkRHVja0J5T3duZXIBCW93bmVyQWRkcgkArAICAhJzdGFrZWREdWNrQnlPd25lcl8FCW93bmVyQWRkcgERa2V5QmFja3BhY2tCeUR1Y2sBC2R1Y2tBc3NldElkCQCsAgICCWJhY2tQYWNrXwULZHVja0Fzc2V0SWQBD2tleUR1Y2tMb2NhdGlvbgELZHVja0Fzc2V0SWQJAKwCAgINZHVja0xvY2F0aW9uXwULZHVja0Fzc2V0SWQAB2lkeFR5cGUAAAALaWR4UXVhbnRpdHkAAQAIaWR4UHJpY2UAAgAPbG9jSWR4Q29udGluZW50AAAACmxvY0lkeFR5cGUAAQAIbG9jSWR4SWQAAgAKYnBJZHhMZXZlbAAAAAhicElkeFJlcwABAAhicElkeE1hdAACAAlicElkeFByb2QAAwEIYXNTdHJpbmcBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQZzdWJSZXMDB3Jlc0xpc3QHcmVzVHlwZQZhbW91bnQKAQZzdWJiZXICA2FjYwFpCQDNCAIFA2FjYwMJAAACBQFpBQdyZXNUeXBlCQCkAwEJAGUCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHcmVzTGlzdAUBaQUGYW1vdW50CQCRAwIFB3Jlc0xpc3QFAWkEAXIKAAIkbAkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQUDbmlsCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQZzdWJiZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYJALkJAgUBcgIBXwEBaQEMc2VsbFJlc291cmNlAgdyZXNUeXBlBmFtb3VudAMDCQBmAgAABQdyZXNUeXBlBgkAZwIFB3Jlc1R5cGUFBk5VTVJFUwkAAgEJAKwCAgISVW5rbm93biByZXNvdXJjZTogCQCkAwEFB3Jlc1R5cGUDCQBnAgAABQZhbW91bnQJAAIBCQCsAgICG0Ftb3VudCBzaG91bGQgYmUgcG9zaXRpdmUhIAkApAMBBQZhbW91bnQEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEUa2V5U3Rha2VkRHVja0J5T3duZXIBCQClCAEIBQFpBmNhbGxlcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECKnNlbGxSZXNvdXJjZXMgZG9lc24ndCByZXF1aXJlIGFueSBwYXltZW50cwQLY3VyTG9jYXRpb24JALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJAQ9rZXlEdWNrTG9jYXRpb24BBQtkdWNrQXNzZXRJZAUPREVGQVVMVExPQ0FUSU9OAgFfAwkBAiE9AgkAkQMCBQtjdXJMb2NhdGlvbgUKbG9jSWR4VHlwZQIBRgkAAgEJAKwCAgItRHVjayBsb2NhdGlvbiB0eXBlIHNob3VsZCBiZSBGYWN0b3J5LCBidXQgaXMgCQCRAwIFC2N1ckxvY2F0aW9uBQpsb2NJZHhUeXBlBAVicEtleQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQEC2N1cnJlbnRQYWNrCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0BQVicEtleQIPMDowXzBfMF8wXzBfMDo6AgE6BAdyZXNMaXN0CQC1CQIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4UmVzAgFfBApjdXJyZW50UmVzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHcmVzTGlzdAUHcmVzVHlwZQMJAGYCBQZhbW91bnQFCmN1cnJlbnRSZXMJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIJWW91IGhhdmUgCQCkAwEFCmN1cnJlbnRSZXMCBCBvZiAJAJEDAgUIcmVzVHlwZXMFB3Jlc1R5cGUCICBpbiBiYWNrcGFjaywgYnV0IHRyaWVkIHRvIHNlbGwgCQCkAwEFBmFtb3VudAQFd2hLZXkJAR5rZXlGYWN0b3J5V2FyZWhvdXNlQnlJZEFuZFR5cGUCCQCRAwIFC2N1ckxvY2F0aW9uBQhsb2NJZHhJZAUHcmVzVHlwZQQCdzAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUFd2hLZXkAAAQCcjADCQBmAgUCdzAFE0ZBQ1RPUllNQVhXQVJFSE9VU0UAAAMJAGYCCQBkAgUCdzAFBmFtb3VudAUTRkFDVE9SWU1BWFdBUkVIT1VTRQkAZQIFE0ZBQ1RPUllNQVhXQVJFSE9VU0UFAncwBQZhbW91bnQEDHVzZG5SZWNlaXZlZAkAZAIJAGsDBQJyMAkAZQIJAGgCAAIFBU1VTFQ2CQBrAwkAZAIFAncwCQBpAgUCcjAAAgUFTVVMVDYFE0ZBQ1RPUllNQVhXQVJFSE9VU0UFBU1VTFQ4CQBpAgkAZQIFBmFtb3VudAUCcjAAZAQFYnBSZXMJAQZzdWJSZXMDBQdyZXNMaXN0BQdyZXNUeXBlBQZhbW91bnQEB25ld1BhY2sJALkJAgkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIFBWJwUmVzCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4TWF0CQDMCAIJAJEDAgULY3VycmVudFBhY2sFCWJwSWR4UHJvZAUDbmlsAgE6BAZyZXN1bHQJAQhhc1N0cmluZwEJAPwHBAUPc3Rha2luZ0NvbnRyYWN0Ag51cGRhdGVCYWNrcGFjawkAzAgCBQtkdWNrQXNzZXRJZAkAzAgCBQduZXdQYWNrBQNuaWwFA25pbAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQV3aEtleQkAZAIFAncwBQZhbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQx1c2RuUmVjZWl2ZWQFC3VzZG5Bc3NldElkBQNuaWwFBnJlc3VsdACeIQpE", "height": 2347701, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9tRLDusYHVy8gqcXkRErXYrHp5gxLgpJitsMjaciFoQw Next: 5cHQ5gvQW2PwdcQThd6VuHPW3KjzDKUsERx8Godvi4b4 Diff:
OldNewDifferences
5959
6060 let E = 3
6161
62-func F (G,m,H) = {
63- func I (J,K) = (J :+ (if ((K == m))
64- then toString((parseIntValue(G[K]) - H))
65- else G[K]))
66-
67- let L = {
68- let M = [0, 1, 2, 3, 4, 5]
69- let N = size(M)
70- let O = nil
71- func P (Q,R) = if ((R >= N))
72- then Q
73- else I(Q, M[R])
74-
75- func S (Q,R) = if ((R >= N))
76- then Q
77- else throw("List size exceeds 6")
78-
79- S(P(P(P(P(P(P(O, 0), 1), 2), 3), 4), 5), 6)
80- }
81- makeString(L, "_")
62+func F (G) = {
63+ let H = G
64+ if ($isInstanceOf(H, "String"))
65+ then {
66+ let I = H
67+ I
68+ }
69+ else throw("fail to cast into String")
8270 }
8371
8472
85-@Callable(K)
86-func sellResource (m,H) = if (if ((0 > m))
73+func J (K,m,L) = {
74+ func M (N,O) = (N :+ (if ((O == m))
75+ then toString((parseIntValue(K[O]) - L))
76+ else K[O]))
77+
78+ let P = {
79+ let Q = [0, 1, 2, 3, 4, 5]
80+ let R = size(Q)
81+ let S = nil
82+ func T (U,V) = if ((V >= R))
83+ then U
84+ else M(U, Q[V])
85+
86+ func W (U,V) = if ((V >= R))
87+ then U
88+ else throw("List size exceeds 6")
89+
90+ W(T(T(T(T(T(T(S, 0), 1), 2), 3), 4), 5), 6)
91+ }
92+ makeString(P, "_")
93+ }
94+
95+
96+@Callable(O)
97+func sellResource (m,L) = if (if ((0 > m))
8798 then true
8899 else (m >= g))
89100 then throw(("Unknown resource: " + toString(m)))
90- else if ((0 >= H))
91- then throw(("Amount should be positive! " + toString(H)))
101+ else if ((0 >= L))
102+ then throw(("Amount should be positive! " + toString(L)))
92103 else {
93- let t = valueOrErrorMessage(getString(e, q(toString(K.caller))), "You don't have a duck staked")
94- if ((size(K.payments) != 0))
104+ let t = valueOrErrorMessage(getString(e, q(toString(O.caller))), "You don't have a duck staked")
105+ if ((size(O.payments) != 0))
95106 then throw("sellResources doesn't require any payments")
96107 else {
97- let T = split(valueOrElse(getString(e, u(t)), f), "_")
98- if ((T[z] != "F"))
99- then throw(("Duck location type should be Factory, but is " + T[z]))
108+ let X = split(valueOrElse(getString(e, u(t)), f), "_")
109+ if ((X[z] != "F"))
110+ then throw(("Duck location type should be Factory, but is " + X[z]))
100111 else {
101- let U = s(t)
102- let V = split(valueOrElse(getString(e, U), "0:0_0_0_0_0_0::"), ":")
103- let G = split(V[C], "_")
104- let W = parseIntValue(G[m])
105- if ((H > W))
106- then throw(((((("You have " + toString(W)) + " of ") + i[m]) + " in backpack, but tried to sell ") + toString(H)))
112+ let Y = s(t)
113+ let Z = split(valueOrElse(getString(e, Y), "0:0_0_0_0_0_0::"), ":")
114+ let K = split(Z[C], "_")
115+ let aa = parseIntValue(K[m])
116+ if ((L > aa))
117+ then throw(((((("You have " + toString(aa)) + " of ") + i[m]) + " in backpack, but tried to sell ") + toString(L)))
107118 else {
108- let X = k(T[A], m)
109- let Y = valueOrElse(getInteger(X), 0)
110- let Z = if ((Y > h))
119+ let ab = k(X[A], m)
120+ let ac = valueOrElse(getInteger(ab), 0)
121+ let ad = if ((ac > h))
111122 then 0
112- else if (((Y + H) > h))
113- then (h - Y)
114- else H
115- let aa = (fraction(Z, ((2 * a) - fraction((Y + (Z / 2)), a, h)), b) + ((H - Z) / 100))
116- let ab = F(G, m, H)
117- let ac = makeString([V[B], ab, V[D], V[E]], ":")
118-[StringEntry(U, ac), IntegerEntry(X, (Y + H)), ScriptTransfer(K.caller, aa, c)]
123+ else if (((ac + L) > h))
124+ then (h - ac)
125+ else L
126+ let ae = (fraction(ad, ((2 * a) - fraction((ac + (ad / 2)), a, h)), b) + ((L - ad) / 100))
127+ let af = J(K, m, L)
128+ let ag = makeString([Z[B], af, Z[D], Z[E]], ":")
129+ let ah = F(invoke(e, "updateBackpack", [t, ag], nil))
130+ $Tuple2([IntegerEntry(ab, (ac + L)), ScriptTransfer(O.caller, ae, c)], ah)
119131 }
120132 }
121133 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000000
55
66 let b = 100000000
77
88 let c = base58'HezsdQuRDtzksAYUy97gfhKy7Z1NW2uXYSHA3bgqenNZ'
99
1010 let d = addressFromStringValue("3N5SpX21R3R75Qo4eb3MwFFvW7TUzyhvavv")
1111
1212 let e = addressFromStringValue("3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm")
1313
1414 let f = "Africa_F_Africa"
1515
1616 let g = 6
1717
1818 let h = 10000000000
1919
2020 let i = ["Oil", "Ore", "Wood", "Sand", "Clay", "Organic"]
2121
2222 let j = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
2323
2424 func k (l,m) = ((("factoryWhByContinentAndRes_" + l) + "_") + toString(m))
2525
2626
2727 func n (o) = ("nftOwner_" + o)
2828
2929
3030 func p (o) = ("stakedTime_" + o)
3131
3232
3333 func q (r) = ("stakedDuckByOwner_" + r)
3434
3535
3636 func s (t) = ("backPack_" + t)
3737
3838
3939 func u (t) = ("duckLocation_" + t)
4040
4141
4242 let v = 0
4343
4444 let w = 1
4545
4646 let x = 2
4747
4848 let y = 0
4949
5050 let z = 1
5151
5252 let A = 2
5353
5454 let B = 0
5555
5656 let C = 1
5757
5858 let D = 2
5959
6060 let E = 3
6161
62-func F (G,m,H) = {
63- func I (J,K) = (J :+ (if ((K == m))
64- then toString((parseIntValue(G[K]) - H))
65- else G[K]))
66-
67- let L = {
68- let M = [0, 1, 2, 3, 4, 5]
69- let N = size(M)
70- let O = nil
71- func P (Q,R) = if ((R >= N))
72- then Q
73- else I(Q, M[R])
74-
75- func S (Q,R) = if ((R >= N))
76- then Q
77- else throw("List size exceeds 6")
78-
79- S(P(P(P(P(P(P(O, 0), 1), 2), 3), 4), 5), 6)
80- }
81- makeString(L, "_")
62+func F (G) = {
63+ let H = G
64+ if ($isInstanceOf(H, "String"))
65+ then {
66+ let I = H
67+ I
68+ }
69+ else throw("fail to cast into String")
8270 }
8371
8472
85-@Callable(K)
86-func sellResource (m,H) = if (if ((0 > m))
73+func J (K,m,L) = {
74+ func M (N,O) = (N :+ (if ((O == m))
75+ then toString((parseIntValue(K[O]) - L))
76+ else K[O]))
77+
78+ let P = {
79+ let Q = [0, 1, 2, 3, 4, 5]
80+ let R = size(Q)
81+ let S = nil
82+ func T (U,V) = if ((V >= R))
83+ then U
84+ else M(U, Q[V])
85+
86+ func W (U,V) = if ((V >= R))
87+ then U
88+ else throw("List size exceeds 6")
89+
90+ W(T(T(T(T(T(T(S, 0), 1), 2), 3), 4), 5), 6)
91+ }
92+ makeString(P, "_")
93+ }
94+
95+
96+@Callable(O)
97+func sellResource (m,L) = if (if ((0 > m))
8798 then true
8899 else (m >= g))
89100 then throw(("Unknown resource: " + toString(m)))
90- else if ((0 >= H))
91- then throw(("Amount should be positive! " + toString(H)))
101+ else if ((0 >= L))
102+ then throw(("Amount should be positive! " + toString(L)))
92103 else {
93- let t = valueOrErrorMessage(getString(e, q(toString(K.caller))), "You don't have a duck staked")
94- if ((size(K.payments) != 0))
104+ let t = valueOrErrorMessage(getString(e, q(toString(O.caller))), "You don't have a duck staked")
105+ if ((size(O.payments) != 0))
95106 then throw("sellResources doesn't require any payments")
96107 else {
97- let T = split(valueOrElse(getString(e, u(t)), f), "_")
98- if ((T[z] != "F"))
99- then throw(("Duck location type should be Factory, but is " + T[z]))
108+ let X = split(valueOrElse(getString(e, u(t)), f), "_")
109+ if ((X[z] != "F"))
110+ then throw(("Duck location type should be Factory, but is " + X[z]))
100111 else {
101- let U = s(t)
102- let V = split(valueOrElse(getString(e, U), "0:0_0_0_0_0_0::"), ":")
103- let G = split(V[C], "_")
104- let W = parseIntValue(G[m])
105- if ((H > W))
106- then throw(((((("You have " + toString(W)) + " of ") + i[m]) + " in backpack, but tried to sell ") + toString(H)))
112+ let Y = s(t)
113+ let Z = split(valueOrElse(getString(e, Y), "0:0_0_0_0_0_0::"), ":")
114+ let K = split(Z[C], "_")
115+ let aa = parseIntValue(K[m])
116+ if ((L > aa))
117+ then throw(((((("You have " + toString(aa)) + " of ") + i[m]) + " in backpack, but tried to sell ") + toString(L)))
107118 else {
108- let X = k(T[A], m)
109- let Y = valueOrElse(getInteger(X), 0)
110- let Z = if ((Y > h))
119+ let ab = k(X[A], m)
120+ let ac = valueOrElse(getInteger(ab), 0)
121+ let ad = if ((ac > h))
111122 then 0
112- else if (((Y + H) > h))
113- then (h - Y)
114- else H
115- let aa = (fraction(Z, ((2 * a) - fraction((Y + (Z / 2)), a, h)), b) + ((H - Z) / 100))
116- let ab = F(G, m, H)
117- let ac = makeString([V[B], ab, V[D], V[E]], ":")
118-[StringEntry(U, ac), IntegerEntry(X, (Y + H)), ScriptTransfer(K.caller, aa, c)]
123+ else if (((ac + L) > h))
124+ then (h - ac)
125+ else L
126+ let ae = (fraction(ad, ((2 * a) - fraction((ac + (ad / 2)), a, h)), b) + ((L - ad) / 100))
127+ let af = J(K, m, L)
128+ let ag = makeString([Z[B], af, Z[D], Z[E]], ":")
129+ let ah = F(invoke(e, "updateBackpack", [t, ag], nil))
130+ $Tuple2([IntegerEntry(ab, (ac + L)), ScriptTransfer(O.caller, ae, c)], ah)
119131 }
120132 }
121133 }
122134 }
123135
124136

github/deemru/w8io/873ac7e 
50.80 ms