tx · HYBL2Nmumkix3Md7QDHHEijPUVEueWPr1yUVWEu97bWY

3N1A95vbYuuE2ZFFUu6S1UubcE3eSpJNDE7:  -0.01000000 Waves

2022.11.07 10:47 [2306438] smart account 3N1A95vbYuuE2ZFFUu6S1UubcE3eSpJNDE7 > SELF 0.00000000 Waves

{ "type": 13, "id": "HYBL2Nmumkix3Md7QDHHEijPUVEueWPr1yUVWEu97bWY", "fee": 1000000, "feeAssetId": null, "timestamp": 1667807292141, "version": 2, "chainId": 84, "sender": "3N1A95vbYuuE2ZFFUu6S1UubcE3eSpJNDE7", "senderPublicKey": "DTmTTp6Rb9XUrniBAnWwdNc39UfdmzmtFCBgey4hsnE", "proofs": [ "3n8zuPQ2KubJJ7t1tkKW8DLe1nQJWuMoDa9Jyf2A4KYnk59ee1eToWh2VYHvvviUVpUGUc8pmVPDMXnuwQGsDZiU" ], "script": "base64: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", "height": 2306438, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Br4fhLmwPcsF1VLZ1W7Vf6oJpW5dn6efxJLkXvYtwPm Next: JB2dPyxFbf7qq27aZ57vP21U9CiRKR1hTg3LUQHRqEKS Diff:
OldNewDifferences
3030 let activeSessionKey = "active_session"
3131
3232 let maxPixel = 22500
33+
34+let maxWallet = 1000
3335
3436 let colors = ["7076E9", "5FD8F1", "D30831", "183937", "FFD345", "B04249", "FFB087", "360A90", "000000", "969696", "FF0200", "800080", "020080", "183937", "09FEFF", "7076E9", "C0C0C0", "C3103B", "9F7E69", "FFEEE2", "983C95"]
3537
7173 @Callable(i)
7274 func coordinates (veri,xy) = {
7375 let session = valueOrElse(getInteger(this, activeSessionKey), 0)
76+ let currentKey = toBase58String(i.caller.bytes)
7477 let startHeight = valueOrElse(getInteger(this, (("settings_" + toString(session)) + "_startHeight")), START_HEIGHT)
7578 let endHeight = valueOrElse(getInteger(this, (("settings_" + toString(session)) + "_endHeight")), END_HEIGHT)
79+ let walletCount = valueOrElse(getInteger(this, ((("count_" + toString(session)) + "_") + currentKey)), 0)
7680 if (if ((height > startHeight))
7781 then (endHeight > height)
7882 else false)
8084 let color = containsElement(colors, veri)
8185 if (color)
8286 then {
83- let currentKey = toBase58String(i.caller.bytes)
8487 let splitter = split(xy, "_")
8588 let x = valueOrElse(parseInt(splitter[0]), 0)
8689 let y = valueOrElse(parseInt(splitter[1]), 0)
9295 let xy_new = ((toString(x) + "_") + toString(y))
9396 let veri_count = valueOrElse(getInteger(this, ("stats_" + toString(session))), 0)
9497 let wallet = (((((currentKey + "_") + xy_new) + "_") + toString(session)) + "_c")
95- if (if (if (if (if ((x >= xMIN))
98+ if (if (if (if (if (if ((x >= xMIN))
9699 then (xMAX > x)
97100 else false)
98101 then (y >= yMIN)
101104 else false)
102105 then (maxPixel >= veri_count)
103106 else false)
107+ then (maxWallet >= walletCount)
108+ else false)
104109 then if (isPaymentOk(i))
105- then [StringEntry(wallet, veri), IntegerEntry(("stats_" + toString(session)), (veri_count + 1)), Reissue(REWARD_ASSET, REISSUE_AMOUNT, true), ScriptTransfer(i.caller, REWARD_AMOUNT, REWARD_ASSET)]
110+ then [StringEntry(wallet, veri), IntegerEntry(("stats_" + toString(session)), (veri_count + 1)), IntegerEntry(((("count_" + toString(session)) + "_") + currentKey), (walletCount + 1)), Reissue(REWARD_ASSET, REISSUE_AMOUNT, true), ScriptTransfer(i.caller, REWARD_AMOUNT, REWARD_ASSET)]
106111 else throw("Wrong payment amount or asset")
107112 else throw("out of context")
108113 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let PAYMENT_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh'
55
66 let REWARD_ASSET = base58'3Eh6z6z6ouFpWxGKrPaPnZwmDnDjgYHV6tqCmZf2G7tk'
77
88 let admPub = base58'DTmTTp6Rb9XUrniBAnWwdNc39UfdmzmtFCBgey4hsnE'
99
1010 let pixels = REWARD_ASSET
1111
1212 let xMIN = 0
1313
1414 let xMAX = 1201
1515
1616 let yMIN = 0
1717
1818 let yMAX = 601
1919
2020 let REWARD_AMOUNT = 1000000
2121
2222 let REISSUE_AMOUNT = 1500000
2323
2424 let START_HEIGHT = 2297717
2525
2626 let END_HEIGHT = (START_HEIGHT + (1440 * 7))
2727
2828 let paymentFee = 100000
2929
3030 let activeSessionKey = "active_session"
3131
3232 let maxPixel = 22500
33+
34+let maxWallet = 1000
3335
3436 let colors = ["7076E9", "5FD8F1", "D30831", "183937", "FFD345", "B04249", "FFB087", "360A90", "000000", "969696", "FF0200", "800080", "020080", "183937", "09FEFF", "7076E9", "C0C0C0", "C3103B", "9F7E69", "FFEEE2", "983C95"]
3537
3638 func isPaymentOk (i) = {
3739 let acceptableAssetId = PAYMENT_ASSET
3840 if ((size(i.payments) == 0))
3941 then throw("Payment not attached")
4042 else {
4143 let p = i.payments[0]
4244 match p.assetId {
4345 case assetId: ByteVector =>
4446 if ((assetId == acceptableAssetId))
4547 then (p.amount == paymentFee)
4648 else false
4749 case _ =>
4850 throw("Wrong payment asset")
4951 }
5052 }
5153 }
5254
5355
5456 @Callable(i)
5557 func activeSession (session) = if ((i.callerPublicKey == admPub))
5658 then [IntegerEntry(activeSessionKey, session)]
5759 else throw("you are not allowed")
5860
5961
6062
6163 @Callable(i)
6264 func settings (session,startHeight,duration) = if ((i.callerPublicKey == admPub))
6365 then {
6466 let endHeight = (startHeight + (1440 * duration))
6567 [IntegerEntry((("settings_" + toString(session)) + "_startHeight"), startHeight), IntegerEntry((("settings_" + toString(session)) + "_endHeight"), endHeight)]
6668 }
6769 else throw("you are not allowed")
6870
6971
7072
7173 @Callable(i)
7274 func coordinates (veri,xy) = {
7375 let session = valueOrElse(getInteger(this, activeSessionKey), 0)
76+ let currentKey = toBase58String(i.caller.bytes)
7477 let startHeight = valueOrElse(getInteger(this, (("settings_" + toString(session)) + "_startHeight")), START_HEIGHT)
7578 let endHeight = valueOrElse(getInteger(this, (("settings_" + toString(session)) + "_endHeight")), END_HEIGHT)
79+ let walletCount = valueOrElse(getInteger(this, ((("count_" + toString(session)) + "_") + currentKey)), 0)
7680 if (if ((height > startHeight))
7781 then (endHeight > height)
7882 else false)
7983 then {
8084 let color = containsElement(colors, veri)
8185 if (color)
8286 then {
83- let currentKey = toBase58String(i.caller.bytes)
8487 let splitter = split(xy, "_")
8588 let x = valueOrElse(parseInt(splitter[0]), 0)
8689 let y = valueOrElse(parseInt(splitter[1]), 0)
8790 if (if (((x % 8) != 0))
8891 then ((y % 8) != 0)
8992 else false)
9093 then throw("not cool.")
9194 else {
9295 let xy_new = ((toString(x) + "_") + toString(y))
9396 let veri_count = valueOrElse(getInteger(this, ("stats_" + toString(session))), 0)
9497 let wallet = (((((currentKey + "_") + xy_new) + "_") + toString(session)) + "_c")
95- if (if (if (if (if ((x >= xMIN))
98+ if (if (if (if (if (if ((x >= xMIN))
9699 then (xMAX > x)
97100 else false)
98101 then (y >= yMIN)
99102 else false)
100103 then (yMAX > y)
101104 else false)
102105 then (maxPixel >= veri_count)
103106 else false)
107+ then (maxWallet >= walletCount)
108+ else false)
104109 then if (isPaymentOk(i))
105- then [StringEntry(wallet, veri), IntegerEntry(("stats_" + toString(session)), (veri_count + 1)), Reissue(REWARD_ASSET, REISSUE_AMOUNT, true), ScriptTransfer(i.caller, REWARD_AMOUNT, REWARD_ASSET)]
110+ then [StringEntry(wallet, veri), IntegerEntry(("stats_" + toString(session)), (veri_count + 1)), IntegerEntry(((("count_" + toString(session)) + "_") + currentKey), (walletCount + 1)), Reissue(REWARD_ASSET, REISSUE_AMOUNT, true), ScriptTransfer(i.caller, REWARD_AMOUNT, REWARD_ASSET)]
106111 else throw("Wrong payment amount or asset")
107112 else throw("out of context")
108113 }
109114 }
110115 else throw("wrong color")
111116 }
112117 else throw("game is not active right now")
113118 }
114119
115120
116121
117122 @Callable(i)
118123 func delete (arg) = [DeleteEntry(arg)]
119124
120125

github/deemru/w8io/169f3d6 
34.64 ms