tx · 9nia82e4Yq21GC4gPheu1k4ewKj7aTMRDzjeTZj8SLxR 3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc: -0.01000000 Waves 2022.04.21 08:52 [2017905] smart account 3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc > SELF 0.00000000 Waves
{ "type": 13, "id": "9nia82e4Yq21GC4gPheu1k4ewKj7aTMRDzjeTZj8SLxR", "fee": 1000000, "feeAssetId": null, "timestamp": 1650520372235, "version": 2, "chainId": 84, "sender": "3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc", "senderPublicKey": "H3EzJ6fSm7jHKo92xYdNTXaaQYKj9z5q2DJFovRDLJpf", "proofs": [ "EqmVPUaHr9aAHqTV7gCEGaWsVRv4Jzxvp7ndCdTmqP48xQ6r9ECbz2mvmMY3b5FMyk2UzWHgoshYaSUGcNoUc5w" ], "script": "base64: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AAAAAX0AAAAACmNvbnRyb2xBY2MJAQAAABBnZXRBZGRyZXNzT3JGYWlsAAAAAQkBAAAAEWtleUNvbnRyb2xBZGRyZXNzAAAAAAAAAAAHcmVzdEFjYwkBAAAAEGdldEFkZHJlc3NPckZhaWwAAAABCQEAAAAOa2V5UmVzdEFkZHJlc3MAAAAAAAAAAwAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAIAAAAQY29udHJvbEFkZHJlc3M1OAAAAA1yZXN0QWRkcmVzczU4AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAADm5vdCBhdXRob3JpemVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlDb250cm9sQWRkcmVzcwAAAAAFAAAAEGNvbnRyb2xBZGRyZXNzNTgJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADmtleVJlc3RBZGRyZXNzAAAAAAUAAAANcmVzdEFkZHJlc3M1OAUAAAADbmlsAAAAAWkBAAAAFXN0YWtlTnNidFBhZ2VSRUFET05MWQAAAAIAAAARdXNlckFkZHJlc3NTdHJPcHQAAAALbnNidEFtdERpZmYEAAAACWduc2J0SW5mbwkBAAAACGFzU3RyaW5nAAAAAQkAA/wAAAAEBQAAAAdyZXN0QWNjAgAAABFnbnNidEluZm9SRUFET05MWQkABEwAAAACBQAAABF1c2VyQWRkcmVzc1N0ck9wdAkABEwAAAACBQAAAAtuc2J0QW10RGlmZgUAAAADbmlsBQAAAANuaWwEAAAACyR0MDIxMTUyMjAzCQEAAAAPcGFyc2VSZXN0UmVzdWx0AAAAAQUAAAAJZ25zYnRJbmZvBAAAAA1nTnNidEluZm9NRVRBCAUAAAALJHQwMjExNTIyMDMAAAACXzEEAAAADWdOc2J0SW5mb0RBVEEIBQAAAAskdDAyMTE1MjIwMwAAAAJfMgQAAAAIc3dhcEluZm8JAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAUAAAAHcmVzdEFjYwIAAAAQc3dhcEluZm9SRUFET05MWQkABEwAAAACBQAAABF1c2VyQWRkcmVzc1N0ck9wdAUAAAADbmlsBQAAAANuaWwEAAAADXN3YXBJbmZvQXJyYXkJAAS1AAAAAgUAAAAIc3dhcEluZm8FAAAAA1NFUAQAAAAPYmxvY2tzMkxtdFJlc2V0CQABkQAAAAIFAAAADXN3YXBJbmZvQXJyYXkAAAAAAAAAAAgJAAUUAAAAAgUAAAADbmlsCQEAAAALcHJvZHVjZUpzb24AAAABCQAETAAAAAICAAAAEWduc2J0SW5mb1JFQURPTkxZCQAETAAAAAIFAAAACWduc2J0SW5mbwkABEwAAAACAgAAABBzd2FwSW5mb1JFQURPTkxZCQAETAAAAAIFAAAACHN3YXBJbmZvBQAAAANuaWwAAAABaQEAAAATYnV5TnNidFBhZ2VSRUFET05MWQAAAAEAAAARdXNlckFkZHJlc3NTdHJPcHQEAAAACWduc2J0SW5mbwkBAAAACGFzU3RyaW5nAAAAAQkAA/wAAAAEBQAAAAdyZXN0QWNjAgAAABFnbnNidEluZm9SRUFET05MWQkABEwAAAACBQAAABF1c2VyQWRkcmVzc1N0ck9wdAkABEwAAAACAAAAAAAF9eEABQAAAANuaWwFAAAAA25pbAQAAAANbmV1dHJpbm9TdGF0cwkBAAAACGFzU3RyaW5nAAAAAQkAA/wAAAAEBQAAAAdyZXN0QWNjAgAAABVuZXV0cmlub1N0YXRzUkVBRE9OTFkFAAAAA25pbAUAAAADbmlsCQAFFAAAAAIFAAAAA25pbAkBAAAAC3Byb2R1Y2VKc29uAAAAAQkABEwAAAACAgAAABFnbnNidEluZm9SRUFET05MWQkABEwAAAACBQAAAAlnbnNidEluZm8JAARMAAAAAgIAAAAVbmV1dHJpbm9TdGF0c1JFQURPTkxZCQAETAAAAAIFAAAADW5ldXRyaW5vU3RhdHMFAAAAA25pbAAAAADaVLkZ", "height": 2017905, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B6jwGXcLJ1zF2qzdUc1RjMMFbXUVwVHfrShh42oZS2Sa Next: 6RABzX8ZBZnt2GEAkhKeJyjr5xuoutocqmmVhA3a5VSz Diff:
Old | New | Differences | |
---|---|---|---|
77 | 77 | ||
78 | 78 | ||
79 | 79 | @Callable(i) | |
80 | - | func | |
80 | + | func stakeNsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = { | |
81 | 81 | let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil)) | |
82 | - | let $ | |
83 | - | let gNsbtInfoMETA = $ | |
84 | - | let gNsbtInfoDATA = $ | |
82 | + | let $t021152203 = parseRestResult(gnsbtInfo) | |
83 | + | let gNsbtInfoMETA = $t021152203._1 | |
84 | + | let gNsbtInfoDATA = $t021152203._2 | |
85 | 85 | let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil)) | |
86 | 86 | let swapInfoArray = split(swapInfo, SEP) | |
87 | 87 | let blocks2LmtReset = swapInfoArray[8] | |
89 | 89 | } | |
90 | 90 | ||
91 | 91 | ||
92 | + | ||
93 | + | @Callable(i) | |
94 | + | func buyNsbtPageREADONLY (userAddressStrOpt) = { | |
95 | + | let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, 100000000], nil)) | |
96 | + | let neutrinoStats = asString(invoke(restAcc, "neutrinoStatsREADONLY", nil, nil)) | |
97 | + | $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "neutrinoStatsREADONLY", neutrinoStats])) | |
98 | + | } | |
99 | + | ||
100 | + |
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 | 46 | \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\",") | |
47 | 47 | else jsonAccum | |
48 | 48 | ||
49 | 49 | let preJsonResult = { | |
50 | 50 | let $l = indexes | |
51 | 51 | let $s = size($l) | |
52 | 52 | let $acc0 = "" | |
53 | 53 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
54 | 54 | then $a | |
55 | 55 | else produceJson($a, $l[$i]) | |
56 | 56 | ||
57 | 57 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
58 | 58 | then $a | |
59 | 59 | else throw("List size exceeds 20") | |
60 | 60 | ||
61 | 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) | |
62 | 62 | } | |
63 | 63 | (("{" + dropRight(preJsonResult, 1)) + "}") | |
64 | 64 | } | |
65 | 65 | } | |
66 | 66 | ||
67 | 67 | ||
68 | 68 | let controlAcc = getAddressOrFail(keyControlAddress()) | |
69 | 69 | ||
70 | 70 | let restAcc = getAddressOrFail(keyRestAddress()) | |
71 | 71 | ||
72 | 72 | @Callable(i) | |
73 | 73 | func constructor (controlAddress58,restAddress58) = if ((i.caller != this)) | |
74 | 74 | then throw("not authorized") | |
75 | 75 | else [StringEntry(keyControlAddress(), controlAddress58), StringEntry(keyRestAddress(), restAddress58)] | |
76 | 76 | ||
77 | 77 | ||
78 | 78 | ||
79 | 79 | @Callable(i) | |
80 | - | func | |
80 | + | func stakeNsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = { | |
81 | 81 | let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil)) | |
82 | - | let $ | |
83 | - | let gNsbtInfoMETA = $ | |
84 | - | let gNsbtInfoDATA = $ | |
82 | + | let $t021152203 = parseRestResult(gnsbtInfo) | |
83 | + | let gNsbtInfoMETA = $t021152203._1 | |
84 | + | let gNsbtInfoDATA = $t021152203._2 | |
85 | 85 | let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil)) | |
86 | 86 | let swapInfoArray = split(swapInfo, SEP) | |
87 | 87 | let blocks2LmtReset = swapInfoArray[8] | |
88 | 88 | $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "swapInfoREADONLY", swapInfo])) | |
89 | 89 | } | |
90 | 90 | ||
91 | 91 | ||
92 | + | ||
93 | + | @Callable(i) | |
94 | + | func buyNsbtPageREADONLY (userAddressStrOpt) = { | |
95 | + | let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, 100000000], nil)) | |
96 | + | let neutrinoStats = asString(invoke(restAcc, "neutrinoStatsREADONLY", nil, nil)) | |
97 | + | $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "neutrinoStatsREADONLY", neutrinoStats])) | |
98 | + | } | |
99 | + | ||
100 | + |
github/deemru/w8io/169f3d6 28.66 ms ◑![]()