tx · 469nR6kLbqvmHhEbJJUes3SiKNzuykLrQXUuhqW9G8Dx

3N8M61KCm8G72mK8PjacFbnnxdbFsyqQDeT:  -0.01400000 Waves

2019.06.23 14:08 [554605] smart account 3N8M61KCm8G72mK8PjacFbnnxdbFsyqQDeT > SELF 0.00000000 Waves

{ "type": 13, "id": "469nR6kLbqvmHhEbJJUes3SiKNzuykLrQXUuhqW9G8Dx", "fee": 1400000, "feeAssetId": null, "timestamp": 1561288089189, "version": 1, "sender": "3N8M61KCm8G72mK8PjacFbnnxdbFsyqQDeT", "senderPublicKey": "Bhyvkx4xdbEi4KPJNZSzx9gZgzgyLEsavuj2kYSt7SST", "proofs": [ "51eqoKxDxVjjEwAwdUbE8PV4YAggLvJnPYX91NjhBrbA1yoY23ABiqhhUwGtS2Zi38jRk2sjGnkMgHWB7G3eQ4UW" ], "script": "base64:AAIDAAAAAAAAAAAAAAADAAAAABZFcnJvck9ubHlXYXZlc0FjY2VwdGVkAgAAABllcnJvcl9vbmx5X3dhdmVzX2FjY2VwdGVkAAAAAA9TZXJ2ZXJQdWJsaWNLZXkBAAAAGgFUyizbHfX10DqIle41wD/n3rZAR7k35/dEAAAAABBSb3VsZXR0ZVNlY3Rpb25zAAAAAAAAAAAVAAAAAgAAAAFpAQAAAA9HZW5lcmF0ZVJhbmRJbnQAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAtyc2FTaWdWYWxpZAkAAfQAAAADCQACWQAAAAEFAAAABmdhbWVJZAkAAlkAAAABBQAAAAdyc2FTaWduBQAAAA9TZXJ2ZXJQdWJsaWNLZXkDBQAAAAtyc2FTaWdWYWxpZAQAAAAEcmFuZAkAAGoAAAACCQAEsQAAAAEJAAH3AAAAAQkAAZsAAAABBQAAAAdyc2FTaWduBQAAABBSb3VsZXR0ZVNlY3Rpb25zCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAARvcmlnCQAEsQAAAAEJAAH3AAAAAQkAAZsAAAABBQAAAAdyc2FTaWduCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAARyYW5kBQAAAARyYW5kBQAAAANuaWwJAAACAAAAAQIAAAAVSW52YWxpZCBSU0Egc2lnbmF0dXJlAAAAAWkBAAAAA2JldAAAAAEAAAAOZXhwZWN0ZWRSZXN1bHQEAAAAEGxhc3RBdWN0aW9uSWRLZXkCAAAAD2xhc3RfYXVjdGlvbl9pZAQAAAANbGFzdEF1Y3Rpb25JZAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAABBsYXN0QXVjdGlvbklkS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAAmlkCQAAZAAAAAIFAAAADWxhc3RBdWN0aW9uSWQAAAAAAAAAAAEEAAAADG5ld0F1Y3Rpb25JZAkAAaQAAAABBQAAAAJpZAQAAAALb3duZXJXYWxsZXQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10CQEAAAAFdmFsdWUAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABBQAAABZFcnJvck9ubHlXYXZlc0FjY2VwdGVkBAAAAAdhc3NldElkCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAASYXVjdGlvbkR1cmF0aW9uS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8FAAAADG5ld0F1Y3Rpb25JZAIAAAAJX2R1cmF0aW9uBAAAABBhdWN0aW9uTWluQmlkS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8FAAAADG5ld0F1Y3Rpb25JZAIAAAAIX21pbl9iaWQEAAAAEWF1Y3Rpb25MYXN0QmlkS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8FAAAADG5ld0F1Y3Rpb25JZAIAAAAJX2xhc3RfYmlkBAAAABZhdWN0aW9uTGFzdEJpZE93bmVyS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8FAAAADG5ld0F1Y3Rpb25JZAIAAAAPX2xhc3RfYmlkX293bmVyBAAAAA9hdWN0aW9uT3duZXJLZXkJAAEsAAAAAgkAASwAAAACAgAAAAhhdWN0aW9uXwUAAAAMbmV3QXVjdGlvbklkAgAAAAZfb3duZXIEAAAAEGF1Y3Rpb25BbW91bnRLZXkJAAEsAAAAAgkAASwAAAACAgAAAAhhdWN0aW9uXwUAAAAMbmV3QXVjdGlvbklkAgAAAAdfYW1vdW50BAAAABFhdWN0aW9uQXNzZXRJZEtleQkAASwAAAACCQABLAAAAAICAAAACGF1Y3Rpb25fBQAAAAxuZXdBdWN0aW9uSWQCAAAACV9hc3NldF9pZAQAAAASYXVjdGlvbklzQWN0aXZlS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8FAAAADG5ld0F1Y3Rpb25JZAIAAAAKX2lzX2FjdGl2ZQQAAAAOdXNlckJhbGFuY2VLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGJhbGFuY2VfBQAAAAtvd25lcldhbGxldAIAAAABXwUAAAAHYXNzZXRJZAQAAAANY3VycmVudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAA51c2VyQmFsYW5jZUtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAluZXdBbW91bnQJAABkAAAAAgUAAAANY3VycmVudEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEWF1Y3Rpb25MYXN0QmlkS2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9hdWN0aW9uT3duZXJLZXkFAAAAC293bmVyV2FsbGV0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABBhdWN0aW9uQW1vdW50S2V5CAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAARYXVjdGlvbkFzc2V0SWRLZXkFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADnVzZXJCYWxhbmNlS2V5BQAAAAluZXdBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmF1Y3Rpb25Jc0FjdGl2ZUtleQYJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFmF1Y3Rpb25MYXN0QmlkT3duZXJLZXkCAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAQbGFzdEF1Y3Rpb25JZEtleQUAAAACaWQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAkAAGcAAAACCQAAZQAAAAIJAQAAAAx3YXZlc0JhbGFuY2UAAAABBQAAAAR0aGlzCAUAAAADdHR4AAAABmFtb3VudAAAAAAAAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAA3N0eAUAAAAHJG1hdGNoMAYHBxmnuTI=", "chainId": 84, "height": 554605, "spentComplexity": 0 } View: original | compacted Prev: 23uNSTdLVq9AJYdPTqaUC1sWqEtuiRFqzz63v1XtuaHh Next: 6jLchDUvcbuLnWgzxo6fGnaetESJ93DYuXsGgbVwLNNJ Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ErrorOnlyWavesAccepted = "error_only_waves_accepted"
55
66 let ServerPublicKey = base58'3N8M61KCm8G72mK8PjacFbnnxdbFsyqQDeT'
77
88 let RouletteSections = 21
99
1010 @Callable(i)
1111 func GenerateRandInt (gameId,rsaSign) = {
1212 let rsaSigValid = sigVerify(fromBase58String(gameId), fromBase58String(rsaSign), ServerPublicKey)
1313 if (rsaSigValid)
1414 then {
1515 let rand = (toInt(sha256(toBytes(rsaSign))) % RouletteSections)
1616 WriteSet([DataEntry("orig", toInt(sha256(toBytes(rsaSign)))), DataEntry("rand", rand)])
1717 }
1818 else throw("Invalid RSA signature")
1919 }
2020
2121
2222
2323 @Callable(i)
2424 func bet (expectedResult) = {
2525 let lastAuctionIdKey = "last_auction_id"
2626 let lastAuctionId = match getInteger(this, lastAuctionIdKey) {
2727 case a: Int =>
2828 a
2929 case _ =>
3030 0
3131 }
3232 let id = (lastAuctionId + 1)
3333 let newAuctionId = toString(id)
3434 let ownerWallet = toBase58String(i.caller.bytes)
3535 let pmt = value(i.payment)
3636 if (isDefined(pmt.assetId))
3737 then throw(ErrorOnlyWavesAccepted)
3838 else {
3939 let assetId = toBase58String(value(pmt.assetId))
4040 let auctionDurationKey = (("auction_" + newAuctionId) + "_duration")
4141 let auctionMinBidKey = (("auction_" + newAuctionId) + "_min_bid")
4242 let auctionLastBidKey = (("auction_" + newAuctionId) + "_last_bid")
4343 let auctionLastBidOwnerKey = (("auction_" + newAuctionId) + "_last_bid_owner")
4444 let auctionOwnerKey = (("auction_" + newAuctionId) + "_owner")
4545 let auctionAmountKey = (("auction_" + newAuctionId) + "_amount")
4646 let auctionAssetIdKey = (("auction_" + newAuctionId) + "_asset_id")
4747 let auctionIsActiveKey = (("auction_" + newAuctionId) + "_is_active")
4848 let userBalanceKey = ((("balance_" + ownerWallet) + "_") + assetId)
4949 let currentAmount = match getInteger(this, userBalanceKey) {
5050 case a: Int =>
5151 a
5252 case _ =>
5353 0
5454 }
5555 let newAmount = (currentAmount + pmt.amount)
5656 WriteSet([DataEntry(auctionLastBidKey, 0), DataEntry(auctionOwnerKey, ownerWallet), DataEntry(auctionAmountKey, pmt.amount), DataEntry(auctionAssetIdKey, assetId), DataEntry(userBalanceKey, newAmount), DataEntry(auctionIsActiveKey, true), DataEntry(auctionLastBidOwnerKey, ""), DataEntry(lastAuctionIdKey, id)])
5757 }
5858 }
5959
6060
6161 @Verifier(tx)
6262 func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
6363 then match tx {
6464 case ttx: TransferTransaction =>
6565 ((wavesBalance(this) - ttx.amount) >= 0)
6666 case stx: SetScriptTransaction =>
6767 true
6868 case _ =>
6969 false
7070 }
7171 else false
7272

github/deemru/w8io/3ef1775 
73.24 ms