tx · HCUkraKw7BiYJp6rQ3rRi2P5mpg6Y7UarD1RWHeSefNY

3N7LYefWk1WhvCsY5A9nTq244SbVPmhCypi:  -0.01400000 Waves

2022.03.22 12:31 [1974953] smart account 3N7LYefWk1WhvCsY5A9nTq244SbVPmhCypi > SELF 0.00000000 Waves

{ "type": 13, "id": "HCUkraKw7BiYJp6rQ3rRi2P5mpg6Y7UarD1RWHeSefNY", "fee": 1400000, "feeAssetId": null, "timestamp": 1647941485019, "version": 1, "sender": "3N7LYefWk1WhvCsY5A9nTq244SbVPmhCypi", "senderPublicKey": "4qGVXRFATZNzo2RZZ5UYHXojGyJgSRBwtgJcCU8rJe5A", "proofs": [ "2Lt4GeDo2dSt4AuroE4jUxReF4hgvyUoVyHX6Y8fhY9qGZzUn2JzSFbvWP7WyHJEMWNLa39KtjyiKJAt3t113hym" ], "script": "base64:AAIFAAAAAAAAADMIAhIFCgMICAESAwoBARIHCgUBAQEBARIDCgEBEgMKAQESABIFCgMBAQESBwoFAQEBAQEAAABBAAAAAAdXQVZFTEVUAAAAAAAF9eEAAAAAAAVQQVVMSQAAAAAAAA9CQAAAAAAIQklHUEFVTEkJAAE2AAAAAQAAAAAAAA9CQAAAAAAIUFJJQ0VMRVQAAAAAAAAPQkAAAAAABE1VTFQAAAAAAAX14QAAAAAACUJJR01VTFQxNgkAATYAAAABAAAjhvJvwQAAAAAAAAlNVUxUU0NBTEUAAAAAAAAAAAgAAAAAB1NDQUxFMTYAAAAAAAAAABAAAAAAA1NFUAIAAAACX18AAAAABUhBTEY4AAAAAAAC+vCAAAAAAAtFVUxFUk5VTUJFUgkAATYAAAABAABgkqET2NV0AAAAAAZzY2FsZTYAAAAAAAAPQkAAAAAADHNjYWxlNkJpZ0ludAkAATYAAAABAAAAAAAAD0JAAAAAAAxzY2FsZThCaWdJbnQJAAE2AAAAAQAAAAAABfXhAAAAAAANc2NhbGUxMEJpZ0ludAkAATYAAAABAAAAAAJUC+QAAAAAAAtrUmVzdWx0SWR4QQAAAAAAAAAAAAAAAAAPa1Jlc3VsdElkeFBhdWxCAAAAAAAAAAABAAAAABlrUmVzdWx0SWR4V1Jlc2VydmVzSW5Vc2RuAAAAAAAAAAACAAAAABBrUmVzdWx0SWR4TXVsdEJSAAAAAAAAAAADAAAAABNrUmVzdWx0SWR4TXVsdFBvd2VyAAAAAAAAAAAEAAAAABtrUmVzdWx0SWR4TXVsdEV4cEluUG93ZXJTdHIAAAAAAAAAAAUAAAAAEmtSZXN1bHRJZHhNdWx0S1N0cgAAAAAAAAAABgAAAAAPbk1ldHJpY0lkeFByaWNlAAAAAAAAAAAAAAAAABtuTWV0cmljSWR4VXNkbkxvY2tlZEJhbGFuY2UAAAAAAAAAAAEAAAAAHG5NZXRyaWNJZHhXYXZlc0xvY2tlZEJhbGFuY2UAAAAAAAAAAAIAAAAAEW5NZXRyaWNJZHhSZXNlcnZlAAAAAAAAAAADAAAAABduTWV0cmljSWR4UmVzZXJ2ZUluVXNkbgAAAAAAAAAABAAAAAAUbk1ldHJpY0lkeFVzZG5TdXBwbHkAAAAAAAAAAAUAAAAAEW5NZXRyaWNJZHhTdXJwbHVzAAAAAAAAAAAGAAAAABhuTWV0cmljSWR4U3VycGx1c1BlcmNlbnQAAAAAAAAAAAcAAAAADG5NZXRyaWNJZHhCUgAAAAAAAAAACAAAAAAUbk1ldHJpY0lkeE5zYnRTdXBwbHkAAAAAAAAAAAkAAAAAF25NZXRyaWNJZHhNYXhOc2J0U3VwcGx5AAAAAAAAAAAKAQAAABJrZXlOZXV0cmlub0FkZHJlc3MAAAAAAgAAAB0lcyVzX19jb25maWdfX25ldXRyaW5vQWRkcmVzcwEAAAATa2V5U3dhcEFtb3VudEFQYXJhbQAAAAACAAAAGCVzJXNfX2NvbmZpZ19fc3dhcEFQYXJhbQEAAAASa2V5TmV1dHJpbm9Bc3NldElkAAAAAAIAAAARbmV1dHJpbm9fYXNzZXRfaWQBAAAAHWtleUxpcXVpZGF0aW9uQ29udHJhY3RBZGRyZXNzAAAAAAIAAAAUbGlxdWlkYXRpb25fY29udHJhY3QBAAAAEmtleUF1Y3Rpb25Db250cmFjdAAAAAACAAAAEGF1Y3Rpb25fY29udHJhY3QBAAAAEWtleUNvbnRvbENvbnRyYWN0AAAAAAIAAAAQY29udHJvbF9jb250cmFjdAEAAAAOa2V5Qm9uZEFzc2V0SWQAAAAAAgAAAA1ib25kX2Fzc2V0X2lkAQAAABBrZXlCYWxhbmNlTG9ja2VkAAAAAAIAAAANYmFsYW5jZV9sb2NrXwEAAAAVa2V5V2F2ZXNMb2NrZWRCYWxhbmNlAAAAAAkAASwAAAACCQEAAAAQa2V5QmFsYW5jZUxvY2tlZAAAAAACAAAABXdhdmVzAQAAABhrZXlOZXV0cmlub0xvY2tlZEJhbGFuY2UAAAAACQABLAAAAAIJAQAAABBrZXlCYWxhbmNlTG9ja2VkAAAAAAIAAAAIbmV1dHJpbm8BAAAAEXN3YXBzVGltZWZyYW1lS0VZAAAAAAIAAAAPc3dhcHNfdGltZWZyYW1lAQAAABprZXlVc2VyTGFzdFF1aWNrU3dhcEhlaWdodAAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAAF3VzZXJMYXN0UXVpY2tTd2FwSGVpZ2h0CQAETAAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAANu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aDACAAAABlN0cmluZwQAAAAGdmFsU3RyBQAAAAckbWF0Y2gwBQAAAAZ2YWxTdHIJAAACAAAAAQIAAAAYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAEdGhpcwkBAAAAEmtleU5ldXRyaW5vQWRkcmVzcwAAAAAAAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABFrZXlDb250b2xDb250cmFjdAAAAAAAAAAAD2F1Y3Rpb25Db250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABJrZXlBdWN0aW9uQ29udHJhY3QAAAAAAAAAABNsaXF1aWRhdGlvbkNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAHWtleUxpcXVpZGF0aW9uQ29udHJhY3RBZGRyZXNzAAAAAAAAAAAPbmV1dHJpbm9Bc3NldElkCQACWQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAASa2V5TmV1dHJpbm9Bc3NldElkAAAAAAAAAAALbnNidEFzc2V0SWQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAADmtleUJvbmRBc3NldElkAAAAAAEAAAAdY2FsY0NvbnRyYWN0TnNidFByaWNlSW50ZXJuYWwAAAABAAAAD25zYnRTdXBwbHlERUxUQQQAAAAPbmV1dHJpbm9NZXRyaWNzCQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAAAR0aGlzAgAAABpjYWxjTmV1dGlub01ldHJpY3NSRUFET05MWQUAAAADbmlsBQAAAANuaWwEAAAABXByaWNlCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAPbk1ldHJpY0lkeFByaWNlBAAAAAR3UmF3CQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAARbk1ldHJpY0lkeFJlc2VydmUEAAAABHVSYXcJAABlAAAAAgkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAFG5NZXRyaWNJZHhVc2RuU3VwcGx5BQAAAA9uc2J0U3VwcGx5REVMVEEEAAAABHNSYXcJAABkAAAAAgkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAFG5NZXRyaWNJZHhOc2J0U3VwcGx5BQAAAA9uc2J0U3VwcGx5REVMVEEEAAAABG1SYXcJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABduTWV0cmljSWR4TWF4TnNidFN1cHBseQQAAAAKa0NhbGNBcnJheQkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAEdGhpcwIAAAASY2FsY3VsYXRlS1JFQURPTkxZCQAETAAAAAIFAAAABHdSYXcJAARMAAAAAgUAAAAEdVJhdwkABEwAAAACBQAAAAVwcmljZQkABEwAAAACBQAAAARtUmF3CQAETAAAAAIFAAAABHNSYXcFAAAAA25pbAUAAAADbmlsBAAAAAhtdWx0S1gxNgkAAacAAAABCQEAAAAIYXNTdHJpbmcAAAABCQABkQAAAAIFAAAACmtDYWxjQXJyYXkFAAAAEmtSZXN1bHRJZHhNdWx0S1N0cgQAAAAMbXVsdFN0ZXAxWDE2CQABPAAAAAMJAAE2AAAAAQUAAAAEbVJhdwUAAAAJQklHTVVMVDE2CQABNgAAAAEJAABlAAAAAgUAAAAEbVJhdwUAAAAEc1JhdwQAAAAMbXVsdFN0ZXAyWDE2CQABPAAAAAMFAAAADG11bHRTdGVwMVgxNgUAAAAMbXVsdFN0ZXAxWDE2BQAAAAlCSUdNVUxUMTYEAAAAFW11bHROc2J0MnVzZG5QcmljZVgxNgkAATwAAAADBQAAAAhtdWx0S1gxNgUAAAAMbXVsdFN0ZXAyWDE2BQAAAAlCSUdNVUxUMTYEAAAADm5zYnQydXNkblByaWNlCQABoAAAAAEJAAE8AAAAAwUAAAAVbXVsdE5zYnQydXNkblByaWNlWDE2CQABNgAAAAEFAAAABVBBVUxJBQAAAAlCSUdNVUxUMTYEAAAAD25zYnQyd2F2ZXNQcmljZQkAAGsAAAADBQAAAA5uc2J0MnVzZG5QcmljZQUAAAAFUEFVTEkFAAAABXByaWNlCQAFFAAAAAIFAAAAA25pbAkABEwAAAACBQAAAA5uc2J0MnVzZG5QcmljZQkABEwAAAACBQAAAA9uc2J0MndhdmVzUHJpY2UFAAAAA25pbAAAAAgAAAABaQEAAAALY29uc3RydWN0b3IAAAADAAAAD25ldXRyaW5vQWRkcmVzcwAAAA9uc2J0TG9ja0FkZHJlc3MAAAAQc3dhcEFtb3VudEFQYXJhbQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5TmV1dHJpbm9BZGRyZXNzAAAAAAUAAAAPbmV1dHJpbm9BZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAATa2V5U3dhcEFtb3VudEFQYXJhbQAAAAAFAAAAEHN3YXBBbW91bnRBUGFyYW0FAAAAA25pbAAAAAFpAQAAABVjYWxjU3dhcExpbWl0UkVBRE9OTFkAAAABAAAAC2dOc2J0QW1vdW50BAAAAAtsaW1pdFBhcmFtQQkAATYAAAABCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAEdGhpcwkBAAAAE2tleVN3YXBBbW91bnRBUGFyYW0AAAAABAAAABJnTnNidEFtb3VudFNjYWxlMTYJAQAAAAV0b1gxNgAAAAIFAAAAC2dOc2J0QW1vdW50BQAAAAZzY2FsZTYEAAAADGxpbWl0UG93UGFydAkAAHYAAAAGBQAAABJnTnNidEFtb3VudFNjYWxlMTYAAAAAAAAAABAFAAAAC0VVTEVSTlVNQkVSAAAA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SW50AAAAAQkAAZEAAAACBQAAAAprQ2FsY0FycmF5BQAAABBrUmVzdWx0SWR4TXVsdEJSCQAETAAAAAIJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAKa0NhbGNBcnJheQUAAAATa1Jlc3VsdElkeE11bHRQb3dlcgkABEwAAAACCQABkQAAAAIFAAAACmtDYWxjQXJyYXkFAAAAG2tSZXN1bHRJZHhNdWx0RXhwSW5Qb3dlclN0cgkABEwAAAACCQABkQAAAAIFAAAACmtDYWxjQXJyYXkFAAAAEmtSZXN1bHRJZHhNdWx0S1N0cgkABEwAAAACCQABpgAAAAEFAAAABXN0ZXAxCQAETAAAAAIJAAGmAAAAAQUAAAAFc3RlcDIJAARMAAAAAgUAAAAFc3RlcDMFAAAAA25pbAAAAAFpAQAAACBjYWxjQ29udHJhY3ROc2J0UHJpY2VTWVNSRUFET05MWQAAAAEAAAAPbnNidFN1cHBseURFTFRBCQEAAAAdY2FsY0NvbnRyYWN0TnNidFByaWNlSW50ZXJuYWwAAAABBQAAAA9uc2J0U3VwcGx5REVMVEEAAAABaQEAAAAaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkAAAAABAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAkBAAAACGtleVByaWNlAAAAAAQAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABhrZXlOZXV0cmlub0xvY2tlZEJhbGFuY2UAAAAAAAAAAAAAAAAABAAAABJ3YXZlc0xvY2tlZEJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAFWtleVdhdmVzTG9ja2VkQmFsYW5jZQAAAAAAAAAAAAAAAAAEAAAAB3Jlc2VydmUJAABlAAAAAggJAAPvAAAAAQUAAAAQbmV1dHJpbm9Db250cmFjdAAAAAdyZWd1bGFyBQAAABJ3YXZlc0xvY2tlZEJhbGFuY2UEAAAADnJlc2VydmVzSW5Vc2RuCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAAB3Jlc2VydmUFAAAADGN1cnJlbnRQcmljZQQAAAAObmV1dHJpbm9TdXBwbHkJAABlAAAAAgkAAGUAAAACCQAAZAAAAAIFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAPbmV1dHJpbm9Bc3NldElkAAAACHF1YW50aXR5CQAD8AAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAkAA/AAAAACBQAAABNsaXF1aWRhdGlvbkNvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQEAAAAB3N1cnBsdXMJAABlAAAAAgUAAAAOcmVzZXJ2ZXNJblVzZG4FAAAADm5ldXRyaW5vU3VwcGx5BAAAAAdkZWZpY2l0CQAAZQAAAAIFAAAADm5ldXRyaW5vU3VwcGx5BQAAAA5yZXNlcnZlc0luVXNkbgQAAAAOc3VycGx1c1BlcmNlbnQDCQAAAAAAAAIFAAAADm5ldXRyaW5vU3VwcGx5AAAAAAAAAAAAAAAAAAAAAAAACQAAaAAAAAIJAABrAAAAAwUAAAAHc3VycGx1cwUAAAAFUEFVTEkFAAAADm5ldXRyaW5vU3VwcGx5AAAAAAAAAABkBAAAAAJCUgMJAAAAAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkAAAAAAAAAAAAAAAAAAAAAAAAJAABrAAAAAwUAAAAOcmVzZXJ2ZXNJblVzZG4FAAAABVBBVUxJBQAAAA5uZXV0cmlub1N1cHBseQQAAAANbnNidFN1cHBseU1BWAgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAALbnNidEFzc2V0SWQAAAAIcXVhbnRpdHkEAAAACm5zYnRTdXBwbHkJAABlAAAAAgUAAAANbnNidFN1cHBseU1BWAkAA/AAAAACBQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAC25zYnRBc3NldElkCQAFFAAAAAIFAAAAA25pbAkABEwAAAACBQAAAAxjdXJyZW50UHJpY2UJAARMAAAAAgUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQAETAAAAAIFAAAAEndhdmVzTG9ja2VkQmFsYW5jZQkABEwAAAACBQAAAAdyZXNlcnZlCQAETAAAAAIFAAAADnJlc2VydmVzSW5Vc2RuCQAETAAAAAIFAAAADm5ldXRyaW5vU3VwcGx5CQAETAAAAAIFAAAAB3N1cnBsdXMJAARMAAAAAgUAAAAOc3VycGx1c1BlcmNlbnQJAARMAAAAAgUAAAACQlIJAARMAAAAAgUAAAAKbnNidFN1cHBseQkABEwAAAACBQAAAA1uc2J0U3VwcGx5TUFYBQAAAANuaWwAAAABaQEAAAAhZ2V0VW5zdGFrZUNvbWlzc2lvbkFtb3VudFJFQURPTkxZAAAAAwAAAAZhbW91bnQAAAALc3RhcnRIZWlnaHQAAAAIaGFsZkxpZmUJAAUUAAAAAgUAAAADbmlsCQAAawAAAAMFAAAABmFtb3VudAkAAGwAAAAGAAAAAAAAAAACAAAAAAAAAAAACQAAawAAAAMJAQAAAAEtAAAAAQkAAGUAAAACBQAAAAZoZWlnaHQFAAAAC3N0YXJ0SGVpZ2h0BQAAAARNVUxUBQAAAAhoYWxmTGlmZQAAAAAAAAAACAAAAAAAAAAACAUAAAAGSEFMRlVQBQAAAARNVUxUAAAAAWkBAAAAE21lcmdlU3Rha2VzUkVBRE9OTFkAAAAFAAAAB2Ftb3VudDEAAAAHaGVpZ2h0MQAAAAdhbW91bnQyAAAAB2hlaWdodDIAAAAIaGFsZkxpZmUEAAAAAXcJAABrAAAAAwUAAAAHYW1vdW50MgkAAGwAAAAGAAAAAAAAAAACAAAAAAAAAAAACQAAawAAAAMJAABlAAAAAgUAAAAHaGVpZ2h0MgUAAAAHaGVpZ2h0MQUAAAAETVVMVAUAAAAIaGFsZkxpZmUAAAAAAAAAAAgAAAAAAAAAAAgFAAAABkhBTEZVUAUAAAAETVVMVAQAAAABdgkAAGsAAAADCQAAZAAAAAIFAAAAB2Ftb3VudDEFAAAAB2Ftb3VudDIFAAAABE1VTFQJAABkAAAAAgUAAAAHYW1vdW50MQUAAAABdwkABRQAAAACBQAAAANuaWwJAABkAAAAAgUAAAAHaGVpZ2h0MQkAAGkAAAACCQAAZQAAAAIFAAAABUhBTEY4CQAAaAAAAAIFAAAACGhhbGZMaWZlCQAAbQAAAAYFAAAAAXYAAAAAAAAAAAgAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAgFAAAABkhBTEZVUAUAAAAETVVMVAAAAAA86V/N", "chainId": 84, "height": 1974953, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CDRkiBJfw7ETkATcfUYJhhoEuWj26Bm2RZsjHw9X3Tau Next: 5LQET3pBXKVNvZRW6v9Gjt9EyMRGBB9ndrPrrrP2kmaV Diff:
OldNewDifferences
3131
3232 let o = toBigInt(10000000000)
3333
34-func p () = "%s%s__config__neutrinoAddress"
34+let p = 0
35+
36+let q = 1
37+
38+let r = 2
39+
40+let s = 3
41+
42+let t = 4
43+
44+let u = 5
45+
46+let v = 6
47+
48+let w = 0
49+
50+let x = 1
51+
52+let y = 2
53+
54+let z = 3
55+
56+let A = 4
57+
58+let B = 5
59+
60+let C = 6
61+
62+let D = 7
63+
64+let E = 8
65+
66+let F = 9
67+
68+let G = 10
69+
70+func H () = "%s%s__config__neutrinoAddress"
3571
3672
37-func q () = "%s%s__config__swapAParam"
73+func I () = "%s%s__config__swapAParam"
3874
3975
40-func r () = "neutrino_asset_id"
76+func J () = "neutrino_asset_id"
4177
4278
43-func s () = "liquidation_contract"
79+func K () = "liquidation_contract"
4480
4581
46-func t () = "auction_contract"
82+func L () = "auction_contract"
4783
4884
49-func u () = "control_contract"
85+func M () = "control_contract"
5086
5187
52-func v () = "bond_asset_id"
88+func N () = "bond_asset_id"
5389
5490
55-func w () = "balance_lock_"
91+func O () = "balance_lock_"
5692
5793
58-func x () = (w() + "waves")
94+func P () = (O() + "waves")
5995
6096
61-func y () = (w() + "neutrino")
97+func Q () = (O() + "neutrino")
6298
6399
64-func z () = "swaps_timeframe"
100+func R () = "swaps_timeframe"
65101
66102
67-func A (B) = makeString(["%s%s", "userLastQuickSwapHeight", B], i)
103+func S (T) = makeString(["%s%s", "userLastQuickSwapHeight", T], i)
68104
69105
70-func C (B) = makeString(["%s%s", "quickSwapUserSpentInPeriod", B], i)
106+func U (T) = makeString(["%s%s", "quickSwapUserSpentInPeriod", T], i)
71107
72108
73-func D () = "price"
109+func V () = "price"
74110
75111
76-func E (F,G) = valueOrErrorMessage(getString(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
112+func W (X,Y) = valueOrErrorMessage(getString(X, Y), makeString(["mandatory ", toString(X), ".", Y, " is not defined"], ""))
77113
78114
79-func H (F,G) = valueOrErrorMessage(getInteger(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
115+func Z (X,Y) = valueOrErrorMessage(getInteger(X, Y), makeString(["mandatory ", toString(X), ".", Y, " is not defined"], ""))
80116
81117
82-func I (F,G) = valueOrElse(getInteger(F, G), 0)
118+func aa (X,Y) = valueOrElse(getInteger(X, Y), 0)
83119
84120
85-func J (F,G) = valueOrErrorMessage(getBoolean(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
121+func ab (X,Y) = valueOrErrorMessage(getBoolean(X, Y), makeString(["mandatory ", toString(X), ".", Y, " is not defined"], ""))
86122
87123
88-func K (L,M) = fraction(fraction(L, d, M), a, b)
124+func ac (ad,ae) = fraction(fraction(ad, d, ae), a, b)
89125
90126
91-func N (L,M) = fraction(fraction(L, M, d), b, a)
127+func af (ad,ae) = fraction(fraction(ad, ae, d), b, a)
92128
93129
94-func O (P,Q) = fraction(toBigInt(P), f, toBigInt(Q))
130+func ag (ah,ai) = fraction(toBigInt(ah), f, toBigInt(ai))
95131
96132
97-func R (S,T) = toInt(fraction(S, toBigInt(T), f))
133+func aj (ak,al) = toInt(fraction(ak, toBigInt(al), f))
98134
99135
100-func U (S) = {
101- let V = S
102- if ($isInstanceOf(V, "List[Any]"))
136+func am (ak) = {
137+ let an = ak
138+ if ($isInstanceOf(an, "List[Any]"))
103139 then {
104- let W = V
105- W
140+ let ao = an
141+ ao
106142 }
107143 else throw("fail to cast into List[Any]")
108144 }
109145
110146
111-func X (S) = {
112- let V = S
113- if ($isInstanceOf(V, "Int"))
147+func ap (ak) = {
148+ let an = ak
149+ if ($isInstanceOf(an, "Int"))
114150 then {
115- let Y = V
116- Y
151+ let aq = an
152+ aq
117153 }
118154 else throw("fail to cast into Int")
119155 }
120156
121157
122-func Z (S) = {
123- let V = S
124- if ($isInstanceOf(V, "String"))
158+func ar (ak) = {
159+ let an = ak
160+ if ($isInstanceOf(an, "String"))
125161 then {
126- let aa = V
127- aa
162+ let as = an
163+ as
128164 }
129165 else throw("fail to cast into String")
130166 }
131167
132168
133-let ab = addressFromStringValue(E(this, p()))
169+let at = addressFromStringValue(W(this, H()))
134170
135-let ac = addressFromStringValue(E(ab, u()))
171+let au = addressFromStringValue(W(at, M()))
136172
137-let ad = addressFromStringValue(E(ab, t()))
173+let av = addressFromStringValue(W(at, L()))
138174
139-let ae = addressFromStringValue(E(ab, s()))
175+let aw = addressFromStringValue(W(at, K()))
140176
141-let af = fromBase58String(E(ab, r()))
177+let ax = fromBase58String(W(at, J()))
142178
143-let ag = fromBase58String(getStringValue(ab, v()))
179+let ay = fromBase58String(getStringValue(at, N()))
144180
145-func ah (ai) = {
146- let aj = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
147- let M = X(aj[0])
148- let ak = X(aj[3])
149- let al = X(aj[5])
150- let am = (X(aj[9]) + ai)
151- let an = X(aj[10])
152- let ao = U(invoke(this, "calculateKREADONLY", [ak, al, M, an, am], nil))
153- let ap = parseBigIntValue(Z(ao[6]))
154- let aq = fraction(toBigInt(an), f, toBigInt((an - am)))
155- let ar = fraction(aq, aq, f)
156- let as = fraction(ap, ar, f)
157- let at = toInt(fraction(as, toBigInt(b), f))
158- let au = fraction(at, b, M)
159- $Tuple2(nil, [at, au])
181+func az (aA) = {
182+ let aB = am(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
183+ let ae = ap(aB[w])
184+ let aC = ap(aB[z])
185+ let aD = (ap(aB[B]) - aA)
186+ let aE = (ap(aB[F]) + aA)
187+ let aF = ap(aB[G])
188+ let aG = am(invoke(this, "calculateKREADONLY", [aC, aD, ae, aF, aE], nil))
189+ let aH = parseBigIntValue(ar(aG[v]))
190+ let aI = fraction(toBigInt(aF), f, toBigInt((aF - aE)))
191+ let aJ = fraction(aI, aI, f)
192+ let aK = fraction(aH, aJ, f)
193+ let aL = toInt(fraction(aK, toBigInt(b), f))
194+ let aM = fraction(aL, b, ae)
195+ $Tuple2(nil, [aL, aM])
160196 }
161197
162198
163-@Callable(av)
164-func constructor (aw,ax,ay) = if ((av.caller != this))
199+@Callable(aN)
200+func constructor (aO,aP,aQ) = if ((aN.caller != this))
165201 then throw("not authorized")
166- else [StringEntry(p(), aw), IntegerEntry(q(), ay)]
202+ else [StringEntry(H(), aO), IntegerEntry(I(), aQ)]
167203
168204
169205
170-@Callable(av)
171-func calcSwapLimitREADONLY (az) = {
172- let aA = toBigInt(H(this, q()))
173- let aB = O(az, l)
174- let aC = pow(aB, 16, k, 16, 8, CEILING)
175- let aD = fraction(aA, aC, o)
176- $Tuple2(nil, toInt(aD))
206+@Callable(aN)
207+func calcSwapLimitREADONLY (aR) = {
208+ let aS = toBigInt(Z(this, I()))
209+ let aT = ag(aR, l)
210+ let aU = pow(aT, 16, k, 16, 8, CEILING)
211+ let aV = fraction(aS, aU, o)
212+ $Tuple2(nil, toInt(aV))
177213 }
178214
179215
180216
181-@Callable(av)
182-func calculateKREADONLY (ak,al,M,an,am) = {
183- let aE = toBigInt(2718281)
184- let aF = 6
185- let aG = valueOrElse(getInteger(ad, "nsbtCurveParam_a"), 3)
186- let aH = valueOrElse(getInteger(ad, "nsbtCurveParam_b"), ((3 * b) / 10))
187- let aI = N(ak, M)
188- let aJ = fraction(aI, e, al)
189- if ((aJ > 10678564816))
217+@Callable(aN)
218+func calculateKREADONLY (aC,aD,ae,aF,aE) = {
219+ let aW = toBigInt(2718281)
220+ let aX = 6
221+ let aY = valueOrElse(getInteger(av, "nsbtCurveParam_a"), 3)
222+ let aZ = valueOrElse(getInteger(av, "nsbtCurveParam_b"), ((3 * b) / 10))
223+ let ba = af(aC, ae)
224+ let bb = fraction(ba, e, aD)
225+ if ((bb > 10678564816))
190226 then throw("BR > 10678.564816% will overflow exponent")
191227 else {
192- let aK = (aG * (aJ - e))
193- let aL = pow(aE, aF, toBigInt(aK), g, h, DOWN)
194- let aM = fraction(toBigInt(aH), aL, c)
195- $Tuple2(nil, [aG, aH, aI, aJ, aK, toString(aL), toString(aM)])
228+ let bc = (aY * (bb - e))
229+ let bd = pow(aW, aX, toBigInt(bc), g, h, DOWN)
230+ let be = fraction(toBigInt(aZ), bd, c)
231+ $Tuple2(nil, [aY, aZ, ba, bb, bc, toString(bd), toString(be)])
196232 }
197233 }
198234
199235
200236
201-@Callable(av)
202-func curveFunctionREADONLY (aN) = {
203- let aj = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
204- let M = X(aj[0])
205- let ak = X(aj[3])
206- let al = X(aj[5])
207- let am = X(aj[9])
208- let an = X(aj[10])
209- let ao = U(invoke(this, "calculateKREADONLY", [ak, al, M, an, am], nil))
210- let aM = parseBigIntValue(Z(ao[6]))
211- let aO = N(aN, M)
212- let aP = toBigInt(an)
213- let aQ = toBigInt((an - am))
214- let aR = fraction(toBigInt(aO), f, aM)
215- let aS = fraction(aR, aQ, aP)
216- let aT = toInt(fraction(aQ, aP, (aS + aP)))
217- let aU = ((an - am) - aT)
218- $Tuple2(nil, [aU, aO, ak, al, an, am, X(ao[0]), X(ao[1]), X(ao[2]), M, X(ao[3]), X(ao[4]), ao[5], ao[6], toString(aR), toString(aS), aT])
237+@Callable(aN)
238+func curveFunctionREADONLY (bf) = {
239+ let aB = am(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
240+ let ae = ap(aB[w])
241+ let aC = ap(aB[z])
242+ let aD = ap(aB[B])
243+ let aE = ap(aB[F])
244+ let aF = ap(aB[G])
245+ let aG = am(invoke(this, "calculateKREADONLY", [aC, aD, ae, aF, aE], nil))
246+ let be = parseBigIntValue(ar(aG[v]))
247+ let bg = af(bf, ae)
248+ let bh = toBigInt(aF)
249+ let bi = toBigInt((aF - aE))
250+ let bj = fraction(toBigInt(bg), f, be)
251+ let bk = fraction(bj, bi, bh)
252+ let bl = toInt(fraction(bi, bh, (bk + bh)))
253+ let bm = ((aF - aE) - bl)
254+ $Tuple2(nil, [bm, bg, aC, aD, aF, aE, ap(aG[p]), ap(aG[q]), ap(aG[r]), ae, ap(aG[s]), ap(aG[t]), aG[u], aG[v], toString(bj), toString(bk), bl])
219255 }
220256
221257
222258
223-@Callable(av)
224-func calcContractNsbtPriceSYSREADONLY (ai) = ah(ai)
259+@Callable(aN)
260+func calcContractNsbtPriceSYSREADONLY (aA) = az(aA)
225261
226262
227263
228-@Callable(av)
264+@Callable(aN)
229265 func calcNeutinoMetricsREADONLY () = {
230- let aV = getIntegerValue(ac, D())
231- let aW = valueOrElse(getInteger(ab, y()), 0)
232- let aX = valueOrElse(getInteger(ab, x()), 0)
233- let aY = (wavesBalance(ab).regular - aX)
234- let aZ = N(aY, aV)
235- let ba = (((aW + value(assetInfo(af)).quantity) - assetBalance(ab, af)) - assetBalance(ae, af))
236- let bb = (aZ - ba)
237- let bc = (ba - aZ)
238- let bd = if ((ba == 0))
266+ let bn = getIntegerValue(au, V())
267+ let bo = valueOrElse(getInteger(at, Q()), 0)
268+ let bp = valueOrElse(getInteger(at, P()), 0)
269+ let bq = (wavesBalance(at).regular - bp)
270+ let br = af(bq, bn)
271+ let bs = (((bo + value(assetInfo(ax)).quantity) - assetBalance(at, ax)) - assetBalance(aw, ax))
272+ let bt = (br - bs)
273+ let bu = (bs - br)
274+ let bv = if ((bs == 0))
239275 then 0
240- else (fraction(bb, b, ba) * 100)
241- let be = if ((ba == 0))
276+ else (fraction(bt, b, bs) * 100)
277+ let bw = if ((bs == 0))
242278 then 0
243- else fraction(aZ, b, ba)
244- let bf = value(assetInfo(ag)).quantity
245- let bg = (bf - assetBalance(ad, ag))
246- $Tuple2(nil, [aV, aW, aX, aY, aZ, ba, bb, bd, be, bg, bf])
279+ else fraction(br, b, bs)
280+ let bx = value(assetInfo(ay)).quantity
281+ let by = (bx - assetBalance(av, ay))
282+ $Tuple2(nil, [bn, bo, bp, bq, br, bs, bt, bv, bw, by, bx])
247283 }
248284
249285
250286
251-@Callable(av)
252-func getUnstakeComissionAmountREADONLY (L,bh,bi) = $Tuple2(nil, fraction(L, pow(2, 0, fraction(-((height - bh)), e, bi), 8, 8, HALFUP), e))
287+@Callable(aN)
288+func getUnstakeComissionAmountREADONLY (ad,bz,bA) = $Tuple2(nil, fraction(ad, pow(2, 0, fraction(-((height - bz)), e, bA), 8, 8, HALFUP), e))
253289
254290
255291
256-@Callable(av)
257-func mergeStakesREADONLY (bj,bk,bl,bm,bi) = {
258- let bn = fraction(bl, pow(2, 0, fraction((bm - bk), e, bi), 8, 8, HALFUP), e)
259- let bo = fraction((bj + bl), e, (bj + bn))
260- $Tuple2(nil, (bk + ((j - (bi * log(bo, 8, 2, 0, 8, HALFUP))) / e)))
292+@Callable(aN)
293+func mergeStakesREADONLY (bB,bC,bD,bE,bA) = {
294+ let bF = fraction(bD, pow(2, 0, fraction((bE - bC), e, bA), 8, 8, HALFUP), e)
295+ let bG = fraction((bB + bD), e, (bB + bF))
296+ $Tuple2(nil, (bC + ((j - (bA * log(bG, 8, 2, 0, 8, HALFUP))) / e)))
261297 }
262298
263299
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 = toBigInt(27182818284590452)
2525
2626 let l = 1000000
2727
2828 let m = toBigInt(1000000)
2929
3030 let n = toBigInt(100000000)
3131
3232 let o = toBigInt(10000000000)
3333
34-func p () = "%s%s__config__neutrinoAddress"
34+let p = 0
35+
36+let q = 1
37+
38+let r = 2
39+
40+let s = 3
41+
42+let t = 4
43+
44+let u = 5
45+
46+let v = 6
47+
48+let w = 0
49+
50+let x = 1
51+
52+let y = 2
53+
54+let z = 3
55+
56+let A = 4
57+
58+let B = 5
59+
60+let C = 6
61+
62+let D = 7
63+
64+let E = 8
65+
66+let F = 9
67+
68+let G = 10
69+
70+func H () = "%s%s__config__neutrinoAddress"
3571
3672
37-func q () = "%s%s__config__swapAParam"
73+func I () = "%s%s__config__swapAParam"
3874
3975
40-func r () = "neutrino_asset_id"
76+func J () = "neutrino_asset_id"
4177
4278
43-func s () = "liquidation_contract"
79+func K () = "liquidation_contract"
4480
4581
46-func t () = "auction_contract"
82+func L () = "auction_contract"
4783
4884
49-func u () = "control_contract"
85+func M () = "control_contract"
5086
5187
52-func v () = "bond_asset_id"
88+func N () = "bond_asset_id"
5389
5490
55-func w () = "balance_lock_"
91+func O () = "balance_lock_"
5692
5793
58-func x () = (w() + "waves")
94+func P () = (O() + "waves")
5995
6096
61-func y () = (w() + "neutrino")
97+func Q () = (O() + "neutrino")
6298
6399
64-func z () = "swaps_timeframe"
100+func R () = "swaps_timeframe"
65101
66102
67-func A (B) = makeString(["%s%s", "userLastQuickSwapHeight", B], i)
103+func S (T) = makeString(["%s%s", "userLastQuickSwapHeight", T], i)
68104
69105
70-func C (B) = makeString(["%s%s", "quickSwapUserSpentInPeriod", B], i)
106+func U (T) = makeString(["%s%s", "quickSwapUserSpentInPeriod", T], i)
71107
72108
73-func D () = "price"
109+func V () = "price"
74110
75111
76-func E (F,G) = valueOrErrorMessage(getString(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
112+func W (X,Y) = valueOrErrorMessage(getString(X, Y), makeString(["mandatory ", toString(X), ".", Y, " is not defined"], ""))
77113
78114
79-func H (F,G) = valueOrErrorMessage(getInteger(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
115+func Z (X,Y) = valueOrErrorMessage(getInteger(X, Y), makeString(["mandatory ", toString(X), ".", Y, " is not defined"], ""))
80116
81117
82-func I (F,G) = valueOrElse(getInteger(F, G), 0)
118+func aa (X,Y) = valueOrElse(getInteger(X, Y), 0)
83119
84120
85-func J (F,G) = valueOrErrorMessage(getBoolean(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
121+func ab (X,Y) = valueOrErrorMessage(getBoolean(X, Y), makeString(["mandatory ", toString(X), ".", Y, " is not defined"], ""))
86122
87123
88-func K (L,M) = fraction(fraction(L, d, M), a, b)
124+func ac (ad,ae) = fraction(fraction(ad, d, ae), a, b)
89125
90126
91-func N (L,M) = fraction(fraction(L, M, d), b, a)
127+func af (ad,ae) = fraction(fraction(ad, ae, d), b, a)
92128
93129
94-func O (P,Q) = fraction(toBigInt(P), f, toBigInt(Q))
130+func ag (ah,ai) = fraction(toBigInt(ah), f, toBigInt(ai))
95131
96132
97-func R (S,T) = toInt(fraction(S, toBigInt(T), f))
133+func aj (ak,al) = toInt(fraction(ak, toBigInt(al), f))
98134
99135
100-func U (S) = {
101- let V = S
102- if ($isInstanceOf(V, "List[Any]"))
136+func am (ak) = {
137+ let an = ak
138+ if ($isInstanceOf(an, "List[Any]"))
103139 then {
104- let W = V
105- W
140+ let ao = an
141+ ao
106142 }
107143 else throw("fail to cast into List[Any]")
108144 }
109145
110146
111-func X (S) = {
112- let V = S
113- if ($isInstanceOf(V, "Int"))
147+func ap (ak) = {
148+ let an = ak
149+ if ($isInstanceOf(an, "Int"))
114150 then {
115- let Y = V
116- Y
151+ let aq = an
152+ aq
117153 }
118154 else throw("fail to cast into Int")
119155 }
120156
121157
122-func Z (S) = {
123- let V = S
124- if ($isInstanceOf(V, "String"))
158+func ar (ak) = {
159+ let an = ak
160+ if ($isInstanceOf(an, "String"))
125161 then {
126- let aa = V
127- aa
162+ let as = an
163+ as
128164 }
129165 else throw("fail to cast into String")
130166 }
131167
132168
133-let ab = addressFromStringValue(E(this, p()))
169+let at = addressFromStringValue(W(this, H()))
134170
135-let ac = addressFromStringValue(E(ab, u()))
171+let au = addressFromStringValue(W(at, M()))
136172
137-let ad = addressFromStringValue(E(ab, t()))
173+let av = addressFromStringValue(W(at, L()))
138174
139-let ae = addressFromStringValue(E(ab, s()))
175+let aw = addressFromStringValue(W(at, K()))
140176
141-let af = fromBase58String(E(ab, r()))
177+let ax = fromBase58String(W(at, J()))
142178
143-let ag = fromBase58String(getStringValue(ab, v()))
179+let ay = fromBase58String(getStringValue(at, N()))
144180
145-func ah (ai) = {
146- let aj = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
147- let M = X(aj[0])
148- let ak = X(aj[3])
149- let al = X(aj[5])
150- let am = (X(aj[9]) + ai)
151- let an = X(aj[10])
152- let ao = U(invoke(this, "calculateKREADONLY", [ak, al, M, an, am], nil))
153- let ap = parseBigIntValue(Z(ao[6]))
154- let aq = fraction(toBigInt(an), f, toBigInt((an - am)))
155- let ar = fraction(aq, aq, f)
156- let as = fraction(ap, ar, f)
157- let at = toInt(fraction(as, toBigInt(b), f))
158- let au = fraction(at, b, M)
159- $Tuple2(nil, [at, au])
181+func az (aA) = {
182+ let aB = am(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
183+ let ae = ap(aB[w])
184+ let aC = ap(aB[z])
185+ let aD = (ap(aB[B]) - aA)
186+ let aE = (ap(aB[F]) + aA)
187+ let aF = ap(aB[G])
188+ let aG = am(invoke(this, "calculateKREADONLY", [aC, aD, ae, aF, aE], nil))
189+ let aH = parseBigIntValue(ar(aG[v]))
190+ let aI = fraction(toBigInt(aF), f, toBigInt((aF - aE)))
191+ let aJ = fraction(aI, aI, f)
192+ let aK = fraction(aH, aJ, f)
193+ let aL = toInt(fraction(aK, toBigInt(b), f))
194+ let aM = fraction(aL, b, ae)
195+ $Tuple2(nil, [aL, aM])
160196 }
161197
162198
163-@Callable(av)
164-func constructor (aw,ax,ay) = if ((av.caller != this))
199+@Callable(aN)
200+func constructor (aO,aP,aQ) = if ((aN.caller != this))
165201 then throw("not authorized")
166- else [StringEntry(p(), aw), IntegerEntry(q(), ay)]
202+ else [StringEntry(H(), aO), IntegerEntry(I(), aQ)]
167203
168204
169205
170-@Callable(av)
171-func calcSwapLimitREADONLY (az) = {
172- let aA = toBigInt(H(this, q()))
173- let aB = O(az, l)
174- let aC = pow(aB, 16, k, 16, 8, CEILING)
175- let aD = fraction(aA, aC, o)
176- $Tuple2(nil, toInt(aD))
206+@Callable(aN)
207+func calcSwapLimitREADONLY (aR) = {
208+ let aS = toBigInt(Z(this, I()))
209+ let aT = ag(aR, l)
210+ let aU = pow(aT, 16, k, 16, 8, CEILING)
211+ let aV = fraction(aS, aU, o)
212+ $Tuple2(nil, toInt(aV))
177213 }
178214
179215
180216
181-@Callable(av)
182-func calculateKREADONLY (ak,al,M,an,am) = {
183- let aE = toBigInt(2718281)
184- let aF = 6
185- let aG = valueOrElse(getInteger(ad, "nsbtCurveParam_a"), 3)
186- let aH = valueOrElse(getInteger(ad, "nsbtCurveParam_b"), ((3 * b) / 10))
187- let aI = N(ak, M)
188- let aJ = fraction(aI, e, al)
189- if ((aJ > 10678564816))
217+@Callable(aN)
218+func calculateKREADONLY (aC,aD,ae,aF,aE) = {
219+ let aW = toBigInt(2718281)
220+ let aX = 6
221+ let aY = valueOrElse(getInteger(av, "nsbtCurveParam_a"), 3)
222+ let aZ = valueOrElse(getInteger(av, "nsbtCurveParam_b"), ((3 * b) / 10))
223+ let ba = af(aC, ae)
224+ let bb = fraction(ba, e, aD)
225+ if ((bb > 10678564816))
190226 then throw("BR > 10678.564816% will overflow exponent")
191227 else {
192- let aK = (aG * (aJ - e))
193- let aL = pow(aE, aF, toBigInt(aK), g, h, DOWN)
194- let aM = fraction(toBigInt(aH), aL, c)
195- $Tuple2(nil, [aG, aH, aI, aJ, aK, toString(aL), toString(aM)])
228+ let bc = (aY * (bb - e))
229+ let bd = pow(aW, aX, toBigInt(bc), g, h, DOWN)
230+ let be = fraction(toBigInt(aZ), bd, c)
231+ $Tuple2(nil, [aY, aZ, ba, bb, bc, toString(bd), toString(be)])
196232 }
197233 }
198234
199235
200236
201-@Callable(av)
202-func curveFunctionREADONLY (aN) = {
203- let aj = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
204- let M = X(aj[0])
205- let ak = X(aj[3])
206- let al = X(aj[5])
207- let am = X(aj[9])
208- let an = X(aj[10])
209- let ao = U(invoke(this, "calculateKREADONLY", [ak, al, M, an, am], nil))
210- let aM = parseBigIntValue(Z(ao[6]))
211- let aO = N(aN, M)
212- let aP = toBigInt(an)
213- let aQ = toBigInt((an - am))
214- let aR = fraction(toBigInt(aO), f, aM)
215- let aS = fraction(aR, aQ, aP)
216- let aT = toInt(fraction(aQ, aP, (aS + aP)))
217- let aU = ((an - am) - aT)
218- $Tuple2(nil, [aU, aO, ak, al, an, am, X(ao[0]), X(ao[1]), X(ao[2]), M, X(ao[3]), X(ao[4]), ao[5], ao[6], toString(aR), toString(aS), aT])
237+@Callable(aN)
238+func curveFunctionREADONLY (bf) = {
239+ let aB = am(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
240+ let ae = ap(aB[w])
241+ let aC = ap(aB[z])
242+ let aD = ap(aB[B])
243+ let aE = ap(aB[F])
244+ let aF = ap(aB[G])
245+ let aG = am(invoke(this, "calculateKREADONLY", [aC, aD, ae, aF, aE], nil))
246+ let be = parseBigIntValue(ar(aG[v]))
247+ let bg = af(bf, ae)
248+ let bh = toBigInt(aF)
249+ let bi = toBigInt((aF - aE))
250+ let bj = fraction(toBigInt(bg), f, be)
251+ let bk = fraction(bj, bi, bh)
252+ let bl = toInt(fraction(bi, bh, (bk + bh)))
253+ let bm = ((aF - aE) - bl)
254+ $Tuple2(nil, [bm, bg, aC, aD, aF, aE, ap(aG[p]), ap(aG[q]), ap(aG[r]), ae, ap(aG[s]), ap(aG[t]), aG[u], aG[v], toString(bj), toString(bk), bl])
219255 }
220256
221257
222258
223-@Callable(av)
224-func calcContractNsbtPriceSYSREADONLY (ai) = ah(ai)
259+@Callable(aN)
260+func calcContractNsbtPriceSYSREADONLY (aA) = az(aA)
225261
226262
227263
228-@Callable(av)
264+@Callable(aN)
229265 func calcNeutinoMetricsREADONLY () = {
230- let aV = getIntegerValue(ac, D())
231- let aW = valueOrElse(getInteger(ab, y()), 0)
232- let aX = valueOrElse(getInteger(ab, x()), 0)
233- let aY = (wavesBalance(ab).regular - aX)
234- let aZ = N(aY, aV)
235- let ba = (((aW + value(assetInfo(af)).quantity) - assetBalance(ab, af)) - assetBalance(ae, af))
236- let bb = (aZ - ba)
237- let bc = (ba - aZ)
238- let bd = if ((ba == 0))
266+ let bn = getIntegerValue(au, V())
267+ let bo = valueOrElse(getInteger(at, Q()), 0)
268+ let bp = valueOrElse(getInteger(at, P()), 0)
269+ let bq = (wavesBalance(at).regular - bp)
270+ let br = af(bq, bn)
271+ let bs = (((bo + value(assetInfo(ax)).quantity) - assetBalance(at, ax)) - assetBalance(aw, ax))
272+ let bt = (br - bs)
273+ let bu = (bs - br)
274+ let bv = if ((bs == 0))
239275 then 0
240- else (fraction(bb, b, ba) * 100)
241- let be = if ((ba == 0))
276+ else (fraction(bt, b, bs) * 100)
277+ let bw = if ((bs == 0))
242278 then 0
243- else fraction(aZ, b, ba)
244- let bf = value(assetInfo(ag)).quantity
245- let bg = (bf - assetBalance(ad, ag))
246- $Tuple2(nil, [aV, aW, aX, aY, aZ, ba, bb, bd, be, bg, bf])
279+ else fraction(br, b, bs)
280+ let bx = value(assetInfo(ay)).quantity
281+ let by = (bx - assetBalance(av, ay))
282+ $Tuple2(nil, [bn, bo, bp, bq, br, bs, bt, bv, bw, by, bx])
247283 }
248284
249285
250286
251-@Callable(av)
252-func getUnstakeComissionAmountREADONLY (L,bh,bi) = $Tuple2(nil, fraction(L, pow(2, 0, fraction(-((height - bh)), e, bi), 8, 8, HALFUP), e))
287+@Callable(aN)
288+func getUnstakeComissionAmountREADONLY (ad,bz,bA) = $Tuple2(nil, fraction(ad, pow(2, 0, fraction(-((height - bz)), e, bA), 8, 8, HALFUP), e))
253289
254290
255291
256-@Callable(av)
257-func mergeStakesREADONLY (bj,bk,bl,bm,bi) = {
258- let bn = fraction(bl, pow(2, 0, fraction((bm - bk), e, bi), 8, 8, HALFUP), e)
259- let bo = fraction((bj + bl), e, (bj + bn))
260- $Tuple2(nil, (bk + ((j - (bi * log(bo, 8, 2, 0, 8, HALFUP))) / e)))
292+@Callable(aN)
293+func mergeStakesREADONLY (bB,bC,bD,bE,bA) = {
294+ let bF = fraction(bD, pow(2, 0, fraction((bE - bC), e, bA), 8, 8, HALFUP), e)
295+ let bG = fraction((bB + bD), e, (bB + bF))
296+ $Tuple2(nil, (bC + ((j - (bA * log(bG, 8, 2, 0, 8, HALFUP))) / e)))
261297 }
262298
263299

github/deemru/w8io/026f985 
101.47 ms