tx · C8dpn7oViiV5H4tdNKJTodjkHqV6P9vnRPzDnLC8yPso

3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT:  -0.04000000 Waves

2021.11.08 17:54 [1782184] smart account 3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT > SELF 0.00000000 Waves

{ "type": 13, "id": "C8dpn7oViiV5H4tdNKJTodjkHqV6P9vnRPzDnLC8yPso", "fee": 4000000, "feeAssetId": null, "timestamp": 1636383378516, "version": 2, "chainId": 84, "sender": "3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT", "senderPublicKey": "4cDpBfmEAxfhEbF9jxuT8xqJa14SqZgPfZ9Tov6ka4Qj", "proofs": [ "2NdW7yxXxo4XJAGqNoaRHjkkxipdw7WAsWU6J2bmuUTk54wDctXViHfGzDAT1jm9GWyyY9GoBNNZU2k6B5wpR6Qr" ], "script": "base64:AAIFAAAAAAAAAA8IAhIAEgMKAQESBAoCAQgAAAADAAAAAAZPUkFDTEUCAAAAIzNNczN2RmtyVGFYdllOdzlWbmE4dmdUbUh6RWhXQ0JrQm1UAQAAABBnZXRPcmFjbGVBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABk9SQUNMRQEAAAATZ2V0U3RhdHVzRnJvbU9yYWNsZQAAAAEAAAAHYWRkcmVzcwkABB0AAAACCQEAAAAQZ2V0T3JhY2xlQWRkcmVzcwAAAAAJAAEsAAAAAgUAAAAHYWRkcmVzcwIAAAAHX3N0YXR1cwAAAAMAAAABaQEAAAAHZGVwb3NpdAAAAAAEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAABxBdHRhY2hlZCBwYXltZW50IGlzIHJlcXVpcmVkBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAFXdvcmtzIHdpdGggd2F2ZXMgb25seQMJAQAAAAIhPQAAAAIJAQAAABNnZXRTdGF0dXNGcm9tT3JhY2xlAAAAAQUAAAAKY3VycmVudEtleQIAAAAIdmVyaWZpZWQJAAACAAAAAQIAAAAJTm8gQWNjZXNzBAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZAAAAAIFAAAADWN1cnJlbnRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50CQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsBQAAAAR1bml0AAAAAWkBAAAACHdpdGhkcmF3AAAAAQAAAAZhbW91bnQEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANY3VycmVudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACW5ld0Ftb3VudAkAAGUAAAACBQAAAA1jdXJyZW50QW1vdW50BQAAAAZhbW91bnQDCQAAZwAAAAIAAAAAAAAAAAAFAAAABmFtb3VudAkAAAIAAAABAgAAAB1BbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMAMJAABmAAAAAgAAAAAAAAAAAAUAAAAJbmV3QW1vdW50CQAAAgAAAAECAAAAEk5vdCBlbm91Z2ggYmFsYW5jZQkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAApjdXJyZW50S2V5BQAAAAluZXdBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAABHVuaXQFAAAAA25pbAUAAAAEdW5pdAAAAAFpAQAAAAh0cmFuc2ZlcgAAAAIAAAAGYW1vdW50AAAACXJlY2lwaWVudAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZQAAAAIFAAAADWN1cnJlbnRBbW91bnQFAAAABmFtb3VudAMJAQAAAAIhPQAAAAIJAQAAABNnZXRTdGF0dXNGcm9tT3JhY2xlAAAAAQUAAAAKY3VycmVudEtleQIAAAAIdmVyaWZpZWQJAAACAAAAAQIAAAAJTm8gQWNjZXNzAwkAAGcAAAACAAAAAAAAAAAABQAAAAZhbW91bnQJAAACAAAAAQIAAAAdQW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIDADCQAAZgAAAAIAAAAAAAAAAAAFAAAACW5ld0Ftb3VudAkAAAIAAAABAgAAABJOb3QgZW5vdWdoIGJhbGFuY2UEAAAABnJlY0tleQkAAlgAAAABCAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAACXJlY2lwaWVudAAAAAVieXRlcwQAAAAJcmVjQW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAABnJlY0tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAACQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAGcmVjS2V5CQAAZAAAAAIFAAAACXJlY0Ftb3VudAUAAAAGYW1vdW50BQAAAANuaWwFAAAABHVuaXQAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAdzbWFydFBLAQAAACDsWlbKMpvNVl+3/9HN61w/pVH9GAT2Y/wRQAoYS9tCXQQAAAAIc2Vjb25kUEsBAAAAILGCNFyf+lKEmVSwpNRycGg4VrxBtJLUBsCqdobdGkBCBAAAAAVzbWFydAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAB3NtYXJ0UEsEAAAABnNlY29uZAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACHNlY29uZFBLBAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDADBQAAAAVzbWFydAYFAAAABnNlY29uZAfla43j", "height": 1782184, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7CRSpNdrVArCphbyvYoeoeY8ivKXeMksTozD6WJ2Efo9 Next: 3SkTQsZXYxXvXokrHp7VKWk8RuXwTE54FZ6xoEUjWgaT Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "3N8FWN9orV8D8px6xrYqTjWHHu2Qd3Jx4bV"
4+let a = "3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT"
55
6-let b = "3Mza5Ao6wJgpw1JG3jxRY1xigD44zgfhdK6"
7-
8-let c = "verified"
9-
10-let d = "blocked"
11-
12-func e (f) = (f + "_status")
6+func b () = Address(fromBase58String(a))
137
148
15-func g (f) = (f + "_admin")
9+func c (d) = getString(b(), (d + "_status"))
1610
1711
18-func h (i) = {
19- let j = i
20- if ($isInstanceOf(j, "String"))
21- then {
22- let k = j
23- if ((k == d))
24- then true
25- else (k == c)
26- }
27- else false
28- }
29-
30-
31-func l (f) = if ((f == a))
32- then true
33- else {
34- let j = getBoolean(this, g(f))
35- if ($isInstanceOf(j, "Boolean"))
36- then {
37- let k = j
38- k
12+@Callable(e)
13+func deposit () = {
14+ let f = if ((size(e.payments) == 1))
15+ then e.payments[0]
16+ else throw("Attached payment is required")
17+ let g = toBase58String(e.caller.bytes)
18+ if (isDefined(f.assetId))
19+ then throw("works with waves only")
20+ else if ((c(g) != "verified"))
21+ then throw("No Access")
22+ else {
23+ let h = {
24+ let i = getInteger(this, g)
25+ if ($isInstanceOf(i, "Int"))
26+ then {
27+ let j = i
28+ j
29+ }
30+ else 0
31+ }
32+ let k = (h + f.amount)
33+ $Tuple2([IntegerEntry(g, k)], unit)
3934 }
40- else false
41- }
42-
43-
44-func m (f) = {
45- let j = getString(e(f))
46- if ($isInstanceOf(j, "String"))
47- then {
48- let n = j
49- n
50- }
51- else c
52- }
53-
54-
55-@Callable(o)
56-func addAdmin (f) = {
57- let p = toBase58String(o.caller.bytes)
58- if (!(l(p)))
59- then throw("No Access")
60- else [BooleanEntry(g(f), true)]
6135 }
6236
6337
6438
65-@Callable(o)
66-func removeAdmin (f) = {
67- let p = toBase58String(o.caller.bytes)
68- if (!(l(p)))
69- then throw("No Access")
70- else if (!(l(f)))
71- then throw("Not found admin")
72- else [BooleanEntry(g(f), false)]
39+@Callable(e)
40+func withdraw (l) = {
41+ let g = toBase58String(e.caller.bytes)
42+ let h = {
43+ let i = getInteger(this, g)
44+ if ($isInstanceOf(i, "Int"))
45+ then {
46+ let j = i
47+ j
48+ }
49+ else 0
50+ }
51+ let k = (h - l)
52+ if ((0 >= l))
53+ then throw("Amount must be greater than 0")
54+ else if ((0 > k))
55+ then throw("Not enough balance")
56+ else $Tuple2([IntegerEntry(g, k), ScriptTransfer(e.caller, l, unit)], unit)
7357 }
7458
7559
7660
77-@Callable(o)
78-func setStatus (f,i) = {
79- let p = toBase58String(o.caller.bytes)
80- if (!(l(p)))
61+@Callable(e)
62+func transfer (l,m) = {
63+ let g = toBase58String(e.caller.bytes)
64+ let h = {
65+ let i = getInteger(this, g)
66+ if ($isInstanceOf(i, "Int"))
67+ then {
68+ let j = i
69+ j
70+ }
71+ else 0
72+ }
73+ let k = (h - l)
74+ if ((c(g) != "verified"))
8175 then throw("No Access")
82- else if (!(h(i)))
83- then throw("Invalid status")
84- else [StringEntry(e(f), i)]
76+ else if ((0 >= l))
77+ then throw("Amount must be greater than 0")
78+ else if ((0 > k))
79+ then throw("Not enough balance")
80+ else {
81+ let n = toBase58String(Address(fromBase58String(m)).bytes)
82+ let o = {
83+ let i = getInteger(this, n)
84+ if ($isInstanceOf(i, "Int"))
85+ then {
86+ let j = i
87+ j
88+ }
89+ else 0
90+ }
91+ $Tuple2([IntegerEntry(g, k), IntegerEntry(n, (o + l))], unit)
92+ }
8593 }
8694
8795
88-@Verifier(q)
89-func r () = sigVerify(q.bodyBytes, q.proofs[0], q.senderPublicKey)
96+@Verifier(p)
97+func q () = {
98+ let r = base58'Gud7Z17wiZEMZiHRbn48k2D9H13jmLEDZZ8b7NCfjRJL'
99+ let s = base58'CwvKLDcXt3Wd2MEyEemVKawiD7gaCV68wh2GcnJRHFqB'
100+ let t = sigVerify(p.bodyBytes, p.proofs[0], r)
101+ let u = sigVerify(p.bodyBytes, p.proofs[0], s)
102+ let i = p
103+ if ($isInstanceOf(i, "SetScriptTransaction"))
104+ then {
105+ let v = i
106+ true
107+ }
108+ else if ($isInstanceOf(i, "DataTransaction"))
109+ then {
110+ let v = i
111+ true
112+ }
113+ else if ($isInstanceOf(i, "InvokeScriptTransaction"))
114+ then {
115+ let v = i
116+ true
117+ }
118+ else if ($isInstanceOf(i, "TransferTransaction"))
119+ then {
120+ let v = i
121+ if (t)
122+ then true
123+ else u
124+ }
125+ else false
126+ }
90127

github/deemru/w8io/c3f4982 
42.41 ms