tx · 83ksPwasUBVy9kenqjpdPmPXoKTKM73iemifQU6KGZGX

3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT:  -0.04000000 Waves

2021.11.10 15:33 [1784921] smart account 3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT > SELF 0.00000000 Waves

{ "type": 13, "id": "83ksPwasUBVy9kenqjpdPmPXoKTKM73iemifQU6KGZGX", "fee": 4000000, "feeAssetId": null, "timestamp": 1636547639315, "version": 2, "chainId": 84, "sender": "3Ms3vFkrTaXvYNw9Vna8vgTmHzEhWCBkBmT", "senderPublicKey": "4cDpBfmEAxfhEbF9jxuT8xqJa14SqZgPfZ9Tov6ka4Qj", "proofs": [ "4hYJZuq3dTWJr4dUqXn61fB7bH25oBJSxVdmNn2YTxwh2auTEsTXtaXH16biqMhjPae2qEzmNQk2HQZDY1ppU7am" ], "script": "base64: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", "height": 1784921, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FS52x5NYf8UpJ7eKBAyEQyCmZZnqQHUfy6wcYojNxqJg Next: 2xXtEsXG1n1DJPtdWQq4F1Vwsx4o5fn7Sdfz2RTHvHr2 Diff:
OldNewDifferences
6868
6969
7070 @Callable(i)
71-func setStatus (address,status) = {
71+func addUser (address) = {
72+ let account = toBase58String(i.caller.bytes)
73+ if (!(isAdmin(account)))
74+ then throw("No Access")
75+ else match getString(getAdressStatusKey(address)) {
76+ case t: String =>
77+ throw("Alredy Exists")
78+ case _ =>
79+[StringEntry(getAdressStatusKey(address), VERIFIED)]
80+ }
81+ }
82+
83+
84+
85+@Callable(i)
86+func setUserStatus (address,status) = {
7287 let account = toBase58String(i.caller.bytes)
7388 if (!(isAdmin(account)))
7489 then throw("No Access")
7590 else if (!(isStatusValid(status)))
7691 then throw("Invalid Status")
77- else [StringEntry(getAdressStatusKey(address), status)]
92+ else match getString(getAdressStatusKey(address)) {
93+ case t: String =>
94+ throw("User Not Found")
95+ case _ =>
96+[StringEntry(getAdressStatusKey(address), status)]
97+ }
7898 }
7999
80100
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")
5151 else if (isAdmin(address))
5252 then throw("Alredy Is Admin")
5353 else [BooleanEntry(getAddressAdminKey(address), true)]
5454 }
5555
5656
5757
5858 @Callable(i)
5959 func removeAdmin (address) = {
6060 let account = toBase58String(i.caller.bytes)
6161 if (!(isAdmin(account)))
6262 then throw("No Access")
6363 else if (!(isAdmin(address)))
6464 then throw("Admin Not Found")
6565 else [BooleanEntry(getAddressAdminKey(address), false)]
6666 }
6767
6868
6969
7070 @Callable(i)
71-func setStatus (address,status) = {
71+func addUser (address) = {
72+ let account = toBase58String(i.caller.bytes)
73+ if (!(isAdmin(account)))
74+ then throw("No Access")
75+ else match getString(getAdressStatusKey(address)) {
76+ case t: String =>
77+ throw("Alredy Exists")
78+ case _ =>
79+[StringEntry(getAdressStatusKey(address), VERIFIED)]
80+ }
81+ }
82+
83+
84+
85+@Callable(i)
86+func setUserStatus (address,status) = {
7287 let account = toBase58String(i.caller.bytes)
7388 if (!(isAdmin(account)))
7489 then throw("No Access")
7590 else if (!(isStatusValid(status)))
7691 then throw("Invalid Status")
77- else [StringEntry(getAdressStatusKey(address), status)]
92+ else match getString(getAdressStatusKey(address)) {
93+ case t: String =>
94+ throw("User Not Found")
95+ case _ =>
96+[StringEntry(getAdressStatusKey(address), status)]
97+ }
7898 }
7999
80100
81101 @Verifier(tx)
82102 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
83103

github/deemru/w8io/873ac7e 
47.04 ms