tx · H972JVnSr1wqKgGResq7VNiXKvV1xMjVzAWKUCkZut4M

3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A:  -0.00600000 Waves

2022.06.21 12:33 [2105978] smart account 3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A > SELF 0.00000000 Waves

{ "type": 13, "id": "H972JVnSr1wqKgGResq7VNiXKvV1xMjVzAWKUCkZut4M", "fee": 600000, "feeAssetId": null, "timestamp": 1655804087075, "version": 2, "chainId": 84, "sender": "3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A", "senderPublicKey": "HTEmPgvFxYj3ixqqyCZYUX15Z31rMbac2vWaQw8vrPRj", "proofs": [ "5Zufu1e5DAjGtvWHBk3gMaBuK8VBozwFrMeh8Vhk3WCAPLRbu99aydUKUDXAJiwkxWmhF6NJQB9FV3xeCcraQZ3B" ], "script": "base64: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", "height": 2105978, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 43Dd97N6KbfN7PzKzcxvAKGhDL9iYjLGbyyvwUdKYe2U Next: 5yj7ACi3LQbQqzvzqunsbrtzSGe5xdr5QsezGnDPMfnw Diff:
OldNewDifferences
77
88 let assetsAddress = base58'3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb'
99
10+let marketplaceAddress = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
11+
12+let configurationAddress = base58'3N9tj3b2djcaZozn97VkYchL9S1i6cdEbC1'
13+
1014 let nationsAddress = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
1115
12-let adminAddress = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
16+let adminWallet = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
17+
18+let dailyGameRewardsWallet = addressFromStringValue("3MuSrXTTiwo9bdoD6FeaBpMUYMiU5saDv2U")
19+
20+let dailyStakingRewardsWallet = addressFromStringValue("3Mv3mr3uNXdpgkVPApbGEJjMQXqau37DY5i")
21+
22+func checkAdmin (caller) = if (if (if (if (if ((caller == adminWallet))
23+ then true
24+ else (caller == this))
25+ then true
26+ else (caller.bytes == assetsAddress))
27+ then true
28+ else (caller.bytes == treasuryAddress))
29+ then true
30+ else (caller.bytes == marketplaceAddress))
31+ then true
32+ else (caller.bytes == nationsAddress)
33+
34+
35+func tryGetInteger (key) = match getInteger(this, key) {
36+ case b: Int =>
37+ b
38+ case _ =>
39+ 0
40+}
41+
42+
43+func tryGetBoolean (key) = match getBoolean(this, key) {
44+ case b: Boolean =>
45+ b
46+ case _ =>
47+ false
48+}
49+
1350
1451 func tryGetString (key) = match getString(this, key) {
1552 case b: String =>
1956 }
2057
2158
22-func tryGetInteger (key) = match getInteger(this, key) {
59+func getALKey (Name,Level) = ((Name + "_lvl") + toString(Level))
60+
61+
62+func confTryGetInteger (key) = match getInteger(Address(configurationAddress), key) {
2363 case b: Int =>
2464 b
2565 case _ =>
2666 0
67+}
68+
69+
70+func confTryGetString (key) = match getString(Address(configurationAddress), key) {
71+ case b: String =>
72+ b
73+ case _ =>
74+ ""
75+}
76+
77+
78+func confTryGetBoolean (key) = match getBoolean(Address(configurationAddress), key) {
79+ case b: Boolean =>
80+ b
81+ case _ =>
82+ false
83+}
84+
85+
86+func getTreasuryKey (nationid) = (nationid + "_Treasury")
87+
88+
89+func treasuryTryGetInteger (key) = match getInteger(Address(treasuryAddress), key) {
90+ case b: Int =>
91+ b
92+ case _ =>
93+ 0
94+}
95+
96+
97+func nationsTryGetInteger (key) = match getInteger(Address(nationsAddress), key) {
98+ case b: Int =>
99+ b
100+ case _ =>
101+ 0
102+}
103+
104+
105+func nationsTryGetBoolean (key) = match getBoolean(Address(nationsAddress), key) {
106+ case b: Boolean =>
107+ b
108+ case _ =>
109+ false
110+}
111+
112+
113+func nationsTryGetString (key) = match getString(Address(nationsAddress), key) {
114+ case b: String =>
115+ b
116+ case _ =>
117+ ""
27118 }
28119
29120
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let shinywggid = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
55
66 let treasuryAddress = base58'3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ'
77
88 let assetsAddress = base58'3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb'
99
10+let marketplaceAddress = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
11+
12+let configurationAddress = base58'3N9tj3b2djcaZozn97VkYchL9S1i6cdEbC1'
13+
1014 let nationsAddress = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
1115
12-let adminAddress = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
16+let adminWallet = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
17+
18+let dailyGameRewardsWallet = addressFromStringValue("3MuSrXTTiwo9bdoD6FeaBpMUYMiU5saDv2U")
19+
20+let dailyStakingRewardsWallet = addressFromStringValue("3Mv3mr3uNXdpgkVPApbGEJjMQXqau37DY5i")
21+
22+func checkAdmin (caller) = if (if (if (if (if ((caller == adminWallet))
23+ then true
24+ else (caller == this))
25+ then true
26+ else (caller.bytes == assetsAddress))
27+ then true
28+ else (caller.bytes == treasuryAddress))
29+ then true
30+ else (caller.bytes == marketplaceAddress))
31+ then true
32+ else (caller.bytes == nationsAddress)
33+
34+
35+func tryGetInteger (key) = match getInteger(this, key) {
36+ case b: Int =>
37+ b
38+ case _ =>
39+ 0
40+}
41+
42+
43+func tryGetBoolean (key) = match getBoolean(this, key) {
44+ case b: Boolean =>
45+ b
46+ case _ =>
47+ false
48+}
49+
1350
1451 func tryGetString (key) = match getString(this, key) {
1552 case b: String =>
1653 b
1754 case _ =>
1855 ""
1956 }
2057
2158
22-func tryGetInteger (key) = match getInteger(this, key) {
59+func getALKey (Name,Level) = ((Name + "_lvl") + toString(Level))
60+
61+
62+func confTryGetInteger (key) = match getInteger(Address(configurationAddress), key) {
2363 case b: Int =>
2464 b
2565 case _ =>
2666 0
67+}
68+
69+
70+func confTryGetString (key) = match getString(Address(configurationAddress), key) {
71+ case b: String =>
72+ b
73+ case _ =>
74+ ""
75+}
76+
77+
78+func confTryGetBoolean (key) = match getBoolean(Address(configurationAddress), key) {
79+ case b: Boolean =>
80+ b
81+ case _ =>
82+ false
83+}
84+
85+
86+func getTreasuryKey (nationid) = (nationid + "_Treasury")
87+
88+
89+func treasuryTryGetInteger (key) = match getInteger(Address(treasuryAddress), key) {
90+ case b: Int =>
91+ b
92+ case _ =>
93+ 0
94+}
95+
96+
97+func nationsTryGetInteger (key) = match getInteger(Address(nationsAddress), key) {
98+ case b: Int =>
99+ b
100+ case _ =>
101+ 0
102+}
103+
104+
105+func nationsTryGetBoolean (key) = match getBoolean(Address(nationsAddress), key) {
106+ case b: Boolean =>
107+ b
108+ case _ =>
109+ false
110+}
111+
112+
113+func nationsTryGetString (key) = match getString(Address(nationsAddress), key) {
114+ case b: String =>
115+ b
116+ case _ =>
117+ ""
27118 }
28119
29120
30121 func getAssetOwnerKeyString (assetId) = (assetId + "_Owner")
31122
32123
33124 func getAssetPriceKeyString (assetId) = (assetId + "_Price")
34125
35126
36127 @Callable(i)
37128 func putOnSale (assetId,assetSheg,sellPrice) = {
38129 let strCaller = toString(i.originCaller)
39130 $Tuple2([StringEntry(getAssetOwnerKeyString(assetId), strCaller), IntegerEntry(getAssetPriceKeyString(assetId), sellPrice), IntegerEntry(assetId, assetSheg)], sellPrice)
40131 }
41132
42133
43134
44135 @Callable(i)
45136 func buyItem (assetId) = {
46137 let owner = tryGetString(getAssetOwnerKeyString(assetId))
47138 let assetPrice = tryGetInteger(getAssetPriceKeyString(assetId))
48139 let amountIn = value(i.payments[0].amount)
49140 if ((assetPrice > amountIn))
50141 then throw("You provided less $heg than the needed cost for buying this Item")
51142 else if ((i.payments[0].assetId != shinywggid))
52143 then throw("Only $HEG payments allowed")
53144 else {
54145 let assetsheg = tryGetInteger(assetId)
55146 let toasset = invoke(Address(assetsAddress), "AddAssetFromMarkeplace", [assetId, owner, assetsheg], nil)
56147 if ((toasset == owner))
57148 then {
58149 let transfer = invoke(Address(assetsAddress), "transferOwnership", [assetId, toString(i.caller)], nil)
59150 if ((transfer == toString(i.caller)))
60151 then [ScriptTransfer(addressFromStringValue(owner), amountIn, shinywggid), DeleteEntry(getAssetOwnerKeyString(assetId)), DeleteEntry(getAssetPriceKeyString(assetId)), DeleteEntry(assetId)]
61152 else throw("Error transferring the ownership of the item")
62153 }
63154 else throw("Error removing the item from the marketplace")
64155 }
65156 }
66157
67158
68159
69160 @Callable(i)
70161 func removeFromSale (assetId) = {
71162 let owner = tryGetString(getAssetOwnerKeyString(assetId))
72163 if ((toString(i.caller) != owner))
73164 then throw("Only the owner of the Item can remove it from the marketplace")
74165 else {
75166 let assetsheg = tryGetInteger(assetId)
76167 let toasset = invoke(Address(assetsAddress), "AddAssetFromMarkeplace", [assetId, owner, assetsheg], nil)
77168 if ((toasset == owner))
78169 then [DeleteEntry(getAssetOwnerKeyString(assetId)), DeleteEntry(getAssetPriceKeyString(assetId)), DeleteEntry(assetId)]
79170 else throw("Error removing the item from the marketplace")
80171 }
81172 }
82173
83174

github/deemru/w8io/3ef1775 
36.90 ms