tx · B9cdsqbSqdt6HRruTRKEy9r7g2LxjmTnSeQKpZ1UXw7i 3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw: -0.00400000 Waves 2023.03.19 23:33 [2497377] smart account 3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw > SELF 0.00000000 Waves
{ "type": 13, "id": "B9cdsqbSqdt6HRruTRKEy9r7g2LxjmTnSeQKpZ1UXw7i", "fee": 400000, "feeAssetId": null, "timestamp": 1679257998503, "version": 2, "chainId": 84, "sender": "3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw", "senderPublicKey": "3TJ91ZMX9cHrPAcqCiYodSdxYs8AiLNHyvRJNK1PDc6i", "proofs": [ "xnTMxQxmWraNCDUoPup6FUY9MXSCToMoUhb9UezEG1eK4cFEPPSk78NFW914U5oKkA8rCBiAh4QKozcg581PzfY" ], "script": "base64:BgISCAISAwoBCBIAEgMKAQESABIAAwEJb25seU93bmVyAQFpAwkAAAIIBQR0aGlzBWJ5dGVzCAgFAWkGY2FsbGVyBWJ5dGVzBQR1bml0CQACAQIpT25seSBkYXBwIGFjY291bnQgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiEBEGdldEF1cnVlc1BheW1lbnQBAWkDCQAAAgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUUGF5bWVudCBub3QgYXR0YWNoZWQEBkF1cnVlcwkAmwMBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgZBdXJ1ZXMEAXAJAJEDAggFAWkIcGF5bWVudHMAAAQHJG1hdGNoMAgFAXAHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAdhc3NldElkBQckbWF0Y2gwAwkAAAIFB2Fzc2V0SWQFBkF1cnVlcwgFAXAGYW1vdW50CQACAQIgT25seSBhdXJ1ZXMgYWNjZXB0ZWQgYXMgcGF5bWVudCEJAAIBAiBPbmx5IGF1cnVlcyBhY2NlcHRlZCBhcyBwYXltZW50IQEMZ2V0QXNzZXREYXRhAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQAAAkAlgoEAgVNaW5lcgJHVXRpbGl0eSBidWlsZGluZyB0aGF0IGhlbHBzIHlvdSB0byBtaW5lIGF1cnVlcyBhdCBjZXJ0YWluIGJsb3ZrIGhlaWdodC4AsOoBAgdfX21pbmVyAwkAAAIFB2Fzc2V0SWQAAQkAlgoEAgVDYW5vbgJHVXRpbGl0eSBidWlsZGluZyB0aGF0IGhlbHBzIHlvdSB0byBtaW5lIGF1cnVlcyBhdCBjZXJ0YWluIGJsb3ZrIGhlaWdodC4AqMMBAgZfY2Fub24DCQAAAgUHYXNzZXRJZAACCQCWCgQCBFhib3cCR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuAJh1AgVfeGJvdwMJAAACBQdhc3NldElkAAMJAJYKBAIFVGVzbGECR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuAKCcAQIGX3Rlc2xhAwkAAAIFB2Fzc2V0SWQABAkAAgECF1lvdSBjYW4ndCBidXkgdG93bmhhbGwhAwkAAAIFB2Fzc2V0SWQABQkAlgoEAgZBcmNoZXICR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuAJQjAgdfYXJjaGVyAwkAAAIFB2Fzc2V0SWQABgkAlgoEAgVSb2JvdAJHVXRpbGl0eSBidWlsZGluZyB0aGF0IGhlbHBzIHlvdSB0byBtaW5lIGF1cnVlcyBhdCBjZXJ0YWluIGJsb3ZrIGhlaWdodC4A/CoCBV9yb2JvCQCWCgQCCVZhbGt5cmllZQJHVXRpbGl0eSBidWlsZGluZyB0aGF0IGhlbHBzIHlvdSB0byBtaW5lIGF1cnVlcyBhdCBjZXJ0YWluIGJsb3ZrIGhlaWdodC4A8C4CCl92YWxreXJpZWUFAWkBBGluaXQBBkF1cnVlcwQKb3duZXJDaGVjawkBCW9ubHlPd25lcgEFAWkDCQAAAgUKb3duZXJDaGVjawUKb3duZXJDaGVjawMJAAACCQCdCAIFBHRoaXMCBkF1cnVlcwUEdW5pdAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQICBkF1cnVlcwUGQXVydWVzBQNuaWwFBHVuaXQJAAIBAhJHYW1lIGFscmVhZHkgaW5pdCEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJc3RhcnRHYW1lAAQHYWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAZBdXJ1ZXMJAJsDAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIGQXVydWVzBAxnYW1lU3RhdGVLZXkJAKwCAgUHYWRkcmVzcwIJX2lzU3RydGVkAwkAAAIJAJsIAgUEdGhpcwUMZ2FtZVN0YXRlS2V5BQR1bml0BAd0aElzc3VlCQDCCAUCCFRvd25oYWxsAhFIUSBvZiB5b3VyIGVtcGlyZQABAAAHBAl0aEFzc2V0SWQJANgEAQkAuAgBBQd0aElzc3VlCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDGdhbWVTdGF0ZUtleQYJAMwIAgkBB1JlaXNzdWUDBQZBdXJ1ZXMAoI0GBgkAzAgCBQd0aElzc3VlCQDMCAIJAQtTdHJpbmdFbnRyeQIFCXRoQXNzZXRJZAUHYWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAglfdG93bmhhbGwAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAhBfdG93bmhhbGxfcGxhY2VkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIGX21pbmVyAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX21pbmVyX3BsYWNlZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCBl9jYW5vbgAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCDV9jYW5vbl9wbGFjZWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgVfeGJvdwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCDF94Ym93X3BsYWNlZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCBl90ZXNsYQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCDV90ZXNsYV9wbGFjZWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgdfYXJjaGVyAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIFX3JvYm8AAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgpfdmFsa3lyaWVlAAAFA25pbAUEdW5pdAkAAgECFUdhbWUgYWxyZWFkeSBzdGFydGVkIQFpAQNidXkBB2Fzc2V0SWQEB2FkZHJlc3MJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQGQXVydWVzCQCbAwEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCBkF1cnVlcwQMYXVydWVzQW1vdW50CQEQZ2V0QXVydWVzUGF5bWVudAEFAWkECyR0MDM4NzQzOTMzCQEMZ2V0QXNzZXREYXRhAQUHYXNzZXRJZAQEbmFtZQgFCyR0MDM4NzQzOTMzAl8xBAtkZXNjcmlwdGlvbggFCyR0MDM4NzQzOTMzAl8yBAVwcmljZQgFCyR0MDM4NzQzOTMzAl8zBANrZXkIBQskdDAzODc0MzkzMwJfNAMJAGcCBQxhdXJ1ZXNBbW91bnQFBXByaWNlBApjdXJyZW50Q250CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MFA2tleQQFaXNzdWUJAMIIBQUEbmFtZQULZGVzY3JpcHRpb24AAQAABwQNaXNzdWVkQXNzZXRJZAkA2AQBCQC4CAEFBWlzc3VlCQCUCgIJAMwIAgUFaXNzdWUJAMwIAgkBBEJ1cm4CBQZBdXJ1ZXMFDGF1cnVlc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzBQNrZXkJAGQCBQpjdXJyZW50Q250AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgUNaXNzdWVkQXNzZXRJZAUHYWRkcmVzcwUDbmlsBQR1bml0CQACAQkArAICAhpOb3QgZW5vdWdoIHBheW1lbnQgdG8gYnV5IAUEbmFtZQFpAQhhZGRBc3NldAAJAJQKAgUDbmlsBQR1bml0AWkBC3JlbW92ZUFzc2V0AAkAlAoCBQNuaWwFBHVuaXQAvaPb/A==", "height": 2497377, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 3peFp4UMKNWAxmBkfe7ST71CAYthHZAPeUBV5NXmrhmc Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func a (b) = if ((this.bytes == b.caller.bytes)) | |
5 | + | then unit | |
6 | + | else throw("Only dapp account can call this function!") | |
7 | + | ||
8 | + | ||
9 | + | func c (b) = if ((size(b.payments) == 0)) | |
10 | + | then throw("Payment not attached") | |
11 | + | else { | |
12 | + | let d = toBytes(getStringValue(this, "Aurues")) | |
13 | + | let e = b.payments[0] | |
14 | + | let f = e.assetId | |
15 | + | if ($isInstanceOf(f, "ByteVector")) | |
16 | + | then { | |
17 | + | let g = f | |
18 | + | if ((g == d)) | |
19 | + | then e.amount | |
20 | + | else throw("Only aurues accepted as payment!") | |
21 | + | } | |
22 | + | else throw("Only aurues accepted as payment!") | |
23 | + | } | |
24 | + | ||
25 | + | ||
26 | + | func h (g) = if ((g == 0)) | |
27 | + | then $Tuple4("Miner", "Utility building that helps you to mine aurues at certain blovk height.", 30000, "__miner") | |
28 | + | else if ((g == 1)) | |
29 | + | then $Tuple4("Canon", "Utility building that helps you to mine aurues at certain blovk height.", 25000, "_canon") | |
30 | + | else if ((g == 2)) | |
31 | + | then $Tuple4("Xbow", "Utility building that helps you to mine aurues at certain blovk height.", 15000, "_xbow") | |
32 | + | else if ((g == 3)) | |
33 | + | then $Tuple4("Tesla", "Utility building that helps you to mine aurues at certain blovk height.", 20000, "_tesla") | |
34 | + | else if ((g == 4)) | |
35 | + | then throw("You can't buy townhall!") | |
36 | + | else if ((g == 5)) | |
37 | + | then $Tuple4("Archer", "Utility building that helps you to mine aurues at certain blovk height.", 4500, "_archer") | |
38 | + | else if ((g == 6)) | |
39 | + | then $Tuple4("Robot", "Utility building that helps you to mine aurues at certain blovk height.", 5500, "_robo") | |
40 | + | else $Tuple4("Valkyriee", "Utility building that helps you to mine aurues at certain blovk height.", 6000, "_valkyriee") | |
41 | + | ||
42 | + | ||
43 | + | @Callable(b) | |
44 | + | func init (d) = { | |
45 | + | let i = a(b) | |
46 | + | if ((i == i)) | |
47 | + | then if ((getString(this, "Aurues") == unit)) | |
48 | + | then $Tuple2([StringEntry("Aurues", d)], unit) | |
49 | + | else throw("Game already init!") | |
50 | + | else throw("Strict value is not equal to itself.") | |
51 | + | } | |
52 | + | ||
53 | + | ||
54 | + | ||
55 | + | @Callable(b) | |
56 | + | func startGame () = { | |
57 | + | let j = toBase58String(b.caller.bytes) | |
58 | + | let d = toBytes(getStringValue(this, "Aurues")) | |
59 | + | let k = (j + "_isStrted") | |
60 | + | if ((getBoolean(this, k) == unit)) | |
61 | + | then { | |
62 | + | let l = Issue("Townhall", "HQ of your empire", 1, 0, false) | |
63 | + | let m = toBase58String(calculateAssetId(l)) | |
64 | + | $Tuple2([BooleanEntry(k, true), Reissue(d, 100000, true), l, StringEntry(m, j), IntegerEntry((j + "_townhall"), 1), IntegerEntry((j + "_townhall_placed"), 0), IntegerEntry((j + "_miner"), 0), IntegerEntry((j + "_miner_placed"), 0), IntegerEntry((j + "_canon"), 0), IntegerEntry((j + "_canon_placed"), 0), IntegerEntry((j + "_xbow"), 0), IntegerEntry((j + "_xbow_placed"), 0), IntegerEntry((j + "_tesla"), 0), IntegerEntry((j + "_tesla_placed"), 0), IntegerEntry((j + "_archer"), 0), IntegerEntry((j + "_robo"), 0), IntegerEntry((j + "_valkyriee"), 0)], unit) | |
65 | + | } | |
66 | + | else throw("Game already started!") | |
67 | + | } | |
68 | + | ||
69 | + | ||
70 | + | ||
71 | + | @Callable(b) | |
72 | + | func buy (g) = { | |
73 | + | let j = toBase58String(b.caller.bytes) | |
74 | + | let d = toBytes(getStringValue(this, "Aurues")) | |
75 | + | let n = c(b) | |
76 | + | let o = h(g) | |
77 | + | let p = o._1 | |
78 | + | let q = o._2 | |
79 | + | let r = o._3 | |
80 | + | let s = o._4 | |
81 | + | if ((n >= r)) | |
82 | + | then { | |
83 | + | let t = getIntegerValue(this, (j + s)) | |
84 | + | let u = Issue(p, q, 1, 0, false) | |
85 | + | let v = toBase58String(calculateAssetId(u)) | |
86 | + | $Tuple2([u, Burn(d, n), IntegerEntry((j + s), (t + 1)), StringEntry(v, j)], unit) | |
87 | + | } | |
88 | + | else throw(("Not enough payment to buy " + p)) | |
89 | + | } | |
90 | + | ||
91 | + | ||
92 | + | ||
93 | + | @Callable(b) | |
94 | + | func addAsset () = $Tuple2(nil, unit) | |
95 | + | ||
96 | + | ||
97 | + | ||
98 | + | @Callable(b) | |
99 | + | func removeAsset () = $Tuple2(nil, unit) | |
100 | + | ||
101 | + |
github/deemru/w8io/169f3d6 22.62 ms ◑![]()