tx · Cp5oaTugAxUD5TeKoSsz2wM6CJSzdqUxLiMXcGtTCBHH

3N3gK4JnYTgxxBK3CqWnbjUbqdHZwvqecFF:  -0.01000000 Waves

2019.01.23 15:07 [462758] smart account 3N3gK4JnYTgxxBK3CqWnbjUbqdHZwvqecFF > SELF 0.00000000 Waves

{ "type": 13, "id": "Cp5oaTugAxUD5TeKoSsz2wM6CJSzdqUxLiMXcGtTCBHH", "fee": 1000000, "feeAssetId": null, "timestamp": 1548245338469, "version": 1, "sender": "3N3gK4JnYTgxxBK3CqWnbjUbqdHZwvqecFF", "senderPublicKey": "6G2KMGwv9nFye4cfrjxRAHaWstnA8Yog3X3GqkvdvmyH", "proofs": [ "5XFrvdjnzMD3kC7xcjqNLbqMJdsHrtKSUEfm4Ufex8pv4mWaenMAwZezD98MeYHKYZUsXV23Vnx4VTnnBjrgTU5r" ], "script": "base64:AQQAAAAEV0FWRQAAAAAAAJiWgAQAAAAJYmV0QW1vdW50CQAAaAAAAAIAAAAAAAAAAAEFAAAABFdBVkUEAAAACWRhdGFUeEZlZQAAAAAAAJiWgAQAAAANbWluSGVpZ2h0RGlmZgAAAAAAAAAAAgQAAAANbWF4SGVpZ2h0RGlmZgAAAAAAAAAABQQAAAACbWUIBQAAAAJ0eAAAAAZzZW5kZXIEAAAAEGhlaWdodFRvR2V0TW9uZXkJAQAAAAdleHRyYWN0AAAAAQkABBoAAAACBQAAAAJtZQIAAAAQaGVpZ2h0VG9HZXRNb25leQQAAAAJcGF5b3V0RmVlAAAAAAAAB6EgBAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAAF0BQAAAAckbWF0Y2gwBAAAAAhnYW1lT3ZlcgkAAGcAAAACBQAAAAZoZWlnaHQFAAAAEGhlaWdodFRvR2V0TW9uZXkEAAAAC3BheW1lbnRUeElkCQEAAAAHZXh0cmFjdAAAAAEJAAQTAAAAAggFAAAAAXQAAAAEZGF0YQIAAAALbGFzdFBheW1lbnQEAAAACXBheW1lbnRUeAkAA+gAAAABCQACWQAAAAEFAAAAC3BheW1lbnRUeElkBAAAAAckbWF0Y2gxBQAAAAlwYXltZW50VHgDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAACXBheW1lbnRUeAUAAAAHJG1hdGNoMQQAAAAQZG91YmxlUGF5bWVudFVzZQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAACbWUFAAAAC3BheW1lbnRUeElkBAAAAAdpc1ZhbGlkCQAAZwAAAAIIBQAAAAlwYXltZW50VHgAAAAGYW1vdW50CQAAZAAAAAIFAAAACWJldEFtb3VudAUAAAAJZGF0YVR4RmVlBAAAAAppc0ZlZVZhbGlkCQAAAAAAAAIIBQAAAAF0AAAAA2ZlZQUAAAAJZGF0YVR4RmVlBAAAAA52YWxpZFJlY2lwaWVudAkAAAAAAAACCAUAAAAJcGF5bWVudFR4AAAACXJlY2lwaWVudAUAAAACbWUEAAAADGNvcnJlY3RBc3NldAkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAACXBheW1lbnRUeAAAAAdhc3NldElkBAAAABNuZXdIZWlnaHRUb0dldE1vbmV5CQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAXQAAAAEZGF0YQIAAAAQaGVpZ2h0VG9HZXRNb25leQQAAAANaGVpZ2h0SXNWYWxpZAMJAABmAAAAAgkAAGUAAAACBQAAABNuZXdIZWlnaHRUb0dldE1vbmV5BQAAAAZoZWlnaHQFAAAADW1pbkhlaWdodERpZmYJAABmAAAAAgUAAAANbWF4SGVpZ2h0RGlmZgkAAGUAAAACBQAAABNuZXdIZWlnaHRUb0dldE1vbmV5BQAAAAZoZWlnaHQHBAAAAAtjb3JyZWN0RGF0YQMJAAAAAAAAAgkAAZAAAAABCAUAAAABdAAAAARkYXRhAAAAAAAAAAADCQEAAAAJaXNEZWZpbmVkAAAAAQkABBMAAAACCAUAAAABdAAAAARkYXRhBQAAAAtwYXltZW50VHhJZAcEAAAABnNpZ25lZAkAAfQAAAADCAUAAAABdAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAXQAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAAJcGF5bWVudFR4AAAAD3NlbmRlclB1YmxpY0tleQMDAwMDAwMDCQEAAAABIQAAAAEFAAAACGdhbWVPdmVyCQEAAAABIQAAAAEFAAAAEGRvdWJsZVBheW1lbnRVc2UHBQAAAAdpc1ZhbGlkBwUAAAANaGVpZ2h0SXNWYWxpZAcFAAAAC2NvcnJlY3REYXRhBwUAAAAGc2lnbmVkBwUAAAAMY29ycmVjdEFzc2V0BwUAAAAKaXNGZWVWYWxpZAcFAAAADnZhbGlkUmVjaXBpZW50BwcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAABnBheW91dAUAAAAHJG1hdGNoMAQAAAANbGFzdFBheW1lbnRUeAkAA+gAAAABCQACWQAAAAEJAQAAAAdleHRyYWN0AAAAAQkABB0AAAACBQAAAAJtZQIAAAALbGFzdFBheW1lbnQEAAAAByRtYXRjaDEFAAAADWxhc3RQYXltZW50VHgDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAADWxhc3RQYXltZW50VHgFAAAAByRtYXRjaDEDAwMJAABnAAAAAgUAAAAGaGVpZ2h0BQAAABBoZWlnaHRUb0dldE1vbmV5CQAAAAAAAAIIBQAAAA1sYXN0UGF5bWVudFR4AAAABnNlbmRlcggFAAAABnBheW91dAAAAAlyZWNpcGllbnQHCQAAAAAAAAIIBQAAAAZwYXlvdXQAAAADZmVlBQAAAAlwYXlvdXRGZWUHCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAGcGF5b3V0AAAACmZlZUFzc2V0SWQHBwcrWUTa", "chainId": 84, "height": 462758, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 1 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let WAVE = 10000000
4+let betAmount = (1 * WAVE)
5+let dataTxFee = 10000000
6+let minHeightDiff = 2
7+let maxHeightDiff = 5
8+let me = tx.sender
9+let heightToGetMoney = extract(getInteger(me, "heightToGetMoney"))
10+let payoutFee = 500000
11+match tx {
12+ case t: DataTransaction =>
13+ let gameOver = (height >= heightToGetMoney)
14+ let paymentTxId = extract(getString(t.data, "lastPayment"))
15+ let paymentTx = transactionById(fromBase58String(paymentTxId))
16+ match paymentTx {
17+ case paymentTx: TransferTransaction =>
18+ let doublePaymentUse = isDefined(getString(me, paymentTxId))
19+ let isValid = (paymentTx.amount >= (betAmount + dataTxFee))
20+ let isFeeValid = (t.fee == dataTxFee)
21+ let validRecipient = (paymentTx.recipient == me)
22+ let correctAsset = !(isDefined(paymentTx.assetId))
23+ let newHeightToGetMoney = extract(getInteger(t.data, "heightToGetMoney"))
24+ let heightIsValid = if (((newHeightToGetMoney - height) > minHeightDiff))
25+ then (maxHeightDiff > (newHeightToGetMoney - height))
26+ else false
27+ let correctData = if ((size(t.data) == 3))
28+ then isDefined(getString(t.data, paymentTxId))
29+ else false
30+ let signed = sigVerify(t.bodyBytes, t.proofs[0], paymentTx.senderPublicKey)
31+ if (if (if (if (if (if (if (if (!(gameOver))
32+ then !(doublePaymentUse)
33+ else false)
34+ then isValid
35+ else false)
36+ then heightIsValid
37+ else false)
38+ then correctData
39+ else false)
40+ then signed
41+ else false)
42+ then correctAsset
43+ else false)
44+ then isFeeValid
45+ else false)
46+ then validRecipient
47+ else false
48+ case _ =>
49+ false
50+ }
51+ case payout: TransferTransaction =>
52+ let lastPaymentTx = transactionById(fromBase58String(extract(getString(me, "lastPayment"))))
53+ match lastPaymentTx {
54+ case lastPaymentTx: TransferTransaction =>
55+ if (if (if ((height >= heightToGetMoney))
56+ then (lastPaymentTx.sender == payout.recipient)
57+ else false)
58+ then (payout.fee == payoutFee)
59+ else false)
60+ then !(isDefined(payout.feeAssetId))
61+ else false
62+ case _ =>
63+ false
64+ }
65+ case _ =>
66+ false
67+}

github/deemru/w8io/169f3d6 
15.01 ms