tx · 9L5a8Ky22vQ4ZF9fjUYkFJvHqpYCndqELLccmPi4YQFm 3N1pxXq7yj4m5oHSustCbK6aJ3hWVzyS46z: -0.01000000 Waves 2018.12.16 12:44 [407211] smart account 3N1pxXq7yj4m5oHSustCbK6aJ3hWVzyS46z > SELF 0.00000000 Waves
{ "type": 13, "id": "9L5a8Ky22vQ4ZF9fjUYkFJvHqpYCndqELLccmPi4YQFm", "fee": 1000000, "feeAssetId": null, "timestamp": 1544953513276, "version": 1, "sender": "3N1pxXq7yj4m5oHSustCbK6aJ3hWVzyS46z", "senderPublicKey": "ETe7SmVkpWs5WfzDG96mry7iZseh2s7ns21TG3rSwEMv", "proofs": [ "5rxyaNaTHmAXzSXhzFEHB7exv9sGaomdpyGi8T9jvFbiG6QWMYEuahbrjfPagB8uA8meGRRTs5mvf3DsahGNU39A" ], "script": "base64:AQQAAAAHY3JlYXRvcgkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM05DdDJqcm4xMkdaaVdDVXhibkN0cFlOeFd3NFhEcDNHRXkEAAAAAm1lCAUAAAACdHgAAAAGc2VuZGVyBAAAAAR3YXZlAAAAAAAF9eEABAAAAApzZWNyZXRIYXNoAQAAACDI3K2ZF5fcMkBEEEW6U61gGY0YzH1Z+84QoiOauuhEhAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQcAAAAAgUAAAACbWUCAAAAB3BheW1lbnQEAAAACXBheW1lbnRUeAkAA+gAAAABCQEAAAAHZXh0cmFjdAAAAAEJAAQSAAAAAggFAAAAAXQAAAAEZGF0YQIAAAAHcGF5bWVudAQAAAAOaXNQYXltZW50VmFsaWQEAAAAByRtYXRjaDEFAAAACXBheW1lbnRUeAMJAAABAAAAAgUAAAAHJG1hdGNoMQIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAAHcGF5bWVudAUAAAAHJG1hdGNoMQMDCQAAAAAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAkAAGgAAAACAAAAAAAAAAABBQAAAAR3YXZlCQAAAAAAAAIIBQAAAAdwYXltZW50AAAACXJlY2lwaWVudAUAAAACbWUHCQAB9AAAAAMIBQAAAAdwYXltZW50AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAAHcGF5bWVudAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAdwYXltZW50AAAAD3NlbmRlclB1YmxpY0tleQcHBAAAAAVndWVzcwkBAAAAB2V4dHJhY3QAAAABCQAEEgAAAAIIBQAAAAF0AAAABGRhdGECAAAABWd1ZXNzAwMFAAAADmlzUGF5bWVudFZhbGlkCQAAAAAAAAIJAADIAAAAAQUAAAAFZ3Vlc3MAAAAAAAAAAAEHCQAAAAAAAAIJAAGQAAAAAQgFAAAAAXQAAAAEZGF0YQAAAAAAAAAAAgcHAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAZwYXlvdXQFAAAAByRtYXRjaDAEAAAABnNlY3JldAkAAMkAAAACCQABkQAAAAIIBQAAAAZwYXlvdXQAAAAGcHJvb2ZzAAAAAAAAAAAAAAAAAAAAAAABBAAAAAxpc1Byb29mVmFsaWQJAAAAAAAAAgkAAfcAAAABCQABkQAAAAIIBQAAAAZwYXlvdXQAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAApzZWNyZXRIYXNoBAAAAAdndWVzc2VyBAAAAAckbWF0Y2gxCQAD6AAAAAEJAQAAAAdleHRyYWN0AAAAAQkABBwAAAACBQAAAAJtZQIAAAAHcGF5bWVudAMJAAABAAAAAgUAAAAHJG1hdGNoMQIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABcAUAAAAHJG1hdGNoMQgFAAAAAXAAAAAGc2VuZGVyCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAAAAEAAAABndpbm5lcgMJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEHAAAAAIFAAAAAm1lAgAAAAVndWVzcwUAAAAGc2VjcmV0BQAAAAdndWVzc2VyBQAAAAdjcmVhdG9yAwMFAAAADGlzUHJvb2ZWYWxpZAkAAAAAAAACCAUAAAAGcGF5b3V0AAAACXJlY2lwaWVudAUAAAAGd2lubmVyBwkAAGcAAAACCQAAaQAAAAIFAAAABHdhdmUAAAAAAAAAAMgIBQAAAAZwYXlvdXQAAAADZmVlBwfgePZ5", "chainId": 84, "height": 407211, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
2 | + | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | + | let creator = addressFromString("3NCt2jrn12GZiWCUxbnCtpYNxWw4XDp3GEy") | |
4 | + | let me = tx.sender | |
5 | + | let wave = 100000000 | |
6 | + | let secretHash = base58'EX5i63vQjFgxHdqyXKsiXnNRrAnznW6dGnzpdwPqp5Fq' | |
7 | + | match tx { | |
8 | + | case t: DataTransaction => | |
9 | + | if (!(isDefined(getBinary(me, "payment")))) | |
10 | + | then { | |
11 | + | let paymentTx = transactionById(extract(getBinary(t.data, "payment"))) | |
12 | + | let isPaymentValid = match paymentTx { | |
13 | + | case payment: TransferTransaction => | |
14 | + | if (if ((payment.amount == (1 * wave))) | |
15 | + | then (payment.recipient == me) | |
16 | + | else false) | |
17 | + | then sigVerify(payment.bodyBytes, payment.proofs[0], payment.senderPublicKey) | |
18 | + | else false | |
19 | + | case _ => | |
20 | + | false | |
21 | + | } | |
22 | + | let guess = extract(getBinary(t.data, "guess")) | |
23 | + | if (if (isPaymentValid) | |
24 | + | then (size(guess) == 1) | |
25 | + | else false) | |
26 | + | then (size(t.data) == 2) | |
27 | + | else false | |
28 | + | } | |
29 | + | else false | |
30 | + | case payout: TransferTransaction => | |
31 | + | let secret = take(payout.proofs[0], 1) | |
32 | + | let isProofValid = (sha256(payout.proofs[0]) == secretHash) | |
33 | + | let guesser = match transactionById(extract(getBinary(me, "payment"))) { | |
34 | + | case p: TransferTransaction => | |
35 | + | p.sender | |
36 | + | case _ => | |
37 | + | addressFromString("") | |
38 | + | } | |
39 | + | let winner = if ((extract(getBinary(me, "guess")) == secret)) | |
40 | + | then guesser | |
41 | + | else creator | |
42 | + | if (if (isProofValid) | |
43 | + | then (payout.recipient == winner) | |
44 | + | else false) | |
45 | + | then ((wave / 200) >= payout.fee) | |
46 | + | else false | |
47 | + | case _ => | |
48 | + | false | |
49 | + | } |
github/deemru/w8io/fabc49c 35.17 ms ◑