tx · 6muJ1CE6S5TxZYjHmqg5jCkxbYoMn6msh2fCaDQu7suT

3Mzj8MyE3E3G55SLVE6Dgd6ew2uERLxiE4U:  -0.01300000 Waves

2023.05.02 09:53 [2559809] smart account 3Mzj8MyE3E3G55SLVE6Dgd6ew2uERLxiE4U > SELF 0.00000000 Waves

{ "type": 13, "id": "6muJ1CE6S5TxZYjHmqg5jCkxbYoMn6msh2fCaDQu7suT", "fee": 1300000, "feeAssetId": null, "timestamp": 1683010433099, "version": 2, "chainId": 84, "sender": "3Mzj8MyE3E3G55SLVE6Dgd6ew2uERLxiE4U", "senderPublicKey": "8E1ZoUTJyyA7ybXtP2NxUZKdAwvR1ruiQUxZD2bYJJMF", "proofs": [ "c2QnaR9abF6ZiQHrs42JSJgbareXrwYBdgCLLLa7iaJMgHk4e7QPdVywSjCsKNv9cCMZH7kSp13P4mDXiDAkvxG" ], "script": "base64:AAIFAAAAAAAAALYIAiITa2V5TWFuYWdlclB1YmxpY0tleSIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyIXZ2V0TWFuYWdlckFkZHJlc3NPckZhaWwiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiE21hbmFnZXJWYXVsdEFkZHJlc3MiByRtYXRjaDAiAXMiC211c3RNYW5hZ2VyIgFpIgJwZCICcGsiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleQAAAAUBAAAAAWEAAAAAAgAAABQlc19fbWFuYWdlclB1YmxpY0tleQEAAAABYgAAAAACAAAAFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQAAAAFjAAAAAAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQkBAAAAAWIAAAAAAQAAAAFkAAAAAAQAAAABZQkBAAAAAWMAAAAABAAAAAFmCQAEHQAAAAIFAAAAAWUJAQAAAAFhAAAAAAMJAAABAAAAAgUAAAABZgIAAAAGU3RyaW5nBAAAAAFnBQAAAAFmCQACWQAAAAEFAAAAAWcDCQAAAQAAAAIFAAAAAWYCAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAAWgAAAABAAAAAWkEAAAAAWoJAAACAAAAAQIAAAARUGVybWlzc2lvbiBkZW5pZWQEAAAAAWYJAQAAAAFkAAAAAAMJAAABAAAAAgUAAAABZgIAAAAKQnl0ZVZlY3RvcgQAAAABawUAAAABZgMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAAFrBgUAAAABagMJAAABAAAAAgUAAAABZgIAAAAEVW5pdAMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgUAAAABagkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgAAAAAAAAABAAAAAWwBAAAAAW0AAAAABAAAAAFuBAAAAAFmCQEAAAABZAAAAAADCQAAAQAAAAIFAAAAAWYCAAAACkJ5dGVWZWN0b3IEAAAAAWsFAAAAAWYFAAAAAWsDCQAAAQAAAAIFAAAAAWYCAAAABFVuaXQIBQAAAAFsAAAAD3NlbmRlclB1YmxpY0tleQkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgkAAfQAAAADCAUAAAABbAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAWwAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAFubojHSQ==", "height": 2559809, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9pMYz7CQRLwS2gJzuWaDjREjmhPkzEZBdY14jSGWnA9M Next: none Diff:
OldNewDifferences
44 func keyManagerPublicKey () = "%s__managerPublicKey"
55
66
7-func keyPendingManagerPublicKey () = "%s__pendingManagerPublicKey"
7+func keyManagerVaultAddress () = "%s__managerVaultAddress"
88
99
10-func managerPublicKeyOrUnit () = match getString(keyManagerPublicKey()) {
11- case s: String =>
12- fromBase58String(s)
13- case _: Unit =>
14- unit
15- case _ =>
16- throw("Match error")
17-}
10+func getManagerAddressOrFail () = addressFromStringValue(getStringValue(keyManagerVaultAddress()))
1811
1912
20-func pendingManagerPublicKeyOrUnit () = match getString(keyPendingManagerPublicKey()) {
21- case s: String =>
22- fromBase58String(s)
23- case _: Unit =>
24- unit
25- case _ =>
26- throw("Match error")
27-}
13+func managerPublicKeyOrUnit () = {
14+ let managerVaultAddress = getManagerAddressOrFail()
15+ match getString(managerVaultAddress, keyManagerPublicKey()) {
16+ case s: String =>
17+ fromBase58String(s)
18+ case _: Unit =>
19+ unit
20+ case _ =>
21+ throw("Match error")
22+ }
23+ }
2824
2925
3026 func mustManager (i) = {
4440 }
4541
4642
47-@Callable(i)
48-func setManager (pendingManagerPublicKey) = {
49- let checkCaller = mustManager(i)
50- if ((checkCaller == checkCaller))
51- then {
52- let checkManagerPublicKey = fromBase58String(pendingManagerPublicKey)
53- if ((checkManagerPublicKey == checkManagerPublicKey))
54- then [StringEntry(keyPendingManagerPublicKey(), pendingManagerPublicKey)]
55- else throw("Strict value is not equal to itself.")
56- }
57- else throw("Strict value is not equal to itself.")
58- }
59-
60-
61-
62-@Callable(i)
63-func confirmManager () = {
64- let pm = pendingManagerPublicKeyOrUnit()
65- let hasPM = if (isDefined(pm))
66- then true
67- else throw("No pending manager")
68- if ((hasPM == hasPM))
69- then {
70- let checkPM = if ((i.callerPublicKey == value(pm)))
71- then true
72- else throw("You are not pending manager")
73- if ((checkPM == checkPM))
74- then [StringEntry(keyManagerPublicKey(), toBase58String(value(pm))), DeleteEntry(keyPendingManagerPublicKey())]
75- else throw("Strict value is not equal to itself.")
76- }
77- else throw("Strict value is not equal to itself.")
78- }
79-
8043
8144 @Verifier(tx)
8245 func verify () = {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func keyManagerPublicKey () = "%s__managerPublicKey"
55
66
7-func keyPendingManagerPublicKey () = "%s__pendingManagerPublicKey"
7+func keyManagerVaultAddress () = "%s__managerVaultAddress"
88
99
10-func managerPublicKeyOrUnit () = match getString(keyManagerPublicKey()) {
11- case s: String =>
12- fromBase58String(s)
13- case _: Unit =>
14- unit
15- case _ =>
16- throw("Match error")
17-}
10+func getManagerAddressOrFail () = addressFromStringValue(getStringValue(keyManagerVaultAddress()))
1811
1912
20-func pendingManagerPublicKeyOrUnit () = match getString(keyPendingManagerPublicKey()) {
21- case s: String =>
22- fromBase58String(s)
23- case _: Unit =>
24- unit
25- case _ =>
26- throw("Match error")
27-}
13+func managerPublicKeyOrUnit () = {
14+ let managerVaultAddress = getManagerAddressOrFail()
15+ match getString(managerVaultAddress, keyManagerPublicKey()) {
16+ case s: String =>
17+ fromBase58String(s)
18+ case _: Unit =>
19+ unit
20+ case _ =>
21+ throw("Match error")
22+ }
23+ }
2824
2925
3026 func mustManager (i) = {
3127 let pd = throw("Permission denied")
3228 match managerPublicKeyOrUnit() {
3329 case pk: ByteVector =>
3430 if ((i.callerPublicKey == pk))
3531 then true
3632 else pd
3733 case _: Unit =>
3834 if ((i.caller == this))
3935 then true
4036 else pd
4137 case _ =>
4238 throw("Match error")
4339 }
4440 }
4541
4642
47-@Callable(i)
48-func setManager (pendingManagerPublicKey) = {
49- let checkCaller = mustManager(i)
50- if ((checkCaller == checkCaller))
51- then {
52- let checkManagerPublicKey = fromBase58String(pendingManagerPublicKey)
53- if ((checkManagerPublicKey == checkManagerPublicKey))
54- then [StringEntry(keyPendingManagerPublicKey(), pendingManagerPublicKey)]
55- else throw("Strict value is not equal to itself.")
56- }
57- else throw("Strict value is not equal to itself.")
58- }
59-
60-
61-
62-@Callable(i)
63-func confirmManager () = {
64- let pm = pendingManagerPublicKeyOrUnit()
65- let hasPM = if (isDefined(pm))
66- then true
67- else throw("No pending manager")
68- if ((hasPM == hasPM))
69- then {
70- let checkPM = if ((i.callerPublicKey == value(pm)))
71- then true
72- else throw("You are not pending manager")
73- if ((checkPM == checkPM))
74- then [StringEntry(keyManagerPublicKey(), toBase58String(value(pm))), DeleteEntry(keyPendingManagerPublicKey())]
75- else throw("Strict value is not equal to itself.")
76- }
77- else throw("Strict value is not equal to itself.")
78- }
79-
8043
8144 @Verifier(tx)
8245 func verify () = {
8346 let targetPublicKey = match managerPublicKeyOrUnit() {
8447 case pk: ByteVector =>
8548 pk
8649 case _: Unit =>
8750 tx.senderPublicKey
8851 case _ =>
8952 throw("Match error")
9053 }
9154 sigVerify(tx.bodyBytes, tx.proofs[0], targetPublicKey)
9255 }
9356

github/deemru/w8io/873ac7e 
22.13 ms