tx · CwH9ckTbNJXxPgn8x1HsVw7Fc75ivwVXbArbaGKTT3sd 3NBSqQgm5U3zh5cfSneNkm2wmUaXzTJ4sUB: -0.01000000 Waves 2020.11.03 11:54 [1248907] smart account 3NBSqQgm5U3zh5cfSneNkm2wmUaXzTJ4sUB > SELF 0.00000000 Waves
{ "type": 13, "id": "CwH9ckTbNJXxPgn8x1HsVw7Fc75ivwVXbArbaGKTT3sd", "fee": 1000000, "feeAssetId": null, "timestamp": 1604393663036, "version": 2, "chainId": 84, "sender": "3NBSqQgm5U3zh5cfSneNkm2wmUaXzTJ4sUB", "senderPublicKey": "9oYfYUoEoGCa2YMXvKKMhiSQ2uy3cGDTfkHdwddnPEj4", "proofs": [ "3dBLgfWLwjbrYD5nEWcGHgPyRGpvUUZLUtq51CV1yy4PGHta8RpZ5kF4YxFjqqWmWQ3sAZUa8LoJARHo7vqYNekY" ], "script": "base64:AAIEAAAAAAAAAAIIAgAAAAUAAAAACmRBcHBTdHJpbmcJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAAJZEFwcF9saXN0AgAAABwiZEFwcF9saXN0IiBpcyBub3Qgc3BlY2lmZWQhAAAAAAhkQXBwTGlzdAkABLUAAAACBQAAAApkQXBwU3RyaW5nAgAAAAF8AAAAAAdhZG1pblBrAQAAACBFHhhYddGi2yuwI0/VUCaXuuYkDcTJbY5O5IpruTOzcwEAAAAQZ2V0U3RyaW5nQWRkcmVzcwAAAAEAAAAEZEFwcAkABCUAAAABCQAEJAAAAAEFAAAABGRBcHABAAAAEHZlcmlmeVJlc3RJbnZva2UAAAABAAAABmludm9rZQQAAAAHJG1hdGNoMAgFAAAABmludm9rZQAAAARkQXBwAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdBZGRyZXNzBAAAAAF0BQAAAAckbWF0Y2gwBAAAAAtkQXBwQWRkcmVzcwkABCUAAAABBQAAAAF0AwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAIZEFwcExpc3QFAAAAC2RBcHBBZGRyZXNzBwMJAQAAAAEhAAAAAQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTEpAAAAAgUAAAAEdGhpcwkABLkAAAACCQAETAAAAAICAAAACGZ1bmN0aW9uCQAETAAAAAIFAAAAC2RBcHBBZGRyZXNzBQAAAANuaWwCAAAAAV8HBwYHAAAAAAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQEAAAABIQAAAAEJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAdhZG1pblBrBAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EAAAAAWkFAAAAByRtYXRjaDADCQEAAAAQdmVyaWZ5UmVzdEludm9rZQAAAAEFAAAAAWkJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BwcG68D71w==", "height": 1248907, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let dAppString = valueOrErrorMessage(getStringValue(this, "dApp_list"), "\"dApp_list\" is not specifed!") | |
5 | + | ||
6 | + | let dAppList = split(dAppString, "|") | |
7 | + | ||
8 | + | let adminPk = base58'5eokMGZL2aEEoNTCmc4YdixCN7xHcGciJMCvkbWvRJSv' | |
9 | + | ||
10 | + | func getStringAddress (dApp) = toString(addressFromRecipient(dApp)) | |
11 | + | ||
12 | + | ||
13 | + | func verifyRestInvoke (invoke) = match invoke.dApp { | |
14 | + | case t: Address => | |
15 | + | let dAppAddress = toString(t) | |
16 | + | if (!(containsElement(dAppList, dAppAddress))) | |
17 | + | then false | |
18 | + | else if (!(valueOrElse(getBooleanValue(this, makeString(["function", dAppAddress], "_")), false))) | |
19 | + | then false | |
20 | + | else true | |
21 | + | case _ => | |
22 | + | false | |
23 | + | } | |
24 | + | ||
25 | + | ||
26 | + | ||
27 | + | @Verifier(tx) | |
28 | + | func verify () = if (!(sigVerify(tx.bodyBytes, tx.proofs[0], adminPk))) | |
29 | + | then match tx { | |
30 | + | case i: InvokeScriptTransaction => | |
31 | + | if (verifyRestInvoke(i)) | |
32 | + | then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
33 | + | else false | |
34 | + | case _ => | |
35 | + | false | |
36 | + | } | |
37 | + | else true | |
38 | + |
github/deemru/w8io/169f3d6 13.78 ms ◑![]()