tx · 81bz7vBk87CqzmV6sH9aN8fBZa1ALfwkCUDx341d97od
3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt: -0.01400000 Waves
2019.02.07 07:52 [484193] smart account 3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt > SELF 0.00000000 Waves
{
"type": 13,
"id": "81bz7vBk87CqzmV6sH9aN8fBZa1ALfwkCUDx341d97od",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1549515146223,
"version": 1,
"sender": "3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt",
"senderPublicKey": "3qrTmx4jsup6WcnWLUdfzZayosrNHVNwSV99S6KvZwPy",
"proofs": [
"QoFhHQSyqgsiWoCvUjqfZDuXQU8KBYue4xrAXDKdvvxhMFcSyP3ej8pBUBUHHMEixnFbig6pZYDf7bEjWnpWBSV"
],
"script": "base64:AQQAAAAJcGF5b3V0RmVlAAAAAAAAACcQBAAAAAJtZQgFAAAAAnR4AAAABnNlbmRlcgQAAAAOYWRtaW5QdWJsaWNLZXkBAAAAIGL/tLlOEe0sDiS9r51DryoSV3N4uUZ64Ihb66W6BLAnBAAAAAZhbnN3ZXIJAQAAAAdleHRyYWN0AAAAAQkABB0AAAACBQAAAAJtZQIAAAAGYW5zd2VyBAAAAAh0aWNrZXRJZAkAAlkAAAABCQEAAAAHZXh0cmFjdAAAAAEJAAQdAAAAAgUAAAACbWUCAAAABnRpY2tldAQAAAAJZ2FtZVByaWNlCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAACbWUCAAAABXByaWNlBAAAAAtzdGFydEhlaWdodAkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIFAAAAAm1lAgAAAAZoZWlnaHQEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAABnR1bmluZwUAAAAHJG1hdGNoMAMJAAH0AAAAAwgFAAAABnR1bmluZwAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAABnR1bmluZwAAAAZwcm9vZnMAAAAAAAAAAAAFAAAADmFkbWluUHVibGljS2V5BgkAAAIAAAABAgAAABVZb3UgYXJlbid0IHF1aXogYWRtaW4DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAABnBheW91dAUAAAAHJG1hdGNoMAQAAAANdGlja2V0QmFsYW5jZQkAA+sAAAACCAUAAAAGcGF5b3V0AAAACXJlY2lwaWVudAUAAAAIdGlja2V0SWQEAAAABHBhaWQJAABnAAAAAgUAAAANdGlja2V0QmFsYW5jZQUAAAAJZ2FtZVByaWNlBAAAAAdzdGFydGVkCQAAZwAAAAIFAAAABmhlaWdodAUAAAALc3RhcnRIZWlnaHQEAAAAB2NvcnJlY3QJAAAAAAAAAgkAAloAAAABCAUAAAAGcGF5b3V0AAAACmF0dGFjaG1lbnQFAAAABmFuc3dlcgMJAQAAAAEhAAAAAQUAAAAEcGFpZAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAOWW91IG11c3QgaGF2ZSAJAAGkAAAAAQUAAAAJZ2FtZVByaWNlAgAAAAggdGlja2V0cwMJAQAAAAEhAAAAAQUAAAAHc3RhcnRlZAkAAAIAAAABAgAAABxUaGUgZ2FtZSBoYXMgbm90IHN0YXJ0ZWQgeWV0AwkBAAAAASEAAAABBQAAAAdjb3JyZWN0CQAAAgAAAAECAAAAGVRoZSBhbnN3ZXIgaXMgbm90IGNvcnJlY3QDCQAAAAAAAAIIBQAAAAZwYXlvdXQAAAADZmVlBQAAAAlwYXlvdXRGZWUJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAZwYXlvdXQAAAAKZmVlQXNzZXRJZAcG61J0uQ==",
"chainId": 84,
"height": 484193,
"spentComplexity": 0
}
View: original | compacted
Prev: DcxcgTQyBRwYB1Fhw1RExW5yocQiNe2uNUrKdrTNSwgf
Next: 7fdyGGHpdt7YMwSF7DJNDuaQtfYNQ3QeUSwJ5DKrZu4V
Diff:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 1 #-} |
---|
2 | 2 | | {-# CONTENT_TYPE EXPRESSION #-} |
---|
3 | | - | let payoutFee = 500000 |
---|
| 3 | + | let payoutFee = 10000 |
---|
4 | 4 | | let me = tx.sender |
---|
5 | | - | let adminPublicKey = base58'22GEgQRoT3xuSPQTTBNofWLnYQsn2ZTwAzd5f51CMFeb' |
---|
6 | | - | let answer = extract(getBinary(me, "answer")) |
---|
| 5 | + | let adminPublicKey = base58'7fT6vCaX5fAkqTzHGBTHyGGsfrFFSm8kUosN71qztfdY' |
---|
| 6 | + | let answer = extract(getString(me, "answer")) |
---|
7 | 7 | | let ticketId = fromBase58String(extract(getString(me, "ticket"))) |
---|
8 | 8 | | let gamePrice = extract(getInteger(me, "price")) |
---|
| 9 | + | let startHeight = extract(getInteger(me, "height")) |
---|
9 | 10 | | match tx { |
---|
10 | 11 | | case tuning: DataTransaction => |
---|
11 | 12 | | if (sigVerify(tuning.bodyBytes, tuning.proofs[0], adminPublicKey)) |
---|
|
14 | 15 | | case payout: TransferTransaction => |
---|
15 | 16 | | let ticketBalance = assetBalance(payout.recipient, ticketId) |
---|
16 | 17 | | let paid = (ticketBalance >= gamePrice) |
---|
| 18 | + | let started = (height >= startHeight) |
---|
| 19 | + | let correct = (toBase64String(payout.attachment) == answer) |
---|
17 | 20 | | if (!(paid)) |
---|
18 | 21 | | then throw((("You must have " + toString(gamePrice)) + " tickets")) |
---|
19 | | - | else { |
---|
20 | | - | let correct = (sha256(payout.attachment) == answer) |
---|
21 | | - | if (!(correct)) |
---|
22 | | - | then throw("Incorrect answer") |
---|
| 22 | + | else if (!(started)) |
---|
| 23 | + | then throw("The game has not started yet") |
---|
| 24 | + | else if (!(correct)) |
---|
| 25 | + | then throw("The answer is not correct") |
---|
23 | 26 | | else if ((payout.fee == payoutFee)) |
---|
24 | 27 | | then !(isDefined(payout.feeAssetId)) |
---|
25 | 28 | | else false |
---|
26 | | - | } |
---|
27 | 29 | | case _ => |
---|
28 | 30 | | true |
---|
29 | 31 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 1 #-} |
---|
2 | 2 | | {-# CONTENT_TYPE EXPRESSION #-} |
---|
3 | | - | let payoutFee = 500000 |
---|
| 3 | + | let payoutFee = 10000 |
---|
4 | 4 | | let me = tx.sender |
---|
5 | | - | let adminPublicKey = base58'22GEgQRoT3xuSPQTTBNofWLnYQsn2ZTwAzd5f51CMFeb' |
---|
6 | | - | let answer = extract(getBinary(me, "answer")) |
---|
| 5 | + | let adminPublicKey = base58'7fT6vCaX5fAkqTzHGBTHyGGsfrFFSm8kUosN71qztfdY' |
---|
| 6 | + | let answer = extract(getString(me, "answer")) |
---|
7 | 7 | | let ticketId = fromBase58String(extract(getString(me, "ticket"))) |
---|
8 | 8 | | let gamePrice = extract(getInteger(me, "price")) |
---|
| 9 | + | let startHeight = extract(getInteger(me, "height")) |
---|
9 | 10 | | match tx { |
---|
10 | 11 | | case tuning: DataTransaction => |
---|
11 | 12 | | if (sigVerify(tuning.bodyBytes, tuning.proofs[0], adminPublicKey)) |
---|
12 | 13 | | then true |
---|
13 | 14 | | else throw("You aren't quiz admin") |
---|
14 | 15 | | case payout: TransferTransaction => |
---|
15 | 16 | | let ticketBalance = assetBalance(payout.recipient, ticketId) |
---|
16 | 17 | | let paid = (ticketBalance >= gamePrice) |
---|
| 18 | + | let started = (height >= startHeight) |
---|
| 19 | + | let correct = (toBase64String(payout.attachment) == answer) |
---|
17 | 20 | | if (!(paid)) |
---|
18 | 21 | | then throw((("You must have " + toString(gamePrice)) + " tickets")) |
---|
19 | | - | else { |
---|
20 | | - | let correct = (sha256(payout.attachment) == answer) |
---|
21 | | - | if (!(correct)) |
---|
22 | | - | then throw("Incorrect answer") |
---|
| 22 | + | else if (!(started)) |
---|
| 23 | + | then throw("The game has not started yet") |
---|
| 24 | + | else if (!(correct)) |
---|
| 25 | + | then throw("The answer is not correct") |
---|
23 | 26 | | else if ((payout.fee == payoutFee)) |
---|
24 | 27 | | then !(isDefined(payout.feeAssetId)) |
---|
25 | 28 | | else false |
---|
26 | | - | } |
---|
27 | 29 | | case _ => |
---|
28 | 30 | | true |
---|
29 | 31 | | } |
---|