2022.09.30 11:55 [3317126] smart account 3PHANHAVYa72vkHVGrLqzUkyKeeEDhDknXj > SELF 0.00000000 Waves

{ "type": 13, "id": "EafttuwsexXEKkmtTz5yFpMzsF4evQc3BCg2qRmM7k8t", "fee": 200000, "feeAssetId": null, "timestamp": 1664528134489, "version": 2, "chainId": 87, "sender": "3PHANHAVYa72vkHVGrLqzUkyKeeEDhDknXj", "senderPublicKey": "SetNXCDqUbG3n74Z9jqgQdgTjnhQzi65xi5XafbYu9S", "proofs": [ "4SHJJHpZc3DMzvkHjpSX8wt1jULPMLFAhNUm774EDgGP2q6tb5wFPsT7wf7SYroqwqKMtciYcHTJAoseJpE6kent" ], "script": "base64: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", "height": 3317126, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 6AokLiDMy8MjJGnW8xhbFCAc5Ur1inx4ohnpiKvx3CXG Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let shinywggid = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
5+
6+let treasuryAddress = base58'3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ'
7+
8+let nationsAddress = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
9+
10+let marketplaceAddress = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
11+
12+let DailyRewardsAddress = base58'3Mytb3VCj8DZHoLi79gYgdBebhSzear4bcv'
13+
14+let adminWallet = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
15+
16+func tryGetString (key) = match getString(this, key) {
17+ case b: String =>
18+ b
19+ case _ =>
20+ ""
21+}
22+
23+
24+func tryGetInteger (key) = match getInteger(this, key) {
25+ case b: Int =>
26+ b
27+ case _ =>
28+ 0
29+}
30+
31+
32+func checkAdmin (caller) = if (if (if (if ((caller == adminWallet))
33+ then true
34+ else (caller == this))
35+ then true
36+ else (caller.bytes == nationsAddress))
37+ then true
38+ else (caller.bytes == treasuryAddress))
39+ then true
40+ else (caller.bytes == marketplaceAddress)
41+
42+
43+@Callable(i)
44+func discoverTreasure (treasureKey,toAddr) = if (!(checkAdmin(i.caller)))
45+ then throw("You are not authorized to perform this operation")
46+ else {
47+ let owned = tryGetString((treasureKey + "_Redeem"))
48+ if ((owned != ""))
49+ then throw("This treasure has been assigned to another player")
50+ else [StringEntry((treasureKey + "_Redeem"), toAddr)]
51+ }
52+
53+
54+
55+@Callable(i)
56+func redeemTreasure (treasureKey) = {
57+ let owned = tryGetString((treasureKey + "_Redeem"))
58+ if ((owned != toString(i.caller)))
59+ then throw("This treasure has already been claimed")
60+ else {
61+ let treasureVal = tryGetInteger(treasureKey)
62+[ScriptTransfer(i.caller, treasureVal, shinywggid), DeleteEntry((treasureKey + "_Redeem")), DeleteEntry(treasureKey)]
63+ }
64+ }
65+
66+

github/deemru/w8io/786bc32 
12.86 ms