tx · BQpcKwEVsuHjntpPayGnGc43QNWk9Y1aTxCApPwTqCYp 3N1kiD5Vk8mga2rXYqqUT8n812iZ9p1qE8c: -0.01000000 Waves 2019.12.05 16:54 [795515] smart account 3N1kiD5Vk8mga2rXYqqUT8n812iZ9p1qE8c > SELF 0.00000000 Waves
{ "type": 13, "id": "BQpcKwEVsuHjntpPayGnGc43QNWk9Y1aTxCApPwTqCYp", "fee": 1000000, "feeAssetId": null, "timestamp": 1575554135358, "version": 1, "sender": "3N1kiD5Vk8mga2rXYqqUT8n812iZ9p1qE8c", "senderPublicKey": "FZ6J8wYBPYAAV35Tn6suqJMKZTVXsFs5iXKe7qkiZiXn", "proofs": [ "29hxn6iBUHy1BCqFkVMExKc4N9CKmZ9YuzZzwprprysHHvjjzRTRHaqP1VaS9QKPyw9RgWovhJqaR8wcPc3SyBrq" ], "script": "base64:AAIDAAAAAAAAAA4IARIDCgEIEgMKAQgSAAAAAAYAAAAADG93bmVyQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVCKO49UfdVacf8Y0Qj59HGp7V9voyjFs/QAAAAAJdGlja2V0SHViCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUOPmY5HbEcjUngeCG5y/mI3FdqdcUgGI+AAAAABNsb3R0ZXJ5QWRtaW5BZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUf94ftL4Vg1lJrIjOemFa/6T/nk84vWbZAAAAABFkQXBwUmFuZG9tQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVH/eH7S+FYNZSayIznphWv+k/55POL1m2QAAAAAOd2l0aGRyYXdQZXJpb2QAAAAAAAAAqMABAAAAEmV4dHJhY3RSYW5kb21WYWx1ZQAAAAAEAAAAE3JlcXVlc3RDb21taXRlZFR4SWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAAD3JhbmRvbVJlcXVlc3RUeAQAAAAOb3JhY2xlUmVzcG9uc2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEWRBcHBSYW5kb21BZGRyZXNzBQAAABNyZXF1ZXN0Q29tbWl0ZWRUeElkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAADHJhbmRvbVJlc3VsdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFzBQAAAAckbWF0Y2gwCQABpAAAAAEFAAAAAXMJAAGRAAAAAgkABLUAAAACBQAAAA5vcmFjbGVSZXNwb25zZQIAAAACLS0AAAAAAAAAAAEAAAADAAAACmNvbnRleHRPYmoBAAAAF3JlZ2lzdGVyUmFuZG9tUmVxdWVzdFR4AAAAAQAAAA9yYW5kb21SZXF1ZXN0VHgDCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzAgAAAA9yYW5kb21SZXF1ZXN0VHgJAAACAAAAAQIAAAAncmFuZG9tUmVxdWVzdFR4IGlzIGFscmVhZHkgaW4gdGhlIHN0YXRlAwkBAAAACWlzRGVmaW5lZAAAAAEJAAPpAAAAAQkAAlkAAAABBQAAAA9yYW5kb21SZXF1ZXN0VHgJAAACAAAAAQIAAAAyWW91IHRyeSByZWdpc3RlciB0eCB3aGljaCBpcyBhbHJlYWR5IGluIGJsb2NrY2hhaW4DCQAAAAAAAAIIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAATbG90dGVyeUFkbWluQWRkcmVzcwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAPcmFuZG9tUmVxdWVzdFR4BQAAAA9yYW5kb21SZXF1ZXN0VHgJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAC3N0YXJ0SGVpZ2h0BQAAAAZoZWlnaHQFAAAAA25pbAkAAAIAAAABAgAAACZvbmx5IGxvdGVyeU93bmVyIGNhbiBzdGFydCB0aGUgbG90dGVyeQAAAApjb250ZXh0T2JqAQAAAA9kZWZpbmVUaGVXaW5uZXIAAAABAAAAD3RpY2tldHNJbkh1YktleQQAAAAScmFuZG9tUmVzdWx0U3RyaW5nCQEAAAASZXh0cmFjdFJhbmRvbVZhbHVlAAAAAAQAAAAMcmFuZG9tUmVzdWx0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAAEnJhbmRvbVJlc3VsdFN0cmluZwMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMCAAAADHdpbm5lclRpY2tldAkAAAIAAAABAgAAABl3aW5uZXIgaXMgYWxyZWFkeSBkZWZpbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAJdGlja2V0SHViCQABLAAAAAICAAAADXdpbm5pbmdUaWNrZXQFAAAAEnJhbmRvbVJlc3VsdFN0cmluZwQAAAAMdGlja2V0QW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAl0aWNrZXRIdWICAAAAEXRpY2tldEFtb3VudFRvdGFsBAAAABJyYW5kb21SZXN1bHRVcGRhdGUDCQAAAAAAAAIFAAAADHJhbmRvbVJlc3VsdAUAAAAMdGlja2V0QW1vdW50AAAAAAAAAAABCQAAZAAAAAIFAAAADHJhbmRvbVJlc3VsdAAAAAAAAAAAAQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAMcmFuZG9tUmVzdWx0BQAAABJyYW5kb21SZXN1bHRVcGRhdGUFAAAAA25pbAQAAAAKdGlja2V0RnJvbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIJAAS1AAAAAgkAAZEAAAACCQAEtQAAAAIFAAAAD3RpY2tldHNJbkh1YktleQIAAAACVG8AAAAAAAAAAAACAAAAC3RpY2tldHNGcm9tAAAAAAAAAAABBAAAAAh0aWNrZXRUbwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIJAAS1AAAAAgUAAAAPdGlja2V0c0luSHViS2V5AgAAAAJUbwAAAAAAAAAAAQMDCQAAZwAAAAIFAAAADHJhbmRvbVJlc3VsdAUAAAAKdGlja2V0RnJvbQkAAGcAAAACBQAAAAh0aWNrZXRUbwUAAAAMcmFuZG9tUmVzdWx0BwQAAAANd2lubmVyQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAJdGlja2V0SHViBQAAAA90aWNrZXRzSW5IdWJLZXkJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADHdpbm5lclRpY2tldAUAAAAMcmFuZG9tUmVzdWx0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA13aW5uZXJBZGRyZXNzBQAAAA13aW5uZXJBZGRyZXNzBQAAAANuaWwJAAACAAAAAQIAAAAYdGhlc2UgdGlja2V0cyBkaWRuJ3Qgd2luAAAACmNvbnRleHRPYmoBAAAACHdpdGhkcmF3AAAAAAQAAAANd2lubmVyQWRkcmVzcwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzAgAAAA13aW5uZXJBZGRyZXNzBAAAAAtzdGFydEhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAALc3RhcnRIZWlnaHQEAAAABW1vbnRoBQAAAA53aXRoZHJhd1BlcmlvZAMDCQAAAAAAAAIIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAANd2lubmVyQWRkcmVzcwkAAGcAAAACCQAAZAAAAAIFAAAAC3N0YXJ0SGVpZ2h0BQAAAAVtb250aAUAAAAGaGVpZ2h0BwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA13aW5uZXJBZGRyZXNzCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwUAAAAEdW5pdAUAAAADbmlsAwMDCQAAAAAAAAIIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAATbG90dGVyeUFkbWluQWRkcmVzcwYJAAAAAAAAAggFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyBQAAAAxvd25lckFkZHJlc3MJAABmAAAAAgUAAAAGaGVpZ2h0CQAAZAAAAAIFAAAAC3N0YXJ0SGVpZ2h0BQAAAAVtb250aAcJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAMb3duZXJBZGRyZXNzCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwUAAAAEdW5pdAUAAAADbmlsCQAAAgAAAAECAAAAHHlvdSBjYW4ndCB3aXRoZHJhdyB0aGUgZnVuZHMAAAAAz7DYtA==", "chainId": 84, "height": 795515, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = Address(base58'3Ms4ovcT1Rtq2BExHqRbBMUeKCYmDSSGGV2') | |
5 | + | ||
6 | + | let b = Address(base58'3Mu7LcyyCUsms2m59UeVrQqth8eNFTXF2SZ') | |
7 | + | ||
8 | + | let c = Address(base58'3N1aBgieFCpxDJorNX7i41KWaP974Ci9roS') | |
9 | + | ||
10 | + | let d = Address(base58'3N1aBgieFCpxDJorNX7i41KWaP974Ci9roS') | |
11 | + | ||
12 | + | let e = 43200 | |
13 | + | ||
14 | + | func f () = { | |
15 | + | let g = getStringValue(this, "randomRequestTx") | |
16 | + | let h = getStringValue(d, g) | |
17 | + | let i = getInteger(this, "randomResult") | |
18 | + | if ($isInstanceOf(i, "Int")) | |
19 | + | then { | |
20 | + | let j = i | |
21 | + | toString(j) | |
22 | + | } | |
23 | + | else split(h, "--")[1] | |
24 | + | } | |
25 | + | ||
26 | + | ||
27 | + | @Callable(k) | |
28 | + | func registerRandomRequestTx (l) = if (isDefined(getString(this, "randomRequestTx"))) | |
29 | + | then throw("randomRequestTx is already in the state") | |
30 | + | else if (isDefined(transactionHeightById(fromBase58String(l)))) | |
31 | + | then throw("You try register tx which is already in blockchain") | |
32 | + | else if ((k.caller == c)) | |
33 | + | then WriteSet([DataEntry("randomRequestTx", l), DataEntry("startHeight", height)]) | |
34 | + | else throw("only loteryOwner can start the lottery") | |
35 | + | ||
36 | + | ||
37 | + | ||
38 | + | @Callable(k) | |
39 | + | func defineTheWinner (m) = { | |
40 | + | let n = f() | |
41 | + | let o = parseIntValue(n) | |
42 | + | if (isDefined(getInteger(this, "winnerTicket"))) | |
43 | + | then throw("winner is already defined") | |
44 | + | else if (isDefined(getString(b, ("winningTicket" + n)))) | |
45 | + | then { | |
46 | + | let p = getIntegerValue(b, "ticketAmountTotal") | |
47 | + | let q = if ((o == p)) | |
48 | + | then 1 | |
49 | + | else (o + 1) | |
50 | + | WriteSet([DataEntry("randomResult", q)]) | |
51 | + | } | |
52 | + | else { | |
53 | + | let r = parseIntValue(split(split(m, "To")[0], "ticketsFrom")[1]) | |
54 | + | let s = parseIntValue(split(m, "To")[1]) | |
55 | + | if (if ((o >= r)) | |
56 | + | then (s >= o) | |
57 | + | else false) | |
58 | + | then { | |
59 | + | let t = getStringValue(b, m) | |
60 | + | WriteSet([DataEntry("winnerTicket", o), DataEntry("winnerAddress", t)]) | |
61 | + | } | |
62 | + | else throw("these tickets didn't win") | |
63 | + | } | |
64 | + | } | |
65 | + | ||
66 | + | ||
67 | + | ||
68 | + | @Callable(k) | |
69 | + | func withdraw () = { | |
70 | + | let t = addressFromStringValue(getStringValue(this, "winnerAddress")) | |
71 | + | let u = getIntegerValue(this, "startHeight") | |
72 | + | let v = e | |
73 | + | if (if ((k.caller == t)) | |
74 | + | then ((u + v) >= height) | |
75 | + | else false) | |
76 | + | then TransferSet([ScriptTransfer(t, wavesBalance(this), unit)]) | |
77 | + | else if (if (if ((k.caller == c)) | |
78 | + | then true | |
79 | + | else (k.caller == a)) | |
80 | + | then (height > (u + v)) | |
81 | + | else false) | |
82 | + | then TransferSet([ScriptTransfer(a, wavesBalance(this), unit)]) | |
83 | + | else throw("you can't withdraw the funds") | |
84 | + | } | |
85 | + | ||
86 | + |
github/deemru/w8io/169f3d6 15.42 ms ◑