tx · FnRCDEKkw1zUADmtHcZfBYZukf9bfU4AnkfoEJ3mDZ41

3Mvs7XMkY63gALNeNQVZeRqMfsHeRoH5T2A:  -0.01000000 Waves

2022.11.06 17:42 [2305397] smart account 3Mvs7XMkY63gALNeNQVZeRqMfsHeRoH5T2A > SELF 0.00000000 Waves

{ "type": 13, "id": "FnRCDEKkw1zUADmtHcZfBYZukf9bfU4AnkfoEJ3mDZ41", "fee": 1000000, "feeAssetId": null, "timestamp": 1667745716973, "version": 2, "chainId": 84, "sender": "3Mvs7XMkY63gALNeNQVZeRqMfsHeRoH5T2A", "senderPublicKey": "8vCq7dAQRvbjoJj8ksZ7y1WEwagvTC9B3nogqNQNbb5h", "proofs": [ "3RxvwXpv9tymhh9esUDrEDmM69sqJnH124FyMpzPbpDkYV2p9XGZXnRhiGVvFSimnmsuXocmwnjbyFVggehm56av" ], "script": "base64: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", "height": 2305397, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: FhL2fhe6VqnNTKgKFeAHB5jocAxDoUrNLS3sTgvbMewN 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 (amount) = {
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 if ((amount > regularBalance))
63+ then throw("Not enough Waves to withdraw")
64+ else [ScriptTransfer(mainAddress, amount, unit)]
65+ }
66+
67+
68+@Verifier(tx)
69+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
70+

github/deemru/w8io/169f3d6 
21.64 ms