tx · 2bqDu4mmRz6HaXirmaRL1iRewU2EZCZKp91p2g94QiFG

3N3WJhRiTqiaGGwAZvSq2AC4HeAArFkCxBh:  -0.01400000 Waves

2021.02.02 19:02 [1380756] smart account 3N3WJhRiTqiaGGwAZvSq2AC4HeAArFkCxBh > SELF 0.00000000 Waves

{ "type": 13, "id": "2bqDu4mmRz6HaXirmaRL1iRewU2EZCZKp91p2g94QiFG", "fee": 1400000, "feeAssetId": null, "timestamp": 1612281739932, "version": 2, "chainId": 84, "sender": "3N3WJhRiTqiaGGwAZvSq2AC4HeAArFkCxBh", "senderPublicKey": "BjUrrYNbaUDxHuvkecxrTa2B7EFuX8WzJs9htkGNyTbh", "proofs": [ "5modo4PD2QjZxYfwGnfr21neky1gZEe3cN6NcvmNiDDdEXgb2a5nQSAWFJ6DpV9S6uigtox7ZePDnx92iixbVLvv" ], "script": "base64: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", "height": 1380756, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let NONE = "none"
5+
6+let ACTIVE = "active"
7+
8+let dappKey = "dapp"
9+
10+let ownerKey = "owner"
11+
12+func getNumberByKey (key) = match getInteger(this, key) {
13+ case a: Int =>
14+ a
15+ case _ =>
16+ 0
17+}
18+
19+
20+func getStrByKey (key) = match getString(this, key) {
21+ case a: String =>
22+ a
23+ case _ =>
24+ NONE
25+}
26+
27+
28+func getExtNumberByKey (key) = match getInteger(this, key) {
29+ case a: Int =>
30+ a
31+ case _ =>
32+ 0
33+}
34+
35+
36+func getExtStrByKey (addr,key) = match getString(addr, key) {
37+ case a: String =>
38+ a
39+ case _ =>
40+ NONE
41+}
42+
43+
44+func nftKey (nft) = ("key_" + nft)
45+
46+
47+func nftValue (nft) = getStrByKey(nftKey(nft))
48+
49+
50+func getAssetInfo (asset) = match assetInfo(asset) {
51+ case t: Asset =>
52+ t
53+ case _ =>
54+ throw("Not a key")
55+}
56+
57+
58+func updData (acu,item) = {
59+ let expl = split(item, "#")
60+ if ((expl[0] == "set"))
61+ then if ((expl[1] == "string"))
62+ then StringEntry(expl[2], expl[3]) :: acu
63+ else IntegerEntry(expl[2], parseIntValue(expl[3])) :: acu
64+ else DeleteEntry(expl[1]) :: acu
65+ }
66+
67+
68+@Callable(i)
69+func addKey (keyID) = {
70+ let callerAddress = toBase58String(i.caller.bytes)
71+ let keyInfo = getAssetInfo(fromBase58String(keyID))
72+ let dappAddr = addressFromStringValue(getStrByKey(dappKey))
73+ let ownerAddr = addressFromStringValue(getStrByKey(ownerKey))
74+ if ((keyInfo.issuer != dappAddr))
75+ then throw("Wrong key issuer")
76+ else if (if ((ownerAddr != i.caller))
77+ then (dappAddr != i.caller)
78+ else false)
79+ then throw("Not permitted")
80+ else if ((nftValue(keyID) != NONE))
81+ then throw("This key is already assigned")
82+ else [StringEntry(nftKey(keyID), ACTIVE)]
83+ }
84+
85+
86+
87+@Callable(i)
88+func removeKey (keyID) = {
89+ let dappAddr = addressFromStringValue(getStrByKey(dappKey))
90+ let ownerAddr = addressFromStringValue(getStrByKey(ownerKey))
91+ if (if ((ownerAddr != i.caller))
92+ then (dappAddr != i.caller)
93+ else false)
94+ then throw("Not permitted")
95+ else [DeleteEntry(nftKey(keyID))]
96+ }
97+
98+
99+
100+@Callable(i)
101+func updateData (args) = {
102+ let dappAddr = addressFromStringValue(getStrByKey(dappKey))
103+ if ((dappAddr != i.caller))
104+ then throw("Not permitted")
105+ else {
106+ let $list37303757 = args
107+ let $size37303757 = size($list37303757)
108+ let $acc037303757 = nil
109+ if (($size37303757 == 0))
110+ then $acc037303757
111+ else {
112+ let $acc137303757 = updData($acc037303757, $list37303757[0])
113+ if (($size37303757 == 1))
114+ then $acc137303757
115+ else {
116+ let $acc237303757 = updData($acc137303757, $list37303757[1])
117+ if (($size37303757 == 2))
118+ then $acc237303757
119+ else {
120+ let $acc337303757 = updData($acc237303757, $list37303757[2])
121+ if (($size37303757 == 3))
122+ then $acc337303757
123+ else {
124+ let $acc437303757 = updData($acc337303757, $list37303757[3])
125+ if (($size37303757 == 4))
126+ then $acc437303757
127+ else {
128+ let $acc537303757 = updData($acc437303757, $list37303757[4])
129+ if (($size37303757 == 5))
130+ then $acc537303757
131+ else {
132+ let $acc637303757 = updData($acc537303757, $list37303757[5])
133+ if (($size37303757 == 6))
134+ then $acc637303757
135+ else {
136+ let $acc737303757 = updData($acc637303757, $list37303757[6])
137+ if (($size37303757 == 7))
138+ then $acc737303757
139+ else {
140+ let $acc837303757 = updData($acc737303757, $list37303757[7])
141+ if (($size37303757 == 8))
142+ then $acc837303757
143+ else {
144+ let $acc937303757 = updData($acc837303757, $list37303757[8])
145+ if (($size37303757 == 9))
146+ then $acc937303757
147+ else {
148+ let $acc1037303757 = updData($acc937303757, $list37303757[9])
149+ if (($size37303757 == 10))
150+ then $acc1037303757
151+ else {
152+ let $acc1137303757 = updData($acc1037303757, $list37303757[10])
153+ if (($size37303757 == 11))
154+ then $acc1137303757
155+ else {
156+ let $acc1237303757 = updData($acc1137303757, $list37303757[11])
157+ if (($size37303757 == 12))
158+ then $acc1237303757
159+ else {
160+ let $acc1337303757 = updData($acc1237303757, $list37303757[12])
161+ if (($size37303757 == 13))
162+ then $acc1337303757
163+ else {
164+ let $acc1437303757 = updData($acc1337303757, $list37303757[13])
165+ if (($size37303757 == 14))
166+ then $acc1437303757
167+ else {
168+ let $acc1537303757 = updData($acc1437303757, $list37303757[14])
169+ if (($size37303757 == 15))
170+ then $acc1537303757
171+ else {
172+ let $acc1637303757 = updData($acc1537303757, $list37303757[15])
173+ throw("List size exceed 15")
174+ }
175+ }
176+ }
177+ }
178+ }
179+ }
180+ }
181+ }
182+ }
183+ }
184+ }
185+ }
186+ }
187+ }
188+ }
189+ }
190+ }
191+ }
192+
193+
194+@Verifier(tx)
195+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
196+

github/deemru/w8io/03bedc9 
21.63 ms