tx · DN6pFarRWG22R2a5FbPz6NQy1LGqhq9erTw4vUVoH8Q8 3MzAWQ22mQziCccLvSL9L1AF6pAJYUw11wd: -0.00200000 Waves 2022.08.17 13:14 [2188337] smart account 3MzAWQ22mQziCccLvSL9L1AF6pAJYUw11wd > SELF 0.00000000 Waves
{ "type": 13, "id": "DN6pFarRWG22R2a5FbPz6NQy1LGqhq9erTw4vUVoH8Q8", "fee": 200000, "feeAssetId": null, "timestamp": 1660731297264, "version": 2, "chainId": 84, "sender": "3MzAWQ22mQziCccLvSL9L1AF6pAJYUw11wd", "senderPublicKey": "7agfcapo6mD729yLQ4TcktCAiVWjYDf9p4E85DNvkcdd", "proofs": [ "eExrWHveBJcxecN495dw9nRe9Gifd8qheXMhokDuLNayRwV39fLthU6dgEYg8JJ3mUzvY4PdK2eTeazYRV583iS" ], "script": "base64:BgIHCAISAwoBCAgAA1NFUAICX18ABU1VTFQ4AIDC1y8BFWtleUJlbmVmaWNpYXJ5QWRkcmVzcwACHSVzJXNfX2NmZ19fYmVuZWZpY2lhcnlBZGRyZXNzARZrZXlDb25zdHJ1Y3RvckludGVydmFsAAIhJXMlc19fY2ZnX19ub2RlQ29udHJ1Y3RvckludGVydmFsARNrZXlMYXN0VXBkYXRlSGVpZ2h0AAIVJXNfX2xhc3RVcGRhdGVkSGVpZ2h0ARNrZXlTY3JpcHRVcGRhdGVIYXNoAAIdJXMlc19fbWluZXJfX3NjcmlwdFVwZGF0ZUhhc2gBGGtleVNjcmlwdFVwZGF0ZUFsbG93YW5jZQACIiVzJXNfX21pbmVyX19zY3JpcHRVcGRhdGVBbGxvd2FuY2UADG5vZGVSZWdpc3RyeQkBEUBleHRyTmF0aXZlKDEwNjIpAQIAAQFpAQtjb25zdHJ1Y3RvcgEXYmVuZWZpY2lhcnlBZGRyZXNzU3RyNTgDCQECIT0CBQR0aGlzCAUBaQZjYWxsZXIJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQEEmJlbmVmaWNpYXJ5QWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUXYmVuZWZpY2lhcnlBZGRyZXNzU3RyNTgDCQAAAgUSYmVuZWZpY2lhcnlBZGRyZXNzBQR0aGlzCQACAQI6bWluaW5nIG5vZGUgYWRkcmVzcyBpcyBub3QgYWxsb3dlZCBhcyBhIGJlbmVmaWNpYXJ5QWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQEVa2V5QmVuZWZpY2lhcnlBZGRyZXNzAAkApQgBBRJiZW5lZmljaWFyeUFkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQIJARNrZXlMYXN0VXBkYXRlSGVpZ2h0AAUGaGVpZ2h0BQNuaWwBAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwAwkBCWlzRGVmaW5lZAEIBQNpbnYKZmVlQXNzZXRJZAkAAgECPUludm9rZVNjcmlwdFRyYW5zYWN0aW9uIC0gb25seSBXQVZFUyBpcyBhbGxvd2VkIGFzIGZlZUFzc2V0SWQDCQAAAgkApAgBCAUDaW52BGRBcHAFDG5vZGVSZWdpc3RyeQYDCQAAAgkApAgBCAUDaW52BGRBcHAFBHRoaXMEEWxhc3RVcGRhdGVkSGVpZ2h0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARNrZXlMYXN0VXBkYXRlSGVpZ2h0AAAABA5jb25zdHJJbnRlcnZhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQxub2RlUmVnaXN0cnkJARZrZXlDb25zdHJ1Y3RvckludGVydmFsAAABAwkAZgIFDmNvbnN0ckludGVydmFsCQBlAgUGaGVpZ2h0BRFsYXN0VXBkYXRlZEhlaWdodAkAAgECQ0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uIC0gaW1wb3NzaWJsZSB0byBjYWxsIGNvbnN0cnVjdG9yIHZlcnkgb2Z0ZW4JAMYTAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAi5JbnZva2VTY3JpcHRUcmFuc2FjdGlvbiAtIGludmFsaWQgZGFwcCBhZGRyZXNzAwkAAQIFByRtYXRjaDACFFNldFNjcmlwdFRyYW5zYWN0aW9uBANzdHgFByRtYXRjaDAEC3NjcmlwdEJ5dGVzCQEFdmFsdWUBCAUDc3R4BnNjcmlwdAQEaGFzaAkA2AQBCQDxFQEFC3NjcmlwdEJ5dGVzBAthbGxvd2VkSGFzaAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQxub2RlUmVnaXN0cnkJARNrZXlTY3JpcHRVcGRhdGVIYXNoAAIABAt2YWxpZEJ5SGFzaAMJAQIhPQIFC2FsbG93ZWRIYXNoAgAJAAACBQthbGxvd2VkSGFzaAUEaGFzaAcEDWFsbG93VG9VcGRhdGUJAQt2YWx1ZU9yRWxzZQIJAJsIAgUMbm9kZVJlZ2lzdHJ5CQEYa2V5U2NyaXB0VXBkYXRlQWxsb3dhbmNlAAcDBQ1hbGxvd1RvVXBkYXRlBQt2YWxpZEJ5SGFzaAcJAAIBAgtub3QgYWxsb3dlZGW7kqY=", "height": 2188337, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = 100000000 | |
7 | + | ||
8 | + | func c () = "%s%s__cfg__beneficiaryAddress" | |
9 | + | ||
10 | + | ||
11 | + | func d () = "%s%s__cfg__nodeContructorInterval" | |
12 | + | ||
13 | + | ||
14 | + | func e () = "%s__lastUpdatedHeight" | |
15 | + | ||
16 | + | ||
17 | + | func f () = "%s%s__miner__scriptUpdateHash" | |
18 | + | ||
19 | + | ||
20 | + | func g () = "%s%s__miner__scriptUpdateAllowance" | |
21 | + | ||
22 | + | ||
23 | + | let h = addressFromStringValue("") | |
24 | + | ||
25 | + | @Callable(i) | |
26 | + | func constructor (j) = if ((this != i.caller)) | |
27 | + | then throw("permissions denied") | |
28 | + | else { | |
29 | + | let k = addressFromStringValue(j) | |
30 | + | if ((k == this)) | |
31 | + | then throw("mining node address is not allowed as a beneficiaryAddress") | |
32 | + | else [StringEntry(c(), toString(k)), IntegerEntry(e(), height)] | |
33 | + | } | |
34 | + | ||
35 | + | ||
36 | + | @Verifier(l) | |
37 | + | func m () = { | |
38 | + | let n = l | |
39 | + | if ($isInstanceOf(n, "InvokeScriptTransaction")) | |
40 | + | then { | |
41 | + | let o = n | |
42 | + | if (isDefined(o.feeAssetId)) | |
43 | + | then throw("InvokeScriptTransaction - only WAVES is allowed as feeAssetId") | |
44 | + | else if ((addressFromRecipient(o.dApp) == h)) | |
45 | + | then true | |
46 | + | else if ((addressFromRecipient(o.dApp) == this)) | |
47 | + | then { | |
48 | + | let p = valueOrElse(getInteger(this, e()), 0) | |
49 | + | let q = valueOrElse(getInteger(h, d()), 1) | |
50 | + | if ((q > (height - p))) | |
51 | + | then throw("InvokeScriptTransaction - impossible to call constructor very often") | |
52 | + | else sigVerify_32Kb(l.bodyBytes, l.proofs[0], l.senderPublicKey) | |
53 | + | } | |
54 | + | else throw("InvokeScriptTransaction - invalid dapp address") | |
55 | + | } | |
56 | + | else if ($isInstanceOf(n, "SetScriptTransaction")) | |
57 | + | then { | |
58 | + | let r = n | |
59 | + | let s = value(r.script) | |
60 | + | let t = toBase58String(blake2b256_32Kb(s)) | |
61 | + | let u = valueOrElse(getString(h, f()), "") | |
62 | + | let v = if ((u != "")) | |
63 | + | then (u == t) | |
64 | + | else false | |
65 | + | let w = valueOrElse(getBoolean(h, g()), false) | |
66 | + | if (w) | |
67 | + | then v | |
68 | + | else false | |
69 | + | } | |
70 | + | else throw("not allowed") | |
71 | + | } | |
72 | + |
github/deemru/w8io/c3f4982 24.72 ms ◑