tx · GNL3P3fGJGpbHXPEoGP9TzaN4Kfta2j4BnzedP4vYyXT

3Mxf7HiQX9oiMgrhdA4Umrcuo1Sx6FeGCm5:  -0.01200000 Waves

2022.11.14 21:42 [2317162] smart account 3Mxf7HiQX9oiMgrhdA4Umrcuo1Sx6FeGCm5 > SELF 0.00000000 Waves

{ "type": 13, "id": "GNL3P3fGJGpbHXPEoGP9TzaN4Kfta2j4BnzedP4vYyXT", "fee": 1200000, "feeAssetId": null, "timestamp": 1668451390954, "version": 2, "chainId": 84, "sender": "3Mxf7HiQX9oiMgrhdA4Umrcuo1Sx6FeGCm5", "senderPublicKey": "8a6kuisyWCBvikxskrBsnaQtWMLUk5YuoijVJrKKc6gD", "proofs": [ "aopS582n9jKLR2D4kBmT2UjpFcjdFrKsEgRLrcHj62HijGcg7na1rYW5NnPNUpzseEMzr7acDWBAJWLc7KBgvK4" ], "script": "base64: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", "height": 2317162, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func keyManagerPublicKey () = getString("managerPublicKey")
5+
6+
7+func managerPublicKeyOrUnit () = match keyManagerPublicKey() {
8+ case s: String =>
9+ fromBase58String(s)
10+ case _: Unit =>
11+ unit
12+ case _ =>
13+ throw("Match error")
14+}
15+
16+
17+func mustManager (i) = {
18+ let pd = throw("permission denied")
19+ match managerPublicKeyOrUnit() {
20+ case pk: ByteVector =>
21+ if ((i.callerPublicKey == pk))
22+ then true
23+ else pd
24+ case _: Unit =>
25+ if ((i.caller == this))
26+ then true
27+ else pd
28+ case _ =>
29+ throw("Match error")
30+ }
31+ }
32+
33+
34+func mustNotInited () = match getBoolean("inited") {
35+ case inited: Boolean =>
36+ if ((inited == false))
37+ then true
38+ else throw("Already inited")
39+ case _: Unit =>
40+ false
41+ case _ =>
42+ throw("Match error")
43+}
44+
45+
46+@Callable(i)
47+func init (mainAddress) = {
48+ let checks = [mustManager(i), mustNotInited()]
49+ if ((checks == checks))
50+ then [BooleanEntry("inited", true), StringEntry("mainAddress", mainAddress)]
51+ else throw("Strict value is not equal to itself.")
52+ }
53+
54+
55+
56+@Callable(i)
57+func withdraw () = {
58+ let mainAddress = Address(fromBase58String(getStringValue("mainAddress")))
59+ let regularBalance = wavesBalance(this).regular
60+ if ((i.caller != mainAddress))
61+ then throw("Only main contract can invoke this method")
62+ else [ScriptTransfer(mainAddress, regularBalance, unit)]
63+ }
64+
65+
66+@Verifier(tx)
67+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
68+

github/deemru/w8io/3ef1775 
19.81 ms