tx · CDRkiBJfw7ETkATcfUYJhhoEuWj26Bm2RZsjHw9X3Tau

3N7LYefWk1WhvCsY5A9nTq244SbVPmhCypi:  -0.01400000 Waves

2022.03.18 10:35 [1969106] smart account 3N7LYefWk1WhvCsY5A9nTq244SbVPmhCypi > SELF 0.00000000 Waves

{ "type": 13, "id": "CDRkiBJfw7ETkATcfUYJhhoEuWj26Bm2RZsjHw9X3Tau", "fee": 1400000, "feeAssetId": null, "timestamp": 1647588948594, "version": 1, "sender": "3N7LYefWk1WhvCsY5A9nTq244SbVPmhCypi", "senderPublicKey": "4qGVXRFATZNzo2RZZ5UYHXojGyJgSRBwtgJcCU8rJe5A", "proofs": [ "FcvW39K5JixABsSSG6C5QrgHF9Y1qTZnWTgmfzV1FQ358SWwo2QpRdu2FGCaNVjWCfDoCPdqig737CoqcYvr9ZQ" ], "script": "base64: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aXN0W0FueV0EAAAACnZhbEFueUx5c3QFAAAAByRtYXRjaDAFAAAACnZhbEFueUx5c3QJAAACAAAAAQIAAAAbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQAAAAVhc0ludAAAAAEAAAADdmFsBAAAAAckbWF0Y2gwBQAAAAN2YWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAGdmFsSW50BQAAAAckbWF0Y2gwBQAAAAZ2YWxJbnQJAAACAAAAAQIAAAAVZmFpbCB0byBjYXN0IGludG8gSW50AQAAAAhhc1N0cmluZwAAAAEAAAADdmFsBAAAAAckbWF0Y2gwBQAAAAN2YWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAGdmFsU3RyBQAAAAckbWF0Y2gwBQAAAAZ2YWxTdHIJAAACAAAAAQIAAAAYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAEdGhpcwkBAAAAEmtleU5ldXRyaW5vQWRkcmVzcwAAAAAAAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABFrZXlDb250b2xDb250cmFjdAAAAAAAAAAAD2F1Y3Rpb25Db250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABJrZXlBdWN0aW9uQ29udHJhY3QAAAAAAAAAABNsaXF1aWRhdGlvbkNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAHWtleUxpcXVpZGF0aW9uQ29udHJhY3RBZGRyZXNzAAAAAAAAAAAPbmV1dHJpbm9Bc3NldElkCQACWQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAASa2V5TmV1dHJpbm9Bc3NldElkAAAAAAAAAAALbnNidEFzc2V0SWQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAADmtleUJvbmRBc3NldElkAAAAAAEAAAAdY2FsY0NvbnRyYWN0TnNidFByaWNlSW50ZXJuYWwAAAABAAAAD25zYnRTdXBwbHlERUxUQQQAAAAPbmV1dHJpbm9NZXRyaWNzCQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAAAR0aGlzAgAAABpjYWxjTmV1dGlub01ldHJpY3NSRUFET05MWQUAAAADbmlsBQAAAANuaWwEAAAABXByaWNlCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwAAAAAAAAAAAAQAAAAEd1JhdwkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MAAAAAAAAAAAMEAAAABHVSYXcJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzAAAAAAAAAAAFBAAAAARzUmF3CQAAZAAAAAIJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzAAAAAAAAAAAJBQAAAA9uc2J0U3VwcGx5REVMVEEEAAAABG1SYXcJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzAAAAAAAAAAAKBAAAAAprQ2FsY0FycmF5CQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAAAR0aGlzAgAAABJjYWxjdWxhdGVLUkVBRE9OTFkJAARMAAAAAgUAAAAEd1JhdwkABEwAAAACBQAAAAR1UmF3CQAETAAAAAIFAAAABXByaWNlCQAETAAAAAIFAAAABG1SYXcJAARMAAAAAgUAAAAEc1JhdwUAAAADbmlsBQAAAANuaWwEAAAACG11bHRLWDE2CQABpwAAAAEJAQAAAAhhc1N0cmluZwAAAAEJAAGRAAAAAgUAAAAKa0NhbGNBcnJheQAAAAAAAAAABgQAAAAMbXVsdFN0ZXAxWDE2CQABPAAAAAMJAAE2AAAAAQUAAAAEbVJhdwUAAAAJQklHTVVMVDE2CQABNgAAAAEJAABlAAAAAgUAAAAEbVJhdwUAAAAEc1JhdwQAAAAMbXVsdFN0ZXAyWDE2CQABPAAAAAMFAAAADG11bHRTdGVwMVgxNgUAAAAMbXVsdFN0ZXAxWDE2BQAAAAlCSUdNVUxUMTYEAAAAFW11bHROc2J0MnVzZG5QcmljZVgxNgkAATwAAAADBQAAAAhtdWx0S1gxNgUAAAAMbXVsdFN0ZXAyWDE2BQAAAAlCSUdNVUxUMTYEAAAADm5zYnQydXNkblByaWNlCQABoAAAAAEJAAE8AAAAAwUAAAAVbXVsdE5zYnQydXNkblByaWNlWDE2CQABNgAAAAEFAAAABVBBVUxJBQAAAAlCSUdNVUxUMTYEAAAAD25zYnQyd2F2ZXNQcmljZQkAAGsAAAADBQAAAA5uc2J0MnVzZG5QcmljZQUAAAAFUEFVTEkFAAAABXByaWNlCQAFFAAAAAIFAAAAA25pbAkABEwAAAACBQAAAA5uc2J0MnVzZG5QcmljZQkABEwAAAACBQAAAA9uc2J0MndhdmVzUHJpY2UFAAAAA25pbAAAAAgAAAABaQEAAAALY29uc3RydWN0b3IAAAADAAAAD25ldXRyaW5vQWRkcmVzcwAAAA9uc2J0TG9ja0FkZHJlc3MAAAAQc3dhcEFtb3VudEFQYXJhbQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5TmV1dHJpbm9BZGRyZXNzAAAAAAUAAAAPbmV1dHJpbm9BZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAATa2V5U3dhcEFtb3VudEFQYXJhbQAAAAAFAAAAEHN3YXBBbW91bnRBUGFyYW0FAAAAA25pbAAAAAFpAQAAABVjYWxjU3dhcExpbWl0UkVBRE9OTFkAAAABAAAAC2dOc2J0QW1vdW50BAAAAAtsaW1pdFBhcmFtQQkAATYAAAABCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAEdGhpcwkBAAAAE2tleVN3YXBBbW91bnRBUGFyYW0AAAAABAAAABJnTnNidEFtb3VudFNjYWxlMTYJAQAAAAV0b1gxNgAAAAIFAAAAC2dOc2J0QW1vdW50BQAAAAZzY2FsZTYEAAAADGxpbWl0UG93UGFydAkAAHYAAAAGBQAAABJnTnNidEFtb3VudFNjYWxlMTYAAAAAAAAAABAFAAAAC0VVTEVSTlVNQkVSAAAAAAAAAAAQAAAAAAAAAAAIBQAAAAdDRUlMSU5HBAAAAAVsaW1pdAkAATwAAAADBQAAAAtsaW1pdFBhcmFtQQUAAAAMbGltaXRQb3dQYXJ0BQAAAA1zY2FsZTEwQmlnSW50CQAFFAAAAAIFAAAAA25pbAkAAaAAAAABBQAAAAVsaW1pdAAAAAFpAQAAABJjYWxjdWxhdGVLUkVBRE9OTFkAAAAFAAAABHdSYXcAAAAEdVJhdwAAAAVwcmljZQAAAARtUmF3AAAABHNSYXcEAAAAA0VYUAkAATYAAAABAAAAAAAAKXpJBAAAAAhFWFBTQ0FMRQAAAAAAAAAABgQAAAABYQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAA9hdWN0aW9uQ29udHJhY3QCAAAAEG5zYnRDdXJ2ZVBhcmFtX2EAAAAAAAAAAAMEAAAABXBhdWxCCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAD2F1Y3Rpb25Db250cmFjdAIAAAAQbnNidEN1cnZlUGFyYW1fYgkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAMFAAAABVBBVUxJAAAAAAAAAAAKBAAAAA93UmVzZXJ2ZXNJblVzZG4JAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAEd1JhdwUAAAAFcHJpY2UEAAAABm11bHRCUgkAAGsAAAADBQAAAA93UmVzZXJ2ZXNJblVzZG4FAAAABE1VTFQFAAAABHVSYXcDCQAAZgAAAAIFAAAABm11bHRCUgAAAAACfH330AkAAAIAAAABAgAAAClCUiA+IDEwNjc4LjU2NDgxNiUgd2lsbCBvdmVyZmxvdyBleHBvbmVudAQAAAAJbXVsdFBvd2VyCQAAaAAAAAIFAAAAAWEJAABlAAAAAgUAAAAGbXVsdEJSBQAAAARNVUxUBAAAAA5tdWx0RXhwSW5Qb3dlcgkAAHYAAAAGBQAAAANFWFAFAAAACEVYUFNDQUxFCQABNgAAAAEFAAAACW11bHRQb3dlcgUAAAAJTVVMVFNDQUxFBQAAAAdTQ0FMRTE2BQAAAARET1dOBAAAAAVtdWx0SwkAATwAAAADCQABNgAAAAEFAAAABXBhdWxCBQAAAA5tdWx0RXhwSW5Qb3dlcgUAAAAIQklHUEFVTEkJAAUUAAAAAgUAAAADbmlsCQAETAAAAAIFAAAAAWEJAARMAAAAAgUAAAAFcGF1bEIJAARMAAAAAgUAAAAPd1Jlc2VydmVzSW5Vc2RuCQAETAAAAAIFAAAABm11bHRCUgkABEwAAAACBQAAAAltdWx0UG93ZXIJAARMAAAAAgkAAaYAAAABBQAAAA5tdWx0RXhwSW5Qb3dlcgkABEwAAAACCQABpgAAAAEFAAAABW11bHRLBQAAAANuaWwAAAABaQEAAAAVY3VydmVGdW5jdGlvblJFQURPTkxZAAAAAQAAAAt3YXZlc1BheVJhdwQAAAAPbmV1dHJpbm9NZXRyaWNzCQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAAAR0aGlzAgAAABpjYWxjTmV1dGlub01ldHJpY3NSRUFET05MWQUAAAADbmlsBQAAAANuaWwEAAAABXByaWNlCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwAAAAAAAAAAAAQAAAAEd1JhdwkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MAAAAAAAAAAAMEAAAABHVSYXcJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzAAAAAAAAAAAFBAAAAARzUmF3CQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwAAAAAAAAAACQQAAAAEbVJhdwkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MAAAAAAAAAAAoEAAAACmtDYWxjQXJyYXkJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAABHRoaXMCAAAAEmNhbGN1bGF0ZUtSRUFET05MWQkABEwAAAACBQAAAAR3UmF3CQAETAAAAAIFAAAABHVSYXcJAARMAAAAAgUAAAAFcHJpY2UJAARMAAAAAgUAAAAEbVJhdwkABEwAAAACBQAAAARzUmF3BQAAAANuaWwFAAAAA25pbAQAAAAFbXVsdEsJAAGnAAAAAQkBAAAACGFzU3RyaW5nAAAAAQkAAZEAAAACBQAAAAprQ2FsY0FycmF5AAAAAAAAAAAGBAAAAAd1c2RuUGF5CQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAAC3dhdmVzUGF5UmF3BQAAAAVwcmljZQQAAAAQYmlnTWF4TnNidFN1cHBseQkAATYAAAABBQAAAARtUmF3BAAAAA1iaWdOc2J0U3VwcGx5CQABNgAAAAEJAABlAAAAAgUAAAAEbVJhdwUAAAAEc1JhdwQAAAAFc3RlcDEJAAE8AAAAAwkAATYAAAABBQAAAAd1c2RuUGF5BQAAAAlCSUdNVUxUMTYFAAAABW11bHRLBAAAAAVzdGVwMgkAATwAAAADBQAAAAVzdGVwMQUAAAANYmlnTnNidFN1cHBseQUAAAAQYmlnTWF4TnNidFN1cHBseQQAAAAFc3RlcDMJAAGgAAAAAQkAATwAAAADBQAAAA1iaWdOc2J0U3VwcGx5BQAAABBiaWdNYXhOc2J0U3VwcGx5CQABNwAAAAIFAAAABXN0ZXAyBQAAABBiaWdNYXhOc2J0U3VwcGx5BAAAAA1uc2J0QW1vdW50UmF3CQAAZQAAAAIJAABlAAAAAgUAAAAEbVJhdwUAAAAEc1JhdwUAAAAFc3RlcDMJAAUUAAAAAgUAAAADbmlsCQAETAAAAAIFAAAADW5zYnRBbW91bnRSYXcJAARMAAAAAgUAAAAHdXNkblBheQkABEwAAAACBQAAAAR3UmF3CQAETAAAAAIFAAAABHVSYXcJAARMAAAAAgUAAAAEbVJhdwkABEwAAAACBQAAAARzUmF3CQAETAAAAAIJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAKa0NhbGNBcnJheQAAAAAAAAAAAAkABEwAAAACCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAACmtDYWxjQXJyYXkAAAAAAAAAAAEJAARMAAAAAgkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAAprQ2FsY0FycmF5AAAAAAAAAAACCQAETAAAAAIFAAAABXByaWNlCQAETAAAAAIJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAKa0NhbGNBcnJheQAAAAAAAAAAAwkABEwAAAACCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAACmtDYWxjQXJyYXkAAAAAAAAAAAQJAARMAAAAAgkAAZEAAAACBQAAAAprQ2FsY0FycmF5AAAAAAAAAAAFCQAETAAAAAIJAAGRAAAAAgUAAAAKa0NhbGNBcnJheQAAAAAAAAAABgkABEwAAAACCQABpgAAAAEFAAAABXN0ZXAxCQAETAAAAAIJAAGmAAAAAQUAAAAFc3RlcDIJAARMAAAAAgUAAAAFc3RlcDMFAAAAA25pbAAAAAFpAQAAACBjYWxjQ29udHJhY3ROc2J0UHJpY2VTWVNSRUFET05MWQAAAAEAAAAPbnNidFN1cHBseURFTFRBCQEAAAAdY2FsY0NvbnRyYWN0TnNidFByaWNlSW50ZXJuYWwAAAABBQAAAA9uc2J0U3VwcGx5REVMVEEAAAABaQEAAAAaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkAAAAABAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAkBAAAACGtleVByaWNlAAAAAAQAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABhrZXlOZXV0cmlub0xvY2tlZEJhbGFuY2UAAAAAAAAAAAAAAAAABAAAABJ3YXZlc0xvY2tlZEJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAFWtleVdhdmVzTG9ja2VkQmFsYW5jZQAAAAAAAAAAAAAAAAAEAAAAB3Jlc2VydmUJAABlAAAAAggJAAPvAAAAAQUAAAAQbmV1dHJpbm9Db250cmFjdAAAAAdyZWd1bGFyBQAAABJ3YXZlc0xvY2tlZEJhbGFuY2UEAAAADnJlc2VydmVzSW5Vc2RuCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAAB3Jlc2VydmUFAAAADGN1cnJlbnRQcmljZQQAAAAObmV1dHJpbm9TdXBwbHkJAABlAAAAAgkAAGUAAAACCQAAZAAAAAIFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAPbmV1dHJpbm9Bc3NldElkAAAACHF1YW50aXR5CQAD8AAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAkAA/AAAAACBQAAABNsaXF1aWRhdGlvbkNvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQEAAAAB3N1cnBsdXMJAABlAAAAAgUAAAAOcmVzZXJ2ZXNJblVzZG4FAAAADm5ldXRyaW5vU3VwcGx5BAAAAAdkZWZpY2l0CQAAZQAAAAIFAAAADm5ldXRyaW5vU3VwcGx5BQAAAA5yZXNlcnZlc0luVXNkbgQAAAAOc3VycGx1c1BlcmNlbnQDCQAAAAAAAAIFAAAADm5ldXRyaW5vU3VwcGx5AAAAAAAAAAAAAAAAAAAAAAAACQAAaAAAAAIJAABrAAAAAwUAAAAHc3VycGx1cwUAAAAFUEFVTEkFAAAADm5ldXRyaW5vU3VwcGx5AAAAAAAAAABkBAAAAAJCUgMJAAAAAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkAAAAAAAAAAAAAAAAAAAAAAAAJAABrAAAAAwUAAAAOcmVzZXJ2ZXNJblVzZG4FAAAABVBBVUxJBQAAAA5uZXV0cmlub1N1cHBseQQAAAANbnNidFN1cHBseU1BWAgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAALbnNidEFzc2V0SWQAAAAIcXVhbnRpdHkEAAAACm5zYnRTdXBwbHkJAABlAAAAAgUAAAANbnNidFN1cHBseU1BWAkAA/AAAAACBQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAC25zYnRBc3NldElkCQAFFAAAAAIFAAAAA25pbAkABEwAAAACBQAAAAxjdXJyZW50UHJpY2UJAARMAAAAAgUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQAETAAAAAIFAAAAEndhdmVzTG9ja2VkQmFsYW5jZQkABEwAAAACBQAAAAdyZXNlcnZlCQAETAAAAAIFAAAADnJlc2VydmVzSW5Vc2RuCQAETAAAAAIFAAAADm5ldXRyaW5vU3VwcGx5CQAETAAAAAIFAAAAB3N1cnBsdXMJAARMAAAAAgUAAAAOc3VycGx1c1BlcmNlbnQJAARMAAAAAgUAAAACQlIJAARMAAAAAgUAAAAKbnNidFN1cHBseQkABEwAAAACBQAAAA1uc2J0U3VwcGx5TUFYBQAAAANuaWwAAAABaQEAAAAhZ2V0VW5zdGFrZUNvbWlzc2lvbkFtb3VudFJFQURPTkxZAAAAAwAAAAZhbW91bnQAAAALc3RhcnRIZWlnaHQAAAAIaGFsZkxpZmUJAAUUAAAAAgUAAAADbmlsCQAAawAAAAMFAAAABmFtb3VudAkAAGwAAAAGAAAAAAAAAAACAAAAAAAAAAAACQAAawAAAAMJAQAAAAEtAAAAAQkAAGUAAAACBQAAAAZoZWlnaHQFAAAAC3N0YXJ0SGVpZ2h0BQAAAARNVUxUBQAAAAhoYWxmTGlmZQAAAAAAAAAACAAAAAAAAAAACAUAAAAGSEFMRlVQBQAAAARNVUxUAAAAAWkBAAAAE21lcmdlU3Rha2VzUkVBRE9OTFkAAAAFAAAAB2Ftb3VudDEAAAAHaGVpZ2h0MQAAAAdhbW91bnQyAAAAB2hlaWdodDIAAAAIaGFsZkxpZmUEAAAAAXcJAABrAAAAAwUAAAAHYW1vdW50MgkAAGwAAAAGAAAAAAAAAAACAAAAAAAAAAAACQAAawAAAAMJAABlAAAAAgUAAAAHaGVpZ2h0MgUAAAAHaGVpZ2h0MQUAAAAETVVMVAUAAAAIaGFsZkxpZmUAAAAAAAAAAAgAAAAAAAAAAAgFAAAABkhBTEZVUAUAAAAETVVMVAQAAAABdgkAAGsAAAADCQAAZAAAAAIFAAAAB2Ftb3VudDEFAAAAB2Ftb3VudDIFAAAABE1VTFQJAABkAAAAAgUAAAAHYW1vdW50MQUAAAABdwkABRQAAAACBQAAAANuaWwJAABkAAAAAgUAAAAHaGVpZ2h0MQkAAGkAAAACCQAAZQAAAAIFAAAABUhBTEY4CQAAaAAAAAIFAAAACGhhbGZMaWZlCQAAbQAAAAYFAAAAAXYAAAAAAAAAAAgAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAgFAAAABkhBTEZVUAUAAAAETVVMVAAAAAB3r7vC", "chainId": 84, "height": 1969106, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B5PKtkw2C9MdNE1Mz2x7qHVWpi26LDXcfH67Bm5GGjrU Next: HCUkraKw7BiYJp6rQ3rRi2P5mpg6Y7UarD1RWHeSefNY Diff:
OldNewDifferences
143143 let ag = fromBase58String(getStringValue(ab, v()))
144144
145145 func ah (ai) = {
146- let aj = value(assetInfo(ag)).quantity
147- let ak = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
148- if ((ak == ak))
149- then {
150- let al = if ((ai == unit))
151- then X(ak[9])
152- else value(ai)
153- let am = X(ak[0])
154- let an = U(invoke(this, "calculateKREADONLY", [X(ak[3]), X(ak[5]), am, aj, al], nil))
155- if ((an == an))
156- then {
157- let ao = parseBigIntValue(Z(an[6]))
158- let ap = R(ao, e)
159- let aq = fraction(aj, e, (aj - al))
160- let ar = fraction(aq, aq, e)
161- let as = fraction(ap, ar, e)
162- let at = fraction(as, b, e)
163- let au = fraction(at, b, am)
164- $Tuple2(nil, [at, au])
165- }
166- else throw("Strict value is not equal to itself.")
167- }
168- else throw("Strict value is not equal to itself.")
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])
169160 }
170161
171162
188179
189180
190181 @Callable(av)
191-func calculateKREADONLY (aE,aF,M,aG,aH) = {
192- let aI = toBigInt(2718281)
193- let aJ = 6
194- let aK = valueOrElse(getInteger(ad, "nsbtCurveParam_a"), 3)
195- let aL = valueOrElse(getInteger(ad, "nsbtCurveParam_b"), ((3 * b) / 10))
196- let aM = N(aE, M)
197- let aN = fraction(aM, e, aF)
198- if ((aN > 10678564816))
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))
199190 then throw("BR > 10678.564816% will overflow exponent")
200191 else {
201- let aO = (aK * (aN - e))
202- let aP = pow(aI, aJ, toBigInt(aO), g, h, DOWN)
203- let ao = fraction(toBigInt(aL), aP, c)
204- $Tuple2(nil, [aK, aL, aM, aN, aO, toString(aP), toString(ao)])
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)])
205196 }
206197 }
207198
208199
209200
210201 @Callable(av)
211-func curveFunctionREADONLY (aQ) = {
212- let ak = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
213- if ((ak == ak))
214- then {
215- let M = X(ak[0])
216- let aE = X(ak[3])
217- let aF = X(ak[5])
218- let aH = X(ak[9])
219- let aG = value(assetInfo(ag)).quantity
220- let an = U(invoke(this, "calculateKREADONLY", [aE, aF, M, aG, aH], nil))
221- if ((an == an))
222- then {
223- let ao = parseBigIntValue(Z(an[6]))
224- let aR = N(aQ, M)
225- let aS = toBigInt(aG)
226- let aT = toBigInt((aG - aH))
227- let aU = fraction(toBigInt(aR), f, ao)
228- let aV = fraction(aU, aT, aS)
229- let aW = toInt(fraction(aT, aS, (aV + aS)))
230- let aX = ((aG - aH) - aW)
231- $Tuple2(nil, [aX, aR, aE, aF, aG, aH, X(an[0]), X(an[1]), X(an[2]), M, X(an[3]), X(an[4]), an[5], an[6], toString(aU), toString(aV), aW])
232- }
233- else throw("Strict value is not equal to itself.")
234- }
235- else throw("Strict value is not equal to itself.")
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])
236219 }
237220
238221
239222
240223 @Callable(av)
241-func calcContractNsbtPriceREADONLY () = ah(unit)
242-
243-
244-
245-@Callable(av)
246-func calcContractNsbtPriceBySupplyREADONLY (al) = ah(al)
224+func calcContractNsbtPriceSYSREADONLY (ai) = ah(ai)
247225
248226
249227
250228 @Callable(av)
251229 func calcNeutinoMetricsREADONLY () = {
252- let am = getIntegerValue(ac, D())
253- let aY = valueOrElse(getInteger(ab, y()), 0)
254- let aZ = valueOrElse(getInteger(ab, x()), 0)
255- let ba = (wavesBalance(ab).regular - aZ)
256- let bb = N(ba, am)
257- let bc = (((aY + value(assetInfo(af)).quantity) - assetBalance(ab, af)) - assetBalance(ae, af))
258- let bd = (bb - bc)
259- let be = (bc - bb)
260- let bf = if ((bc == 0))
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))
261239 then 0
262- else (fraction(bd, b, bc) * 100)
263- let bg = if ((bc == 0))
240+ else (fraction(bb, b, ba) * 100)
241+ let be = if ((ba == 0))
264242 then 0
265- else fraction(bb, b, bc)
266- let aj = value(assetInfo(ag)).quantity
267- let al = (aj - assetBalance(ad, ag))
268- $Tuple2(nil, [am, aY, aZ, ba, bb, bc, bd, bf, bg, al, aj])
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])
269247 }
270248
271249
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
3434 func p () = "%s%s__config__neutrinoAddress"
3535
3636
3737 func q () = "%s%s__config__swapAParam"
3838
3939
4040 func r () = "neutrino_asset_id"
4141
4242
4343 func s () = "liquidation_contract"
4444
4545
4646 func t () = "auction_contract"
4747
4848
4949 func u () = "control_contract"
5050
5151
5252 func v () = "bond_asset_id"
5353
5454
5555 func w () = "balance_lock_"
5656
5757
5858 func x () = (w() + "waves")
5959
6060
6161 func y () = (w() + "neutrino")
6262
6363
6464 func z () = "swaps_timeframe"
6565
6666
6767 func A (B) = makeString(["%s%s", "userLastQuickSwapHeight", B], i)
6868
6969
7070 func C (B) = makeString(["%s%s", "quickSwapUserSpentInPeriod", B], i)
7171
7272
7373 func D () = "price"
7474
7575
7676 func E (F,G) = valueOrErrorMessage(getString(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
7777
7878
7979 func H (F,G) = valueOrErrorMessage(getInteger(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
8080
8181
8282 func I (F,G) = valueOrElse(getInteger(F, G), 0)
8383
8484
8585 func J (F,G) = valueOrErrorMessage(getBoolean(F, G), makeString(["mandatory ", toString(F), ".", G, " is not defined"], ""))
8686
8787
8888 func K (L,M) = fraction(fraction(L, d, M), a, b)
8989
9090
9191 func N (L,M) = fraction(fraction(L, M, d), b, a)
9292
9393
9494 func O (P,Q) = fraction(toBigInt(P), f, toBigInt(Q))
9595
9696
9797 func R (S,T) = toInt(fraction(S, toBigInt(T), f))
9898
9999
100100 func U (S) = {
101101 let V = S
102102 if ($isInstanceOf(V, "List[Any]"))
103103 then {
104104 let W = V
105105 W
106106 }
107107 else throw("fail to cast into List[Any]")
108108 }
109109
110110
111111 func X (S) = {
112112 let V = S
113113 if ($isInstanceOf(V, "Int"))
114114 then {
115115 let Y = V
116116 Y
117117 }
118118 else throw("fail to cast into Int")
119119 }
120120
121121
122122 func Z (S) = {
123123 let V = S
124124 if ($isInstanceOf(V, "String"))
125125 then {
126126 let aa = V
127127 aa
128128 }
129129 else throw("fail to cast into String")
130130 }
131131
132132
133133 let ab = addressFromStringValue(E(this, p()))
134134
135135 let ac = addressFromStringValue(E(ab, u()))
136136
137137 let ad = addressFromStringValue(E(ab, t()))
138138
139139 let ae = addressFromStringValue(E(ab, s()))
140140
141141 let af = fromBase58String(E(ab, r()))
142142
143143 let ag = fromBase58String(getStringValue(ab, v()))
144144
145145 func ah (ai) = {
146- let aj = value(assetInfo(ag)).quantity
147- let ak = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
148- if ((ak == ak))
149- then {
150- let al = if ((ai == unit))
151- then X(ak[9])
152- else value(ai)
153- let am = X(ak[0])
154- let an = U(invoke(this, "calculateKREADONLY", [X(ak[3]), X(ak[5]), am, aj, al], nil))
155- if ((an == an))
156- then {
157- let ao = parseBigIntValue(Z(an[6]))
158- let ap = R(ao, e)
159- let aq = fraction(aj, e, (aj - al))
160- let ar = fraction(aq, aq, e)
161- let as = fraction(ap, ar, e)
162- let at = fraction(as, b, e)
163- let au = fraction(at, b, am)
164- $Tuple2(nil, [at, au])
165- }
166- else throw("Strict value is not equal to itself.")
167- }
168- else throw("Strict value is not equal to itself.")
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])
169160 }
170161
171162
172163 @Callable(av)
173164 func constructor (aw,ax,ay) = if ((av.caller != this))
174165 then throw("not authorized")
175166 else [StringEntry(p(), aw), IntegerEntry(q(), ay)]
176167
177168
178169
179170 @Callable(av)
180171 func calcSwapLimitREADONLY (az) = {
181172 let aA = toBigInt(H(this, q()))
182173 let aB = O(az, l)
183174 let aC = pow(aB, 16, k, 16, 8, CEILING)
184175 let aD = fraction(aA, aC, o)
185176 $Tuple2(nil, toInt(aD))
186177 }
187178
188179
189180
190181 @Callable(av)
191-func calculateKREADONLY (aE,aF,M,aG,aH) = {
192- let aI = toBigInt(2718281)
193- let aJ = 6
194- let aK = valueOrElse(getInteger(ad, "nsbtCurveParam_a"), 3)
195- let aL = valueOrElse(getInteger(ad, "nsbtCurveParam_b"), ((3 * b) / 10))
196- let aM = N(aE, M)
197- let aN = fraction(aM, e, aF)
198- if ((aN > 10678564816))
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))
199190 then throw("BR > 10678.564816% will overflow exponent")
200191 else {
201- let aO = (aK * (aN - e))
202- let aP = pow(aI, aJ, toBigInt(aO), g, h, DOWN)
203- let ao = fraction(toBigInt(aL), aP, c)
204- $Tuple2(nil, [aK, aL, aM, aN, aO, toString(aP), toString(ao)])
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)])
205196 }
206197 }
207198
208199
209200
210201 @Callable(av)
211-func curveFunctionREADONLY (aQ) = {
212- let ak = U(invoke(this, "calcNeutinoMetricsREADONLY", nil, nil))
213- if ((ak == ak))
214- then {
215- let M = X(ak[0])
216- let aE = X(ak[3])
217- let aF = X(ak[5])
218- let aH = X(ak[9])
219- let aG = value(assetInfo(ag)).quantity
220- let an = U(invoke(this, "calculateKREADONLY", [aE, aF, M, aG, aH], nil))
221- if ((an == an))
222- then {
223- let ao = parseBigIntValue(Z(an[6]))
224- let aR = N(aQ, M)
225- let aS = toBigInt(aG)
226- let aT = toBigInt((aG - aH))
227- let aU = fraction(toBigInt(aR), f, ao)
228- let aV = fraction(aU, aT, aS)
229- let aW = toInt(fraction(aT, aS, (aV + aS)))
230- let aX = ((aG - aH) - aW)
231- $Tuple2(nil, [aX, aR, aE, aF, aG, aH, X(an[0]), X(an[1]), X(an[2]), M, X(an[3]), X(an[4]), an[5], an[6], toString(aU), toString(aV), aW])
232- }
233- else throw("Strict value is not equal to itself.")
234- }
235- else throw("Strict value is not equal to itself.")
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])
236219 }
237220
238221
239222
240223 @Callable(av)
241-func calcContractNsbtPriceREADONLY () = ah(unit)
242-
243-
244-
245-@Callable(av)
246-func calcContractNsbtPriceBySupplyREADONLY (al) = ah(al)
224+func calcContractNsbtPriceSYSREADONLY (ai) = ah(ai)
247225
248226
249227
250228 @Callable(av)
251229 func calcNeutinoMetricsREADONLY () = {
252- let am = getIntegerValue(ac, D())
253- let aY = valueOrElse(getInteger(ab, y()), 0)
254- let aZ = valueOrElse(getInteger(ab, x()), 0)
255- let ba = (wavesBalance(ab).regular - aZ)
256- let bb = N(ba, am)
257- let bc = (((aY + value(assetInfo(af)).quantity) - assetBalance(ab, af)) - assetBalance(ae, af))
258- let bd = (bb - bc)
259- let be = (bc - bb)
260- let bf = if ((bc == 0))
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))
261239 then 0
262- else (fraction(bd, b, bc) * 100)
263- let bg = if ((bc == 0))
240+ else (fraction(bb, b, ba) * 100)
241+ let be = if ((ba == 0))
264242 then 0
265- else fraction(bb, b, bc)
266- let aj = value(assetInfo(ag)).quantity
267- let al = (aj - assetBalance(ad, ag))
268- $Tuple2(nil, [am, aY, aZ, ba, bb, bc, bd, bf, bg, al, aj])
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])
269247 }
270248
271249
272250
273251 @Callable(av)
274252 func getUnstakeComissionAmountREADONLY (L,bh,bi) = $Tuple2(nil, fraction(L, pow(2, 0, fraction(-((height - bh)), e, bi), 8, 8, HALFUP), e))
275253
276254
277255
278256 @Callable(av)
279257 func mergeStakesREADONLY (bj,bk,bl,bm,bi) = {
280258 let bn = fraction(bl, pow(2, 0, fraction((bm - bk), e, bi), 8, 8, HALFUP), e)
281259 let bo = fraction((bj + bl), e, (bj + bn))
282260 $Tuple2(nil, (bk + ((j - (bi * log(bo, 8, 2, 0, 8, HALFUP))) / e)))
283261 }
284262
285263

github/deemru/w8io/169f3d6 
64.91 ms