tx · FK1y2xKxiAUbMRshXJdraYWPmsuKyDRAEqHZePcwzaZR

3MuAyo3UDyRW1uGJYpgNwKJx4rGPEQdHetK:  -0.02000000 Waves

2022.02.25 16:02 [1939189] smart account 3MuAyo3UDyRW1uGJYpgNwKJx4rGPEQdHetK > SELF 0.00000000 Waves

{ "type": 13, "id": "FK1y2xKxiAUbMRshXJdraYWPmsuKyDRAEqHZePcwzaZR", "fee": 2000000, "feeAssetId": null, "timestamp": 1645794208130, "version": 1, "sender": "3MuAyo3UDyRW1uGJYpgNwKJx4rGPEQdHetK", "senderPublicKey": "8JFUsgTkU5xXsm3gJYTdzsJwYfzBYbZsW7bgR1SYLmas", "proofs": [ "56YHF5FtGAECQ9eqXZXTAzjAPa1c2UJzrR9aY9hzHoT8CF33aBrj6ukRnWjFBmJp74dHnpNEbNvT2TQ5YANkq3Ps" ], "script": "base64:AAIFAAAAAAAAADgIAhIFCgMICAESAwoBARIHCgUBAQEBARIICgYBAQEBAQESABIDCgEIEgASBAoCAQESBgoEAQEBAQAAADgAAAAAB1dBVkVMRVQAAAAAAAX14QAAAAAABVBBVUxJAAAAAAAAD0JAAAAAAAhCSUdQQVVMSQkAATYAAAABAAAAAAAAD0JAAAAAAAhQUklDRUxFVAAAAAAAAA9CQAAAAAAETVVMVAAAAAAABfXhAAAAAAAJQklHTVVMVDE2CQABNgAAAAEAACOG8m/BAAAAAAAACU1VTFRTQ0FMRQAAAAAAAAAACAAAAAAHU0NBTEUxNgAAAAAAAAAAEAAAAAADU0VQAgAAAAJfXwAAAAAFSEFMRjgAAAAAAAL68IAAAAAAC0VVTEVSTlVNQkVSAAAAAAAQM8TWAAAAAAZzY2FsZTYAAAAAAAAPQkAAAAAADHNjYWxlNkJpZ0ludAkAATYAAAABAAAAAAAAD0JAAAAAAAxzY2FsZThCaWdJbnQJAAE2AAAAAQAAAAAABfXhAAEAAAASa2V5TmV1dHJpbm9BZGRyZXNzAAAAAAIAAAAdJXMlc19fY29uZmlnX19uZXV0cmlub0FkZHJlc3MBAAAAE2tleVN3YXBBbW91bnRBUGFyYW0AAAAAAgAAABglcyVzX19jb25maWdfX3N3YXBBUGFyYW0BAAAAEmtleU5ldXRyaW5vQXNzZXRJZAAAAAACAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAQAAAB1rZXlMaXF1aWRhdGlvbkNvbnRyYWN0QWRkcmVzcwAAAAACAAAAFGxpcXVpZGF0aW9uX2NvbnRyYWN0AQAAAA5rZXlSUERDb250cmFjdAAAAAACAAAADHJwZF9jb250cmFjdAEAAAASa2V5QXVjdGlvbkNvbnRyYWN0AAAAAAIAAAAQYXVjdGlvbl9jb250cmFjdAEAAAARa2V5Q29udG9sQ29udHJhY3QAAAAAAgAAABBjb250cm9sX2NvbnRyYWN0AQAAAA5rZXlCb25kQXNzZXRJZAAAAAACAAAADWJvbmRfYXNzZXRfaWQBAAAAEGtleUJhbGFuY2VMb2NrZWQAAAAAAgAAAA1iYWxhbmNlX2xvY2tfAQAAABVrZXlXYXZlc0xvY2tlZEJhbGFuY2UAAAAACQABLAAAAAIJAQAAABBrZXlCYWxhbmNlTG9ja2VkAAAAAAIAAAAFd2F2ZXMBAAAAGGtleU5ldXRyaW5vTG9ja2VkQmFsYW5jZQAAAAAJAAEsAAAAAgkBAAAAEGtleUJhbGFuY2VMb2NrZWQAAAAAAgAAAAhuZXV0cmlubwEAAAAVa2V5TWluV2F2ZXNTd2FwQW1vdW50AAAAAAIAAAAVbWluX3dhdmVzX3N3YXBfYW1vdW50AQAAABhrZXlNaW5OZXV0cmlub1N3YXBBbW91bnQAAAAAAgAAABhtaW5fbmV1dHJpbm9fc3dhcF9hbW91bnQBAAAAEmtleVdhdmVzT3V0RmVlUGFydAAAAAACAAAAFXdhdmVzT3V0X3N3YXBfZmVlUGFydAEAAAAVa2V5TmV1dHJpbm9PdXRGZWVQYXJ0AAAAAAIAAAAYbmV1dHJpbm9PdXRfc3dhcF9mZWVQYXJ0AQAAABNrZXlOc2J0TG9ja0NvbnRyYWN0AAAAAAIAAAAUJXNfX25zYnRMb2NrQ29udHJhY3QBAAAAGWtleVF1aWNrU3dhcExpbWl0RHVyYXRpb24AAAAAAgAAABolc19fcXVpY2tTd2FwTGltaXREdXJhdGlvbgEAAAAaa2V5VXNlckxhc3RRdWlja1N3YXBIZWlnaHQAAAABAAAAC3VzZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAABd1c2VyTGFzdFF1aWNrU3dhcEhlaWdodAkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAHWtleVF1aWNrU3dhcFVzZXJTcGVudEluUGVyaW9kAAAAAQAAAAt1c2VyQWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgIAAAAacXVpY2tTd2FwVXNlclNwZW50SW5QZXJpb2QJAARMAAAAAgUAAAALdXNlckFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAAAhrZXlQcmljZQAAAAACAAAABXByaWNlAQAAAAtrZXlIYWxmTGlmZQAAAAACAAAADCVzX19oYWxmTGlmZQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJ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YWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAEWtleUNvbnRvbENvbnRyYWN0AAAAAAAAAAAPYXVjdGlvbkNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAEmtleUF1Y3Rpb25Db250cmFjdAAAAAAAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAda2V5TGlxdWlkYXRpb25Db250cmFjdEFkZHJlc3MAAAAAAAAAAAtycGRDb250cmFjdAkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAA5rZXlSUERDb250cmFjdAAAAAAAAAAAE25zYnRTdGFraW5nQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAAR0aGlzCQEAAAATa2V5TnNidExvY2tDb250cmFjdAAAAAAAAAAAFW5ldXRyaW5vQXNzZXRJZFN0cmluZwkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABJrZXlOZXV0cmlub0Fzc2V0SWQAAAAAAAAAAA9uZXV0cmlub0Fzc2V0SWQJAAJZAAAAAQUAAAAVbmV1dHJpbm9Bc3NldElkU3RyaW5nAAAAAA5uc2J0QXNzZXRJZFN0cgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAADmtleUJvbmRBc3NldElkAAAAAAAAAAALbnNidEFzc2V0SWQJAAJZAAAAAQUAAAAObnNidEFzc2V0SWRTdHIAAAAJAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAAAwAAAA9uZXV0cmlub0FkZHJlc3MAAAAPbnNidExvY2tBZGRyZXNzAAAAEHN3YXBBbW91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IHRvIGl0c2VsZi4AAAABaQEAAAAWY2FsY1VzZXJTd2FwTGltaXRzTUFUSAAAAAEAAAAOdXNlckFkZHJlc3NTdHIEAAAAD3VzZXJHTnNidEFtb3VudAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAADnVzZXJBZGRyZXNzU3RyAAAAAAAAAAAABAAAAAp1c2RuTG10TWF4CQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAABHRoaXMCAAAAEWNhbGNTd2FwTGltaXRNQVRICQAETAAAAAIFAAAAD3VzZXJHTnNidEFtb3VudAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACnVzZG5MbXRNYXgFAAAACnVzZG5MbXRNYXgEAAAAFHF1aWNrU3dhcFJlc2V0QmxvY2tzCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAZa2V5UXVpY2tTd2FwTGltaXREdXJhdGlvbgAAAAAEAAAAEmxhc3RRdWlja1N3YXBCbG9jawkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAaa2V5VXNlckxhc3RRdWlja1N3YXBIZWlnaHQAAAABBQAAAA51c2VyQWRkcmVzc1N0cgAAAAAAAAAAAAQAAAAUaXNOZXdRdWlja1N3YXBQZXJpb2QJAABmAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAAEmxhc3RRdWlja1N3YXBCbG9jawUAAAAUcXVpY2tTd2FwUmVzZXRCbG9ja3MEAAAAEnF1aWNrU3dhcFVzZXJTcGVudAMFAAAAFGlzTmV3UXVpY2tTd2FwUGVyaW9kAAAAAAAAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAB1rZXlRdWlja1N3YXBVc2VyU3BlbnRJblBlcmlvZAAAAAEFAAAADnVzZXJBZGRyZXNzU3RyAAAAAAAAAAAACQAFFAAAAAIFAAAAA25pbAkABEwAAAACBQAAAAp1c2RuTG10TWF4CQAETAAAAAIFAAAAEnF1aWNrU3dhcFVzZXJTcGVudAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABZjYWxjTmV1dGlub01ldHJpY3NNQVRIAAAAAAQAAAAMY3VycmVudFByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAA9jb250cm9sQ29udHJhY3QJAQAAAAhrZXlQcmljZQAAAAAEAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAYa2V5TmV1dHJpbm9Mb2NrZWRCYWxhbmNlAAAAAAAAAAAAAAAAAAQAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABVrZXlXYXZlc0xvY2tlZEJhbGFuY2UAAAAAAAAAAAAAAAAABAAAAAdyZXNlcnZlCQAAZQAAAAIICQAD7wAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QAAAAHcmVndWxhcgUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlBAAAAA5yZXNlcnZlc0luVXNkbgkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAdyZXNlcnZlBQAAAAxjdXJyZW50UHJpY2UEAAAADm5ldXRyaW5vU3VwcGx5CQAAZQAAAAIJAABlAAAAAgkAAGQAAAACBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAAD25ldXRyaW5vQXNzZXRJZAAAAAhxdWFudGl0eQkAA/AAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQJAAPwAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAATbGlxdWlkYXRpb25Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkBAAAAAdzdXJwbHVzCQAAZQAAAAIFAAAADnJlc2VydmVzSW5Vc2RuBQAAAA5uZXV0cmlub1N1cHBseQQAAAAHZGVmaWNpdAkAAGUAAAACBQAAAA5uZXV0cmlub1N1cHBseQUAAAAOcmVzZXJ2ZXNJblVzZG4EAAAADnN1cnBsdXNQZXJjZW50CQAAaAAAAAIJAABrAAAAAwUAAAAHc3VycGx1cwUAAAAFUEFVTEkFAAAADm5ldXRyaW5vU3VwcGx5AAAAAAAAAABkBAAAAAJCUgkAAGsAAAADBQAAAA5yZXNlcnZlc0luVXNkbgUAAAAFUEFVTEkFAAAADm5ldXRyaW5vU3VwcGx5BAAAAA1uc2J0U3VwcGx5TUFYCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAtuc2J0QXNzZXRJZAAAAAhxdWFudGl0eQQAAAAKbnNidFN1cHBseQkAAGUAAAACBQAAAA1uc2J0U3VwcGx5TUFYCQAD8AAAAAIFAAAAD2F1Y3Rpb25Db250cmFjdAUAAAALbnNidEFzc2V0SWQJAAUUAAAAAgUAAAADbmlsCQAETAAAAAIFAAAADGN1cnJlbnRQcmljZQkABEwAAAACBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAARMAAAAAgUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCQAETAAAAAIFAAAAB3Jlc2VydmUJAARMAAAAAgUAAAAOcmVzZXJ2ZXNJblVzZG4JAARMAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkJAARMAAAAAgUAAAAHc3VycGx1cwkABEwAAAACBQAAAA5zdXJwbHVzUGVyY2VudAkABEwAAAACBQAAAAJCUgkABEwAAAACBQAAAApuc2J0U3VwcGx5CQAETAAAAAIFAAAADW5zYnRTdXBwbHlNQVgFAAAAA25pbAAAAAFpAQAAAB1nZXRVbnN0YWtlQ29taXNzaW9uQW1vdW50TUFUSAAAAAIAAAAGYW1vdW50AAAAC3N0YXJ0SGVpZ2h0BAAAAAhoYWxmTGlmZQkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAE25zYnRTdGFraW5nQ29udHJhY3QJAQAAAAtrZXlIYWxmTGlmZQAAAAAJAAUUAAAAAgUAAAADbmlsCQAAawAAAAMFAAAABmFtb3VudAkAAGwAAAAGAAAAAAAAAAACAAAAAAAAAAAACQAAawAAAAMJAQAAAAEtAAAAAQkAAGUAAAACBQAAAAZoZWlnaHQFAAAAC3N0YXJ0SGVpZ2h0BQAAAARNVUxUBQAAAAhoYWxmTGlmZQAAAAAAAAAACAAAAAAAAAAACAUAAAAGSEFMRlVQBQAAAARNVUxUAAAAAWkBAAAAD21lcmdlU3Rha2VzTUFUSAAAAAQAAAAHYW1vdW50MQAAAAdoZWlnaHQxAAAAB2Ftb3VudDIAAAAHaGVpZ2h0MgQAAAAIaGFsZkxpZmUJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEAAAALa2V5SGFsZkxpZmUAAAAABAAAAAF3CQAAawAAAAMFAAAAB2Ftb3VudDIJAABsAAAABgAAAAAAAAAAAgAAAAAAAAAAAAkAAGsAAAADCQAAZQAAAAIFAAAAB2hlaWdodDIFAAAAB2hlaWdodDEFAAAABE1VTFQFAAAACGhhbGZMaWZlAAAAAAAAAAAIAAAAAAAAAAAIBQAAAAZIQUxGVVAFAAAABE1VTFQEAAAAAXYJAABrAAAAAwkAAGQAAAACBQAAAAdhbW91bnQxBQAAAAdhbW91bnQyBQAAAARNVUxUCQAAZAAAAAIFAAAAB2Ftb3VudDEFAAAAAXcJAAUUAAAAAgUAAAADbmlsCQAAZAAAAAIFAAAAB2hlaWdodDEJAABpAAAAAgkAAGUAAAACBQAAAAVIQUxGOAkAAGgAAAACBQAAAAhoYWxmTGlmZQkAAG0AAAAGBQAAAAF2AAAAAAAAAAAIAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAIBQAAAAZIQUxGVVAFAAAABE1VTFQAAAAA7t8mRA==", "chainId": 84, "height": 1939189, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4LUCuohoifNSU1RLwqx7S4Lam5UPrmKZNzRPgWb9n159 Next: bAQn8apvFbpqjfLdoBRpvPr2KXhjUwdeQ7DacqTWm3H Diff:
OldNewDifferences
178178
179179 @Callable(ar)
180180 func calcSwapLimitMATH (av) = {
181- let aw = valueOrErrorMessage(getIntegerValue(this, p()), "Swap parameter A missed.")
182- let ax = toBigInt(av)
183- let ay = pow(ax, 0, toBigInt(k), 8, 0, DOWN)
184- let az = fraction(toBigInt(aw), ay, n)
185- $Tuple2(nil, toInt(az))
181+ let aw = 3
182+ let ax = U(av, l)
183+ let ay = U(k, e)
184+ let az = pow(ax, 16, ay, 16, 8, DOWN)
185+ let aA = fraction(toBigInt(aw), az, n)
186+ $Tuple2(nil, toInt(aA))
186187 }
187188
188189
189190
190191 @Callable(ar)
191-func calculateKMATH (aA,aB,S,aC,aD) = {
192- let aE = toBigInt(2718281)
193- let aF = 6
194- let aG = valueOrElse(getInteger(aj, "nsbtCurveParam_a"), 3)
195- let aH = valueOrElse(getInteger(aj, "nsbtCurveParam_b"), ((3 * b) / 10))
196- let aI = T(aA, S)
197- let aJ = fraction(aI, e, aB)
198- if ((aJ > 10678564816))
192+func calculateKMATH (aB,aC,S,aD,aE) = {
193+ let aF = toBigInt(2718281)
194+ let aG = 6
195+ let aH = valueOrElse(getInteger(aj, "nsbtCurveParam_a"), 3)
196+ let aI = valueOrElse(getInteger(aj, "nsbtCurveParam_b"), ((3 * b) / 10))
197+ let aJ = T(aB, S)
198+ let aK = fraction(aJ, e, aC)
199+ if ((aK > 10678564816))
199200 then throw("BR > 10678.564816% will overflow exponent")
200201 else {
201- let aK = (aG * (aJ - e))
202- let aL = pow(aE, aF, toBigInt(aK), g, h, DOWN)
203- let aM = fraction(toBigInt(aH), aL, c)
204- $Tuple2(nil, [aG, aH, aI, aJ, aK, toString(aL), toString(aM)])
202+ let aL = (aH * (aK - e))
203+ let aM = pow(aF, aG, toBigInt(aL), g, h, DOWN)
204+ let aN = fraction(toBigInt(aI), aM, c)
205+ $Tuple2(nil, [aH, aI, aJ, aK, aL, toString(aM), toString(aN)])
205206 }
206207 }
207208
208209
209210
210211 @Callable(ar)
211-func curveFunctionMATH (aA,aB,S,aC,aD,aN) = {
212- let aO = aa(invoke(this, "calculateKMATH", [aA, aB, S, aC, aD], nil))
213- if ((aO == aO))
212+func curveFunctionMATH (aB,aC,S,aD,aE,aO) = {
213+ let aP = aa(invoke(this, "calculateKMATH", [aB, aC, S, aD, aE], nil))
214+ if ((aP == aP))
214215 then {
215- let aM = parseBigIntValue(af(aO[6]))
216- let aP = T(aN, S)
217- let aQ = toBigInt(aC)
218- let aR = toBigInt((aC - aD))
219- let aS = fraction(toBigInt(aP), f, aM)
220- let aT = fraction(aS, aR, aQ)
221- let aU = toInt(fraction(aR, aQ, (aT + aQ)))
222- let aV = ((aC - aD) - aU)
223- $Tuple2(nil, [aV, aP, aA, aB, aC, aD, ad(aO[0]), ad(aO[1]), ad(aO[2]), ad(S), ad(aO[3]), ad(aO[4]), aO[5], aO[6], toString(aS), toString(aT), toString(aU)])
216+ let aN = parseBigIntValue(af(aP[6]))
217+ let aQ = T(aO, S)
218+ let aR = toBigInt(aD)
219+ let aS = toBigInt((aD - aE))
220+ let aT = fraction(toBigInt(aQ), f, aN)
221+ let aU = fraction(aT, aS, aR)
222+ let aV = toInt(fraction(aS, aR, (aU + aR)))
223+ let aW = ((aD - aE) - aV)
224+ $Tuple2(nil, [aW, aQ, aB, aC, aD, aE, ad(aP[0]), ad(aP[1]), ad(aP[2]), ad(S), ad(aP[3]), ad(aP[4]), aP[5], aP[6], toString(aT), toString(aU), toString(aV)])
224225 }
225226 else throw("Strict value is not equal to itself.")
226227 }
229230
230231 @Callable(ar)
231232 func calcContractNsbtPriceMATH () = {
232- let aW = value(assetInfo(aq)).quantity
233- let aX = aa(invoke(this, "calcNeutinoMetricsMATH", nil, nil))
234- if ((aX == aX))
233+ let aX = value(assetInfo(aq)).quantity
234+ let aY = aa(invoke(this, "calcNeutinoMetricsMATH", nil, nil))
235+ if ((aY == aY))
235236 then {
236- let aY = ad(aX[9])
237- let aZ = ad(aX[0])
238- let aO = aa(invoke(this, "calculateKMATH", [ad(aX[4]), ad(aX[6]), aZ, aW, aY], nil))
239- if ((aO == aO))
237+ let aZ = ad(aY[9])
238+ let ba = ad(aY[0])
239+ let aP = aa(invoke(this, "calculateKMATH", [ad(aY[4]), ad(aY[6]), ba, aX, aZ], nil))
240+ if ((aP == aP))
240241 then {
241- let aM = parseBigIntValue(af(aO[6]))
242- let ba = X(aM, e)
243- let bb = fraction(aW, e, (aW - aY))
244- let bc = fraction(bb, bb, e)
245- let bd = fraction(ba, bc, e)
246- let be = fraction(bd, b, e)
247- let bf = fraction(be, b, aZ)
248- $Tuple2(nil, [be, bf])
242+ let aN = parseBigIntValue(af(aP[6]))
243+ let bb = X(aN, e)
244+ let bc = fraction(aX, e, (aX - aZ))
245+ let bd = fraction(bc, bc, e)
246+ let be = fraction(bb, bd, e)
247+ let bf = fraction(be, b, e)
248+ let bg = fraction(bf, b, ba)
249+ $Tuple2(nil, [bf, bg])
249250 }
250251 else throw("Strict value is not equal to itself.")
251252 }
255256
256257
257258 @Callable(ar)
258-func calcUserSwapLimitsMATH (bg) = {
259- let bh = valueOrElse(getInteger(am, K(bg)), 0)
260- let bi = ad(invoke(this, "calcSwapLimitMATH", [bh], nil))
261- if ((bi == bi))
259+func calcUserSwapLimitsMATH (bh) = {
260+ let bi = valueOrElse(getInteger(am, K(bh)), 0)
261+ let bj = ad(invoke(this, "calcSwapLimitMATH", [bi], nil))
262+ if ((bj == bj))
262263 then {
263- let bj = getIntegerValue(ah, E())
264- let bk = valueOrElse(getInteger(ah, F(bg)), 0)
265- let bl = ((height - bk) > bj)
266- let bm = if (bl)
264+ let bk = getIntegerValue(ah, E())
265+ let bl = valueOrElse(getInteger(ah, F(bh)), 0)
266+ let bm = ((height - bl) > bk)
267+ let bn = if (bm)
267268 then 0
268- else valueOrElse(getInteger(ah, H(bg)), 0)
269- $Tuple2(nil, [bi, bm])
269+ else valueOrElse(getInteger(ah, H(bh)), 0)
270+ $Tuple2(nil, [bj, bn])
270271 }
271272 else throw("Strict value is not equal to itself.")
272273 }
275276
276277 @Callable(ar)
277278 func calcNeutinoMetricsMATH () = {
278- let aZ = getIntegerValue(ai, I())
279- let bn = valueOrElse(getInteger(ah, y()), 0)
280- let bo = valueOrElse(getInteger(ah, x()), 0)
281- let bp = (wavesBalance(ah).regular - bo)
282- let bq = T(bp, aZ)
283- let br = (((bn + value(assetInfo(ao)).quantity) - assetBalance(ah, ao)) - assetBalance(addressFromStringValue(ak), ao))
284- let bs = (bq - br)
285- let bt = (br - bq)
286- let bu = (fraction(bs, b, br) * 100)
287- let bv = fraction(bq, b, br)
288- let aW = value(assetInfo(aq)).quantity
289- let aY = (aW - assetBalance(aj, aq))
290- $Tuple2(nil, [aZ, bn, bo, bp, bq, br, bs, bu, bv, aY, aW])
279+ let ba = getIntegerValue(ai, I())
280+ let bo = valueOrElse(getInteger(ah, y()), 0)
281+ let bp = valueOrElse(getInteger(ah, x()), 0)
282+ let bq = (wavesBalance(ah).regular - bp)
283+ let br = T(bq, ba)
284+ let bs = (((bo + value(assetInfo(ao)).quantity) - assetBalance(ah, ao)) - assetBalance(addressFromStringValue(ak), ao))
285+ let bt = (br - bs)
286+ let bu = (bs - br)
287+ let bv = (fraction(bt, b, bs) * 100)
288+ let bw = fraction(br, b, bs)
289+ let aX = value(assetInfo(aq)).quantity
290+ let aZ = (aX - assetBalance(aj, aq))
291+ $Tuple2(nil, [ba, bo, bp, bq, br, bs, bt, bv, bw, aZ, aX])
291292 }
292293
293294
294295
295296 @Callable(ar)
296-func getUnstakeComissionAmountMATH (R,bw) = {
297- let bx = O(am, J())
298- $Tuple2(nil, fraction(R, pow(2, 0, fraction(-((height - bw)), e, bx), 8, 8, HALFUP), e))
297+func getUnstakeComissionAmountMATH (R,bx) = {
298+ let by = O(am, J())
299+ $Tuple2(nil, fraction(R, pow(2, 0, fraction(-((height - bx)), e, by), 8, 8, HALFUP), e))
299300 }
300301
301302
302303
303304 @Callable(ar)
304-func mergeStakesMATH (by,bz,bA,bB) = {
305- let bx = O(am, J())
306- let bC = fraction(bA, pow(2, 0, fraction((bB - bz), e, bx), 8, 8, HALFUP), e)
307- let bD = fraction((by + bA), e, (by + bC))
308- $Tuple2(nil, (bz + ((j - (bx * log(bD, 8, 2, 0, 8, HALFUP))) / e)))
305+func mergeStakesMATH (bz,bA,bB,bC) = {
306+ let by = O(am, J())
307+ let bD = fraction(bB, pow(2, 0, fraction((bC - bA), e, by), 8, 8, HALFUP), e)
308+ let bE = fraction((bz + bB), e, (bz + bD))
309+ $Tuple2(nil, (bA + ((j - (by * log(bE, 8, 2, 0, 8, HALFUP))) / e)))
309310 }
310311
311312
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = 1000000
77
88 let c = toBigInt(1000000)
99
1010 let d = 1000000
1111
1212 let e = 100000000
1313
1414 let f = toBigInt(10000000000000000)
1515
1616 let g = 8
1717
1818 let h = 16
1919
2020 let i = "__"
2121
2222 let j = 50000000
2323
2424 let k = 271828182
2525
2626 let l = 1000000
2727
2828 let m = toBigInt(1000000)
2929
3030 let n = toBigInt(100000000)
3131
3232 func o () = "%s%s__config__neutrinoAddress"
3333
3434
3535 func p () = "%s%s__config__swapAParam"
3636
3737
3838 func q () = "neutrino_asset_id"
3939
4040
4141 func r () = "liquidation_contract"
4242
4343
4444 func s () = "rpd_contract"
4545
4646
4747 func t () = "auction_contract"
4848
4949
5050 func u () = "control_contract"
5151
5252
5353 func v () = "bond_asset_id"
5454
5555
5656 func w () = "balance_lock_"
5757
5858
5959 func x () = (w() + "waves")
6060
6161
6262 func y () = (w() + "neutrino")
6363
6464
6565 func z () = "min_waves_swap_amount"
6666
6767
6868 func A () = "min_neutrino_swap_amount"
6969
7070
7171 func B () = "wavesOut_swap_feePart"
7272
7373
7474 func C () = "neutrinoOut_swap_feePart"
7575
7676
7777 func D () = "%s__nsbtLockContract"
7878
7979
8080 func E () = "%s__quickSwapLimitDuration"
8181
8282
8383 func F (G) = makeString(["%s%s", "userLastQuickSwapHeight", G], i)
8484
8585
8686 func H (G) = makeString(["%s%s", "quickSwapUserSpentInPeriod", G], i)
8787
8888
8989 func I () = "price"
9090
9191
9292 func J () = "%s__halfLife"
9393
9494
9595 func K (G) = makeString(["%s%s%s", "paramByUser", G, "amount"], i)
9696
9797
9898 func L (M,N) = valueOrErrorMessage(getString(M, N), makeString(["mandatory ", toString(M), ".", N, " is not defined"], ""))
9999
100100
101101 func O (M,N) = valueOrErrorMessage(getInteger(M, N), makeString(["mandatory ", toString(M), ".", N, " is not defined"], ""))
102102
103103
104104 func P (M,N) = valueOrErrorMessage(getBoolean(M, N), makeString(["mandatory ", toString(M), ".", N, " is not defined"], ""))
105105
106106
107107 func Q (R,S) = fraction(fraction(R, d, S), a, b)
108108
109109
110110 func T (R,S) = fraction(fraction(R, S, d), b, a)
111111
112112
113113 func U (V,W) = fraction(toBigInt(V), f, toBigInt(W))
114114
115115
116116 func X (Y,Z) = toInt(fraction(Y, toBigInt(Z), f))
117117
118118
119119 func aa (Y) = {
120120 let ab = Y
121121 if ($isInstanceOf(ab, "List[Any]"))
122122 then {
123123 let ac = ab
124124 ac
125125 }
126126 else throw("fail to cast into List[Any]")
127127 }
128128
129129
130130 func ad (Y) = {
131131 let ab = Y
132132 if ($isInstanceOf(ab, "Int"))
133133 then {
134134 let ae = ab
135135 ae
136136 }
137137 else throw("fail to cast into Int")
138138 }
139139
140140
141141 func af (Y) = {
142142 let ab = Y
143143 if ($isInstanceOf(ab, "String"))
144144 then {
145145 let ag = ab
146146 ag
147147 }
148148 else throw("fail to cast into String")
149149 }
150150
151151
152152 let ah = addressFromStringValue(L(this, o()))
153153
154154 let ai = addressFromStringValue(L(ah, u()))
155155
156156 let aj = addressFromStringValue(L(ah, t()))
157157
158158 let ak = L(ah, r())
159159
160160 let al = L(ah, s())
161161
162162 let am = addressFromStringValue(L(this, D()))
163163
164164 let an = L(ah, q())
165165
166166 let ao = fromBase58String(an)
167167
168168 let ap = getStringValue(ah, v())
169169
170170 let aq = fromBase58String(ap)
171171
172172 @Callable(ar)
173173 func constructor (as,at,au) = if ((ar.caller != this))
174174 then throw("not authorized")
175175 else [StringEntry(o(), as), StringEntry(D(), at), IntegerEntry(p(), au)]
176176
177177
178178
179179 @Callable(ar)
180180 func calcSwapLimitMATH (av) = {
181- let aw = valueOrErrorMessage(getIntegerValue(this, p()), "Swap parameter A missed.")
182- let ax = toBigInt(av)
183- let ay = pow(ax, 0, toBigInt(k), 8, 0, DOWN)
184- let az = fraction(toBigInt(aw), ay, n)
185- $Tuple2(nil, toInt(az))
181+ let aw = 3
182+ let ax = U(av, l)
183+ let ay = U(k, e)
184+ let az = pow(ax, 16, ay, 16, 8, DOWN)
185+ let aA = fraction(toBigInt(aw), az, n)
186+ $Tuple2(nil, toInt(aA))
186187 }
187188
188189
189190
190191 @Callable(ar)
191-func calculateKMATH (aA,aB,S,aC,aD) = {
192- let aE = toBigInt(2718281)
193- let aF = 6
194- let aG = valueOrElse(getInteger(aj, "nsbtCurveParam_a"), 3)
195- let aH = valueOrElse(getInteger(aj, "nsbtCurveParam_b"), ((3 * b) / 10))
196- let aI = T(aA, S)
197- let aJ = fraction(aI, e, aB)
198- if ((aJ > 10678564816))
192+func calculateKMATH (aB,aC,S,aD,aE) = {
193+ let aF = toBigInt(2718281)
194+ let aG = 6
195+ let aH = valueOrElse(getInteger(aj, "nsbtCurveParam_a"), 3)
196+ let aI = valueOrElse(getInteger(aj, "nsbtCurveParam_b"), ((3 * b) / 10))
197+ let aJ = T(aB, S)
198+ let aK = fraction(aJ, e, aC)
199+ if ((aK > 10678564816))
199200 then throw("BR > 10678.564816% will overflow exponent")
200201 else {
201- let aK = (aG * (aJ - e))
202- let aL = pow(aE, aF, toBigInt(aK), g, h, DOWN)
203- let aM = fraction(toBigInt(aH), aL, c)
204- $Tuple2(nil, [aG, aH, aI, aJ, aK, toString(aL), toString(aM)])
202+ let aL = (aH * (aK - e))
203+ let aM = pow(aF, aG, toBigInt(aL), g, h, DOWN)
204+ let aN = fraction(toBigInt(aI), aM, c)
205+ $Tuple2(nil, [aH, aI, aJ, aK, aL, toString(aM), toString(aN)])
205206 }
206207 }
207208
208209
209210
210211 @Callable(ar)
211-func curveFunctionMATH (aA,aB,S,aC,aD,aN) = {
212- let aO = aa(invoke(this, "calculateKMATH", [aA, aB, S, aC, aD], nil))
213- if ((aO == aO))
212+func curveFunctionMATH (aB,aC,S,aD,aE,aO) = {
213+ let aP = aa(invoke(this, "calculateKMATH", [aB, aC, S, aD, aE], nil))
214+ if ((aP == aP))
214215 then {
215- let aM = parseBigIntValue(af(aO[6]))
216- let aP = T(aN, S)
217- let aQ = toBigInt(aC)
218- let aR = toBigInt((aC - aD))
219- let aS = fraction(toBigInt(aP), f, aM)
220- let aT = fraction(aS, aR, aQ)
221- let aU = toInt(fraction(aR, aQ, (aT + aQ)))
222- let aV = ((aC - aD) - aU)
223- $Tuple2(nil, [aV, aP, aA, aB, aC, aD, ad(aO[0]), ad(aO[1]), ad(aO[2]), ad(S), ad(aO[3]), ad(aO[4]), aO[5], aO[6], toString(aS), toString(aT), toString(aU)])
216+ let aN = parseBigIntValue(af(aP[6]))
217+ let aQ = T(aO, S)
218+ let aR = toBigInt(aD)
219+ let aS = toBigInt((aD - aE))
220+ let aT = fraction(toBigInt(aQ), f, aN)
221+ let aU = fraction(aT, aS, aR)
222+ let aV = toInt(fraction(aS, aR, (aU + aR)))
223+ let aW = ((aD - aE) - aV)
224+ $Tuple2(nil, [aW, aQ, aB, aC, aD, aE, ad(aP[0]), ad(aP[1]), ad(aP[2]), ad(S), ad(aP[3]), ad(aP[4]), aP[5], aP[6], toString(aT), toString(aU), toString(aV)])
224225 }
225226 else throw("Strict value is not equal to itself.")
226227 }
227228
228229
229230
230231 @Callable(ar)
231232 func calcContractNsbtPriceMATH () = {
232- let aW = value(assetInfo(aq)).quantity
233- let aX = aa(invoke(this, "calcNeutinoMetricsMATH", nil, nil))
234- if ((aX == aX))
233+ let aX = value(assetInfo(aq)).quantity
234+ let aY = aa(invoke(this, "calcNeutinoMetricsMATH", nil, nil))
235+ if ((aY == aY))
235236 then {
236- let aY = ad(aX[9])
237- let aZ = ad(aX[0])
238- let aO = aa(invoke(this, "calculateKMATH", [ad(aX[4]), ad(aX[6]), aZ, aW, aY], nil))
239- if ((aO == aO))
237+ let aZ = ad(aY[9])
238+ let ba = ad(aY[0])
239+ let aP = aa(invoke(this, "calculateKMATH", [ad(aY[4]), ad(aY[6]), ba, aX, aZ], nil))
240+ if ((aP == aP))
240241 then {
241- let aM = parseBigIntValue(af(aO[6]))
242- let ba = X(aM, e)
243- let bb = fraction(aW, e, (aW - aY))
244- let bc = fraction(bb, bb, e)
245- let bd = fraction(ba, bc, e)
246- let be = fraction(bd, b, e)
247- let bf = fraction(be, b, aZ)
248- $Tuple2(nil, [be, bf])
242+ let aN = parseBigIntValue(af(aP[6]))
243+ let bb = X(aN, e)
244+ let bc = fraction(aX, e, (aX - aZ))
245+ let bd = fraction(bc, bc, e)
246+ let be = fraction(bb, bd, e)
247+ let bf = fraction(be, b, e)
248+ let bg = fraction(bf, b, ba)
249+ $Tuple2(nil, [bf, bg])
249250 }
250251 else throw("Strict value is not equal to itself.")
251252 }
252253 else throw("Strict value is not equal to itself.")
253254 }
254255
255256
256257
257258 @Callable(ar)
258-func calcUserSwapLimitsMATH (bg) = {
259- let bh = valueOrElse(getInteger(am, K(bg)), 0)
260- let bi = ad(invoke(this, "calcSwapLimitMATH", [bh], nil))
261- if ((bi == bi))
259+func calcUserSwapLimitsMATH (bh) = {
260+ let bi = valueOrElse(getInteger(am, K(bh)), 0)
261+ let bj = ad(invoke(this, "calcSwapLimitMATH", [bi], nil))
262+ if ((bj == bj))
262263 then {
263- let bj = getIntegerValue(ah, E())
264- let bk = valueOrElse(getInteger(ah, F(bg)), 0)
265- let bl = ((height - bk) > bj)
266- let bm = if (bl)
264+ let bk = getIntegerValue(ah, E())
265+ let bl = valueOrElse(getInteger(ah, F(bh)), 0)
266+ let bm = ((height - bl) > bk)
267+ let bn = if (bm)
267268 then 0
268- else valueOrElse(getInteger(ah, H(bg)), 0)
269- $Tuple2(nil, [bi, bm])
269+ else valueOrElse(getInteger(ah, H(bh)), 0)
270+ $Tuple2(nil, [bj, bn])
270271 }
271272 else throw("Strict value is not equal to itself.")
272273 }
273274
274275
275276
276277 @Callable(ar)
277278 func calcNeutinoMetricsMATH () = {
278- let aZ = getIntegerValue(ai, I())
279- let bn = valueOrElse(getInteger(ah, y()), 0)
280- let bo = valueOrElse(getInteger(ah, x()), 0)
281- let bp = (wavesBalance(ah).regular - bo)
282- let bq = T(bp, aZ)
283- let br = (((bn + value(assetInfo(ao)).quantity) - assetBalance(ah, ao)) - assetBalance(addressFromStringValue(ak), ao))
284- let bs = (bq - br)
285- let bt = (br - bq)
286- let bu = (fraction(bs, b, br) * 100)
287- let bv = fraction(bq, b, br)
288- let aW = value(assetInfo(aq)).quantity
289- let aY = (aW - assetBalance(aj, aq))
290- $Tuple2(nil, [aZ, bn, bo, bp, bq, br, bs, bu, bv, aY, aW])
279+ let ba = getIntegerValue(ai, I())
280+ let bo = valueOrElse(getInteger(ah, y()), 0)
281+ let bp = valueOrElse(getInteger(ah, x()), 0)
282+ let bq = (wavesBalance(ah).regular - bp)
283+ let br = T(bq, ba)
284+ let bs = (((bo + value(assetInfo(ao)).quantity) - assetBalance(ah, ao)) - assetBalance(addressFromStringValue(ak), ao))
285+ let bt = (br - bs)
286+ let bu = (bs - br)
287+ let bv = (fraction(bt, b, bs) * 100)
288+ let bw = fraction(br, b, bs)
289+ let aX = value(assetInfo(aq)).quantity
290+ let aZ = (aX - assetBalance(aj, aq))
291+ $Tuple2(nil, [ba, bo, bp, bq, br, bs, bt, bv, bw, aZ, aX])
291292 }
292293
293294
294295
295296 @Callable(ar)
296-func getUnstakeComissionAmountMATH (R,bw) = {
297- let bx = O(am, J())
298- $Tuple2(nil, fraction(R, pow(2, 0, fraction(-((height - bw)), e, bx), 8, 8, HALFUP), e))
297+func getUnstakeComissionAmountMATH (R,bx) = {
298+ let by = O(am, J())
299+ $Tuple2(nil, fraction(R, pow(2, 0, fraction(-((height - bx)), e, by), 8, 8, HALFUP), e))
299300 }
300301
301302
302303
303304 @Callable(ar)
304-func mergeStakesMATH (by,bz,bA,bB) = {
305- let bx = O(am, J())
306- let bC = fraction(bA, pow(2, 0, fraction((bB - bz), e, bx), 8, 8, HALFUP), e)
307- let bD = fraction((by + bA), e, (by + bC))
308- $Tuple2(nil, (bz + ((j - (bx * log(bD, 8, 2, 0, 8, HALFUP))) / e)))
305+func mergeStakesMATH (bz,bA,bB,bC) = {
306+ let by = O(am, J())
307+ let bD = fraction(bB, pow(2, 0, fraction((bC - bA), e, by), 8, 8, HALFUP), e)
308+ let bE = fraction((bz + bB), e, (bz + bD))
309+ $Tuple2(nil, (bA + ((j - (by * log(bE, 8, 2, 0, 8, HALFUP))) / e)))
309310 }
310311
311312

github/deemru/w8io/873ac7e 
103.94 ms