tx · ER7VviJafYeNnoqZMvSHHHzEDsvcVg84HuXT6Qt6s6XG 3N5a16cABKGmRmXHNnbHsbGkuDSEmP3GG94: -0.00200000 Waves 2022.08.17 13:25 [2188348] smart account 3N5a16cABKGmRmXHNnbHsbGkuDSEmP3GG94 > SELF 0.00000000 Waves
{ "type": 13, "id": "ER7VviJafYeNnoqZMvSHHHzEDsvcVg84HuXT6Qt6s6XG", "fee": 200000, "feeAssetId": null, "timestamp": 1660731944040, "version": 2, "chainId": 84, "sender": "3N5a16cABKGmRmXHNnbHsbGkuDSEmP3GG94", "senderPublicKey": "6zFiRnwkNngmowXMn1N6zP6qtNcZHA42siuJJxa3Pk4Z", "proofs": [ "4PMprVcHws4MqJDZybnf3s3oahBiY76au4vW7V1wyKjTsxHnksduAtAHSBQMQ1Z6JHdjwsPS8pW2Cb2GKskfbvxB" ], "script": "base64:BgIHCAISAwoBCAgAA1NFUAICX18ABU1VTFQ4AIDC1y8BFWtleUJlbmVmaWNpYXJ5QWRkcmVzcwACHSVzJXNfX2NmZ19fYmVuZWZpY2lhcnlBZGRyZXNzARZrZXlDb25zdHJ1Y3RvckludGVydmFsAAIhJXMlc19fY2ZnX19ub2RlQ29udHJ1Y3RvckludGVydmFsARNrZXlMYXN0VXBkYXRlSGVpZ2h0AAIVJXNfX2xhc3RVcGRhdGVkSGVpZ2h0ARNrZXlTY3JpcHRVcGRhdGVIYXNoAAIdJXMlc19fbWluZXJfX3NjcmlwdFVwZGF0ZUhhc2gBGGtleVNjcmlwdFVwZGF0ZUFsbG93YW5jZQACIiVzJXNfX21pbmVyX19zY3JpcHRVcGRhdGVBbGxvd2FuY2UADG5vZGVSZWdpc3RyeQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM012OGY5dFNOSkhXRXplSjc5WWJTVFNBQXVvQ2pSdzR1eVABAWkBC2NvbnN0cnVjdG9yARdiZW5lZmljaWFyeUFkZHJlc3NTdHI1OAMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECEnBlcm1pc3Npb25zIGRlbmllZAQSYmVuZWZpY2lhcnlBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRdiZW5lZmljaWFyeUFkZHJlc3NTdHI1OAMJAAACBRJiZW5lZmljaWFyeUFkZHJlc3MFBHRoaXMJAAIBAjptaW5pbmcgbm9kZSBhZGRyZXNzIGlzIG5vdCBhbGxvd2VkIGFzIGEgYmVuZWZpY2lhcnlBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARVrZXlCZW5lZmljaWFyeUFkZHJlc3MACQClCAEFEmJlbmVmaWNpYXJ5QWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2tleUxhc3RVcGRhdGVIZWlnaHQABQZoZWlnaHQFA25pbAECdHgBBnZlcmlmeQAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDADCQEJaXNEZWZpbmVkAQgFA2ludgpmZWVBc3NldElkCQACAQI9SW52b2tlU2NyaXB0VHJhbnNhY3Rpb24gLSBvbmx5IFdBVkVTIGlzIGFsbG93ZWQgYXMgZmVlQXNzZXRJZAMJAAACCQCkCAEIBQNpbnYEZEFwcAUMbm9kZVJlZ2lzdHJ5BgMJAAACCQCkCAEIBQNpbnYEZEFwcAUEdGhpcwQRbGFzdFVwZGF0ZWRIZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBE2tleUxhc3RVcGRhdGVIZWlnaHQAAAAEDmNvbnN0ckludGVydmFsCQELdmFsdWVPckVsc2UCCQCaCAIFDG5vZGVSZWdpc3RyeQkBFmtleUNvbnN0cnVjdG9ySW50ZXJ2YWwAAAEDCQBmAgUOY29uc3RySW50ZXJ2YWwJAGUCBQZoZWlnaHQFEWxhc3RVcGRhdGVkSGVpZ2h0CQACAQJDSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24gLSBpbXBvc3NpYmxlIHRvIGNhbGwgY29uc3RydWN0b3IgdmVyeSBvZnRlbgkAxhMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECLkludm9rZVNjcmlwdFRyYW5zYWN0aW9uIC0gaW52YWxpZCBkYXBwIGFkZHJlc3MDCQABAgUHJG1hdGNoMAIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EA3N0eAUHJG1hdGNoMAQLc2NyaXB0Qnl0ZXMJAQV2YWx1ZQEIBQNzdHgGc2NyaXB0BARoYXNoCQDYBAEJAPEVAQULc2NyaXB0Qnl0ZXMEC2FsbG93ZWRIYXNoCQELdmFsdWVPckVsc2UCCQCdCAIFDG5vZGVSZWdpc3RyeQkBE2tleVNjcmlwdFVwZGF0ZUhhc2gAAgAEC3ZhbGlkQnlIYXNoAwkBAiE9AgULYWxsb3dlZEhhc2gCAAkAAAIFC2FsbG93ZWRIYXNoBQRoYXNoBwQNYWxsb3dUb1VwZGF0ZQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQxub2RlUmVnaXN0cnkJARhrZXlTY3JpcHRVcGRhdGVBbGxvd2FuY2UABwMFDWFsbG93VG9VcGRhdGUFC3ZhbGlkQnlIYXNoBwkAAgECC25vdCBhbGxvd2VkdoOJLQ==", "height": 2188348, "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("3Mv8f9tSNJHWEzeJ79YbSTSAAuoCjRw4uyP") | |
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/026f985 16.97 ms ◑