tx · D1sBqEz4jSZqNar2sbrEN6Q5orehz8TFVYsYP9nHYJjt

3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc:  -0.01000000 Waves

2022.06.28 14:37 [2116235] smart account 3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc > SELF 0.00000000 Waves

{ "type": 13, "id": "D1sBqEz4jSZqNar2sbrEN6Q5orehz8TFVYsYP9nHYJjt", "fee": 1000000, "feeAssetId": null, "timestamp": 1656416344184, "version": 2, "chainId": 84, "sender": "3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc", "senderPublicKey": "H3EzJ6fSm7jHKo92xYdNTXaaQYKj9z5q2DJFovRDLJpf", "proofs": [ "37Eqsk3bffbFM1ecaUoD97PWUAt8DBMauKiAyvaSWGWuSHfdGGRaCtsFcHxoWkHc8EiWJgZRWmnGfuS5BF9FcktH" ], "script": "base64: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RW50cnkAAAACCQEAAAARa2V5Q29udHJvbEFkZHJlc3MAAAAABQAAABBjb250cm9sQWRkcmVzczU4CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlSZXN0QWRkcmVzcwAAAAAFAAAADXJlc3RBZGRyZXNzNTgFAAAAA25pbAAAAAFpAQAAABVzdGFrZU5zYnRQYWdlUkVBRE9OTFkAAAACAAAAEXVzZXJBZGRyZXNzU3RyT3B0AAAAC25zYnRBbXREaWZmBAAAAAlnbnNidEluZm8JAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAUAAAAHcmVzdEFjYwIAAAARZ25zYnRJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAARdXNlckFkZHJlc3NTdHJPcHQJAARMAAAAAgUAAAALbnNidEFtdERpZmYFAAAAA25pbAUAAAADbmlsBAAAAAhzd2FwSW5mbwkBAAAACGFzU3RyaW5nAAAAAQkAA/wAAAAEBQAAAAdyZXN0QWNjAgAAABBzd2FwSW5mb1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0BQAAAANuaWwFAAAAA25pbAkABRQAAAACBQAAAANuaWwJAQAAAAtwcm9kdWNlSnNvbgAAAAEJAARMAAAAAgIAAAARZ25zYnRJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAAJZ25zYnRJbmZvCQAETAAAAAICAAAAEHN3YXBJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAAIc3dhcEluZm8FAAAAA25pbAAAAAFpAQAAABNidXlOc2J0UGFnZVJFQURPTkxZAAAAAQAAABF1c2VyQWRkcmVzc1N0ck9wdAQAAAAJZ25zYnRJbmZvCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQFAAAAB3Jlc3RBY2MCAAAAEWduc2J0SW5mb1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0CQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAUAAAADbmlsBAAAAA1uZXV0cmlub1N0YXRzCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQFAAAAB3Jlc3RBY2MCAAAAFW5ldXRyaW5vU3RhdHNSRUFET05MWQUAAAADbmlsBQAA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", "height": 2116235, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BkfyGK3pZkEeWk3LYDiZeTbQtcZqCtekwit6mzWuE4WK Next: 5AQYjvxkfWKg5HkUtgMLgvFMD3cc3Ef7tm3GNYUmQ789 Diff:
OldNewDifferences
8585 }
8686
8787
88+
89+@Callable(i)
90+func genericREADONLY (payload) = {
91+ let funcsIndexes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
92+ let paramIndexes = [1, 3, 5, 7, 9, 11]
93+ let payloadArr = split(payload, SEP)
94+ let payloadSize = size(payloadArr)
95+ func invokesAgregator (accum,funcIdx) = if ((funcIdx >= payloadSize))
96+ then accum
97+ else {
98+ let call = payloadArr[funcIdx]
99+ let callArr = split(call, "+")
100+ let address = addressFromStringValue(callArr[0])
101+ let funcName = callArr[1]
102+ let paramsArr = split(callArr[2], ":")
103+ let paramsSize = size(paramsArr)
104+ func paramsAgregator (paramsAcc,paramIdx) = if ((paramIdx >= paramsSize))
105+ then paramsAcc
106+ else {
107+ let p = if ((paramsArr[(paramIdx - 1)] == "s"))
108+ then paramsArr[paramIdx]
109+ else parseIntValue(paramsArr[paramIdx])
110+ (paramsAcc :+ p)
111+ }
112+
113+ let params = {
114+ let $l = paramIndexes
115+ let $s = size($l)
116+ let $acc0 = nil
117+ func $f0_1 ($a,$i) = if (($i >= $s))
118+ then $a
119+ else paramsAgregator($a, $l[$i])
120+
121+ func $f0_2 ($a,$i) = if (($i >= $s))
122+ then $a
123+ else throw("List size exceeds 6")
124+
125+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6)
126+ }
127+ let result = asString(invoke(address, funcName, params, nil))
128+ (accum ++ [funcName, result])
129+ }
130+
131+ let invokesResults = {
132+ let $l = funcsIndexes
133+ let $s = size($l)
134+ let $acc0 = nil
135+ func $f0_1 ($a,$i) = if (($i >= $s))
136+ then $a
137+ else invokesAgregator($a, $l[$i])
138+
139+ func $f0_2 ($a,$i) = if (($i >= $s))
140+ then $a
141+ else throw("List size exceeds 10")
142+
143+ $f0_2($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)
144+ }
145+ $Tuple2(nil, produceJson(invokesResults))
146+ }
147+
148+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
66 func keyControlAddress () = "%s%s__config__controlAddress"
77
88
99 func keyRestAddress () = "%s%s__config__restAddress"
1010
1111
1212 func getStrOrFail (key) = valueOrErrorMessage(getString(this, key), (("Mandatory this." + key) + " is not defined"))
1313
1414
1515 func getAddressOrFail (key) = valueOrErrorMessage(addressFromString(getStrOrFail(key)), ("fail to parse address for this." + key))
1616
1717
1818 func asString (val) = match val {
1919 case valStr: String =>
2020 valStr
2121 case _ =>
2222 throw("fail to cast into String")
2323 }
2424
2525
2626 func produceJson (strMap) = {
2727 let indexes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2828 let length = size(strMap)
2929 if (((length % 2) != 0))
3030 then throw("only even args size is accepeted")
3131 else if ((length > size(indexes)))
3232 then throw(("strMap length is greater then " + toString(size(indexes))))
3333 else {
3434 func produceJson (jsonAccum,nextIdx) = if (if (((nextIdx % 2) == 0))
3535 then (length >= (nextIdx + 1))
3636 else false)
3737 then (((((jsonAccum + "
3838 \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\",")
3939 else jsonAccum
4040
4141 let preJsonResult = {
4242 let $l = indexes
4343 let $s = size($l)
4444 let $acc0 = ""
4545 func $f0_1 ($a,$i) = if (($i >= $s))
4646 then $a
4747 else produceJson($a, $l[$i])
4848
4949 func $f0_2 ($a,$i) = if (($i >= $s))
5050 then $a
5151 else throw("List size exceeds 20")
5252
5353 $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)
5454 }
5555 (("{" + dropRight(preJsonResult, 1)) + "}")
5656 }
5757 }
5858
5959
6060 let controlAcc = getAddressOrFail(keyControlAddress())
6161
6262 let restAcc = getAddressOrFail(keyRestAddress())
6363
6464 @Callable(i)
6565 func constructor (controlAddress58,restAddress58) = if ((i.caller != this))
6666 then throw("not authorized")
6767 else [StringEntry(keyControlAddress(), controlAddress58), StringEntry(keyRestAddress(), restAddress58)]
6868
6969
7070
7171 @Callable(i)
7272 func stakeNsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = {
7373 let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil))
7474 let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil))
7575 $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "swapInfoREADONLY", swapInfo]))
7676 }
7777
7878
7979
8080 @Callable(i)
8181 func buyNsbtPageREADONLY (userAddressStrOpt) = {
8282 let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, 0], nil))
8383 let neutrinoStats = asString(invoke(restAcc, "neutrinoStatsREADONLY", nil, nil))
8484 $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "neutrinoStatsREADONLY", neutrinoStats]))
8585 }
8686
8787
88+
89+@Callable(i)
90+func genericREADONLY (payload) = {
91+ let funcsIndexes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
92+ let paramIndexes = [1, 3, 5, 7, 9, 11]
93+ let payloadArr = split(payload, SEP)
94+ let payloadSize = size(payloadArr)
95+ func invokesAgregator (accum,funcIdx) = if ((funcIdx >= payloadSize))
96+ then accum
97+ else {
98+ let call = payloadArr[funcIdx]
99+ let callArr = split(call, "+")
100+ let address = addressFromStringValue(callArr[0])
101+ let funcName = callArr[1]
102+ let paramsArr = split(callArr[2], ":")
103+ let paramsSize = size(paramsArr)
104+ func paramsAgregator (paramsAcc,paramIdx) = if ((paramIdx >= paramsSize))
105+ then paramsAcc
106+ else {
107+ let p = if ((paramsArr[(paramIdx - 1)] == "s"))
108+ then paramsArr[paramIdx]
109+ else parseIntValue(paramsArr[paramIdx])
110+ (paramsAcc :+ p)
111+ }
112+
113+ let params = {
114+ let $l = paramIndexes
115+ let $s = size($l)
116+ let $acc0 = nil
117+ func $f0_1 ($a,$i) = if (($i >= $s))
118+ then $a
119+ else paramsAgregator($a, $l[$i])
120+
121+ func $f0_2 ($a,$i) = if (($i >= $s))
122+ then $a
123+ else throw("List size exceeds 6")
124+
125+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6)
126+ }
127+ let result = asString(invoke(address, funcName, params, nil))
128+ (accum ++ [funcName, result])
129+ }
130+
131+ let invokesResults = {
132+ let $l = funcsIndexes
133+ let $s = size($l)
134+ let $acc0 = nil
135+ func $f0_1 ($a,$i) = if (($i >= $s))
136+ then $a
137+ else invokesAgregator($a, $l[$i])
138+
139+ func $f0_2 ($a,$i) = if (($i >= $s))
140+ then $a
141+ else throw("List size exceeds 10")
142+
143+ $f0_2($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)
144+ }
145+ $Tuple2(nil, produceJson(invokesResults))
146+ }
147+
148+

github/deemru/w8io/873ac7e 
49.14 ms