tx · 8NiydrX6aUyhUYzBANfeJ2Eb5VT8BwGKe7KNA2MiKbaK

3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL:  -0.01400000 Waves

2022.11.14 14:35 [2316752] smart account 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL > SELF 0.00000000 Waves

{ "type": 13, "id": "8NiydrX6aUyhUYzBANfeJ2Eb5VT8BwGKe7KNA2MiKbaK", "fee": 1400000, "feeAssetId": null, "timestamp": 1668425774514, "version": 2, "chainId": 84, "sender": "3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL", "senderPublicKey": "BefhVEanzhrtdYfeWquaoSsMZw3BEaEZZB86Kosqw7Qb", "proofs": [ "E6V7jQgy3rSWnJmvU7EQEmY1Q43A8QobzUbW8ZV4rQjtSJqnNdrBptq9wogb52tog55T8pvaFE7axQ7dnKZqBU7" ], "script": "base64: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", "height": 2316752, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6ZedKy5ddrUPpyUNZKcwHhMciEU7yRo6HpiMxDB3TyKJ Next: 99AQ9TzmwbCt5TQ1FuK4vSjyNY5f7Qt7VYT5H8CdfqyJ Diff:
OldNewDifferences
5757 func getBetAmount () = tryGetInteger(betAmountKey)
5858
5959
60+func getDeadLine () = tryGetInteger(deadlineKey)
61+
62+
6063 @Callable(i)
6164 func setBetAmount (amount) = if (allow(i.callerPublicKey))
6265 then [IntegerEntry(betAmountKey, amount)]
7881 let pmt_amount = value(pmt.amount)
7982 let callerAddr = toString(i.caller)
8083 let betted = isBet(callerAddr)
81- if (!(betted))
82- then if ((getAssetString(pmt_asset) == "WAVES"))
83- then {
84- let betAmount = getBetAmount()
85- if ((betAmount != 0))
86- then if ((pmt_amount == betAmount))
87- then {
88- let groupWinners = split(group_winners, "_")
89- let groupSecond = split(group_second, "_")
90- let octoWinners = split(octo_winners, "_")
91- let quarterWinners = split(quarter_winners, "_")
92- let semiWinners = split(semi_winners, "_")
93- if (if (if (if (if ((size(groupWinners) == 8))
94- then (size(groupSecond) == 8)
95- else false)
96- then (size(octoWinners) == 8)
97- else false)
98- then (size(quarterWinners) == 4)
99- else false)
100- then (size(semiWinners) == 2)
101- else false)
102- then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "Final-winner"), winner)]
103- else throw("Incorrect data arrived in arguments")
104- }
105- else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment"))
106- else throw("Zero betAmount from contract storage")
107- }
108- else throw("Only Waves is allowed as payment asset to bet")
109- else throw("Bet already made")
84+ let deadline = getDeadLine()
85+ if ((deadline > height))
86+ then if (!(betted))
87+ then if ((getAssetString(pmt_asset) == "WAVES"))
88+ then {
89+ let betAmount = getBetAmount()
90+ if ((betAmount != 0))
91+ then if ((pmt_amount == betAmount))
92+ then {
93+ let groupWinners = split(group_winners, "_")
94+ let groupSecond = split(group_second, "_")
95+ let octoWinners = split(octo_winners, "_")
96+ let quarterWinners = split(quarter_winners, "_")
97+ let semiWinners = split(semi_winners, "_")
98+ if (if (if (if (if ((size(groupWinners) == 8))
99+ then (size(groupSecond) == 8)
100+ else false)
101+ then (size(octoWinners) == 8)
102+ else false)
103+ then (size(quarterWinners) == 4)
104+ else false)
105+ then (size(semiWinners) == 2)
106+ else false)
107+ then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "Final-winner"), winner)]
108+ else throw("Incorrect data arrived in arguments")
109+ }
110+ else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment"))
111+ else throw("Zero betAmount from contract storage")
112+ }
113+ else throw("Only Waves is allowed as payment asset to bet")
114+ else throw("Bet already made")
115+ else throw("Betting closed")
110116 }
111117
112118
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let admin = "BefhVEanzhrtdYfeWquaoSsMZw3BEaEZZB86Kosqw7Qb"
55
66 let resultContract = ""
77
88 let betAmountKey = "global_betAmount"
99
1010 let deadlineKey = "global_deadline_h"
1111
1212 let scale = 100000000
1313
1414 func getAssetString (assetId) = match assetId {
1515 case b: ByteVector =>
1616 toBase58String(b)
1717 case _ =>
1818 "WAVES"
1919 }
2020
2121
2222 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
2323 then unit
2424 else fromBase58String(assetId)
2525
2626
2727 func tryGetInteger (key) = match getInteger(this, key) {
2828 case i: Int =>
2929 i
3030 case _ =>
3131 0
3232 }
3333
3434
3535 func tryGetBoolean (key) = match getBoolean(this, key) {
3636 case b: Boolean =>
3737 b
3838 case _ =>
3939 false
4040 }
4141
4242
4343 func tryGetString (key) = match getString(this, key) {
4444 case s: String =>
4545 s
4646 case _ =>
4747 ""
4848 }
4949
5050
5151 func allow (callerPBK) = (toBase58String(callerPBK) == admin)
5252
5353
5454 func isBet (address) = tryGetBoolean((address + "_betted"))
5555
5656
5757 func getBetAmount () = tryGetInteger(betAmountKey)
5858
5959
60+func getDeadLine () = tryGetInteger(deadlineKey)
61+
62+
6063 @Callable(i)
6164 func setBetAmount (amount) = if (allow(i.callerPublicKey))
6265 then [IntegerEntry(betAmountKey, amount)]
6366 else throw("Only admin")
6467
6568
6669
6770 @Callable(i)
6871 func setDeadLine (deadlineHeight) = if (allow(i.callerPublicKey))
6972 then [IntegerEntry(deadlineKey, deadlineHeight)]
7073 else throw("Only admin")
7174
7275
7376
7477 @Callable(i)
7578 func makeBet (group_winners,group_second,octo_winners,quarter_winners,semi_winners,winner) = {
7679 let pmt = i.payments[0]
7780 let pmt_asset = value(pmt.assetId)
7881 let pmt_amount = value(pmt.amount)
7982 let callerAddr = toString(i.caller)
8083 let betted = isBet(callerAddr)
81- if (!(betted))
82- then if ((getAssetString(pmt_asset) == "WAVES"))
83- then {
84- let betAmount = getBetAmount()
85- if ((betAmount != 0))
86- then if ((pmt_amount == betAmount))
87- then {
88- let groupWinners = split(group_winners, "_")
89- let groupSecond = split(group_second, "_")
90- let octoWinners = split(octo_winners, "_")
91- let quarterWinners = split(quarter_winners, "_")
92- let semiWinners = split(semi_winners, "_")
93- if (if (if (if (if ((size(groupWinners) == 8))
94- then (size(groupSecond) == 8)
95- else false)
96- then (size(octoWinners) == 8)
97- else false)
98- then (size(quarterWinners) == 4)
99- else false)
100- then (size(semiWinners) == 2)
101- else false)
102- then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "Final-winner"), winner)]
103- else throw("Incorrect data arrived in arguments")
104- }
105- else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment"))
106- else throw("Zero betAmount from contract storage")
107- }
108- else throw("Only Waves is allowed as payment asset to bet")
109- else throw("Bet already made")
84+ let deadline = getDeadLine()
85+ if ((deadline > height))
86+ then if (!(betted))
87+ then if ((getAssetString(pmt_asset) == "WAVES"))
88+ then {
89+ let betAmount = getBetAmount()
90+ if ((betAmount != 0))
91+ then if ((pmt_amount == betAmount))
92+ then {
93+ let groupWinners = split(group_winners, "_")
94+ let groupSecond = split(group_second, "_")
95+ let octoWinners = split(octo_winners, "_")
96+ let quarterWinners = split(quarter_winners, "_")
97+ let semiWinners = split(semi_winners, "_")
98+ if (if (if (if (if ((size(groupWinners) == 8))
99+ then (size(groupSecond) == 8)
100+ else false)
101+ then (size(octoWinners) == 8)
102+ else false)
103+ then (size(quarterWinners) == 4)
104+ else false)
105+ then (size(semiWinners) == 2)
106+ else false)
107+ then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "Final-winner"), winner)]
108+ else throw("Incorrect data arrived in arguments")
109+ }
110+ else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment"))
111+ else throw("Zero betAmount from contract storage")
112+ }
113+ else throw("Only Waves is allowed as payment asset to bet")
114+ else throw("Bet already made")
115+ else throw("Betting closed")
110116 }
111117
112118
113119
114120 @Callable(i)
115121 func deleteAddress (address) = {
116122 let callerAddr = toString(i.caller)
117123 if (allow(i.callerPublicKey))
118124 then [DeleteEntry((callerAddr + "_betted")), DeleteEntry((callerAddr + "_height")), DeleteEntry((callerAddr + "_GroupA-1st")), DeleteEntry((callerAddr + "_GroupA-2nd")), DeleteEntry((callerAddr + "_GroupB-1st")), DeleteEntry((callerAddr + "_GroupB-2nd")), DeleteEntry((callerAddr + "_GroupC-1st")), DeleteEntry((callerAddr + "_GroupC-2nd")), DeleteEntry((callerAddr + "_GroupD-1st")), DeleteEntry((callerAddr + "_GroupD-2nd")), DeleteEntry((callerAddr + "_GroupE-1st")), DeleteEntry((callerAddr + "_GroupE-2nd")), DeleteEntry((callerAddr + "_GroupF-1st")), DeleteEntry((callerAddr + "_GroupF-2nd")), DeleteEntry((callerAddr + "_GroupG-1st")), DeleteEntry((callerAddr + "_GroupG-2nd")), DeleteEntry((callerAddr + "_GroupH-1st")), DeleteEntry((callerAddr + "_GroupH-2nd")), DeleteEntry((callerAddr + "_Octo1-winner")), DeleteEntry((callerAddr + "_Octo2-winner")), DeleteEntry((callerAddr + "_Octo3-winner")), DeleteEntry((callerAddr + "_Octo4-winner")), DeleteEntry((callerAddr + "_Octo5-winner")), DeleteEntry((callerAddr + "_Octo6-winner")), DeleteEntry((callerAddr + "_Octo7-winner")), DeleteEntry((callerAddr + "_Octo8-winner")), DeleteEntry((callerAddr + "_Quarter1-winner")), DeleteEntry((callerAddr + "_Quarter2-winner")), DeleteEntry((callerAddr + "_Quarter3-winner")), DeleteEntry((callerAddr + "_Quarter4-winner")), DeleteEntry((callerAddr + "_Semi1-winner")), DeleteEntry((callerAddr + "_Semi2-winner")), DeleteEntry((callerAddr + "Final-winner"))]
119125 else throw("Only admin")
120126 }
121127
122128
123129 @Verifier(tx)
124130 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
125131

github/deemru/w8io/026f985 
34.46 ms