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:
OldNewDifferences
7777
7878
7979 @Callable(i)
80-func nsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = {
80+func stakeNsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = {
8181 let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil))
82- let $t020842172 = parseRestResult(gnsbtInfo)
83- let gNsbtInfoMETA = $t020842172._1
84- let gNsbtInfoDATA = $t020842172._2
82+ let $t021152203 = parseRestResult(gnsbtInfo)
83+ let gNsbtInfoMETA = $t021152203._1
84+ let gNsbtInfoDATA = $t021152203._2
8585 let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil))
8686 let swapInfoArray = split(swapInfo, SEP)
8787 let blocks2LmtReset = swapInfoArray[8]
8989 }
9090
9191
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+
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 parseRestResult (restResultStr) = {
2727 let idx = valueOrErrorMessage(indexOf(restResultStr, SEP), "unsupported REST format")
2828 let metaPart = take(restResultStr, idx)
2929 let dataPart = drop(restResultStr, (idx + size(SEP)))
3030 $Tuple2(metaPart, dataPart)
3131 }
3232
3333
3434 func produceJson (strMap) = {
3535 let indexes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
3636 let length = size(strMap)
3737 if (((length % 2) != 0))
3838 then throw("only even args size is accepeted")
3939 else if ((length > size(indexes)))
4040 then throw(("strMap length is greater then " + toString(size(indexes))))
4141 else {
4242 func produceJson (jsonAccum,nextIdx) = if (if (((nextIdx % 2) == 0))
4343 then (length >= (nextIdx + 1))
4444 else false)
4545 then (((((jsonAccum + "
4646 \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\",")
4747 else jsonAccum
4848
4949 let preJsonResult = {
5050 let $l = indexes
5151 let $s = size($l)
5252 let $acc0 = ""
5353 func $f0_1 ($a,$i) = if (($i >= $s))
5454 then $a
5555 else produceJson($a, $l[$i])
5656
5757 func $f0_2 ($a,$i) = if (($i >= $s))
5858 then $a
5959 else throw("List size exceeds 20")
6060
6161 $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)
6262 }
6363 (("{" + dropRight(preJsonResult, 1)) + "}")
6464 }
6565 }
6666
6767
6868 let controlAcc = getAddressOrFail(keyControlAddress())
6969
7070 let restAcc = getAddressOrFail(keyRestAddress())
7171
7272 @Callable(i)
7373 func constructor (controlAddress58,restAddress58) = if ((i.caller != this))
7474 then throw("not authorized")
7575 else [StringEntry(keyControlAddress(), controlAddress58), StringEntry(keyRestAddress(), restAddress58)]
7676
7777
7878
7979 @Callable(i)
80-func nsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = {
80+func stakeNsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = {
8181 let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil))
82- let $t020842172 = parseRestResult(gnsbtInfo)
83- let gNsbtInfoMETA = $t020842172._1
84- let gNsbtInfoDATA = $t020842172._2
82+ let $t021152203 = parseRestResult(gnsbtInfo)
83+ let gNsbtInfoMETA = $t021152203._1
84+ let gNsbtInfoDATA = $t021152203._2
8585 let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil))
8686 let swapInfoArray = split(swapInfo, SEP)
8787 let blocks2LmtReset = swapInfoArray[8]
8888 $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "swapInfoREADONLY", swapInfo]))
8989 }
9090
9191
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