tx · B6jwGXcLJ1zF2qzdUc1RjMMFbXUVwVHfrShh42oZS2Sa 3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc: -0.01000000 Waves 2022.04.21 08:46 [2017899] smart account 3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc > SELF 0.00000000 Waves
{ "type": 13, "id": "B6jwGXcLJ1zF2qzdUc1RjMMFbXUVwVHfrShh42oZS2Sa", "fee": 1000000, "feeAssetId": null, "timestamp": 1650520023290, "version": 2, "chainId": 84, "sender": "3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc", "senderPublicKey": "H3EzJ6fSm7jHKo92xYdNTXaaQYKj9z5q2DJFovRDLJpf", "proofs": [ "4zyMgas8UTZLdsTZ3QXAPzsAhqZvfGhYLAE9wsAD4JWWsPEbawSpErD2b3XmyEpaAVzMNGShZGGtX9fgHie8oqfq" ], "script": "base64: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AAAAAApjb250cm9sQWNjCQEAAAAQZ2V0QWRkcmVzc09yRmFpbAAAAAEJAQAAABFrZXlDb250cm9sQWRkcmVzcwAAAAAAAAAAB3Jlc3RBY2MJAQAAABBnZXRBZGRyZXNzT3JGYWlsAAAAAQkBAAAADmtleVJlc3RBZGRyZXNzAAAAAAAAAAIAAAABaQEAAAALY29uc3RydWN0b3IAAAACAAAAEGNvbnRyb2xBZGRyZXNzNTgAAAANcmVzdEFkZHJlc3M1OAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5Q29udHJvbEFkZHJlc3MAAAAABQAAABBjb250cm9sQWRkcmVzczU4CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlSZXN0QWRkcmVzcwAAAAAFAAAADXJlc3RBZGRyZXNzNTgFAAAAA25pbAAAAAFpAQAAABBuc2J0UGFnZVJFQURPTkxZAAAAAgAAABF1c2VyQWRkcmVzc1N0ck9wdAAAAAtuc2J0QW10RGlmZgQAAAAJZ25zYnRJbmZvCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQFAAAAB3Jlc3RBY2MCAAAAEWduc2J0SW5mb1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0CQAETAAAAAIFAAAAC25zYnRBbXREaWZmBQAAAANuaWwFAAAAA25pbAQAAAALJHQwMjA4NDIxNzIJAQAAAA9wYXJzZVJlc3RSZXN1bHQAAAABBQAAAAlnbnNidEluZm8EAAAADWdOc2J0SW5mb01FVEEIBQAAAAskdDAyMDg0MjE3MgAAAAJfMQQAAAANZ05zYnRJbmZvREFUQQgFAAAACyR0MDIwODQyMTcyAAAAAl8yBAAAAAhzd2FwSW5mbwkBAAAACGFzU3RyaW5nAAAAAQkAA/wAAAAEBQAAAAdyZXN0QWNjAgAAABBzd2FwSW5mb1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0BQAAAANuaWwFAAAAA25pbAQAAAANc3dhcEluZm9BcnJheQkABLUAAAACBQAAAAhzd2FwSW5mbwUAAAADU0VQBAAAAA9ibG9ja3MyTG10UmVzZXQJAAGRAAAAAgUAAAANc3dhcEluZm9BcnJheQAAAAAAAAAACAkABRQAAAACBQAAAANuaWwJAQAAAAtwcm9kdWNlSnNvbgAAAAEJAARMAAAAAgIAAAARZ25zYnRJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAAJZ25zYnRJbmZvCQAETAAAAAICAAAAEHN3YXBJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAAIc3dhcEluZm8FAAAAA25pbAAAAACClXx0", "height": 2017899, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HiYMz66R8BGkRkbVVSzGbXo2YUZRgHtgwWBfSPY3W8Nq Next: 9nia82e4Yq21GC4gPheu1k4ewKj7aTMRDzjeTZj8SLxR Diff:
Old | New | Differences | |
---|---|---|---|
43 | 43 | then (length >= (nextIdx + 1)) | |
44 | 44 | else false) | |
45 | 45 | then (((((jsonAccum + " | |
46 | - | \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\", | |
47 | - | ") | |
46 | + | \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\",") | |
48 | 47 | else jsonAccum | |
49 | 48 | ||
50 | 49 | let preJsonResult = { | |
61 | 60 | ||
62 | 61 | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20) | |
63 | 62 | } | |
64 | - | (("{" + dropRight(preJsonResult, | |
63 | + | (("{" + dropRight(preJsonResult, 1)) + "}") | |
65 | 64 | } | |
66 | 65 | } | |
67 | 66 | ||
80 | 79 | @Callable(i) | |
81 | 80 | func nsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = { | |
82 | 81 | let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil)) | |
83 | - | let $ | |
84 | - | let gNsbtInfoMETA = $ | |
85 | - | let gNsbtInfoDATA = $ | |
82 | + | let $t020842172 = parseRestResult(gnsbtInfo) | |
83 | + | let gNsbtInfoMETA = $t020842172._1 | |
84 | + | let gNsbtInfoDATA = $t020842172._2 | |
86 | 85 | let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil)) | |
87 | 86 | let swapInfoArray = split(swapInfo, SEP) | |
88 | 87 | let blocks2LmtReset = swapInfoArray[8] |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let SEP = "__" | |
5 | 5 | ||
6 | 6 | func keyControlAddress () = "%s%s__config__controlAddress" | |
7 | 7 | ||
8 | 8 | ||
9 | 9 | func keyRestAddress () = "%s%s__config__restAddress" | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func getStrOrFail (key) = valueOrErrorMessage(getString(this, key), (("Mandatory this." + key) + " is not defined")) | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func getAddressOrFail (key) = valueOrErrorMessage(addressFromString(getStrOrFail(key)), ("fail to parse address for this." + key)) | |
16 | 16 | ||
17 | 17 | ||
18 | 18 | func asString (val) = match val { | |
19 | 19 | case valStr: String => | |
20 | 20 | valStr | |
21 | 21 | case _ => | |
22 | 22 | throw("fail to cast into String") | |
23 | 23 | } | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func parseRestResult (restResultStr) = { | |
27 | 27 | let idx = valueOrErrorMessage(indexOf(restResultStr, SEP), "unsupported REST format") | |
28 | 28 | let metaPart = take(restResultStr, idx) | |
29 | 29 | let dataPart = drop(restResultStr, (idx + size(SEP))) | |
30 | 30 | $Tuple2(metaPart, dataPart) | |
31 | 31 | } | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func produceJson (strMap) = { | |
35 | 35 | let indexes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] | |
36 | 36 | let length = size(strMap) | |
37 | 37 | if (((length % 2) != 0)) | |
38 | 38 | then throw("only even args size is accepeted") | |
39 | 39 | else if ((length > size(indexes))) | |
40 | 40 | then throw(("strMap length is greater then " + toString(size(indexes)))) | |
41 | 41 | else { | |
42 | 42 | func produceJson (jsonAccum,nextIdx) = if (if (((nextIdx % 2) == 0)) | |
43 | 43 | then (length >= (nextIdx + 1)) | |
44 | 44 | else false) | |
45 | 45 | then (((((jsonAccum + " | |
46 | - | \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\", | |
47 | - | ") | |
46 | + | \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\",") | |
48 | 47 | else jsonAccum | |
49 | 48 | ||
50 | 49 | let preJsonResult = { | |
51 | 50 | let $l = indexes | |
52 | 51 | let $s = size($l) | |
53 | 52 | let $acc0 = "" | |
54 | 53 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
55 | 54 | then $a | |
56 | 55 | else produceJson($a, $l[$i]) | |
57 | 56 | ||
58 | 57 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
59 | 58 | then $a | |
60 | 59 | else throw("List size exceeds 20") | |
61 | 60 | ||
62 | 61 | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20) | |
63 | 62 | } | |
64 | - | (("{" + dropRight(preJsonResult, | |
63 | + | (("{" + dropRight(preJsonResult, 1)) + "}") | |
65 | 64 | } | |
66 | 65 | } | |
67 | 66 | ||
68 | 67 | ||
69 | 68 | let controlAcc = getAddressOrFail(keyControlAddress()) | |
70 | 69 | ||
71 | 70 | let restAcc = getAddressOrFail(keyRestAddress()) | |
72 | 71 | ||
73 | 72 | @Callable(i) | |
74 | 73 | func constructor (controlAddress58,restAddress58) = if ((i.caller != this)) | |
75 | 74 | then throw("not authorized") | |
76 | 75 | else [StringEntry(keyControlAddress(), controlAddress58), StringEntry(keyRestAddress(), restAddress58)] | |
77 | 76 | ||
78 | 77 | ||
79 | 78 | ||
80 | 79 | @Callable(i) | |
81 | 80 | func nsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = { | |
82 | 81 | let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil)) | |
83 | - | let $ | |
84 | - | let gNsbtInfoMETA = $ | |
85 | - | let gNsbtInfoDATA = $ | |
82 | + | let $t020842172 = parseRestResult(gnsbtInfo) | |
83 | + | let gNsbtInfoMETA = $t020842172._1 | |
84 | + | let gNsbtInfoDATA = $t020842172._2 | |
86 | 85 | let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil)) | |
87 | 86 | let swapInfoArray = split(swapInfo, SEP) | |
88 | 87 | let blocks2LmtReset = swapInfoArray[8] | |
89 | 88 | $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "swapInfoREADONLY", swapInfo])) | |
90 | 89 | } | |
91 | 90 | ||
92 | 91 |
github/deemru/w8io/169f3d6 31.69 ms ◑![]()