tx · 3GQ2zFc8a5xHAhsQe772cUGdCEbMTNAv1YQ2ZH38w4iM

3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc:  -0.04000000 Waves

2022.07.29 14:05 [2161025] smart account 3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc > SELF 0.00000000 Waves

{ "type": 13, "id": "3GQ2zFc8a5xHAhsQe772cUGdCEbMTNAv1YQ2ZH38w4iM", "fee": 4000000, "feeAssetId": null, "timestamp": 1659092782464, "version": 1, "sender": "3MyBtJnMg6n7m1sDczbrijVyosLnRh4FFbc", "senderPublicKey": "H3EzJ6fSm7jHKo92xYdNTXaaQYKj9z5q2DJFovRDLJpf", "proofs": [ "67EFe6JsqK3D8B7nQ2yddkm6kknwK1y3G3zK5kFQdy81VwiBkgeUMbUfszLMVQsjKBSSQoJuhxJSeE1BNXvXxYW9" ], "script": "base64:AAIFAAAAAAAAACQIAhIECgIICBIECgIIARIDCgEIEgUKAwgBCBIDCgEIEgMKAQgAAAAYAAAAAANTRVACAAAAAl9fAAAAABlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAAAAAAAAAAABAAAAABhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAAAAAAAAAAAIAAAAAFElkeENvbnRyb2xDZmdScGREYXBwAAAAAAAAAAADAAAAABVJZHhDb250cm9sQ2ZnTWF0aERhcHAAAAAAAAAAAAQAAAAAHElkeENvbnRyb2xDZmdMaXF1aWRhdGlvbkRhcHAAAAAAAAAAAAUAAAAAFUlkeENvbnRyb2xDZmdSZXN0RGFwcAAAAAAAAAAABgAAAAAdSWR4Q29udHJvbENmZ05vZGVSZWdpc3RyeURhcHAAAAAAAAAAAAcAAAAAHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAAAAAAAAAAAAgAAAAAGUlkeENvbnRyb2xDZmdNZWRpYXRvckRhcHAAAAAAAAAAAAkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAKbWFuZGF0b3J5IAkABCUAAAABBQAAAAdhZGRyZXNzAgAAAAEuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAARa2V5Q29udHJvbEFkZHJlc3MAAAAAAgAAABwlcyVzX19jb25maWdfX2NvbnRyb2xBZGRyZXNzAQAAAA1rZXlDb250cm9sQ2ZnAAAAAAIAAAARJXNfX2NvbnRyb2xDb25maWcBAAAAFHJlYWRDb250cm9sQ2ZnT3JGYWlsAAAAAQAAAAdjb250cm9sCQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAAdjb250cm9sCQEAAAANa2V5Q29udHJvbENmZwAAAAAFAAAAA1NFUAEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgAAAApjb250cm9sQ2ZnAAAAA2lkeAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEJAAGRAAAAAgUAAAAKY29udHJvbENmZwUAAAADaWR4CQABLAAAAAICAAAALUNvbnRyb2wgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkAAaQAAAABBQAAAANpZHgAAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzCQEAAAARa2V5Q29udHJvbEFkZHJlc3MAAAAAAgAAACMzTjROUzdkNEpvOWE2RjE0TGlGVUtLWVZkVWtrZjJlUDRaeAAAAAAKY29udHJvbENmZwkBAAAAFHJlYWRDb250cm9sQ2ZnT3JGYWlsAAAAAQUAAAAPY29udHJvbENvbnRyYWN0AAAAAAdyZXN0QWNjCQEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgUAAAAKY29udHJvbENmZwUAAAAVSWR4Q29udHJvbENmZ1Jlc3REYXBwAQAAAA5rZXlSZXN0QWRkcmVzcwAAAAACAAAAGSVzJXNfX2NvbmZpZ19fcmVzdEFkZHJlc3MBAAAADGdldFN0ck9yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgIAAAAPTWFuZGF0b3J5IHRoaXMuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAAQZ2V0QWRkcmVzc09yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAADGdldFN0ck9yRmFpbAAAAAEFAAAAA2tleQkAASwAAAACAgAAAB9mYWlsIHRvIHBhcnNlIGFkZHJlc3MgZm9yIHRoaXMuBQAAAANrZXkBAAAACGFzU3RyaW5nAAAAAQAAAAN2YWwEAAAAByRtYXRjaDAFAAAAA3ZhbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAZ2YWxTdHIFAAAAByRtYXRjaDAFAAAABnZhbFN0cgkAAAIAAAABAgAAABhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBAAAAC3Byb2R1Y2VKc29uAAAAAQAAAAZzdHJNYXAEAAAAB2luZGV4ZXMJAARMAAAAAgAAAAAAAAAAAAkABEwAAAACAAAAAAAAAAABCQAETAAAAAIAAAAAAAAAAAIJAARMAAAAAgAAAAAAAAAAAwkABEwAAAACAAAAAAAAAAAECQAETAAAAAIAAAAAAAAAAAUJAARMAAAAAgAAAAAAAAAABgkABEwAAAACAAAAAAAAAAAHCQAETAAAAAIAAAAAAAAAAAgJAARMAAAAAgAAAAAAAAAACQkABEwAAAACAAAAAAAAAAAKCQAETAAAAAIAAAAAAAAAAAsJAARMAAAAAgAAAAAAAAAADAkABEwAAAACAAAAAAAAAAANCQAETAAAAAIAAAAAAAAAAA4JAARMAAAAAgAAAAAAAAAADwkABEwAAAACAAAAAAAAAAAQCQAETAAAAAIAAAAAAAAAABEJAARMAAAAAgAAAAAAAAAAEgkABEwAAAACAAAAAAAAAAATBQAAAANuaWwEAAAABmxlbmd0aAkAAZAAAAABBQAAAAZzdHJNYXADCQEAAAACIT0AAAACCQAAagAAAAIFAAAABmxlbmd0aAAAAAAAAAAAAgAAAAAAAAAAAAkAAAIAAAABAgAAACBvbmx5IGV2ZW4gYXJncyBzaXplIGlzIGFjY2VwZXRlZAMJAABmAAAAAgUAAAAGbGVuZ3RoCQABkAAAAAEFAAAAB2luZGV4ZXMJAAACAAAAAQkAASwAAAACAgAAAB5zdHJNYXAgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhlbiAJAAGkAAAAAQkAAZAAAAABBQAAAAdpbmRleGVzCgEAAAALcHJvZHVjZUpzb24AAAACAAAACWpzb25BY2N1bQAAAAduZXh0SWR4AwMJAAAAAAAAAgkAAGoAAAACBQAAAAduZXh0SWR4AAAAAAAAAAACAAAAAAAAAAAACQAAZwAAAAIFAAAABmxlbmd0aAkAAGQAAAACBQAAAAduZXh0SWR4AAAAAAAAAAABBwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACWpzb25BY2N1bQIAAAACCiIJAAGRAAAAAgUAAAAGc3RyTWFwBQAAAAduZXh0SWR4AgAAAAQiOiAiCQABkQAAAAIFAAAABnN0ck1hcAkAAGQAAAACBQAAAAduZXh0SWR4AAAAAAAAAAABAgAAAAIiLAUAAAAJanNvbkFjY3VtBAAAAA1wcmVKc29uUmVzdWx0CgAAAAACJGwFAAAAB2luZGV4ZXMKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwAgAAAAAKAQAAAAUkZjBfMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAAAtwcm9kdWNlSnNvbgAAAAIFAAAAAiRhCQABkQAAAAIFAAAAAiRsBQAAAAIkaQoBAAAABSRmMF8yAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkAAAIAAAABAgAAABRMaXN0IHNpemUgZXhjZWVkcyAyMAkBAAAABSRmMF8yAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoAAAAAAAAAAAsAAAAAAAAAAAwAAAAAAAAAAA0AAAAAAAAAAA4AAAAAAAAAAA8AAAAAAAAAABAAAAAAAAAAABEAAAAAAAAAABIAAAAAAAAAABMAAAAAAAAAABQJAAEsAAAAAgkAASwAAAACAgAAAAF7CQEAAAAJZHJvcFJpZ2h0AAAAAgUAAAANcHJlSnNvblJlc3VsdAAAAAAAAAAAAQIAAAABfQEAAAARZ2VuZXJpY1YyUkVBRE9OTFkAAAABAAAAAXgKAQAAAARjYWxsAAAAAgAAAAFhAAAAAWUJAARNAAAAAgUAAAABYQkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQgFAAAAAWUAAAACXzEIBQAAAAFlAAAAAl8yCAUAAAABZQAAAAJfMwUAAAADbmlsCgAAAAACJGwFAAAAAXgKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwBQAAAANuaWwKAQAAAAUkZjBfMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAAARjYWxsAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAYAAAABaQEAAAALY29uc3RydWN0b3IAAAACAAAAEGNvbnRyb2xBZGRyZXNzNTgAAAANcmVzdEFkZHJlc3M1OAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5Q29udHJvbEFkZHJlc3MAAAAABQAAABBjb250cm9sQWRkcmVzczU4CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlSZXN0QWRkcmVzcwAAAAAFAAAADXJlc3RBZGRyZXNzNTgFAAAAA25pbAAAAAFpAQAAABVzdGFrZU5zYnRQYWdlUkVBRE9OTFkAAAACAAAAEXVzZXJBZGRyZXNzU3RyT3B0AAAAC25zYnRBbXREaWZmBAAAAAlnbnNidEluZm8JAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAUAAAAHcmVzdEFjYwIAAAARZ25zYnRJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAARdXNlckFkZHJlc3NTdHJPcHQJAARMAAAAAgUAAAALbnNidEFtdERpZmYFAAAAA25pbAUAAAADbmlsBAAAAAhzd2FwSW5mbwkBAAAACGFzU3RyaW5nAAAAAQkAA/wAAAAEBQAAAAdyZXN0QWNjAgAAABBzd2FwSW5mb1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0BQAAAANuaWwFAAAAA25pbAkABRQAAAACBQAAAANuaWwJAQAAAAtwcm9kdWNlSnNvbgAAAAEJAARMAAAAAgIAAAARZ25zYnRJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAAJZ25zYnRJbmZvCQAETAAAAAICAAAAEHN3YXBJbmZvUkVBRE9OTFkJAARMAAAAAgUAAAAIc3dhcEluZm8FAAAAA25pbAAAAAFpAQAAABNidXlOc2J0UGFnZVJFQURPTkxZAAAAAQAAABF1c2VyQWRkcmVzc1N0ck9wdAQAAAAJZ25zYnRJbmZvCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQFAAAAB3Jlc3RBY2MCAAAAEWduc2J0SW5mb1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0CQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAUAAAADbmlsBAAAAA1uZXV0cmlub1N0YXRzCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQFAAAAB3Jlc3RBY2MCAAAAFW5ldXRyaW5vU3RhdHNSRUFET05MWQUAAAADbmlsBQAAAANuaWwJAAUUAAAAAgUAAAADbmlsCQEAAAALcHJvZHVjZUpzb24AAAABCQAETAAAAAICAAAAEWduc2J0SW5mb1JFQURPTkxZCQAETAAAAAIFAAAACWduc2J0SW5mbwkABEwAAAACAgAAABVuZXV0cmlub1N0YXRzUkVBRE9OTFkJAARMAAAAAgUAAAANbmV1dHJpbm9TdGF0cwUAAAADbmlsAAAAAWkBAAAAE2J1eVN1cmZQYWdlUkVBRE9OTFkAAAADAAAAEXVzZXJBZGRyZXNzU3RyT3B0AAAABmFtb3VudAAAAAphc3NldElkU3RyBAAAAA1uZXV0cmlub1N0YXRzCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQFAAAAB3Jlc3RBY2MCAAAAFW5ldXRyaW5vU3RhdHNSRUFET05MWQUAAAADbmlsBQAAAANuaWwEAAAAB3N1cmZCdXkJAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAUAAAAHcmVzdEFjYwIAAAAPYnV5U3VyZlJFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0CQAETAAAAAIFAAAABmFtb3VudAkABEwAAAACBQAAAAphc3NldElkU3RyBQAAAANuaWwFAAAAA25pbAQAAAALbmV1dHJpbm9DZmcJAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAUAAAAHcmVzdEFjYwIAAAAWbmV1dHJpbm9Db25maWdSRUFET05MWQUAAAADbmlsBQAAAANuaWwJAAUUAAAAAgUAAAADbmlsCQEAAAALcHJvZHVjZUpzb24AAAABCQAETAAAAAICAAAAFW5ldXRyaW5vU3RhdHNSRUFET05MWQkABEwAAAACBQAAAA1uZXV0cmlub1N0YXRzCQAETAAAAAICAAAAD2J1eVN1cmZSRUFET05MWQkABEwAAAACBQAAAAdzdXJmQnV5CQAETAAAAAICAAAAFm5ldXRyaW5vQ29uZmlnUkVBRE9OTFkJAARMAAAAAgUAAAALbmV1dHJpbm9DZmcFAAAAA25pbAAAAAFpAQAAABJ3YWxsZXRQYWdlUkVBRE9OTFkAAAABAAAADnVzZXJBZGRyZXNzU3RyBAAAAAp3YWxsZXRJbmZvCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQFAAAAB3Jlc3RBY2MCAAAAEndhbGxldEluZm9SRUFET05MWQkABEwAAAACBQAA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", "chainId": 84, "height": 2161025, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6otPcs9LLoHhTo1g4YCzW8XcBeYZskvPKodwfJ9Vm89C Next: 3YZnAv2N2ud3gyaZpYa28Mm1wWMb2R3aCzLZzTBmYKPy Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
6+let IdxControlCfgNeutrinoDapp = 1
7+
8+let IdxControlCfgAuctionDapp = 2
9+
10+let IdxControlCfgRpdDapp = 3
11+
12+let IdxControlCfgMathDapp = 4
13+
14+let IdxControlCfgLiquidationDapp = 5
15+
16+let IdxControlCfgRestDapp = 6
17+
18+let IdxControlCfgNodeRegistryDapp = 7
19+
20+let IdxControlCfgNsbtStakingDapp = 8
21+
22+let IdxControlCfgMediatorDapp = 9
23+
24+func getStringOrFail (address,key) = valueOrErrorMessage(getString(address, key), (((("mandatory " + toString(address)) + ".") + key) + " is not defined"))
25+
26+
627 func keyControlAddress () = "%s%s__config__controlAddress"
728
29+
30+func keyControlCfg () = "%s__controlConfig"
31+
32+
33+func readControlCfgOrFail (control) = split(getStringOrFail(control, keyControlCfg()), SEP)
34+
35+
36+func getContractAddressOrFail (controlCfg,idx) = valueOrErrorMessage(addressFromString(controlCfg[idx]), ("Control cfg doesn't contain address at index " + toString(idx)))
37+
38+
39+let controlContract = addressFromStringValue(valueOrElse(getString(this, keyControlAddress()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
40+
41+let controlCfg = readControlCfgOrFail(controlContract)
42+
43+let restAcc = getContractAddressOrFail(controlCfg, IdxControlCfgRestDapp)
844
945 func keyRestAddress () = "%s%s__config__restAddress"
1046
5793 }
5894
5995
60-let controlAcc = getAddressOrFail(keyControlAddress())
96+func genericV2READONLY (x) = {
97+ func call (a,e) = (a :+ invoke(Address(fromBase58String(e._1)), e._2, e._3, nil))
6198
62-let restAcc = getAddressOrFail(keyRestAddress())
99+ let $l = x
100+ let $s = size($l)
101+ let $acc0 = nil
102+ func $f0_1 ($a,$i) = if (($i >= $s))
103+ then $a
104+ else call($a, $l[$i])
105+
106+ func $f0_2 ($a,$i) = if (($i >= $s))
107+ then $a
108+ else throw("List size exceeds 10")
109+
110+ $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)
111+ }
112+
63113
64114 @Callable(i)
65115 func constructor (controlAddress58,restAddress58) = if ((i.caller != this))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
6+let IdxControlCfgNeutrinoDapp = 1
7+
8+let IdxControlCfgAuctionDapp = 2
9+
10+let IdxControlCfgRpdDapp = 3
11+
12+let IdxControlCfgMathDapp = 4
13+
14+let IdxControlCfgLiquidationDapp = 5
15+
16+let IdxControlCfgRestDapp = 6
17+
18+let IdxControlCfgNodeRegistryDapp = 7
19+
20+let IdxControlCfgNsbtStakingDapp = 8
21+
22+let IdxControlCfgMediatorDapp = 9
23+
24+func getStringOrFail (address,key) = valueOrErrorMessage(getString(address, key), (((("mandatory " + toString(address)) + ".") + key) + " is not defined"))
25+
26+
627 func keyControlAddress () = "%s%s__config__controlAddress"
728
29+
30+func keyControlCfg () = "%s__controlConfig"
31+
32+
33+func readControlCfgOrFail (control) = split(getStringOrFail(control, keyControlCfg()), SEP)
34+
35+
36+func getContractAddressOrFail (controlCfg,idx) = valueOrErrorMessage(addressFromString(controlCfg[idx]), ("Control cfg doesn't contain address at index " + toString(idx)))
37+
38+
39+let controlContract = addressFromStringValue(valueOrElse(getString(this, keyControlAddress()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
40+
41+let controlCfg = readControlCfgOrFail(controlContract)
42+
43+let restAcc = getContractAddressOrFail(controlCfg, IdxControlCfgRestDapp)
844
945 func keyRestAddress () = "%s%s__config__restAddress"
1046
1147
1248 func getStrOrFail (key) = valueOrErrorMessage(getString(this, key), (("Mandatory this." + key) + " is not defined"))
1349
1450
1551 func getAddressOrFail (key) = valueOrErrorMessage(addressFromString(getStrOrFail(key)), ("fail to parse address for this." + key))
1652
1753
1854 func asString (val) = match val {
1955 case valStr: String =>
2056 valStr
2157 case _ =>
2258 throw("fail to cast into String")
2359 }
2460
2561
2662 func produceJson (strMap) = {
2763 let indexes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2864 let length = size(strMap)
2965 if (((length % 2) != 0))
3066 then throw("only even args size is accepeted")
3167 else if ((length > size(indexes)))
3268 then throw(("strMap length is greater then " + toString(size(indexes))))
3369 else {
3470 func produceJson (jsonAccum,nextIdx) = if (if (((nextIdx % 2) == 0))
3571 then (length >= (nextIdx + 1))
3672 else false)
3773 then (((((jsonAccum + "
3874 \"") + strMap[nextIdx]) + "\": \"") + strMap[(nextIdx + 1)]) + "\",")
3975 else jsonAccum
4076
4177 let preJsonResult = {
4278 let $l = indexes
4379 let $s = size($l)
4480 let $acc0 = ""
4581 func $f0_1 ($a,$i) = if (($i >= $s))
4682 then $a
4783 else produceJson($a, $l[$i])
4884
4985 func $f0_2 ($a,$i) = if (($i >= $s))
5086 then $a
5187 else throw("List size exceeds 20")
5288
5389 $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)
5490 }
5591 (("{" + dropRight(preJsonResult, 1)) + "}")
5692 }
5793 }
5894
5995
60-let controlAcc = getAddressOrFail(keyControlAddress())
96+func genericV2READONLY (x) = {
97+ func call (a,e) = (a :+ invoke(Address(fromBase58String(e._1)), e._2, e._3, nil))
6198
62-let restAcc = getAddressOrFail(keyRestAddress())
99+ let $l = x
100+ let $s = size($l)
101+ let $acc0 = nil
102+ func $f0_1 ($a,$i) = if (($i >= $s))
103+ then $a
104+ else call($a, $l[$i])
105+
106+ func $f0_2 ($a,$i) = if (($i >= $s))
107+ then $a
108+ else throw("List size exceeds 10")
109+
110+ $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)
111+ }
112+
63113
64114 @Callable(i)
65115 func constructor (controlAddress58,restAddress58) = if ((i.caller != this))
66116 then throw("not authorized")
67117 else [StringEntry(keyControlAddress(), controlAddress58), StringEntry(keyRestAddress(), restAddress58)]
68118
69119
70120
71121 @Callable(i)
72122 func stakeNsbtPageREADONLY (userAddressStrOpt,nsbtAmtDiff) = {
73123 let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, nsbtAmtDiff], nil))
74124 let swapInfo = asString(invoke(restAcc, "swapInfoREADONLY", [userAddressStrOpt], nil))
75125 $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "swapInfoREADONLY", swapInfo]))
76126 }
77127
78128
79129
80130 @Callable(i)
81131 func buyNsbtPageREADONLY (userAddressStrOpt) = {
82132 let gnsbtInfo = asString(invoke(restAcc, "gnsbtInfoREADONLY", [userAddressStrOpt, 0], nil))
83133 let neutrinoStats = asString(invoke(restAcc, "neutrinoStatsREADONLY", nil, nil))
84134 $Tuple2(nil, produceJson(["gnsbtInfoREADONLY", gnsbtInfo, "neutrinoStatsREADONLY", neutrinoStats]))
85135 }
86136
87137
88138
89139 @Callable(i)
90140 func buySurfPageREADONLY (userAddressStrOpt,amount,assetIdStr) = {
91141 let neutrinoStats = asString(invoke(restAcc, "neutrinoStatsREADONLY", nil, nil))
92142 let surfBuy = asString(invoke(restAcc, "buySurfREADONLY", [userAddressStrOpt, amount, assetIdStr], nil))
93143 let neutrinoCfg = asString(invoke(restAcc, "neutrinoConfigREADONLY", nil, nil))
94144 $Tuple2(nil, produceJson(["neutrinoStatsREADONLY", neutrinoStats, "buySurfREADONLY", surfBuy, "neutrinoConfigREADONLY", neutrinoCfg]))
95145 }
96146
97147
98148
99149 @Callable(i)
100150 func walletPageREADONLY (userAddressStr) = {
101151 let walletInfo = asString(invoke(restAcc, "walletInfoREADONLY", [userAddressStr], nil))
102152 $Tuple2(nil, produceJson(["walletInfoREADONLY", walletInfo]))
103153 }
104154
105155
106156
107157 @Callable(i)
108158 func genericREADONLY (payload) = {
109159 let funcsIndexes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
110160 let paramIndexes = [1, 3, 5, 7, 9, 11]
111161 let payloadArr = split(payload, SEP)
112162 let payloadSize = size(payloadArr)
113163 func invokesAgregator (accum,funcIdx) = if ((funcIdx >= payloadSize))
114164 then accum
115165 else {
116166 let call = payloadArr[funcIdx]
117167 let callArr = split(call, "+")
118168 let address = addressFromStringValue(callArr[0])
119169 let funcName = callArr[1]
120170 let paramsArr = split(callArr[2], ":")
121171 let paramsSize = size(paramsArr)
122172 func paramsAgregator (paramsAcc,paramIdx) = if ((paramIdx >= paramsSize))
123173 then paramsAcc
124174 else {
125175 let p = if ((paramsArr[(paramIdx - 1)] == "s"))
126176 then paramsArr[paramIdx]
127177 else parseIntValue(paramsArr[paramIdx])
128178 (paramsAcc :+ p)
129179 }
130180
131181 let params = {
132182 let $l = paramIndexes
133183 let $s = size($l)
134184 let $acc0 = nil
135185 func $f0_1 ($a,$i) = if (($i >= $s))
136186 then $a
137187 else paramsAgregator($a, $l[$i])
138188
139189 func $f0_2 ($a,$i) = if (($i >= $s))
140190 then $a
141191 else throw("List size exceeds 6")
142192
143193 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6)
144194 }
145195 let result = asString(invoke(address, funcName, params, nil))
146196 (accum ++ [funcName, result])
147197 }
148198
149199 let invokesResults = {
150200 let $l = funcsIndexes
151201 let $s = size($l)
152202 let $acc0 = nil
153203 func $f0_1 ($a,$i) = if (($i >= $s))
154204 then $a
155205 else invokesAgregator($a, $l[$i])
156206
157207 func $f0_2 ($a,$i) = if (($i >= $s))
158208 then $a
159209 else throw("List size exceeds 10")
160210
161211 $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)
162212 }
163213 $Tuple2(nil, produceJson(invokesResults))
164214 }
165215
166216

github/deemru/w8io/873ac7e 
54.73 ms