tx · CBwC6AtuALBkQ92ondLn5A3mtvhJ5UGhbJwNHYZ29pDv 3MvCLdwRiQSNrhgumfFunsbyUJUw6ViTMwB: -0.01000000 Waves 2021.08.19 15:09 [1665219] smart account 3MvCLdwRiQSNrhgumfFunsbyUJUw6ViTMwB > SELF 0.00000000 Waves
{ "type": 13, "id": "CBwC6AtuALBkQ92ondLn5A3mtvhJ5UGhbJwNHYZ29pDv", "fee": 1000000, "feeAssetId": null, "timestamp": 1629374976983, "version": 2, "chainId": 84, "sender": "3MvCLdwRiQSNrhgumfFunsbyUJUw6ViTMwB", "senderPublicKey": "9Vbnf3b9hhuCerzPXf38mLo8mUGTPNVW3jtQRbymjaSw", "proofs": [ "5WMHfjDTPPCruKDmshGoAVvxgsNiXr5HdoQT3JPrfg15j3FYmpDC2iZL1TU2ZmRGowLaBLhvdrbTgHP8fn3uo6Dd" ], "script": "base64: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AAZnYW1lSWQCAAAAE193YWl0aW5nX2VuZF9oZWlnaHQBAAAAF2dldEdhbWVXYWl0aW5nRW5kSGVpZ2h0AAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAGmdldEdhbWVXYWl0aW5nRW5kSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAABRnZXRHYW1lT3ZlckhlaWdodEtleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAFZ2FtZV8JAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAxfb3Zlcl9oZWlnaHQBAAAAEWdldEdhbWVPdmVySGVpZ2h0AAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAGmdldEdhbWVXYWl0aW5nRW5kSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAABVnZXRHYW1lUmFyaXR5UmFuZ2VLZXkAAAACAAAABmdhbWVJZAAAAA1yYW5nZVBvc2l0aW9uCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVnYW1lXwkAAaQAAAABBQAAAAZnYW1lSWQCAAAADV9yYXJpdHlSYW5nZV8FAAAADXJhbmdlUG9zaXRpb24BAAAAEmdldEdhbWVSYXJpdHlSYW5nZQAAAAIAAAAGZ2FtZUlkAAAADXJhbmdlUG9zaXRpb24JAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAFWdldEdhbWVSYXJpdHlSYW5nZUtleQAAAAIFAAAABmdhbWVJZAUAAAANcmFuZ2VQb3NpdGlvbgEAAAAOZ2V0R2FtZVN0ZXBLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABWdhbWVfCQABpAAAAAEFAAAABmdhbWVJZAIAAAAFX3N0ZXABAAAAC2dldEdhbWVTdGVwAAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAADmdldEdhbWVTdGVwS2V5AAAAAQUAAAAGZ2FtZUlkAQAAAAxnZXRSYXJpdHlLZXkAAAADAAAABmdhbWVJZAAAAAZwbGF5ZXIAAAANcmFuZ2VQb3NpdGlvbgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFZ2FtZV8JAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAAZwbGF5ZXICAAAAAV8FAAAADXJhbmdlUG9zaXRpb24CAAAABlJhcml0eQEAAAAJZ2V0UmFyaXR5AAAAAwAAAAZnYW1lSWQAAAAGcGxheWVyAAAADXJhbmdlUG9zaXRpb24JAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAADGdldFJhcml0eUtleQAAAAMFAAAABmdhbWVJZAUAAAAGcGxheWVyBQAAAA1yYW5nZVBvc2l0aW9uAQAAAAxnZXRDb21taXRLZXkAAAACAAAABmdhbWVJZAAAAAZwbGF5ZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFZ2FtZV8JAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAAZwbGF5ZXICAAAAB19jb21taXQBAAAACWdldENvbW1pdAAAAAIAAAAGZ2FtZUlkAAAABnBsYXllcgkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAxnZXRDb21taXRLZXkAAAACBQAAAAZnYW1lSWQFAAAABnBsYXllcgEAAAAPZ2V0RHVja09yZGVyS2V5AAAAAgAAAAZnYW1lSWQAAAAGcGxheWVyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABWdhbWVfCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAGcGxheWVyAgAAAApfZHVja09yZGVyAQAAAAxnZXREdWNrT3JkZXIAAAACAAAABmdhbWVJZAAAAAZwbGF5ZXIJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAPZ2V0RHVja09yZGVyS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAAZwbGF5ZXIBAAAAD2dldFByaXplU2VudEtleQAAAAIAAAAGZ2FtZUlkAAAABnBsYXllcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVnYW1lXwkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAABnBsYXllcgIAAAAPX3dpdGhkcmF3U3RhdHVzAQAAAAxnZXRQcml6ZVNlbnQAAAACAAAABmdhbWVJZAAAAAZwbGF5ZXIJAQAAAA10cnlHZXRCb29sZWFuAAAAAQkBAAAAD2dldFByaXplU2VudEtleQAAAAIFAAAABmdhbWVJZAUAAAAGcGxheWVyAQAAAAhwaWNrRHVjawAAAAcAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUAAAANcGxheWVyQWRkcmVzcwAAAAdhc3NldElkAAAABnJhcml0eQAAAA1yYW5nZVBvc2l0aW9uAAAABHN0ZXAEAAAAC3Jhcml0eVJhbmdlCQEAAAASZ2V0R2FtZVJhcml0eVJhbmdlAAAAAgUAAAAGZ2FtZUlkBQAAAA1yYW5nZVBvc2l0aW9uAwMDAwkAAAAAAAACBQAAAAtyYXJpdHlSYW5nZQAAAAAAAAAABQkAAGYAAAACAAAAAAAAAAAoBQAAAAZyYXJpdHkHBgkAAGcAAAACBQAAAAZyYXJpdHkJAABoAAAAAgUAAAALcmFyaXR5UmFuZ2UAAAAAAAAAAAoGCQAAZgAAAAIJAABoAAAAAgkAAGUAAAACBQAAAAtyYXJpdHlSYW5nZQAAAAAAAAAAAQAAAAAAAAAACgUAAAAGcmFyaXR5CQAAAgAAAAECAAAAJlRoaXMgZHVjayBkb2Vzbid0IGZpdCB0aGUgcmFyaXR5IHJhbmdlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMZ2V0UmFyaXR5S2V5AAAAAwUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlBQAAAA1yYW5nZVBvc2l0aW9uBQAAAAZyYXJpdHkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA5nZXRHYW1lU3RlcEtleQAAAAEFAAAABmdhbWVJZAkAAGQAAAACBQAAAARzdGVwAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAUZ2V0R2FtZU92ZXJIZWlnaHRLZXkAAAABBQAAAAZnYW1lSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAxzdGVwRHVyYXRpb24JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAANcGxheWVyQWRkcmVzcwAAAAAAAAAAAQUAAAAHYXNzZXRJZAUAAAADbmlsAQAAAAhnZXRTY29yZQAAAAIAAAABYQAAAAFiAwkAAGYAAAACBQAAAAFhBQAAAAFiAAAAAAAAAAABAwkAAGYAAAACBQAAAAFiBQAAAAFhAP//////////AAAAAAAAAAAAAQAAAAlnZXRXaW5uZXIAAAABAAAABmdhbWVJZAQAAAAObWFrZXJEdWNrT3JkZXIJAAS1AAAAAgkBAAAADGdldER1Y2tPcmRlcgAAAAIFAAAABmdhbWVJZAIAAAAFbWFrZXICAAAAASwEAAAADnRha2VyRHVja09yZGVyCQAEtQAAAAIJAQAAAAxnZXREdWNrT3JkZXIAAAACBQAAAAZnYW1lSWQCAAAABXRha2VyAgAAAAEsBAAAAAxtYWtlclJhcml0eTEJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABW1ha2VyCQABkQAAAAIFAAAADm1ha2VyRHVja09yZGVyAAAAAAAAAAAABAAAAAxtYWtlclJhcml0eTIJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABW1ha2VyCQABkQAAAAIFAAAADm1ha2VyRHVja09yZGVyAAAAAAAAAAABBAAAAAxtYWtlclJhcml0eTMJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABW1ha2VyCQABkQAAAAIFAAAADm1ha2VyRHVja09yZGVyAAAAAAAAAAACBAAAAAx0YWtlclJhcml0eTEJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABXRha2VyCQABkQAAAAIFAAAADm1ha2VyRHVja09yZGVyAAAAAAAAAAAABAAAAAx0YWtlclJhcml0eTIJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABXRha2VyCQABkQAAAAIFAAAADm1ha2VyRHVja09yZGVyAAAAAAAAAAABBAAAAAx0YWtlclJhcml0eTMJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABXRha2VyCQABkQAAAAIFAAAADm1ha2VyRHVja09yZGVyAAAAAAAAAAACBAAAAAptYWtlclNjb3JlCQAAZAAAAAIJAABkAAAAAgkBAAAACGdldFNjb3JlAAAAAgUAAAAMbWFrZXJSYXJpdHkxBQAAAAx0YWtlclJhcml0eTEJAQAAAAhnZXRTY29yZQAAAAIFAAAADG1ha2VyUmFyaXR5MgUAAAAMdGFrZXJSYXJpdHkyCQEAAAAIZ2V0U2NvcmUAAAACBQAAAAxtYWtlclJhcml0eTMFAAAADHRha2VyUmFyaXR5MwMJAABmAAAAAgUAAAAKbWFrZXJTY29yZQAAAAAAAAAAAAIAAAAFbWFrZXIDCQAAZgAAAAIAAAAAAAAAAAAFAAAACm1ha2VyU2NvcmUCAAAABXRha2VyAgAAAARkcmF3AQAAABBnZXRXaW5uZXJFeHBpcmVkAAAAAQAAAAhnYW1lU3RlcAMDAwMDCQAAAAAAAAIFAAAACGdhbWVTdGVwAAAAAAAAAAAABgkAAAAAAAACBQAAAAhnYW1lU3RlcAAAAAAAAAAAAwYJAAAAAAAAAgUAAAAIZ2FtZVN0ZXAAAAAAAAAAAAQGCQAAAAAAAAIFAAAACGdhbWVTdGVwAAAAAAAAAAAHBgkAAAAAAAACBQAAAAhnYW1lU3RlcAAAAAAAAAAACQIAAAAFbWFrZXIDAwMDAwkAAAAAAAACBQAAAAhnYW1lU3RlcAAAAAAAAAAAAQYJAAAAAAAAAgUAAAAIZ2FtZVN0ZXAAAAAAAAAAAAIGCQAAAAAAAAIFAAAACGdhbWVTdGVwAAAAAAAAAAAFBgkAAAAAAAACBQAAAAhnYW1lU3RlcAAAAAAAAAAABgYJAAAAAAAAAgUAAAAIZ2FtZVN0ZXAAAAAAAAAAAAgCAAAABXRha2VyAgAAAARkcmF3AQAAAAlzZW5kUHJpemUAAAAEAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzAAAACnBsYXllclJvbGUAAAAGd2lubmVyAwkBAAAADGdldFByaXplU2VudAAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQkAAAIAAAABAgAAAB5Zb3UgaGF2ZSBhbHJlYWR5IGdvdCB0aGUgcHJpemUDCQAAAAAAAAIFAAAABndpbm5lcgUAAAAKcGxheWVyUm9sZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAAD2dldFByaXplU2VudEtleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAANcGxheWVyQWRkcmVzcwkAAGgAAAACCQEAAAAKZ2V0QmV0RWdncwAAAAEFAAAABmdhbWVJZAAAAAAAAAAAAgUAAAALZWdnc0Fzc2V0SWQFAAAAA25pbAMJAAAAAAAAAgUAAAAGd2lubmVyAgAAAARkcmF3CQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAPZ2V0UHJpemVTZW50S2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlBgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAKZ2V0QmV0RWdncwAAAAEFAAAABmdhbWVJZAUAAAALZWdnc0Fzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAACFZb3UgbG9zZSBhbmQgZG9uJ3QgaGF2ZSBhbnkgcHJpemUAAAAKAAAAAWkBAAAACG1ha2VHYW1lAAAABAAAAARzbG90AAAAEHJhcml0eVJhbmdlV29yc3QAAAARcmFyaXR5UmFuZ2VNZWRpdW0AAAAPcmFyaXR5UmFuZ2VCZXN0BAAAAA1jYWxsZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACnNsb3RHYW1lSWQJAQAAAAdnZXRTbG90AAAAAQUAAAAEc2xvdAQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAEZWdncwkAAGUAAAACCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAACG1ha2VyRmVlBAAAAAZnYW1lSWQJAQAAAA1nZXROZXh0R2FtZUlkAAAAAAMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAC2VnZ3NBc3NldElkCQAAAgAAAAEJAAEsAAAAAgIAAAA2WW91IGNhbiBhdHRhY2ggb25seSBFR0dzIHdpdGggdGhlIGZvbGxvd2luZyBhc3NldCBpZDogCQACWAAAAAEFAAAAC2VnZ3NBc3NldElkAwkAAGYAAAACAAAAAAAAAAAABQAAAARlZ2dzCQAAAgAAAAECAAAAD05vdCBlbm91Z2ggRUdHcwMJAAAAAAAAAgUAAAAEZWdncwAAAAAAAAAAAAkAAAIAAAABAgAAABRZb3UgY2FuJ3QgYmV0IDAgRUdHcwMJAQAAAAIhPQAAAAIJAQAAABJnZXRVc2VyQ3VycmVudEdhbWUAAAABBQAAAA1jYWxsZXJBZGRyZXNzAAAAAAAAAAAACQAAAgAAAAECAAAAH1lvdSBhbHJlYWR5IGhhdmUgYW4gYWN0aXZlIGdhbWUDAwkAAGYAAAACAAAAAAAAAAAABQAAAARzbG90BgkAAGcAAAACBQAAAARzbG90BQAAAAVTTE9UUwkAAAIAAAABAgAAAAxJbnZhbGlkIHNsb3QDCQEAAAACIT0AAAACBQAAAApzbG90R2FtZUlkAAAAAAAAAAAACQAAAgAAAAECAAAAEVRoaXMgc2xvdCBpcyBidXN5AwMJAABmAAAAAgAAAAAAAAAAAQUAAAAQcmFyaXR5UmFuZ2VXb3JzdAYJAABmAAAAAgUAAAAQcmFyaXR5UmFuZ2VXb3JzdAAAAAAAAAAABQkAAAIAAAABAgAAACxJbnN1ZmZpY2llbnQgcmFyaXR5IHJhbmdlIGZvciB0aGUgd29yc3QgZHVjawMDCQAAZgAAAAIAAAAAAAAAAAEFAAAAEXJhcml0eVJhbmdlTWVkaXVtBgkAAGYAAAACBQAAABFyYXJpdHlSYW5nZU1lZGl1bQAAAAAAAAAABQkAAAIAAAABAgAAAC1JbnN1ZmZpY2llbnQgcmFyaXR5IHJhbmdlIGZvciB0aGUgbWVkaXVtIGR1Y2sDAwkAAGYAAAACAAAAAAAAAAABBQAAAA9yYXJpdHlSYW5nZUJlc3QGCQAAZgAAAAIFAAAAD3Jhcml0eVJhbmdlQmVzdAAAAAAAAAAABQkAAAIAAAABAgAAACtJbnN1ZmZpY2llbnQgcmFyaXR5IHJhbmdlIGZvciB0aGUgYmVzdCBkdWNrAwkAAGcAAAACBQAAABByYXJpdHlSYW5nZVdvcnN0BQAAABFyYXJpdHlSYW5nZU1lZGl1bQkAAAIAAAABAgAAADFUaGUgbWVkaXVtIGR1Y2sgbXVzdCBiZSBiZXR0ZXIgdGhhbiB0aGUgd29yc3Qgb25lAwkAAGcAAAACBQAAABFyYXJpdHlSYW5nZU1lZGl1bQUAAAAPcmFyaXR5UmFuZ2VCZXN0CQAAAgAAAAECAAAAMFRoZSBiZXN0IGR1Y2sgbXVzdCBiZSBiZXR0ZXIgdGhhbiB0aGUgbWVkaXVtIG9uZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFWdldFVzZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADWNhbGxlckFkZHJlc3MFAAAABmdhbWVJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPZ2V0R2FtZU1ha2VyS2V5AAAAAQUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANZ2V0QmV0RWdnc0tleQAAAAEFAAAABmdhbWVJZAUAAAAEZWdncwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFWdldEdhbWVSYXJpdHlSYW5nZUtleQAAAAIFAAAABmdhbWVJZAIAAAAFd29yc3QFAAAAEHJhcml0eVJhbmdlV29yc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVnZXRHYW1lUmFyaXR5UmFuZ2VLZXkAAAACBQAAAAZnYW1lSWQCAAAABm1lZGl1bQUAAAARcmFyaXR5UmFuZ2VNZWRpdW0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVnZXRHYW1lUmFyaXR5UmFuZ2VLZXkAAAACBQAAAAZnYW1lSWQCAAAABGJlc3QFAAAAD3Jhcml0eVJhbmdlQmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAGmdldEdhbWVXYWl0aW5nRW5kSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkCQAAZAAAAAIFAAAABmhlaWdodAUAAAAHV0FJVElORwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmdldFNsb3RLZXkAAAABBQAAAARzbG90BQAAAAZnYW1lSWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADG5leHRfZ2FtZV9pZAkAAGQAAAACBQAAAAZnYW1lSWQAAAAAAAAAAAEFAAAAA25pbAAAAAFpAQAAAAh0YWtlR2FtZQAAAAEAAAAEc2xvdAQAAAANY2FsbGVyQWRkcmVzcwkA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", "height": 1665219, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Y4n6CNaHLGhmgic5CfGH5Ux1MEDL2j2swvX64QS4odX Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv' | |
5 | + | ||
6 | + | let b = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb' | |
7 | + | ||
8 | + | let c = base58'' | |
9 | + | ||
10 | + | let d = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF' | |
11 | + | ||
12 | + | let e = 1 | |
13 | + | ||
14 | + | let f = 1 | |
15 | + | ||
16 | + | let g = 10 | |
17 | + | ||
18 | + | let h = 5 | |
19 | + | ||
20 | + | let i = 3 | |
21 | + | ||
22 | + | func j (k) = { | |
23 | + | let l = getInteger(this, k) | |
24 | + | if ($isInstanceOf(l, "Int")) | |
25 | + | then { | |
26 | + | let m = l | |
27 | + | m | |
28 | + | } | |
29 | + | else 0 | |
30 | + | } | |
31 | + | ||
32 | + | ||
33 | + | func n (k) = { | |
34 | + | let l = getString(this, k) | |
35 | + | if ($isInstanceOf(l, "String")) | |
36 | + | then { | |
37 | + | let o = l | |
38 | + | o | |
39 | + | } | |
40 | + | else "" | |
41 | + | } | |
42 | + | ||
43 | + | ||
44 | + | func p (k) = { | |
45 | + | let l = getBoolean(this, k) | |
46 | + | if ($isInstanceOf(l, "Boolean")) | |
47 | + | then { | |
48 | + | let m = l | |
49 | + | m | |
50 | + | } | |
51 | + | else false | |
52 | + | } | |
53 | + | ||
54 | + | ||
55 | + | func q () = { | |
56 | + | let r = j("next_game_id") | |
57 | + | if ((r == 0)) | |
58 | + | then 1 | |
59 | + | else r | |
60 | + | } | |
61 | + | ||
62 | + | ||
63 | + | func s (t) = ("current_game_" + t) | |
64 | + | ||
65 | + | ||
66 | + | func u (t) = j(s(t)) | |
67 | + | ||
68 | + | ||
69 | + | func v (w) = ("slot_" + toString(w)) | |
70 | + | ||
71 | + | ||
72 | + | func x (w) = j(v(w)) | |
73 | + | ||
74 | + | ||
75 | + | func y (z) = (("game_" + toString(z)) + "_maker") | |
76 | + | ||
77 | + | ||
78 | + | func A (z) = n(y(z)) | |
79 | + | ||
80 | + | ||
81 | + | func B (z) = (("game_" + toString(z)) + "_taker") | |
82 | + | ||
83 | + | ||
84 | + | func C (z) = n(B(z)) | |
85 | + | ||
86 | + | ||
87 | + | func D (z) = (("game_" + toString(z)) + "_bet_eggs") | |
88 | + | ||
89 | + | ||
90 | + | func E (z) = j(D(z)) | |
91 | + | ||
92 | + | ||
93 | + | func F (z) = (("game_" + toString(z)) + "_waiting_end_height") | |
94 | + | ||
95 | + | ||
96 | + | func G (z) = j(F(z)) | |
97 | + | ||
98 | + | ||
99 | + | func H (z) = (("game_" + toString(z)) + "_over_height") | |
100 | + | ||
101 | + | ||
102 | + | func I (z) = j(F(z)) | |
103 | + | ||
104 | + | ||
105 | + | func J (z,K) = ((("game_" + toString(z)) + "_rarityRange_") + K) | |
106 | + | ||
107 | + | ||
108 | + | func L (z,K) = j(J(z, K)) | |
109 | + | ||
110 | + | ||
111 | + | func M (z) = (("game_" + toString(z)) + "_step") | |
112 | + | ||
113 | + | ||
114 | + | func N (z) = j(M(z)) | |
115 | + | ||
116 | + | ||
117 | + | func O (z,P,K) = (((((("game_" + toString(z)) + "_") + P) + "_") + K) + "Rarity") | |
118 | + | ||
119 | + | ||
120 | + | func Q (z,P,K) = j(O(z, P, K)) | |
121 | + | ||
122 | + | ||
123 | + | func R (z,P) = (((("game_" + toString(z)) + "_") + P) + "_commit") | |
124 | + | ||
125 | + | ||
126 | + | func S (z,P) = n(R(z, P)) | |
127 | + | ||
128 | + | ||
129 | + | func T (z,P) = (((("game_" + toString(z)) + "_") + P) + "_duckOrder") | |
130 | + | ||
131 | + | ||
132 | + | func U (z,P) = n(T(z, P)) | |
133 | + | ||
134 | + | ||
135 | + | func V (z,P) = (((("game_" + toString(z)) + "_") + P) + "_withdrawStatus") | |
136 | + | ||
137 | + | ||
138 | + | func W (z,P) = p(V(z, P)) | |
139 | + | ||
140 | + | ||
141 | + | func X (z,Y,Z,aa,ab,K,ac) = { | |
142 | + | let ad = L(z, K) | |
143 | + | if (if (if (if ((ad == 5)) | |
144 | + | then (40 > ab) | |
145 | + | else false) | |
146 | + | then true | |
147 | + | else (ab >= (ad * 10))) | |
148 | + | then true | |
149 | + | else (((ad - 1) * 10) > ab)) | |
150 | + | then throw("This duck doesn't fit the rarity range") | |
151 | + | else [IntegerEntry(O(z, Y, K), ab), IntegerEntry(M(z), (ac + 1)), IntegerEntry(H(z), (height + i)), ScriptTransfer(Z, 1, aa)] | |
152 | + | } | |
153 | + | ||
154 | + | ||
155 | + | func ae (o,m) = if ((o > m)) | |
156 | + | then 1 | |
157 | + | else if ((m > o)) | |
158 | + | then -1 | |
159 | + | else 0 | |
160 | + | ||
161 | + | ||
162 | + | func af (z) = { | |
163 | + | let ag = split(U(z, "maker"), ",") | |
164 | + | let ah = split(U(z, "taker"), ",") | |
165 | + | let ai = Q(z, "maker", ag[0]) | |
166 | + | let aj = Q(z, "maker", ag[1]) | |
167 | + | let ak = Q(z, "maker", ag[2]) | |
168 | + | let al = Q(z, "taker", ag[0]) | |
169 | + | let am = Q(z, "taker", ag[1]) | |
170 | + | let an = Q(z, "taker", ag[2]) | |
171 | + | let ao = ((ae(ai, al) + ae(aj, am)) + ae(ak, an)) | |
172 | + | if ((ao > 0)) | |
173 | + | then "maker" | |
174 | + | else if ((0 > ao)) | |
175 | + | then "taker" | |
176 | + | else "draw" | |
177 | + | } | |
178 | + | ||
179 | + | ||
180 | + | func ap (aq) = if (if (if (if (if ((aq == 0)) | |
181 | + | then true | |
182 | + | else (aq == 3)) | |
183 | + | then true | |
184 | + | else (aq == 4)) | |
185 | + | then true | |
186 | + | else (aq == 7)) | |
187 | + | then true | |
188 | + | else (aq == 9)) | |
189 | + | then "maker" | |
190 | + | else if (if (if (if (if ((aq == 1)) | |
191 | + | then true | |
192 | + | else (aq == 2)) | |
193 | + | then true | |
194 | + | else (aq == 5)) | |
195 | + | then true | |
196 | + | else (aq == 6)) | |
197 | + | then true | |
198 | + | else (aq == 8)) | |
199 | + | then "taker" | |
200 | + | else "draw" | |
201 | + | ||
202 | + | ||
203 | + | func ar (z,Z,Y,as) = if (W(z, Y)) | |
204 | + | then throw("You have already got the prize") | |
205 | + | else if ((as == Y)) | |
206 | + | then [BooleanEntry(V(z, Y), true), ScriptTransfer(Z, (E(z) * 2), d)] | |
207 | + | else if ((as == "draw")) | |
208 | + | then [BooleanEntry(V(z, Y), true), ScriptTransfer(Z, E(z), d)] | |
209 | + | else throw("You lose and don't have any prize") | |
210 | + | ||
211 | + | ||
212 | + | @Callable(at) | |
213 | + | func makeGame (w,au,av,aw) = { | |
214 | + | let ax = toBase58String(at.caller.bytes) | |
215 | + | let ay = x(w) | |
216 | + | let az = value(at.payments[0]) | |
217 | + | let aA = (az.amount - e) | |
218 | + | let z = q() | |
219 | + | if ((az.assetId != d)) | |
220 | + | then throw(("You can attach only EGGs with the following asset id: " + toBase58String(d))) | |
221 | + | else if ((0 > aA)) | |
222 | + | then throw("Not enough EGGs") | |
223 | + | else if ((aA == 0)) | |
224 | + | then throw("You can't bet 0 EGGs") | |
225 | + | else if ((u(ax) != 0)) | |
226 | + | then throw("You already have an active game") | |
227 | + | else if (if ((0 > w)) | |
228 | + | then true | |
229 | + | else (w >= g)) | |
230 | + | then throw("Invalid slot") | |
231 | + | else if ((ay != 0)) | |
232 | + | then throw("This slot is busy") | |
233 | + | else if (if ((1 > au)) | |
234 | + | then true | |
235 | + | else (au > 5)) | |
236 | + | then throw("Insufficient rarity range for the worst duck") | |
237 | + | else if (if ((1 > av)) | |
238 | + | then true | |
239 | + | else (av > 5)) | |
240 | + | then throw("Insufficient rarity range for the medium duck") | |
241 | + | else if (if ((1 > aw)) | |
242 | + | then true | |
243 | + | else (aw > 5)) | |
244 | + | then throw("Insufficient rarity range for the best duck") | |
245 | + | else if ((au >= av)) | |
246 | + | then throw("The medium duck must be better than the worst one") | |
247 | + | else if ((av >= aw)) | |
248 | + | then throw("The best duck must be better than the medium one") | |
249 | + | else [IntegerEntry(s(ax), z), StringEntry(y(z), ax), IntegerEntry(D(z), aA), IntegerEntry(J(z, "worst"), au), IntegerEntry(J(z, "medium"), av), IntegerEntry(J(z, "best"), aw), IntegerEntry(F(z), (height + h)), IntegerEntry(v(w), z), IntegerEntry("next_game_id", (z + 1))] | |
250 | + | } | |
251 | + | ||
252 | + | ||
253 | + | ||
254 | + | @Callable(at) | |
255 | + | func takeGame (w) = { | |
256 | + | let ax = toBase58String(at.caller.bytes) | |
257 | + | let z = x(w) | |
258 | + | let az = value(at.payments[0]) | |
259 | + | if ((x(w) == 0)) | |
260 | + | then throw("This slot is empty") | |
261 | + | else if ((az.assetId != d)) | |
262 | + | then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(d))) | |
263 | + | else if ((az.amount != (E(z) + f))) | |
264 | + | then throw("Insufficient eggs amount") | |
265 | + | else if ((C(z) != "")) | |
266 | + | then throw("This game is already taken") | |
267 | + | else if ((height >= G(z))) | |
268 | + | then throw("This game is expired") | |
269 | + | else [IntegerEntry(s(ax), z), StringEntry(B(z), ax), IntegerEntry(H(z), (height + i)), IntegerEntry(v(w), 0)] | |
270 | + | } | |
271 | + | ||
272 | + | ||
273 | + | ||
274 | + | @Callable(at) | |
275 | + | func kickGame (w) = { | |
276 | + | let z = x(w) | |
277 | + | if (if ((0 > w)) | |
278 | + | then true | |
279 | + | else (w >= g)) | |
280 | + | then throw("Invalid slot") | |
281 | + | else if ((z == 0)) | |
282 | + | then throw("Slot is empty") | |
283 | + | else if ((G(z) > height)) | |
284 | + | then throw("Waiting is not finished yet") | |
285 | + | else if ((C(z) != "")) | |
286 | + | then throw("This game is started") | |
287 | + | else { | |
288 | + | let aB = A(z) | |
289 | + | [IntegerEntry(s(aB), 0), IntegerEntry(v(w), 0), ScriptTransfer(Address(toBytes(aB)), (E(z) + e), d)] | |
290 | + | } | |
291 | + | } | |
292 | + | ||
293 | + | ||
294 | + | ||
295 | + | @Callable(at) | |
296 | + | func pickWorstDuck (z) = { | |
297 | + | let ax = toBase58String(at.caller.bytes) | |
298 | + | let aa = value(value(at.payments[0]).assetId) | |
299 | + | let aq = N(z) | |
300 | + | if (if ((value(assetInfo(aa)).issuer != Address(b))) | |
301 | + | then (value(assetInfo(aa)).issuer != Address(a)) | |
302 | + | else false) | |
303 | + | then throw("Invalid NFT") | |
304 | + | else if ((aq == 0)) | |
305 | + | then if ((ax != C(z))) | |
306 | + | then throw("It is the taker's turn to pick now") | |
307 | + | else { | |
308 | + | let aC = invoke(Address(c), "getAssetRarityCallable", [aa], nil) | |
309 | + | if ((aC == aC)) | |
310 | + | then { | |
311 | + | let ab = { | |
312 | + | let l = aC | |
313 | + | if ($isInstanceOf(l, "Int")) | |
314 | + | then { | |
315 | + | let aD = l | |
316 | + | aD | |
317 | + | } | |
318 | + | else throw("Incorrect invoke result") | |
319 | + | } | |
320 | + | X(z, "taker", at.caller, aa, ab, "worst", 0) | |
321 | + | } | |
322 | + | else throw("Strict value is not equal to itself.") | |
323 | + | } | |
324 | + | else if ((aq == 1)) | |
325 | + | then if ((ax != A(z))) | |
326 | + | then throw("It is the maker's turn to pick now") | |
327 | + | else { | |
328 | + | let aC = invoke(Address(c), "getAssetRarityCallable", [aa], nil) | |
329 | + | if ((aC == aC)) | |
330 | + | then { | |
331 | + | let ab = { | |
332 | + | let l = aC | |
333 | + | if ($isInstanceOf(l, "Int")) | |
334 | + | then { | |
335 | + | let aD = l | |
336 | + | aD | |
337 | + | } | |
338 | + | else throw("Incorrect invoke result") | |
339 | + | } | |
340 | + | X(z, "maker", at.caller, aa, ab, "worst", 1) | |
341 | + | } | |
342 | + | else throw("Strict value is not equal to itself.") | |
343 | + | } | |
344 | + | else throw("The worst duck has already been picked") | |
345 | + | } | |
346 | + | ||
347 | + | ||
348 | + | ||
349 | + | @Callable(at) | |
350 | + | func pickMediumtDuck (z) = { | |
351 | + | let ax = toBase58String(at.caller.bytes) | |
352 | + | let aa = value(value(at.payments[0]).assetId) | |
353 | + | let aq = N(z) | |
354 | + | if (if ((value(assetInfo(aa)).issuer != Address(b))) | |
355 | + | then (value(assetInfo(aa)).issuer != Address(a)) | |
356 | + | else false) | |
357 | + | then throw("Invalid NFT") | |
358 | + | else if ((2 > aq)) | |
359 | + | then throw("The medium duck must be picked after the worst one") | |
360 | + | else if ((aq == 2)) | |
361 | + | then if ((ax != A(z))) | |
362 | + | then throw("It is the maker's turn to pick now") | |
363 | + | else { | |
364 | + | let aC = invoke(Address(c), "getAssetRarityCallable", [aa], nil) | |
365 | + | if ((aC == aC)) | |
366 | + | then { | |
367 | + | let ab = { | |
368 | + | let l = aC | |
369 | + | if ($isInstanceOf(l, "Int")) | |
370 | + | then { | |
371 | + | let aD = l | |
372 | + | aD | |
373 | + | } | |
374 | + | else throw("Incorrect invoke result") | |
375 | + | } | |
376 | + | X(z, "maker", at.caller, aa, ab, "medium", 2) | |
377 | + | } | |
378 | + | else throw("Strict value is not equal to itself.") | |
379 | + | } | |
380 | + | else if ((aq == 3)) | |
381 | + | then if ((ax != C(z))) | |
382 | + | then throw("It is the taker's turn to pick now") | |
383 | + | else { | |
384 | + | let aC = invoke(Address(c), "getAssetRarityCallable", [aa], nil) | |
385 | + | if ((aC == aC)) | |
386 | + | then { | |
387 | + | let ab = { | |
388 | + | let l = aC | |
389 | + | if ($isInstanceOf(l, "Int")) | |
390 | + | then { | |
391 | + | let aD = l | |
392 | + | aD | |
393 | + | } | |
394 | + | else throw("Incorrect invoke result") | |
395 | + | } | |
396 | + | X(z, "taker", at.caller, aa, ab, "medium", 3) | |
397 | + | } | |
398 | + | else throw("Strict value is not equal to itself.") | |
399 | + | } | |
400 | + | else throw("The medium duck has already been picked") | |
401 | + | } | |
402 | + | ||
403 | + | ||
404 | + | ||
405 | + | @Callable(at) | |
406 | + | func pickBestDuck (z) = { | |
407 | + | let ax = toBase58String(at.caller.bytes) | |
408 | + | let aa = value(value(at.payments[0]).assetId) | |
409 | + | let aq = N(z) | |
410 | + | if (if ((value(assetInfo(aa)).issuer != Address(b))) | |
411 | + | then (value(assetInfo(aa)).issuer != Address(a)) | |
412 | + | else false) | |
413 | + | then throw("Invalid NFT") | |
414 | + | else if ((4 > aq)) | |
415 | + | then throw("The best duck must be picked after the worst and the medium ones") | |
416 | + | else if ((aq == 4)) | |
417 | + | then if ((ax != C(z))) | |
418 | + | then throw("It is the taker's turn to pick now") | |
419 | + | else { | |
420 | + | let aC = invoke(Address(c), "getAssetRarityCallable", [aa], nil) | |
421 | + | if ((aC == aC)) | |
422 | + | then { | |
423 | + | let ab = { | |
424 | + | let l = aC | |
425 | + | if ($isInstanceOf(l, "Int")) | |
426 | + | then { | |
427 | + | let aD = l | |
428 | + | aD | |
429 | + | } | |
430 | + | else throw("Incorrect invoke result") | |
431 | + | } | |
432 | + | X(z, "taker", at.caller, aa, ab, "best", 4) | |
433 | + | } | |
434 | + | else throw("Strict value is not equal to itself.") | |
435 | + | } | |
436 | + | else if ((aq == 5)) | |
437 | + | then if ((ax != A(z))) | |
438 | + | then throw("It is the maker's turn to pick now") | |
439 | + | else { | |
440 | + | let aC = invoke(Address(c), "getAssetRarityCallable", [aa], nil) | |
441 | + | if ((aC == aC)) | |
442 | + | then { | |
443 | + | let ab = { | |
444 | + | let l = aC | |
445 | + | if ($isInstanceOf(l, "Int")) | |
446 | + | then { | |
447 | + | let aD = l | |
448 | + | aD | |
449 | + | } | |
450 | + | else throw("Incorrect invoke result") | |
451 | + | } | |
452 | + | X(z, "maker", at.caller, aa, ab, "best", 5) | |
453 | + | } | |
454 | + | else throw("Strict value is not equal to itself.") | |
455 | + | } | |
456 | + | else throw("The best duck has already been picked") | |
457 | + | } | |
458 | + | ||
459 | + | ||
460 | + | ||
461 | + | @Callable(at) | |
462 | + | func commit (z,aE) = { | |
463 | + | let ax = toBase58String(at.caller.bytes) | |
464 | + | let aq = N(z) | |
465 | + | if ((6 > aq)) | |
466 | + | then throw("Ducks hasn't been picked yet") | |
467 | + | else if ((aq == 6)) | |
468 | + | then if ((ax != A(z))) | |
469 | + | then throw("It is the maker's turn to commit now") | |
470 | + | else [StringEntry(R(z, "maker"), aE), IntegerEntry(M(z), (aq + 1)), IntegerEntry(H(z), (height + i))] | |
471 | + | else if ((aq == 7)) | |
472 | + | then if ((ax != C(z))) | |
473 | + | then throw("It is the taker's turn to commit now") | |
474 | + | else [StringEntry(R(z, "taker"), aE), IntegerEntry(M(z), (aq + 1)), IntegerEntry(H(z), (height + i))] | |
475 | + | else throw("Commit is finished") | |
476 | + | } | |
477 | + | ||
478 | + | ||
479 | + | ||
480 | + | @Callable(at) | |
481 | + | func reveal (z,aF,aG) = { | |
482 | + | let ax = toBase58String(at.caller.bytes) | |
483 | + | let aq = N(z) | |
484 | + | if ((8 > aq)) | |
485 | + | then throw("Reveal is not started") | |
486 | + | else if (if (if (if (if (if ((aF != "worst,medium,best")) | |
487 | + | then true | |
488 | + | else (aF != "worst,best,medium")) | |
489 | + | then true | |
490 | + | else (aF != "medium,worst,best")) | |
491 | + | then true | |
492 | + | else (aF != "medium,best,worst")) | |
493 | + | then true | |
494 | + | else (aF != "best,worst,medium")) | |
495 | + | then true | |
496 | + | else (aF != "best,medium,worst")) | |
497 | + | then throw("Invalid duckOrder") | |
498 | + | else if ((aq == 8)) | |
499 | + | then if ((ax != A(z))) | |
500 | + | then throw("It is the maker's turn to reveal now") | |
501 | + | else if ((toBase58String(sha256(toBytes((aF + aG)))) != S(z, "maker"))) | |
502 | + | then throw("reveal data is not valid") | |
503 | + | else [StringEntry(T(z, "maker"), aF), IntegerEntry(M(z), (aq + 1)), IntegerEntry(H(z), (height + i))] | |
504 | + | else if ((aq == 9)) | |
505 | + | then if ((ax != C(z))) | |
506 | + | then throw("It is the taker's turn to reveal now") | |
507 | + | else if ((toBase58String(sha256(toBytes((aF + aG)))) != S(z, "taker"))) | |
508 | + | then throw("reveal data is not valid") | |
509 | + | else [StringEntry(T(z, "taker"), aF), IntegerEntry(M(z), (aq + 1)), IntegerEntry(H(z), (height + i))] | |
510 | + | else throw("Reveal is finished") | |
511 | + | } | |
512 | + | ||
513 | + | ||
514 | + | ||
515 | + | @Callable(at) | |
516 | + | func getPrize (z) = { | |
517 | + | let ax = toBase58String(at.caller.bytes) | |
518 | + | let aq = N(z) | |
519 | + | if ((aq != 10)) | |
520 | + | then throw("Game is not finished") | |
521 | + | else if ((ax == A(z))) | |
522 | + | then ar(z, at.caller, "maker", af(z)) | |
523 | + | else if ((ax == C(z))) | |
524 | + | then ar(z, at.caller, "taker", af(z)) | |
525 | + | else throw("Invalid caller address") | |
526 | + | } | |
527 | + | ||
528 | + | ||
529 | + | ||
530 | + | @Callable(at) | |
531 | + | func getPrizeExpired (z) = { | |
532 | + | let ax = toBase58String(at.caller.bytes) | |
533 | + | let aq = N(z) | |
534 | + | if ((aq == 10)) | |
535 | + | then throw("Game is finished, call getPrize instead") | |
536 | + | else if ((I(z) > height)) | |
537 | + | then throw("Game is not expired") | |
538 | + | else if ((ax == A(z))) | |
539 | + | then ar(z, at.caller, "maker", ap(aq)) | |
540 | + | else if ((ax == C(z))) | |
541 | + | then ar(z, at.caller, "taker", ap(aq)) | |
542 | + | else throw("Invalid caller address") | |
543 | + | } | |
544 | + | ||
545 | + | ||
546 | + | @Verifier(aH) | |
547 | + | func aI () = sigVerify(aH.bodyBytes, aH.proofs[0], aH.senderPublicKey) | |
548 | + |
github/deemru/w8io/026f985 33.93 ms ◑