tx · HCFRvxK5EAsdtD2Y3smoXLsbW87MD1ULCTVsjFekEp14

3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT:  -0.04000000 Waves

2021.11.10 14:07 [1784841] smart account 3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT > SELF 0.00000000 Waves

{ "type": 13, "id": "HCFRvxK5EAsdtD2Y3smoXLsbW87MD1ULCTVsjFekEp14", "fee": 4000000, "feeAssetId": null, "timestamp": 1636542455067, "version": 2, "chainId": 84, "sender": "3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT", "senderPublicKey": "4cDpBfmEAxfhEbF9jxuT8xqJa14SqZgPfZ9Tov6ka4Qj", "proofs": [ "4Yga8ABPJ2Yh4Q1Mrt47qhV9sDJ8J5P5wZLfuQjTsFwvCPJrodM2ZQtYRxCTd6r9xM6G3Htwe1wWs2PwBo84e69q" ], "script": "base64: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", "height": 1784841, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3SkTQsZXYxXvXokrHp7VKWk8RuXwTE54FZ6xoEUjWgaT Next: FS52x5NYf8UpJ7eKBAyEQyCmZZnqQHUfy6wcYojNxqJg Diff:
OldNewDifferences
4848 let account = toBase58String(i.caller.bytes)
4949 if (!(isAdmin(account)))
5050 then throw("No Access")
51- else [BooleanEntry(getAddressAdminKey(address), true)]
51+ else if (isAdmin(address))
52+ then throw("Alredy is admin")
53+ else [BooleanEntry(getAddressAdminKey(address), true)]
5254 }
5355
5456
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ADMIN = "3N8FWN9orV8D8px6xrYqTjWHHu2Qd3Jx4bV"
55
66 let DAPP = "3Mza5Ao6wJgpw1JG3jxRY1xigD44zgfhdK6"
77
88 let VERIFIED = "verified"
99
1010 let BLOCKED = "blocked"
1111
1212 func getAdressStatusKey (address) = (address + "_status")
1313
1414
1515 func getAddressAdminKey (address) = (address + "_admin")
1616
1717
1818 func isStatusValid (status) = match status {
1919 case t: String =>
2020 if ((t == BLOCKED))
2121 then true
2222 else (t == VERIFIED)
2323 case _ =>
2424 false
2525 }
2626
2727
2828 func isAdmin (address) = if ((address == ADMIN))
2929 then true
3030 else match getBoolean(this, getAddressAdminKey(address)) {
3131 case t: Boolean =>
3232 t
3333 case _ =>
3434 false
3535 }
3636
3737
3838 func getAddresVerifiedStatus (address) = match getString(getAdressStatusKey(address)) {
3939 case s: String =>
4040 s
4141 case _ =>
4242 VERIFIED
4343 }
4444
4545
4646 @Callable(i)
4747 func addAdmin (address) = {
4848 let account = toBase58String(i.caller.bytes)
4949 if (!(isAdmin(account)))
5050 then throw("No Access")
51- else [BooleanEntry(getAddressAdminKey(address), true)]
51+ else if (isAdmin(address))
52+ then throw("Alredy is admin")
53+ else [BooleanEntry(getAddressAdminKey(address), true)]
5254 }
5355
5456
5557
5658 @Callable(i)
5759 func removeAdmin (address) = {
5860 let account = toBase58String(i.caller.bytes)
5961 if (!(isAdmin(account)))
6062 then throw("No Access")
6163 else if (!(isAdmin(address)))
6264 then throw("Not found admin")
6365 else [BooleanEntry(getAddressAdminKey(address), false)]
6466 }
6567
6668
6769
6870 @Callable(i)
6971 func setStatus (address,status) = {
7072 let account = toBase58String(i.caller.bytes)
7173 if (!(isAdmin(account)))
7274 then throw("No Access")
7375 else if (!(isStatusValid(status)))
7476 then throw("Invalid status")
7577 else [StringEntry(getAdressStatusKey(address), status)]
7678 }
7779
7880
7981 @Verifier(tx)
8082 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
8183

github/deemru/w8io/873ac7e 
18.44 ms