tx · GiHAFUyWrVDoyWvjGMZvdPJNZxbBbEQtfsZmHw7XgF3s

3Mx1vNMiWzJ2NgY1t8bqsj8vvpxjaTLJWyo:  -0.01400000 Waves

2021.11.15 10:04 [1791818] smart account 3Mx1vNMiWzJ2NgY1t8bqsj8vvpxjaTLJWyo > SELF 0.00000000 Waves

{ "type": 13, "id": "GiHAFUyWrVDoyWvjGMZvdPJNZxbBbEQtfsZmHw7XgF3s", "fee": 1400000, "feeAssetId": null, "timestamp": 1636959845696, "version": 2, "chainId": 84, "sender": "3Mx1vNMiWzJ2NgY1t8bqsj8vvpxjaTLJWyo", "senderPublicKey": "5fUyPtPgB9o1mWXPYifKATuZc8PG2ErT5CGABbC7pu3", "proofs": [ "2LkKp3pwCXG2XSsRZHsB3K8K7VWd4q8NoNK1RV8wfZH2Pg8cLC9Mg1XDFoEe4YBGHhc3jKKDtt843ZgUFpM9BVWx" ], "script": "base64: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", "height": 1791818, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 87QmdqLcghUMUbzexuh2NM794s2nrN2eN6WKNCCtw12i Next: 5ySNNs18VUCV1gq1zmdTwCehGED83PrY5CxEaDdwgoBT Diff:
OldNewDifferences
5555 }
5656
5757
58-func n (o,p,q,r) = {
59- let s = value(blockInfoByHeight((q - 1)))
60- let t = sha256_16Kb((p + value(s.vrf)))
61- (toInt(t, r) % o)
58+func n (d) = if ((d != "0"))
59+ then "unique"
60+ else "rare"
61+
62+
63+func o (d) = (("https://wavespunks.com/punks/" + d) + ".png")
64+
65+
66+func p (q,r,s,t) = {
67+ let u = value(blockInfoByHeight((s - 1)))
68+ let v = sha256_16Kb((r + value(u.vrf)))
69+ (toInt(v, t) % q)
6270 }
6371
6472
65-func u (v) = if ((v == 0))
73+func w (x) = if ((x == 0))
6674 then b
67- else (((v / 100) + 1) * b)
75+ else (((x / 100) + 1) * b)
6876
6977
70-@Callable(w)
71-func mint (x) = {
72- let v = e("punks_supply")
73- let y = j("available_punks")
74- let z = u(v)
75- let A = value(w.payments[0])
76- let B = {
77- let h = A.assetId
78+@Callable(y)
79+func mint (z) = {
80+ let x = e("punks_supply")
81+ let A = j("available_punks")
82+ let B = w(x)
83+ let C = value(y.payments[0])
84+ let D = {
85+ let h = C.assetId
7886 if ($isInstanceOf(h, "ByteVector"))
7987 then {
80- let C = h
88+ let E = h
8189 true
8290 }
8391 else if ($isInstanceOf(h, "Unit"))
8492 then {
85- let D = h
93+ let F = h
8694 false
8795 }
8896 else throw("Match error")
8997 }
90- if ((v == a))
98+ if ((x == a))
9199 then throw("All punks are minted")
92- else if ((y == ""))
100+ else if ((A == ""))
93101 then throw("No punks available")
94- else if (B)
102+ else if (D)
95103 then throw("Payment must be in Waves tokens only")
96- else if ((z > A.amount))
104+ else if ((B > C.amount))
97105 then throw("Insufficient funds")
98106 else {
99- let E = split(y, ",")
100- let F = n((a - v), w.transactionId, height, 0)
101- let G = E[F]
102- let H = ("WavesPunk #" + G)
103- let I = Issue(H, H, 1, 0, false, unit, height)
104- let J = calculateAssetId(I)
105- let K = k(x)
106-[IntegerEntry("punks_supply", (v + 1)), StringEntry("available_punks", makeString(removeByIndex(E, F), ",")), I, StringEntry(c(G), toBase58String(J)), StringEntry(toBase58String(J), c(G)), ScriptTransfer(w.caller, 1, J), ScriptTransfer(K, (A.amount / 10), unit)]
107+ let G = split(A, ",")
108+ let H = p((a - x), y.transactionId, height, 0)
109+ let I = G[H]
110+ let J = ("WavesPunk #" + I)
111+ let K = (((((("{\"id\":" + I) + ", \"type\":") + n(I)) + ", \"url\":") + o(I)) + "}")
112+ let L = Issue(J, K, 1, 0, false, unit, height)
113+ let M = calculateAssetId(L)
114+ let N = k(z)
115+[IntegerEntry("punks_supply", (x + 1)), StringEntry("available_punks", makeString(removeByIndex(G, H), ",")), L, StringEntry(c(I), toBase58String(M)), StringEntry(toBase58String(M), c(I)), ScriptTransfer(y.caller, 1, M), ScriptTransfer(N, (C.amount / 10), unit)]
107116 }
108117 }
109118
110119
111-@Verifier(L)
112-func M () = sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey)
120+@Verifier(O)
121+func P () = sigVerify(O.bodyBytes, O.proofs[0], O.senderPublicKey)
113122
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000
55
66 let b = 100000000
77
88 func c (d) = ("punk_" + d)
99
1010
1111 func e (f) = {
1212 let g = {
1313 let h = getInteger(this, f)
1414 if ($isInstanceOf(h, "Int"))
1515 then {
1616 let i = h
1717 i
1818 }
1919 else 0
2020 }
2121 g
2222 }
2323
2424
2525 func j (f) = {
2626 let g = {
2727 let h = getString(this, f)
2828 if ($isInstanceOf(h, "String"))
2929 then {
3030 let i = h
3131 i
3232 }
3333 else ""
3434 }
3535 g
3636 }
3737
3838
3939 func k (l) = {
4040 let g = {
4141 let h = addressFromString(l)
4242 if ($isInstanceOf(h, "Address"))
4343 then {
4444 let m = h
4545 m
4646 }
4747 else if ($isInstanceOf(h, "Unit"))
4848 then {
4949 let m = h
5050 Address(base58'3Msrw9Kxa6RgHYQ63sSib9uESmaBU9gH6Gy')
5151 }
5252 else throw("Match error")
5353 }
5454 g
5555 }
5656
5757
58-func n (o,p,q,r) = {
59- let s = value(blockInfoByHeight((q - 1)))
60- let t = sha256_16Kb((p + value(s.vrf)))
61- (toInt(t, r) % o)
58+func n (d) = if ((d != "0"))
59+ then "unique"
60+ else "rare"
61+
62+
63+func o (d) = (("https://wavespunks.com/punks/" + d) + ".png")
64+
65+
66+func p (q,r,s,t) = {
67+ let u = value(blockInfoByHeight((s - 1)))
68+ let v = sha256_16Kb((r + value(u.vrf)))
69+ (toInt(v, t) % q)
6270 }
6371
6472
65-func u (v) = if ((v == 0))
73+func w (x) = if ((x == 0))
6674 then b
67- else (((v / 100) + 1) * b)
75+ else (((x / 100) + 1) * b)
6876
6977
70-@Callable(w)
71-func mint (x) = {
72- let v = e("punks_supply")
73- let y = j("available_punks")
74- let z = u(v)
75- let A = value(w.payments[0])
76- let B = {
77- let h = A.assetId
78+@Callable(y)
79+func mint (z) = {
80+ let x = e("punks_supply")
81+ let A = j("available_punks")
82+ let B = w(x)
83+ let C = value(y.payments[0])
84+ let D = {
85+ let h = C.assetId
7886 if ($isInstanceOf(h, "ByteVector"))
7987 then {
80- let C = h
88+ let E = h
8189 true
8290 }
8391 else if ($isInstanceOf(h, "Unit"))
8492 then {
85- let D = h
93+ let F = h
8694 false
8795 }
8896 else throw("Match error")
8997 }
90- if ((v == a))
98+ if ((x == a))
9199 then throw("All punks are minted")
92- else if ((y == ""))
100+ else if ((A == ""))
93101 then throw("No punks available")
94- else if (B)
102+ else if (D)
95103 then throw("Payment must be in Waves tokens only")
96- else if ((z > A.amount))
104+ else if ((B > C.amount))
97105 then throw("Insufficient funds")
98106 else {
99- let E = split(y, ",")
100- let F = n((a - v), w.transactionId, height, 0)
101- let G = E[F]
102- let H = ("WavesPunk #" + G)
103- let I = Issue(H, H, 1, 0, false, unit, height)
104- let J = calculateAssetId(I)
105- let K = k(x)
106-[IntegerEntry("punks_supply", (v + 1)), StringEntry("available_punks", makeString(removeByIndex(E, F), ",")), I, StringEntry(c(G), toBase58String(J)), StringEntry(toBase58String(J), c(G)), ScriptTransfer(w.caller, 1, J), ScriptTransfer(K, (A.amount / 10), unit)]
107+ let G = split(A, ",")
108+ let H = p((a - x), y.transactionId, height, 0)
109+ let I = G[H]
110+ let J = ("WavesPunk #" + I)
111+ let K = (((((("{\"id\":" + I) + ", \"type\":") + n(I)) + ", \"url\":") + o(I)) + "}")
112+ let L = Issue(J, K, 1, 0, false, unit, height)
113+ let M = calculateAssetId(L)
114+ let N = k(z)
115+[IntegerEntry("punks_supply", (x + 1)), StringEntry("available_punks", makeString(removeByIndex(G, H), ",")), L, StringEntry(c(I), toBase58String(M)), StringEntry(toBase58String(M), c(I)), ScriptTransfer(y.caller, 1, M), ScriptTransfer(N, (C.amount / 10), unit)]
107116 }
108117 }
109118
110119
111-@Verifier(L)
112-func M () = sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey)
120+@Verifier(O)
121+func P () = sigVerify(O.bodyBytes, O.proofs[0], O.senderPublicKey)
113122

github/deemru/w8io/873ac7e 
31.71 ms