tx · 3Y61pD3A2KLV1vJA7MMu53hFE5xstD6iyNshVztvYg8e

3MxorpV6jKdNhrzHSujnjVXu7fr8PCHhMwi:  -0.01400000 Waves

2019.10.04 23:33 [705485] smart account 3MxorpV6jKdNhrzHSujnjVXu7fr8PCHhMwi > SELF 0.00000000 Waves

{ "type": 13, "id": "3Y61pD3A2KLV1vJA7MMu53hFE5xstD6iyNshVztvYg8e", "fee": 1400000, "feeAssetId": null, "timestamp": 1570221341991, "version": 1, "sender": "3MxorpV6jKdNhrzHSujnjVXu7fr8PCHhMwi", "senderPublicKey": "BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH", "proofs": [ "2KZpN34fUnnKofNBQLnj3AvtPvG49SvKeA4dR35h1VE7moPqLwfuTWYzZoc8ZkNKoAB54m5akANCfJDaFaUXLz7s" ], "script": "base64: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", "chainId": 84, "height": 705485, "spentComplexity": 0 } View: original | compacted Prev: 2DnrS96vgKjqCWTEvLHL6QZTJSszcKZCZewozravCtif Next: 4zScMVSEjUomSn2qj2bXPS4G76F9gAEShBkrxsQwCRd3 Diff:
OldNewDifferences
1919 }
2020
2121
22-func randomize (rsaSign) = {
23- let gameId = sessionId()
22+func randomize (rsaSign,thisSession) = {
23+ let gameId = thisSession
2424 let rsaSigValid = sigVerify(toBytes(gameId), toBytes(rsaSign), RandomizeKey)
2525 if (rsaSigValid)
2626 then {
5353
5454 @Callable(i)
5555 func dispense () = {
56+ let thisSession = sessionId()
5657 let paid = extract(i.payment)
5758 let message = "default message for now"
5859 let callerAccount = toBase58String(extract(i.callerPublicKey))
6667 else if ((paid.amount == 400000000))
6768 then "L"
6869 else "error"
69- let messageData = ((((((((toBase58String(extract(i.callerPublicKey)) + ";") + toString(paid.amount)) + ";") + toString(height)) + ";") + toString(randomize(toString(sessionId())))) + ";") + sizing)
70+ let messageData = ((((((((((toBase58String(extract(i.callerPublicKey)) + ";") + toString(paid.amount)) + ";") + toString(height)) + ";") + toString(thisSession)) + ";") + toString(randomize(toString(thisSession), toString(thisSession)))) + ";") + sizing)
7071 if ((sizing == "error"))
7172 then throw("Prices are 1, 2, and 4 waves. Other amounts will be rejected by the smart contract")
7273 else {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ownerPublicKey = base58'BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH'
55
66 let RandomizeKey = fromBase58String("BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH")
77
88 let deployInfo = "added data functionality (testphase)"
99
1010 func encryptData (message,pKey) = {
1111 let output = "rsaVerify(Sha256 ,message,pKey,pKey)"
1212 output
1313 }
1414
1515
1616 func sessionId () = {
1717 let gid = toInt(sha256(toBytes(lastBlock.height)))
1818 gid
1919 }
2020
2121
22-func randomize (rsaSign) = {
23- let gameId = sessionId()
22+func randomize (rsaSign,thisSession) = {
23+ let gameId = thisSession
2424 let rsaSigValid = sigVerify(toBytes(gameId), toBytes(rsaSign), RandomizeKey)
2525 if (rsaSigValid)
2626 then {
2727 let rand = (toInt(sha256(toBytes(rsaSign))) % 6)
2828 if ((0 > rand))
2929 then ((-1 * rand) + 1)
3030 else (rand + 1)
3131 }
3232 else throw("Invalid RSA signature")
3333 }
3434
3535
3636 func listParser (dataString,separator) = {
3737 let choppedlist = "x"
3838 choppedlist
3939 }
4040
4141
4242 func listBuilder (receiver,amount,txid) = {
4343 let compiledList = "placeholder"
4444 compiledList
4545 }
4646
4747
4848 func getData (dataKey) = {
4949 let dataPackage = getStringValue(this, dataKey)
5050 dataPackage
5151 }
5252
5353
5454 @Callable(i)
5555 func dispense () = {
56+ let thisSession = sessionId()
5657 let paid = extract(i.payment)
5758 let message = "default message for now"
5859 let callerAccount = toBase58String(extract(i.callerPublicKey))
5960 let callerAddress = toBase58String(extract(i.caller.bytes))
6061 let callerTxId = i.transactionId
6162 let asset = base58'6khhQRn6E7dsLqxnkGHnEKoZZJv9U7bhadzprWvjAi6m'
6263 let sizing = if ((paid.amount == 100000000))
6364 then "S"
6465 else if ((paid.amount == 200000000))
6566 then "M"
6667 else if ((paid.amount == 400000000))
6768 then "L"
6869 else "error"
69- let messageData = ((((((((toBase58String(extract(i.callerPublicKey)) + ";") + toString(paid.amount)) + ";") + toString(height)) + ";") + toString(randomize(toString(sessionId())))) + ";") + sizing)
70+ let messageData = ((((((((((toBase58String(extract(i.callerPublicKey)) + ";") + toString(paid.amount)) + ";") + toString(height)) + ";") + toString(thisSession)) + ";") + toString(randomize(toString(thisSession), toString(thisSession)))) + ";") + sizing)
7071 if ((sizing == "error"))
7172 then throw("Prices are 1, 2, and 4 waves. Other amounts will be rejected by the smart contract")
7273 else {
7374 let tokenAmount = (paid.amount * 3)
7475 ScriptResult(WriteSet([DataEntry(callerAccount, messageData)]), TransferSet([ScriptTransfer(i.caller, tokenAmount, asset)]))
7576 }
7677 }
7778
7879
7980 @Verifier(tx)
8081 func verify () = match tx {
8182 case d: SetScriptTransaction =>
8283 sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
8384 case d: DataTransaction =>
8485 true
8586 case d: TransferTransaction =>
8687 true
8788 case d: IssueTransaction =>
8889 true
8990 case d: ReissueTransaction =>
9091 true
9192 case _ =>
9293 false
9394 }
9495

github/deemru/w8io/169f3d6 
33.41 ms