tx · 9w66HneWdEhJBYUc3pmgP4yfjuejFtCfpTr9a3TLJvkZ

3N3HtdnBkqSSc16DaydiwtrMBUv3DfqKjSW:  -0.01400000 Waves

2021.11.22 13:51 [1802131] smart account 3N3HtdnBkqSSc16DaydiwtrMBUv3DfqKjSW > SELF 0.00000000 Waves

{ "type": 13, "id": "9w66HneWdEhJBYUc3pmgP4yfjuejFtCfpTr9a3TLJvkZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1637578296648, "version": 2, "chainId": 84, "sender": "3N3HtdnBkqSSc16DaydiwtrMBUv3DfqKjSW", "senderPublicKey": "Aw1UftaEn1LLmCdG6VwWAuVtaSpcmPw18uZ4x2mvd9Wr", "proofs": [ "2xmRSDY9seqvmRzuQg6LF7FUPiH6sBT29uuM8dmBhtA2NZn7uZL6ooGHy8PPmvZ2ZhiykXNgtUuYgZkmdgdEETu3", "2ZyJai3wEEfscGTZs7bWTHhbckzBeggGb5H6uMnCxDnwgCXMBw8TiXy5iLgG6imf9thShL3oEpKkggr4jfUAXdnd" ], "script": "base64:AAIFAAAAAAAAAA4IAhIECgIIARIECgIRGAAAAA0AAAAAEGtleUFjaGlldmVtZW50SWQCAAAAA2lkXwAAAAAGb3JhY2xlCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFU6UWqHpAvOq7xug7mLpqSXxqYhOHzYrMIAAAAAA9rZXlBZG1pblB1YktleTECAAAAC2FkbWluX3B1Yl8xAAAAAA9rZXlBZG1pblB1YktleTICAAAAC2FkbWluX3B1Yl8yAAAAAA9rZXlBZG1pblB1YktleTMCAAAAC2FkbWluX3B1Yl8zAQAAAAtnZXRBZG1pblB1YgAAAAEAAAALa2V5QWRtaW5QdWIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAGb3JhY2xlBQAAAAtrZXlBZG1pblB1YgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAZzdHJpbmcFAAAAByRtYXRjaDAJAAJZAAAAAQUAAAAGc3RyaW5nBAAAAAdub3RoaW5nBQAAAAckbWF0Y2gwCQAAAgAAAAECAAAAGUFkbWluIHB1YmxpYyBrZXkgaXMgZW1wdHkAAAAADGFkbWluUHViS2V5MQkBAAAAC2dldEFkbWluUHViAAAAAQUAAAAPa2V5QWRtaW5QdWJLZXkxAAAAAAxhZG1pblB1YktleTIJAQAAAAtnZXRBZG1pblB1YgAAAAEFAAAAD2tleUFkbWluUHViS2V5MgAAAAAMYWRtaW5QdWJLZXkzCQEAAAALZ2V0QWRtaW5QdWIAAAABBQAAAA9rZXlBZG1pblB1YktleTMAAAAAEmFkbWluUHViS2V5U3Rha2luZwEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAAFmtleUFjaGlldmVtZW50c1dyaXRlcnMCAAAAFGFjaGlldmVtZW50c193cml0ZXJzAAAAABNhY2hpZXZlbWVudHNXcml0ZXJzCQAEtQAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAGb3JhY2xlBQAAABZrZXlBY2hpZXZlbWVudHNXcml0ZXJzAgAAAAACAAAAASwBAAAAB3ppcE5leHQAAAACAAAAA2FjYwAAAAxsaXN0MkVsZW1lbnQEAAAACSR0MDkyMjk1MAUAAAADYWNj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", "height": 1802131, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9Cc9HGmzP6dFUoN385r1pR34P1f7dtT2bQ5jhmTCJwdM Next: EVLfLcJMdRPW2dhVS3xF27Dej8Zqvym9N37pUcU6iRiw Diff:
OldNewDifferences
4949 @Callable(v)
5050 func add (x,y) = if (!(containsElement(p, toString(this))))
5151 then throw("Only achievment writer can call this function")
52- else {
53- let z = toString(v.originCaller)
54- let A = valueOrElse(getInteger(this, ((z + "_") + x)), 0)
52+ else if (!(isDefined(getInteger(this, (a + x)))))
53+ then throw("Unknown achievement id")
54+ else {
55+ let z = toString(v.originCaller)
56+ let A = valueOrElse(getInteger(this, ((z + "_") + x)), 0)
5557 [IntegerEntry(((z + "_") + x), (A + y))]
56- }
58+ }
5759
5860
5961
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "id_"
55
66 let b = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
77
88 let c = "admin_pub_1"
99
1010 let d = "admin_pub_2"
1111
1212 let e = "admin_pub_3"
1313
1414 func f (g) = {
1515 let h = getString(b, g)
1616 if ($isInstanceOf(h, "String"))
1717 then {
1818 let i = h
1919 fromBase58String(i)
2020 }
2121 else {
2222 let j = h
2323 throw("Admin public key is empty")
2424 }
2525 }
2626
2727
2828 let k = f(c)
2929
3030 let l = f(d)
3131
3232 let m = f(e)
3333
3434 let n = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
3535
3636 let o = "achievements_writers"
3737
3838 let p = split(valueOrElse(getString(b, o), ""), ",")
3939
4040 func q (r,s) = {
4141 let t = r
4242 let u = t._1
4343 let v = t._2
4444 let w = t._3
4545 $Tuple3(u, (v + 1), (w :+ StringEntry((a + toString(u[v])), s)))
4646 }
4747
4848
4949 @Callable(v)
5050 func add (x,y) = if (!(containsElement(p, toString(this))))
5151 then throw("Only achievment writer can call this function")
52- else {
53- let z = toString(v.originCaller)
54- let A = valueOrElse(getInteger(this, ((z + "_") + x)), 0)
52+ else if (!(isDefined(getInteger(this, (a + x)))))
53+ then throw("Unknown achievement id")
54+ else {
55+ let z = toString(v.originCaller)
56+ let A = valueOrElse(getInteger(this, ((z + "_") + x)), 0)
5557 [IntegerEntry(((z + "_") + x), (A + y))]
56- }
58+ }
5759
5860
5961
6062 @Callable(v)
6163 func addAchievements (B,C) = if (!(containsElement([k, l, m], v.callerPublicKey)))
6264 then throw("Only admin can call this function")
6365 else {
6466 let D = {
6567 let E = C
6668 let F = size(E)
6769 let G = $Tuple3(B, 0, nil)
6870 func H (I,J) = if ((J >= F))
6971 then I
7072 else q(I, E[J])
7173
7274 func K (I,J) = if ((J >= F))
7375 then I
7476 else throw("List size exceeds 20")
7577
7678 K(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
7779 }
7880 D._3
7981 }
8082
8183
8284 @Verifier(L)
8385 func M () = {
8486 let N = {
8587 let O = if (sigVerify(L.bodyBytes, L.proofs[0], k))
8688 then 1
8789 else 0
8890 let P = if (sigVerify(L.bodyBytes, L.proofs[1], l))
8991 then 1
9092 else 0
9193 let Q = if (sigVerify(L.bodyBytes, L.proofs[2], m))
9294 then 1
9395 else 0
9496 (((O + P) + Q) >= 2)
9597 }
9698 let R = if (if (if (sigVerify(L.bodyBytes, L.proofs[0], k))
9799 then true
98100 else sigVerify(L.bodyBytes, L.proofs[0], l))
99101 then true
100102 else sigVerify(L.bodyBytes, L.proofs[0], m))
101103 then true
102104 else sigVerify(L.bodyBytes, L.proofs[0], n)
103105 let h = L
104106 N
105107 }
106108

github/deemru/w8io/873ac7e 
55.84 ms