tx · J9Wba82ZnfD3PBNwFCnftYKubtEV7bfoSrXNc3LQqop4

3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs:  -0.04000000 Waves

2022.08.02 17:10 [2166972] smart account 3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs > SELF 0.00000000 Waves

{ "type": 13, "id": "J9Wba82ZnfD3PBNwFCnftYKubtEV7bfoSrXNc3LQqop4", "fee": 4000000, "feeAssetId": null, "timestamp": 1659449438088, "version": 1, "sender": "3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs", "senderPublicKey": "BLEvt3fBtK9gbCuj3VA7nHviqe3TPkRrF9KL6ZaHGgr4", "proofs": [ "34V9hDdZ9rWiaojhaSD12cBq4Kfc8qnhzz2kFXz3CF31M1nNvtr5iV9zq4TNqrDpdPDtuoTXZxhgyKLY8JwByMbX" ], "script": "base64:BgITCAISAwoBARIDCgEIEgASAwoBCDEAC3JldmlzaW9uTnVtAgAABkVVTEVSOADWic+BAQAFTVVMVDYAwIQ9AAZNVUxUWDYJALYCAQDAhD0ABU1VTFQ4AIDC1y8ABk1VTFRYOAkAtgIBAIDC1y8ABk1VTFQxMgCAoJSljR0ABk1VTFQxOAkAtgIBAICAkLu61q3wDQADU0VQAgJfXwAHV0FWRVNJRAkA2QQBAgVXQVZFUwEVa2V5R25zYnRGcm9tU3VyZkNvZWZmAAIdJXMlc19fY2ZnX19nbnNidEZyb21TdXJmQ29lZmYBD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAENZ2V0Qm9vbE9yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAARZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAgZhbW91bnQFcHJpY2UJAGsDBQZhbW91bnQFBU1VTFQ4BQVwcmljZQEWY29udmVydFdhdmVzVG9OZXV0cmlubwIGYW1vdW50BXByaWNlCQBrAwUGYW1vdW50BQVwcmljZQUFTVVMVDgBCWFzQW55TGlzdAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAp2YWxBbnlMaXN0BQckbWF0Y2gwBQp2YWxBbnlMaXN0CQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQVhc0ludAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIDSW50BAZ2YWxJbnQFByRtYXRjaDAFBnZhbEludAkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEIYXNTdHJpbmcBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQGdmFsU3RyBQckbWF0Y2gwBQZ2YWxTdHIJAAIBAhhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBDGFzVHVwbGUySW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBdgUHJG1hdGNoMAUBdgkAAgECHWZhaWwgdG8gY2FzdCBpbnRvIFR1cGxlMiBpbnRzARJhc1N3YXBQYXJhbXNTVFJVQ1QBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACGShJbnQsIEludCwgSW50LCBJbnQsIEludCkEBnN0cnVjdAUHJG1hdGNoMAUGc3RydWN0CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQt0b1RpbWVzdGFtcAEFc3RhcnQDCQBmAgAABQVzdGFydAD///////////8BBAckbWF0Y2gwCQDtBwEFBXN0YXJ0AwkAAQIFByRtYXRjaDACCUJsb2NrSW5mbwQFYmxvY2sFByRtYXRjaDAIBQVibG9jawl0aW1lc3RhbXAA////////////AQEFdG9YMTgCB29yaWdWYWwNb3JpZ1NjYWxlTXVsdAkAvAIDCQC2AgEFB29yaWdWYWwFBk1VTFQxOAkAtgIBBQ1vcmlnU2NhbGVNdWx0AQdmcm9tWDE4AgN2YWwPcmVzdWx0U2NhbGVNdWx0CQCgAwEJALwCAwUDdmFsCQC2AgEFD3Jlc3VsdFNjYWxlTXVsdAUGTVVMVDE4ABlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAAEAGElkeENvbnRyb2xDZmdBdWN0aW9uRGFwcAACABRJZHhDb250cm9sQ2ZnUnBkRGFwcAADABVJZHhDb250cm9sQ2ZnTWF0aERhcHAABAAcSWR4Q29udHJvbENmZ0xpcXVpZGF0aW9uRGFwcAAFABVJZHhDb250cm9sQ2ZnUmVzdERhcHAABgAdSWR4Q29udHJvbENmZ05vZGVSZWdpc3RyeURhcHAABwAcSWR4Q29udHJvbENmZ05zYnRTdGFraW5nRGFwcAAIABlJZHhDb250cm9sQ2ZnTWVkaWF0b3JEYXBwAAkAHElkeENvbnRyb2xDZmdTdXJmU3Rha2luZ0RhcHAACgAgSWR4Q29udHJvbENmZ0duc2J0Q29udHJvbGxlckRhcHAACwERa2V5Q29udHJvbEFkZHJlc3MAAhwlcyVzX19jb25maWdfX2NvbnRyb2xBZGRyZXNzAQ1rZXlDb250cm9sQ2ZnAAIRJXNfX2NvbnRyb2xDb25maWcBFHJlYWRDb250cm9sQ2ZnT3JGYWlsAQdjb250cm9sCQC1CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQdjb250cm9sCQENa2V5Q29udHJvbENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgpjb250cm9sQ2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUKY29udHJvbENmZwUDaWR4CQCsAgICLUNvbnRyb2wgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgAD2NvbnRyb2xDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQERa2V5Q29udHJvbEFkZHJlc3MAAiMzTjROUzdkNEpvOWE2RjE0TGlGVUtLWVZkVWtrZjJlUDRaeAAKY29udHJvbENmZwkBFHJlYWRDb250cm9sQ2ZnT3JGYWlsAQUPY29udHJvbENvbnRyYWN0AAxtYXRoQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRVJZHhDb250cm9sQ2ZnTWF0aERhcHAAEG5ldXRyaW5vQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAA9hdWN0aW9uQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAE2xpcXVpZGF0aW9uQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRxJZHhDb250cm9sQ2ZnTGlxdWlkYXRpb25EYXBwAAtycGRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFFElkeENvbnRyb2xDZmdScGREYXBwABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUcSWR4Q29udHJvbENmZ05zYnRTdGFraW5nRGFwcAATc3VyZlN0YWtpbmdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFHElkeENvbnRyb2xDZmdTdXJmU3Rha2luZ0RhcHAAEmduc2J0RnJvbVN1cmZDb2VmZgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEVa2V5R25zYnRGcm9tU3VyZkNvZWZmAAA8BAFpARhnbnNidEZyb21TdXJmU1lTUkVBRE9OTFkBB3N1cmZBbXQJAJQKAgUDbmlsCQBpAgUHc3VyZkFtdAUSZ25zYnRGcm9tU3VyZkNvZWZmAWkBFGduc2J0SW5mb1NZU1JFQURPTkxZARV1c2VyQWRkcmVzc1N0ck9yRW1wdHkECG5zYnREYXRhCQEJYXNBbnlMaXN0AQkA/AcEBRNuc2J0U3Rha2luZ0NvbnRyYWN0AhZuc2J0U3Rha2luZ1NZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQUDbmlsBQNuaWwECG5zYnRVc2VyCQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhAAAECW5zYnRUb3RhbAkBBWFzSW50AQkAkQMCBQhuc2J0RGF0YQABBBFnTnNidEZyb21Oc2J0VXNlcgUIbnNidFVzZXIEEmdOc2J0RnJvbU5zYnRUb3RhbAUJbnNidFRvdGFsBAhzdXJmRGF0YQkBCWFzQW55TGlzdAEJAPwHBAUTc3VyZlN0YWtpbmdDb250cmFjdAIWc3VyZlN0YWtpbmdTWVNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkFA25pbAUDbmlsBAhzdXJmVXNlcgkBBWFzSW50AQkAkQMCBQhzdXJmRGF0YQAABAlzdXJmVG90YWwJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEAAQQRZ05zYnRGcm9tU3VyZlVzZXIJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEAAgQSZ05zYnRGcm9tU3VyZlRvdGFsCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhAAMECWdOc2J0VXNlcgkAZAIFEWdOc2J0RnJvbU5zYnRVc2VyBRFnTnNidEZyb21TdXJmVXNlcgQKZ05zYnRUb3RhbAkAZAIFEmdOc2J0RnJvbU5zYnRUb3RhbAUSZ05zYnRGcm9tU3VyZlRvdGFsCQCUCgIFA25pbAkAzAgCBQlnTnNidFVzZXIJAMwIAgUKZ05zYnRUb3RhbAkAzAgCCQDMCAIFCG5zYnRVc2VyCQDMCAIFCW5zYnRUb3RhbAkAzAgCBRFnTnNidEZyb21Oc2J0VXNlcgkAzAgCBRJnTnNidEZyb21Oc2J0VG90YWwFA25pbAkAzAgCCQDMCAIFCHN1cmZVc2VyCQDMCAIFCXN1cmZUb3RhbAkAzAgCBRFnTnNidEZyb21TdXJmVXNlcgkAzAgCBRJnTnNidEZyb21TdXJmVG90YWwFA25pbAUDbmlsAWkBDGNsYWltUmV3YXJkcwAEB25zYnRJbnYJAPwHBAUTc3VyZlN0YWtpbmdDb250cmFjdAIaY2xhaW1SZXdhcmRzQnlPcmlnaW5DYWxsZXIFA25pbAUDbmlsAwkAAAIFB25zYnRJbnYFB25zYnRJbnYEB3N1cmZJbnYJAPwHBAUTc3VyZlN0YWtpbmdDb250cmFjdAIaY2xhaW1SZXdhcmRzQnlPcmlnaW5DYWxsZXIFA25pbAUDbmlsAwkAAAIFB3N1cmZJbnYFB3N1cmZJbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARdnbnNidFJld2FyZHNTWVNSRUFET05MWQEVdXNlckFkZHJlc3NTdHJPckVtcHR5BA1uc2J0UmV3YXJkU3RyCQEIYXNTdHJpbmcBCQD8BwQFE25zYnRTdGFraW5nQ29udHJhY3QCGHVuY2xhaW1lZFJld2FyZHNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkFA25pbAUDbmlsBA1zdXJmUmV3YXJkU3RyCQEIYXNTdHJpbmcBCQD8BwQFE3N1cmZTdGFraW5nQ29udHJhY3QCGHVuY2xhaW1lZFJld2FyZHNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkFA25pbAUDbmlsCQCUCgIFA25pbAkAzAgCBQ1uc2J0UmV3YXJkU3RyCQDMCAIFDXN1cmZSZXdhcmRTdHIFA25pbADskiPE", "chainId": 84, "height": 2166972, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BeJcibcm9SaWD7FXVjmZJL3mmR8SztTm9HWEnFUUG365 Next: Ab9c2yMRyajq17c2qt4vPSEfCzrda53GZKHPaYQRk7ck Diff:
OldNewDifferences
174174
175175
176176 @Callable(i)
177+func claimRewards () = {
178+ let nsbtInv = invoke(surfStakingContract, "claimRewardsByOriginCaller", nil, nil)
179+ if ((nsbtInv == nsbtInv))
180+ then {
181+ let surfInv = invoke(surfStakingContract, "claimRewardsByOriginCaller", nil, nil)
182+ if ((surfInv == surfInv))
183+ then nil
184+ else throw("Strict value is not equal to itself.")
185+ }
186+ else throw("Strict value is not equal to itself.")
187+ }
188+
189+
190+
191+@Callable(i)
177192 func gnsbtRewardsSYSREADONLY (userAddressStrOrEmpty) = {
178193 let nsbtRewardStr = asString(invoke(nsbtStakingContract, "unclaimedRewardsREADONLY", [userAddressStrOrEmpty], nil))
179194 let surfRewardStr = asString(invoke(surfStakingContract, "unclaimedRewardsREADONLY", [userAddressStrOrEmpty], nil))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let revisionNum = ""
55
66 let EULER8 = 271828182
77
88 let MULT6 = 1000000
99
1010 let MULTX6 = toBigInt(1000000)
1111
1212 let MULT8 = 100000000
1313
1414 let MULTX8 = toBigInt(100000000)
1515
1616 let MULT12 = 1000000000000
1717
1818 let MULT18 = toBigInt(1000000000000000000)
1919
2020 let SEP = "__"
2121
2222 let WAVESID = fromBase58String("WAVES")
2323
2424 func keyGnsbtFromSurfCoeff () = "%s%s__cfg__gnsbtFromSurfCoeff"
2525
2626
2727 func getStringOrFail (address,key) = valueOrErrorMessage(getString(address, key), makeString(["mandatory ", toString(address), ".", key, " is not defined"], ""))
2828
2929
3030 func getIntOrFail (address,key) = valueOrErrorMessage(getInteger(address, key), makeString(["mandatory ", toString(address), ".", key, " is not defined"], ""))
3131
3232
3333 func getBoolOrFail (address,key) = valueOrErrorMessage(getBoolean(address, key), makeString(["mandatory ", toString(address), ".", key, " is not defined"], ""))
3434
3535
3636 func convertNeutrinoToWaves (amount,price) = fraction(amount, MULT8, price)
3737
3838
3939 func convertWavesToNeutrino (amount,price) = fraction(amount, price, MULT8)
4040
4141
4242 func asAnyList (val) = match val {
4343 case valAnyList: List[Any] =>
4444 valAnyList
4545 case _ =>
4646 throw("fail to cast into List[Any]")
4747 }
4848
4949
5050 func asInt (val) = match val {
5151 case valInt: Int =>
5252 valInt
5353 case _ =>
5454 throw("fail to cast into Int")
5555 }
5656
5757
5858 func asString (val) = match val {
5959 case valStr: String =>
6060 valStr
6161 case _ =>
6262 throw("fail to cast into String")
6363 }
6464
6565
6666 func asTuple2Ints (val) = match val {
6767 case v: (Int, Int) =>
6868 v
6969 case _ =>
7070 throw("fail to cast into Tuple2 ints")
7171 }
7272
7373
7474 func asSwapParamsSTRUCT (val) = match val {
7575 case struct: (Int, Int, Int, Int, Int) =>
7676 struct
7777 case _ =>
7878 throw("fail to cast into Int")
7979 }
8080
8181
8282 func toTimestamp (start) = if ((0 > start))
8383 then -1
8484 else match blockInfoByHeight(start) {
8585 case block: BlockInfo =>
8686 block.timestamp
8787 case _ =>
8888 -1
8989 }
9090
9191
9292 func toX18 (origVal,origScaleMult) = fraction(toBigInt(origVal), MULT18, toBigInt(origScaleMult))
9393
9494
9595 func fromX18 (val,resultScaleMult) = toInt(fraction(val, toBigInt(resultScaleMult), MULT18))
9696
9797
9898 let IdxControlCfgNeutrinoDapp = 1
9999
100100 let IdxControlCfgAuctionDapp = 2
101101
102102 let IdxControlCfgRpdDapp = 3
103103
104104 let IdxControlCfgMathDapp = 4
105105
106106 let IdxControlCfgLiquidationDapp = 5
107107
108108 let IdxControlCfgRestDapp = 6
109109
110110 let IdxControlCfgNodeRegistryDapp = 7
111111
112112 let IdxControlCfgNsbtStakingDapp = 8
113113
114114 let IdxControlCfgMediatorDapp = 9
115115
116116 let IdxControlCfgSurfStakingDapp = 10
117117
118118 let IdxControlCfgGnsbtControllerDapp = 11
119119
120120 func keyControlAddress () = "%s%s__config__controlAddress"
121121
122122
123123 func keyControlCfg () = "%s__controlConfig"
124124
125125
126126 func readControlCfgOrFail (control) = split(getStringOrFail(control, keyControlCfg()), SEP)
127127
128128
129129 func getContractAddressOrFail (controlCfg,idx) = valueOrErrorMessage(addressFromString(controlCfg[idx]), ("Control cfg doesn't contain address at index " + toString(idx)))
130130
131131
132132 let controlContract = addressFromStringValue(valueOrElse(getString(this, keyControlAddress()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
133133
134134 let controlCfg = readControlCfgOrFail(controlContract)
135135
136136 let mathContract = getContractAddressOrFail(controlCfg, IdxControlCfgMathDapp)
137137
138138 let neutrinoContract = getContractAddressOrFail(controlCfg, IdxControlCfgNeutrinoDapp)
139139
140140 let auctionContract = getContractAddressOrFail(controlCfg, IdxControlCfgAuctionDapp)
141141
142142 let liquidationContract = getContractAddressOrFail(controlCfg, IdxControlCfgLiquidationDapp)
143143
144144 let rpdContract = getContractAddressOrFail(controlCfg, IdxControlCfgRpdDapp)
145145
146146 let nsbtStakingContract = getContractAddressOrFail(controlCfg, IdxControlCfgNsbtStakingDapp)
147147
148148 let surfStakingContract = getContractAddressOrFail(controlCfg, IdxControlCfgSurfStakingDapp)
149149
150150 let gnsbtFromSurfCoeff = valueOrElse(getInteger(this, keyGnsbtFromSurfCoeff()), 60)
151151
152152 @Callable(i)
153153 func gnsbtFromSurfSYSREADONLY (surfAmt) = $Tuple2(nil, (surfAmt / gnsbtFromSurfCoeff))
154154
155155
156156
157157 @Callable(i)
158158 func gnsbtInfoSYSREADONLY (userAddressStrOrEmpty) = {
159159 let nsbtData = asAnyList(invoke(nsbtStakingContract, "nsbtStakingSYSREADONLY", [userAddressStrOrEmpty], nil))
160160 let nsbtUser = asInt(nsbtData[0])
161161 let nsbtTotal = asInt(nsbtData[1])
162162 let gNsbtFromNsbtUser = nsbtUser
163163 let gNsbtFromNsbtTotal = nsbtTotal
164164 let surfData = asAnyList(invoke(surfStakingContract, "surfStakingSYSREADONLY", [userAddressStrOrEmpty], nil))
165165 let surfUser = asInt(surfData[0])
166166 let surfTotal = asInt(surfData[1])
167167 let gNsbtFromSurfUser = asInt(surfData[2])
168168 let gNsbtFromSurfTotal = asInt(surfData[3])
169169 let gNsbtUser = (gNsbtFromNsbtUser + gNsbtFromSurfUser)
170170 let gNsbtTotal = (gNsbtFromNsbtTotal + gNsbtFromSurfTotal)
171171 $Tuple2(nil, [gNsbtUser, gNsbtTotal, [nsbtUser, nsbtTotal, gNsbtFromNsbtUser, gNsbtFromNsbtTotal], [surfUser, surfTotal, gNsbtFromSurfUser, gNsbtFromSurfTotal]])
172172 }
173173
174174
175175
176176 @Callable(i)
177+func claimRewards () = {
178+ let nsbtInv = invoke(surfStakingContract, "claimRewardsByOriginCaller", nil, nil)
179+ if ((nsbtInv == nsbtInv))
180+ then {
181+ let surfInv = invoke(surfStakingContract, "claimRewardsByOriginCaller", nil, nil)
182+ if ((surfInv == surfInv))
183+ then nil
184+ else throw("Strict value is not equal to itself.")
185+ }
186+ else throw("Strict value is not equal to itself.")
187+ }
188+
189+
190+
191+@Callable(i)
177192 func gnsbtRewardsSYSREADONLY (userAddressStrOrEmpty) = {
178193 let nsbtRewardStr = asString(invoke(nsbtStakingContract, "unclaimedRewardsREADONLY", [userAddressStrOrEmpty], nil))
179194 let surfRewardStr = asString(invoke(surfStakingContract, "unclaimedRewardsREADONLY", [userAddressStrOrEmpty], nil))
180195 $Tuple2(nil, [nsbtRewardStr, surfRewardStr])
181196 }
182197
183198

github/deemru/w8io/3ef1775 
48.84 ms