tx · 6w5gnQyfma8Yz2Q4qwPtG1PmcUnDCQbycYReJCyzSdYF

3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD:  -0.01500000 Waves

2019.10.03 17:52 [703675] smart account 3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD > SELF 0.00000000 Waves

{ "type": 13, "id": "6w5gnQyfma8Yz2Q4qwPtG1PmcUnDCQbycYReJCyzSdYF", "fee": 1500000, "feeAssetId": null, "timestamp": 1570114363137, "version": 1, "sender": "3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD", "senderPublicKey": "8W9JLTJTfxrJrBNXxngzueBF4vJqeb6p9jFob7wb6QWQ", "proofs": [ "3kMtxoEZhmq9ekDzWwZH7mbRGMNffZN3xmd1mL9z9TtGJHsGv4UU6MaBwVxYYdteLth2bys5By6PQxSRrAN6FyFa" ], "script": "base64:AAIDAAAAAAAAAAwIARIAEgYKBAgCAgIAAAAjAAAAAA1yc2FQdWJsaWNLZXkxCQACWwAAAAECAAAAh2Jhc2U2NDpNRnd3RFFZSktvWklodmNOQVFFQkJRQURTd0F3U0FKQkFPa2l1ei9CVjRFam94R2hUbU5DYnQyVGdrYlNQSC93NjliM0YxckttRDYxSmlQWHZ2RjhMMnBJOXhPWWNXNEZtb0VaVkhsUlF0QWxhSnlrbDMrcnNyRUNBd0VBQVE9PQAAAAANcnNhUHVibGljS2V5MgkAAlsAAAABAgAAAIdiYXNlNjQ6TUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSm5YemJNL1Yyc0RWMVVMYlBTT2xIa2xkT1RXUnJIaTVmeElrQm11ZXZyQ2xNUFZIN3JxY2N3aXJETmNNZElkd1hISTlBZGhqOUZXandHSXdmVS9LNk1DQXdFQUFRPT0AAAAADXJzYVB1YmxpY0tleTMJAAJbAAAAAQIAAACHYmFzZTY0Ok1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQU9SRGV2eTByNGt6THFPeVNsb0I2M0h1djJlNHplSEtIakNzeTV2dEZLbVdaYlhKYThnWll0NCtFa2xGSW8xSzlvcXU1QkFQVmZKM0ZPenMyVTFBK2cwQ0F3RUFBUT09AAAAAA1nYW1lVGltZUZyYW1lCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAAIAAAAACHN0YXRlQWNjAgAAAAhBY2NlcHRlZAAAAAAIc3RhdGVXaW4CAAAAA1dpbgAAAAAMc3RhdGVUaW1lb3V0AgAAAAxXaW5CeVRpbWVvdXQAAAAACXN0YXRlTG9zZQIAAAAETG9zZQAAAAAHd2F2ZXNJZAUAAAAEdW5pdAAAAAAFYnRjSWQBAAAAILnnP6qPECbbo926KJMYdX6tAqIA2JrhOgnWxVE3CxuNAAAAAAVldGhJZAEAAAAgoVTq4z3P32thsbSj93DFuMGkeUhjXwh3orXSFXtzjDoAAAAABWx0Y0lkAQAAACCaHvbSLhAqwVDRQJIo+jCh7lo7IjsXvoXO0DdhX3IMigAAAAAFdnN0SWQBAAAAIIrpopnFTIZLgmgYgJu7dCIAFucYnOl+hUadP2UrzGuKAAAAAAV3Y3RJZAEAAAAgzJXu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AAAIZGF0YUxpc3QJAQAAAAtnZXREYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAAABAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAEEAAAABmJldEFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAACBAAAAAlhc3NldE5hbWUJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAMEAAAACWdhbWVTdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAAEBAAAAAlhc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAACWFzc2V0TmFtZQQAAAANZ2FtZVRpbWVDaGVjawkAAGYAAAACBQAAAA1nYW1lVGltZUZyYW1lCQAAZQAAAAIFAAAABmhlaWdodAUAAAAJZ2FtZVN0YXJ0BAAAAAxzdGF0ZUNvcnJlY3QJAAAAAAAAAgUAAAAJZ2FtZVN0YXRlBQAAAAhzdGF0ZUFjYwQAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlCQEAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAACBQAAAAZiZXRBbXQFAAAACWFzc2V0TmFtZQQAAAATZHJvcHBlZEVsZW1lbnRzTGlzdAQAAAAIcm9sbDFJbnQJAQAAAAhyc2FUb0ludAAAAAMFAAAABmdhbWVJZAUAAAAIcnNhU2lnbjEFAAAADXJzYVB1YmxpY0tleTEEAAAACHJvbGwySW50CQEAAAAIcnNhVG9JbnQAAAADBQAAAAZnYW1lSWQFAAAACHJzYVNpZ24yBQAAAA1yc2FQdWJsaWNLZXkyBAAAAAhyb2xsM0ludAkBAAAACHJzYVRvSW50AAAAAwUAAAAGZ2FtZUlkBQAAAAhyc2FTaWduMwUAAAANcnNhUHVibGljS2V5MwQAAAAIZWxlbWVudDEJAQAAAAlpbnRUb0VsZW0AAAABBQAAAAhyb2xsMUlu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", "chainId": 84, "height": 703675, "spentComplexity": 0 } View: original | compacted Prev: G9VyeGTSJB3annR4NbFn3J4YvxigUSsprChZtP4Phr8h Next: F8138U8E9hDf27kAe4xjZXqXftVsNcJyQ4yZHwM7Go8G Diff:
OldNewDifferences
2929
3030 let wctId = base58'EmcmfM27TPaemhuREZGD8WLvsuLCdqx8WovMrDQKbXS1'
3131
32-let WavesMinAmt = 100000000
32+let divider = 1000
33+
34+let WavesMinAmt = (100000000 / divider)
3335
3436 let WavesMaxAmt = (WavesMinAmt * 10)
3537
36-let BtcMinAmt = 10000
38+let BtcMinAmt = (10000 / divider)
3739
3840 let BtcMaxAmt = (BtcMinAmt * 10)
3941
40-let EthMinAmt = 1000000
42+let EthMinAmt = (1000000 / divider)
4143
4244 let EthMaxAmt = (EthMinAmt * 10)
4345
44-let LtcMinAmt = 2000000
46+let LtcMinAmt = (2000000 / divider)
4547
4648 let LtcMaxAmt = (LtcMinAmt * 10)
4749
48-let WctMinAmt = 500000000
50+let WctMinAmt = (500000000 / divider)
4951
5052 let WctMaxAmt = (WctMinAmt * 10)
5153
52-let VstMinAmt = 500000000
54+let VstMinAmt = (500000000 / divider)
5355
5456 let VstMaxAmt = (VstMinAmt * 10)
5557
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let rsaPublicKey1 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkiuz/BV4EjoxGhTmNCbt2TgkbSPH/w69b3F1rKmD61JiPXvvF8L2pI9xOYcW4FmoEZVHlRQtAlaJykl3+rsrECAwEAAQ==")
55
66 let rsaPublicKey2 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnXzbM/V2sDV1ULbPSOlHkldOTWRrHi5fxIkBmuevrClMPVH7rqccwirDNcMdIdwXHI9Adhj9FWjwGIwfU/K6MCAwEAAQ==")
77
88 let rsaPublicKey3 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAORDevy0r4kzLqOySloB63Huv2e4zeHKHjCsy5vtFKmWZbXJa8gZYt4+EklFIo1K9oqu5BAPVfJ3FOzs2U1A+g0CAwEAAQ==")
99
1010 let gameTimeFrame = (1440 * 2)
1111
1212 let stateAcc = "Accepted"
1313
1414 let stateWin = "Win"
1515
1616 let stateTimeout = "WinByTimeout"
1717
1818 let stateLose = "Lose"
1919
2020 let wavesId = unit
2121
2222 let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
2323
2424 let ethId = base58'BrmjyAWT5jjr3Wpsiyivyvg5vDuzoX2s93WgiexXetB3'
2525
2626 let ltcId = base58'BNdAstuFogzSyN2rY3beJbnBYwYcu7RzTHFjW88g8roK'
2727
2828 let vstId = base58'AMFteLfPzPhTsFc3NfvHG7fSRUnsp3tJXPH88G1PCisT'
2929
3030 let wctId = base58'EmcmfM27TPaemhuREZGD8WLvsuLCdqx8WovMrDQKbXS1'
3131
32-let WavesMinAmt = 100000000
32+let divider = 1000
33+
34+let WavesMinAmt = (100000000 / divider)
3335
3436 let WavesMaxAmt = (WavesMinAmt * 10)
3537
36-let BtcMinAmt = 10000
38+let BtcMinAmt = (10000 / divider)
3739
3840 let BtcMaxAmt = (BtcMinAmt * 10)
3941
40-let EthMinAmt = 1000000
42+let EthMinAmt = (1000000 / divider)
4143
4244 let EthMaxAmt = (EthMinAmt * 10)
4345
44-let LtcMinAmt = 2000000
46+let LtcMinAmt = (2000000 / divider)
4547
4648 let LtcMaxAmt = (LtcMinAmt * 10)
4749
48-let WctMinAmt = 500000000
50+let WctMinAmt = (500000000 / divider)
4951
5052 let WctMaxAmt = (WctMinAmt * 10)
5153
52-let VstMinAmt = 500000000
54+let VstMinAmt = (500000000 / divider)
5355
5456 let VstMaxAmt = (VstMinAmt * 10)
5557
5658 func pmtAmtCheck (pmtAssetId,pmtAmt) = if ((pmtAssetId == "WAVES"))
5759 then if (if ((pmtAmt >= WavesMinAmt))
5860 then (WavesMaxAmt >= pmtAmt)
5961 else false)
6062 then true
6163 else throw("Bet amount is not in range")
6264 else if ((pmtAssetId == "BTC"))
6365 then if (if ((pmtAmt >= BtcMinAmt))
6466 then (BtcMaxAmt >= pmtAmt)
6567 else false)
6668 then true
6769 else throw("Bet amount is not in range")
6870 else if ((pmtAssetId == "ETH"))
6971 then if (if ((pmtAmt >= EthMinAmt))
7072 then (EthMaxAmt >= pmtAmt)
7173 else false)
7274 then true
7375 else throw("Bet amount is not in range")
7476 else if ((pmtAssetId == "LTC"))
7577 then if (if ((pmtAmt >= LtcMinAmt))
7678 then (LtcMaxAmt >= pmtAmt)
7779 else false)
7880 then true
7981 else throw("Bet amount is not in range")
8082 else if ((pmtAssetId == "WCT"))
8183 then if (if ((pmtAmt >= WctMinAmt))
8284 then (WctMaxAmt >= pmtAmt)
8385 else false)
8486 then true
8587 else throw("Bet amount is not in range")
8688 else if (if ((pmtAmt >= VstMinAmt))
8789 then (VstMaxAmt >= pmtAmt)
8890 else false)
8991 then true
9092 else throw("Bet amount is not in range")
9193
9294
9395 func increaseReservedBalance (pmtAmt,pmtAssetId) = {
9496 let currentReservedBalance = {
9597 let valueReservedBalance = getInteger(this, ("Reserved_" + pmtAssetId))
9698 match valueReservedBalance {
9799 case a: Int =>
98100 a
99101 case _ =>
100102 0
101103 }
102104 }
103105 let newReservedBalance = (currentReservedBalance + pmtAmt)
104106 if ((wavesBalance(this) >= newReservedBalance))
105107 then {
106108 let increaseReservedBalance = newReservedBalance
107109 increaseReservedBalance
108110 }
109111 else throw("Bet was rejected. Insufficient funds on game account.")
110112 }
111113
112114
113115 func getDataList (gameId) = {
114116 let getDataString = getString(this, gameId)
115117 let a = match getDataString {
116118 case a: String =>
117119 a
118120 case _ =>
119121 throw("GameId was not found")
120122 }
121123 split(a, "_")
122124 }
123125
124126
125127 func intToElem (rsaInt) = if ((2 > rsaInt))
126128 then "7"
127129 else if ((4 > rsaInt))
128130 then "6"
129131 else if ((6 > rsaInt))
130132 then "5"
131133 else if ((8 > rsaInt))
132134 then "4"
133135 else if ((10 > rsaInt))
134136 then "3"
135137 else if ((12 > rsaInt))
136138 then "2"
137139 else "1"
138140
139141
140142 func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
141143 let rsaCheck = rsaVerify(SHA256, toBytes(gameId), rsaSign, rsaPublicKey)
142144 if (rsaCheck)
143145 then {
144146 let rsaInt = ((toInt(sha256(rsaSign)) % 19) + 1)
145147 if (if ((rsaInt > 0))
146148 then (20 >= rsaInt)
147149 else false)
148150 then rsaInt
149151 else throw("Rsa integer is not in range")
150152 }
151153 else throw("Rsa Signature is invalid")
152154 }
153155
154156
155157 func decreaseReservedBalance (betAmt,assetId) = {
156158 let valueReservedBalance = getInteger(this, ("Reserved_" + assetId))
157159 let extractReservedBalance = match valueReservedBalance {
158160 case a: Int =>
159161 a
160162 case _ =>
161163 0
162164 }
163165 let decreaseReservedBalance = (extractReservedBalance - betAmt)
164166 if ((decreaseReservedBalance > 0))
165167 then decreaseReservedBalance
166168 else throw("Reserved balance couldn't be less than 0")
167169 }
168170
169171
170172 func defineMultiplier (threeDrums,twoDrums) = if ((threeDrums == "777"))
171173 then 5370
172174 else if ((threeDrums == "666"))
173175 then 1300
174176 else if ((threeDrums == "555"))
175177 then 450
176178 else if ((threeDrums == "444"))
177179 then 200
178180 else if ((threeDrums == "333"))
179181 then 150
180182 else if ((threeDrums == "222"))
181183 then 110
182184 else if ((threeDrums == "111"))
183185 then 40
184186 else if ((twoDrums == "77"))
185187 then 270
186188 else if ((twoDrums == "66"))
187189 then 130
188190 else if ((twoDrums == "55"))
189191 then 65
190192 else if ((twoDrums == "44"))
191193 then 30
192194 else if ((twoDrums == "33"))
193195 then 20
194196 else if ((twoDrums == "22"))
195197 then 15
196198 else if ((twoDrums == "11"))
197199 then 10
198200 else 0
199201
200202
201203 func AssetNameToBase58 (assetName) = if ((assetName == "WAVES"))
202204 then wavesId
203205 else if ((assetName == "BTC"))
204206 then btcId
205207 else if ((assetName == "ETH"))
206208 then ethId
207209 else if ((assetName == "LTC"))
208210 then ltcId
209211 else if ((assetName == "VST"))
210212 then vstId
211213 else if ((assetName == "WCT"))
212214 then wctId
213215 else throw("Asset name is incorrect")
214216
215217
216218 @Callable(i)
217219 func bet () = {
218220 let pmt = extract(i.payment)
219221 let pmtAmt = pmt.amount
220222 let gameId = toBase58String(i.transactionId)
221223 let gameStart = height
222224 let playerPublicKey = toBase58String(i.callerPublicKey)
223225 let pmtAssetId = if (!(isDefined(pmt.assetId)))
224226 then "WAVES"
225227 else if ((pmt.assetId == btcId))
226228 then "BTC"
227229 else if ((pmt.assetId == ethId))
228230 then "ETH"
229231 else if ((pmt.assetId == ltcId))
230232 then "LTC"
231233 else if ((pmt.assetId == wctId))
232234 then "WCT"
233235 else if ((pmt.assetId == vstId))
234236 then "VST"
235237 else throw("AssetId is incorrect")
236238 let setReservedBalance = increaseReservedBalance(pmtAmt, pmtAssetId)
237239 let pmtAmtCorrect = pmtAmtCheck(pmtAssetId, pmtAmt)
238240 if (pmtAmtCorrect)
239241 then {
240242 let dataString = ((((((((stateAcc + "_") + playerPublicKey) + "_") + toString(pmtAmt)) + "_") + pmtAssetId) + "_") + toString(gameStart))
241243 WriteSet([DataEntry(gameId, dataString), DataEntry(("Reserved_" + pmtAssetId), setReservedBalance)])
242244 }
243245 else throw("assetId is incorrect")
244246 }
245247
246248
247249
248250 @Callable(i)
249251 func withdraw (gameId,rsaSign1,rsaSign2,rsaSign3) = {
250252 let dataList = getDataList(gameId)
251253 let gameState = dataList[0]
252254 let playerAddress = addressFromPublicKey(fromBase58String(dataList[1]))
253255 let betAmt = parseIntValue(dataList[2])
254256 let assetName = dataList[3]
255257 let gameStart = parseIntValue(dataList[4])
256258 let assetId58 = AssetNameToBase58(assetName)
257259 let gameTimeCheck = (gameTimeFrame > (height - gameStart))
258260 let stateCorrect = (gameState == stateAcc)
259261 let setReservedBalance = decreaseReservedBalance(betAmt, assetName)
260262 let droppedElementsList = {
261263 let roll1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
262264 let roll2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
263265 let roll3Int = rsaToInt(gameId, rsaSign3, rsaPublicKey3)
264266 let element1 = intToElem(roll1Int)
265267 let element2 = intToElem(roll2Int)
266268 let element3 = intToElem(roll3Int)
267269 [element1, element2, element3]
268270 }
269271 let winAmt = {
270272 let threeDrums = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
271273 let twoDrums = (droppedElementsList[0] + droppedElementsList[1])
272274 let multiplier = defineMultiplier(threeDrums, twoDrums)
273275 ((betAmt * multiplier) / 10)
274276 }
275277 let stringForNewData = ((((((dataList[1] + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4])
276278 let droppedElements = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
277279 if (stateCorrect)
278280 then if (gameTimeCheck)
279281 then if ((winAmt == 0))
280282 then WriteSet([DataEntry(gameId, (((stateLose + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)])
281283 else ScriptResult(WriteSet([DataEntry(gameId, (((stateWin + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winAmt, assetId58)]))
282284 else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
283285 else throw("Game state is incorrect")
284286 }
285287
286288
287289 @Verifier(tx)
288290 func verify () = match tx {
289291 case ttx: TransferTransaction =>
290292 let valueReservedBalance = getInteger(this, "Reserved")
291293 let reservedBalance = match valueReservedBalance {
292294 case a: Int =>
293295 a
294296 case _ =>
295297 0
296298 }
297299 let availableBalance = (wavesBalance(this) - reservedBalance)
298300 let availibleAmount = (availableBalance >= ttx.amount)
299301 let signature = sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
300302 if (availibleAmount)
301303 then signature
302304 else false
303305 case sstx: SetScriptTransaction =>
304306 sigVerify(sstx.bodyBytes, sstx.proofs[0], sstx.senderPublicKey)
305307 case istx: InvokeScriptTransaction =>
306308 sigVerify(istx.bodyBytes, istx.proofs[0], istx.senderPublicKey)
307309 case _ =>
308310 false
309311 }
310312

github/deemru/w8io/873ac7e 
32.21 ms