tx · 6nPmjfhruG1RevJorJ8yRSwSjSoSAGm7Gb9AjYQJAaYw 3MpCYRCcvnsGSt9HsY8EbziFE8aQsPBeGSp: -0.05000000 Waves 2020.10.07 11:37 [1209925] smart account 3MpCYRCcvnsGSt9HsY8EbziFE8aQsPBeGSp > SELF 0.00000000 Waves
{ "type": 13, "id": "6nPmjfhruG1RevJorJ8yRSwSjSoSAGm7Gb9AjYQJAaYw", "fee": 5000000, "feeAssetId": null, "timestamp": 1602059859064, "version": 2, "chainId": 84, "sender": "3MpCYRCcvnsGSt9HsY8EbziFE8aQsPBeGSp", "senderPublicKey": "EDsT8xniB2ycm6wVZJ2XcrakhVsfC7vCemAx3gk3iopu", "proofs": [ "3zCLEgcKubSXzGuyEg23RgShkHHNqfeAYVf9txrFy9zwnEMGWBKW5np9yapbWC1NEDpdeYgXt59Vfsgu9pwSL1xC" ], "script": "base64:AgQAAAAEdGhpcwkBAAAAB2V4dHJhY3QAAAABCAUAAAACdHgAAAAGc2VuZGVyBAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAQAAAANY29ycmVjdEFuc3dlcgkBAAAAB2V4dHJhY3QAAAABCQAEHAAAAAIFAAAABHRoaXMCAAAADWhhc2hlZCBhbnN3ZXIEAAAABmFuc3dlcgkAAfUAAAABCAUAAAABdAAAAAphdHRhY2htZW50AwkAAAAAAAACBQAAAA1jb3JyZWN0QW5zd2VyBQAAAAZhbnN3ZXIJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAF0AAAAB2Fzc2V0SWQHAwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABcwUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAABcwAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAXMAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAABcwAAAA9zZW5kZXJQdWJsaWNLZXkHnYrj7g==", "height": 1209925, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GVqpPzhvencnvtMMAbkzwqHnTmHyPq8Ktvut9KnkxCHm Next: GuW8kF8vadd3ENbTHZ5mozUxTsdq17JE8xAkDZnuJRx8 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION 3 #-} | |
2 | - | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | - | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let lpKey = "lastPayment" | |
5 | - | ||
6 | - | let liKey = "bestFomoer" | |
7 | - | ||
8 | - | let lhKey = "height" | |
9 | - | ||
10 | - | let day = 1440 | |
11 | - | ||
12 | - | @Callable(i) | |
13 | - | func fearmissing () = { | |
14 | - | let payment = match i.payment { | |
15 | - | case p: AttachedPayment => | |
16 | - | match p.assetId { | |
17 | - | case assetId: ByteVector => | |
18 | - | throw("fomo waves only") | |
19 | - | case _ => | |
20 | - | p.amount | |
21 | - | } | |
22 | - | case _ => | |
23 | - | throw("payment must be attached") | |
24 | - | } | |
25 | - | let lastPayment = match getInteger(this, "lastPayment") { | |
26 | - | case p: Int => | |
27 | - | p | |
28 | - | case _ => | |
29 | - | 0 | |
30 | - | } | |
31 | - | if ((lastPayment >= payment)) | |
32 | - | then throw(("min payment is " + toString(payment))) | |
33 | - | else WriteSet([DataEntry(lpKey, payment), DataEntry(liKey, i.caller.bytes), DataEntry(lhKey, height)]) | |
34 | - | } | |
35 | - | ||
36 | - | ||
37 | - | ||
38 | - | @Callable(i) | |
39 | - | func withdraw () = { | |
40 | - | let callerCorrect = (i.caller.bytes == extract(getBinary(this, liKey))) | |
41 | - | let heightCorrect = ((extract(getInteger(this, lhKey)) - height) >= day) | |
42 | - | let canWithdraw = if (heightCorrect) | |
43 | - | then callerCorrect | |
44 | - | else false | |
45 | - | if (canWithdraw) | |
46 | - | then TransferSet([ScriptTransfer(i.caller, wavesBalance(this), unit)]) | |
47 | - | else throw("behold") | |
48 | - | } | |
49 | - | ||
50 | - | ||
1 | + | {-# STDLIB_VERSION 2 #-} | |
2 | + | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | + | let this = extract(tx.sender) | |
4 | + | match tx { | |
5 | + | case t: TransferTransaction => | |
6 | + | let correctAnswer = extract(getBinary(this, "hashed answer")) | |
7 | + | let answer = keccak256(t.attachment) | |
8 | + | if ((correctAnswer == answer)) | |
9 | + | then !(isDefined(t.assetId)) | |
10 | + | else false | |
11 | + | case s: DataTransaction|SetScriptTransaction => | |
12 | + | sigVerify(s.bodyBytes, s.proofs[0], s.senderPublicKey) | |
13 | + | case _ => | |
14 | + | false | |
15 | + | } |
github/deemru/w8io/169f3d6 33.60 ms ◑![]()