tx · C3ZFD5MvuhYXhGkZXn3KvJLy7UXnf2XtpkP3wN4itE2X

3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37:  -0.01400000 Waves

2021.08.16 16:28 [1660965] smart account 3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37 > SELF 0.00000000 Waves

{ "type": 13, "id": "C3ZFD5MvuhYXhGkZXn3KvJLy7UXnf2XtpkP3wN4itE2X", "fee": 1400000, "feeAssetId": null, "timestamp": 1629120504757, "version": 2, "chainId": 84, "sender": "3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37", "senderPublicKey": "4bwUHdA4vTBJ1k43dYKiPYTDqm3QqiZXNGXoQstGAD1k", "proofs": [ "2hoNdo5L6LxXKe5acAj99QGpaTSgAy3SoPnMpbpYyeAszhpm8qjY24ikCiiURrLTebS5cSdoV9RjHw6uWMDtFToJ", "5eNsWpPA1hB15FS5WkRUtbKVTDGE4jvCu8dqZU7pfD8ig2PSDQoSBxKaVexJWZmSumPz1zDtqBC8UdnoNoEX1rmh" ], "script": "base64:AAIFAAAAAAAAACMIAhIDCgEIEgMKAQESAwoBARIAEgMKAQESABIAEgMKAQESAAAAAFgAAAAAB3ZlcnNpb24CAAAABTEuMC4wAAAAAAprZXlWZXJzaW9uAgAAAAd2ZXJzaW9uAAAAAAlrZXlBY3RpdmUCAAAABmFjdGl2ZQAAAAALa2V5QXNzZXRJZEECAAAACkFfYXNzZXRfaWQAAAAAC2tleUFzc2V0SWRCAgAAAApCX2Fzc2V0X2lkAAAAAAtrZXlCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlAAAAAAtrZXlCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlAAAAAA9rZXlCYWxhbmNlSW5pdEECAAAADEFfYXNzZXRfaW5pdAAAAAAPa2V5QmFsYW5jZUluaXRCAgAAAAxCX2Fzc2V0X2luaXQAAAAAD2tleVNoYXJlQXNzZXRJZAIAAAAOc2hhcmVfYXNzZXRfaWQAAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkCAAAAEnNoYXJlX2Fzc2V0X3N1cHBseQAAAAANa2V5Q29tbWlzc2lvbgIAAAAKY29tbWlzc2lvbgAAAAAba2V5Q29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAgAAABpjb21taXNzaW9uX3NjYWxlX2RlbGltaXRlcgAAAAAIa2V5Q2F1c2UCAAAADnNodXRkb3duX2NhdXNlAAAAAA9rZXlGaXJzdEhhcnZlc3QCAAAADWZpcnN0X2hhcnZlc3QAAAAAFWtleUZpcnN0SGFydmVzdEhlaWdodAIAAAAUZmlyc3RfaGFydmVzdF9oZWlnaHQAAAAADWtleVNoYXJlTGltaXQCAAAAHHNoYXJlX2xpbWl0X29uX2ZpcnN0X2hhcnZlc3QAAAAADWtleUJhc2VQZXJpb2QCAAAAC2Jhc2VfcGVyaW9kAAAAAA9rZXlQZXJpb2RMZW5ndGgCAAAADXBlcmlvZF9sZW5ndGgAAAAADmtleVN0YXJ0SGVpZ2h0AgAAAAxzdGFydF9oZWlnaHQAAAAAFmtleU9yYWNsZUFzc2V0UHJpb3JpdHkCAAAAD2Fzc2V0X3ByaW9yaXR5XwAAAAATa2V5T3JhY2xlU2NyaXB0SGFzaAIAAAAQc2NyaXB0X2hhc2hfY3BtbQAAAAARa2V5SW5pdFBv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AAAAC2tleUJhbGFuY2VBAAAAAAhiYWxhbmNlQgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAALa2V5QmFsYW5jZUIAAAAADHNoYXJlQXNzZXRJZAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAA9rZXlTaGFyZUFzc2V0SWQAAAAAEHNoYXJlQXNzZXRTdXBwbHkJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkAAAAACmNvbW1pc3Npb24AAAAAAAAAC7gAAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlAAAAAAAAAASwAAAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIAAAAAAAAPQkAAAAAAC3NjYWxlVmFsdWUzAAAAAAAAAAPoAAAAAAtzY2FsZVZhbHVlOAAAAAAABfXhAAAAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIAAAAAAAAAA+gAAAAAEXNjYWxlVmFsdWU4RGlnaXRzAAAAAAAAAAAIAAAAABljb21pc3Npb25Gb3JJbml0YWxpemF0aW9uAAAAAAA7msoAAQAAAA5hY2NvdW50QmFsYW5jZQAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACaWQFAAAAByRtYXRjaDAJAAPwAAAAAgUAAAAEdGhpcwUAAAACaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABXdhdmVzBQAAAAckbWF0Y2gwCAkAA+8AAAABBQAAAAR0aGlzAAAACWF2YWlsYWJsZQkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAAMc3Rha2VkQW1vdW50AAAAAQAAAAdhc3NldElkBAAAABZzdGFrZWRBbW91bnRDYWxjdWxhdGVkBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAANhSWQFAAAAByRtYXRjaDADAwkAAAAAAAACBQAAAANhSWQFAAAABFVTRE4GCQAAAAAAAAIFAAAAA2FJZAUAAAAETlNCVAkABBoAAAACBQAAABZzdGFraW5nVVNETk5TQlRBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxycGRfYmFsYW5jZV8JAAJYAAAAAQUAAAADYUlkAgAAAAFfCQAEJQAAAAEFAAAABHRoaXMDCQAAAAAAAAIFAAAAA2FJZAUAAAAERVVSTgkABBoAAAACBQAAABJzdGFraW5nRVVSTkFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAGCVzJXMlc19fc3Rha2luZ0JhbGFuY2VfXwkAAlgAAAABBQAAAANhSWQCAAAAAl9fCQAEJQAAAAEFAAAABHRoaXMAAAAAAAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQAAAAAAAAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IEAAAAByRtYXRjaDAFAAAAFnN0YWtlZEFtb3VudENhbGN1bGF0ZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQAAAAAAAAAAAAEAAAAOaXNBbGxvd2VkQXNzZXQAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAmlkBQAAAAckbWF0Y2gwAwMJAAAAAAAAAgUAAAACaWQFAAAABFVTRE4GCQAAAAAAAAIFAAAAAmlkBQAAAARTV09QBgcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABXdhdmVzBQAAAAckbWF0Y2gwBgkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgAAAAANc3Rha2VkQW1vdW50QQkBAAAADHN0YWtlZEFtb3VudAAAAAEFAAAACGFzc2V0SWRBAAAAAA1zdGFrZWRBbW91bnRCCQEAAAAMc3Rha2VkQW1vdW50AAAAAQUAAAAIYXNzZXRJZEIAAAAACmFzc2V0SW5pdEEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAD2tleUJhbGFuY2VJbml0QQAAAAAKYXNzZXRJbml0QgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAPa2V5QmFsYW5jZUluaXRCAAAAABFhdmFpbGFibGVCYWxhbmNlQQkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAANc3Rha2VkQW1vdW50QQAAAAARYXZhaWxhYmxlQmFsYW5jZUIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADXN0YWtlZEFtb3VudEIAAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEJAABkAAAAAgkBAAAADmFjY291bnRCYWxhbmNlAAAAAQUAAAAIYXNzZXRJZEEFAAAADXN0YWtlZEFtb3VudEEAAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEIJAABkAAAAAgkBAAAADmFjY291bnRCYWxhbmNlAAAAAQUAAAAIYXNzZXRJZEIFAAAADXN0YWtlZEFtb3VudEIAAAAAEGhhc0Vub3VnaEJhbGFuY2UDCQAAZwAAAAIFAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEFAAAACGJhbGFuY2VBCQAAZwAAAAIFAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEIFAAAACGJhbGFuY2VCBwEAAAAMZ2V0QXNzZXRJbmZvAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJpZAUAAAAHJG1hdGNoMAQAAAAIc3RyaW5nSWQJAAJYAAAAAQUAAAACaWQEAAAABGluZm8JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABBQAAAAJpZAkAASwAAAACCQABLAAAAAICAAAABkFzc2V0IAUAAAAIc3RyaW5nSWQCAAAADiBkb2Vzbid0IGV4aXN0CQAFFQAAAAMFAAAACHN0cmluZ0lkCAUAAAAEaW5mbwAAAARuYW1lCAUAAAAEaW5mbwAAAAhkZWNpbWFscwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFd2F2ZXMFAAAAByRtYXRjaDAJAAUVAAAAAwIAAAAFV0FWRVMCAAAABVdBVkVTAAAAAAAAAAAICQAA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dWVPckVsc2UAAAACCQAEGgAAAAIFAAAABm9yYWNsZQkAASwAAAACBQAAABZrZXlPcmFjbGVBc3NldFByaW9yaXR5BQAAAA5wbXRTdHJBc3NldElkMQAAAAAAAA9CPwQAAAAOYXNzZXQyUHJpb3JpdHkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAGb3JhY2xlCQABLAAAAAIFAAAAFmtleU9yYWNsZUFzc2V0UHJpb3JpdHkFAAAADnBtdFN0ckFzc2V0SWQyAAAAAAAAD0I/BAAAAAwkdDA5OTYyMTAxODkDCQAAZgAAAAIFAAAADmFzc2V0MlByaW9yaXR5BQAAAA5hc3NldDFQcmlvcml0eQkABRYAAAAEBQAAAApwbXRBbW91bnQyBQAAAAtwbXRBc3NldElkMgUAAAAKcG10QW1vdW50MQUAAAALcG10QXNzZXRJZDEJAAUWAAAABAUAAAAKcG10QW1vdW50MQUAAAALcG10QXNzZXRJZDEFAAAACnBtdEFtb3VudDIFAAAAC3BtdEFzc2V0SWQyBAAAAApwbXRBbW91bnRBCAUAAAAMJHQwOTk2MjEwMTg5AAAAAl8xBAAAAAtwbXRBc3NldElkQQgFAAAADCR0MDk5NjIxMDE4OQAAAAJfMgQAAAAKcG10QW1vdW50QggFAAAADCR0MDk5NjIxMDE4OQAAAAJfMwQAAAALcG10QXNzZXRJZEIIBQAAAAwkdDA5OTYyMTAxODkAAAACXzQEAAAADSR0MDEwMTk4MTAyNzUJAQAAAAxnZXRBc3NldEluZm8AAAABBQAAAAtwbXRBc3NldElkQQQAAAAOcG10U3RyQXNzZXRJZEEIBQAAAA0kdDAxMDE5ODEwMjc1AAAAAl8xBAAAAA1wbXRBc3NldE5hbWVBCAUAAAANJHQwMTAxOTgxMDI3NQAAAAJfMgQAAAAMcG10RGVjaW1hbHNBCAUAAAANJHQwMTAxOTgxMDI3NQAAAAJfMwQAAAANJHQwMTAyODQxMDM2MQkBAAAADGdldEFzc2V0SW5mbwAAAAEFAAAAC3BtdEFzc2V0SWRCBAAAAA5wbXRTdHJBc3NldElkQggFAAAADSR0MDEwMjg0MTAzNjEAAAACXzEEAAAADXBtdEFzc2V0TmFtZUIIBQAAAA0kdDAxMDI4NDEwMzYxAAAAAl8yBAAAAAxwbXREZWNpbWFsc0IIBQAAAA0kdDAxMDI4NDEwMzYxAAAAAl8zBAAAAAdhZGRQb29sCQAD/AAAAAQFAAAABm9yYWNsZQIAAAAHYWRkUG9vbAkABEwAAAACBQAAAAR0aGlzCQAETAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wbXRBc3NldE5hbWVBAgAAAAFfBQAAAA1wbXRBc3NldE5hbWVCBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAHYWRkUG9vbAUAAAAHYWRkUG9vbAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAGb3JhY2xlCQABLAAAAAICAAAABXBvb2xfCQAEJQAAAAEFAAAABHRoaXMJAAACAAAAAQIAAAARUG9vbCBpcyBub3QgYWRkZWQEAAAACXNoYXJlTmFtZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAABcwkAAS8AAAACBQAAAA1wbXRBc3NldE5hbWVBAAAAAAAAAAAHAgAAAAFfCQABLwAAAAIFAAAADXBtdEFzc2V0TmFtZUIAAAAAAAAAAAcEAAAAEHNoYXJlRGVzY3JpcHRpb24JAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACJTaGFyZVRva2VuIG9mIFN3b3BGaSBwcm90b2NvbCBmb3IgBQAAAA1wbXRBc3NldE5hbWVBAgAAAAUgYW5kIAUAAAANcG10QXNzZXROYW1lQgIAAAAMIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAABHRoaXMEAAAADXNoYXJlRGVjaW1hbHMJAABpAAAAAgkAAGQAAAACBQAAAAxwbXREZWNpbWFsc0EFAAAADHBtdERlY2ltYWxzQgAAAAAAAAAAAgQAAAAEYXJnMQkAAGwAAAAGBQAAAApwbXRBbW91bnRBBQAAAAxwbXREZWNpbWFsc0EAAAAAAAAAAAUAAAAAAAAAAAEFAAAADHBtdERlY2ltYWxzQQUAAAAERE9XTgQAAAAEYXJnMgkAAGwAAAAGBQAAAApwbXRBbW91bnRCBQAAAAxwbXREZWNpbWFsc0IAAAAAAAAAAAUAAAAAAAAAAAEFAAAADHBtdERlY2ltYWxzQgUAAAAERE9XTgQAAAAEYXJnMwkAAGwAAAAGAAAAAAAAAAAKAAAAAAAAAAAABQAAAA1zaGFyZURlY2ltYWxzAAAAAAAAAAAAAAAAAAAAAAAABQAAAARET1dOBAAAABJzaGFyZUluaXRpYWxTdXBwbHkJAABrAAAAAwUAAAAEYXJnMQUAAAAEYXJnMgUAAAAEYXJnMwQAAAAKc2hhcmVJc3N1ZQkABEIAAAAFBQAAAAlzaGFyZU5hbWUFAAAAEHNoYXJlRGVzY3JpcHRpb24FAAAAEnNoYXJlSW5pdGlhbFN1cHBseQUAAAANc2hhcmVEZWNpbWFscwYEAAAADHNoYXJlSXNzdWVJZAkABDgAAAABBQAAAApzaGFyZUlzc3VlBAAAAAliYXNlRW50cnkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAKa2V5VmVyc2lvbgUAAAAHdmVyc2lvbgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAtrZXlBc3NldElkQQUAAAAOcG10U3RyQXNzZXRJZEEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAALa2V5QXNzZXRJZEIFAAAADnBtdFN0ckFzc2V0SWRCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAAKcG10QW1vdW50QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIFAAAACnBtdEFtb3VudEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleUNvbW1pc3Npb24FAAAACmNvbW1pc3Npb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2tleUNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyCQAETAAAAAIFAAAACnNoYXJlSXNzdWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPa2V5U2hhcmVBc3NldElkCQACWAAAAAEFAAAADHNoYXJlSXNzdWVJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQUAAAASc2hhcmVJbml0aWFsU3VwcGx5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrZXlJbml0UG9vbEhlaWdodAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAABJzaGFyZUluaXRpYWxTdXBwbHkFAAAADHNoYXJlSXNzdWVJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA13YWxsZXRBZGRyZXNzBQAAABljb21pc3Npb25Gb3JJbml0YWxpemF0aW9uBQAAAARTV09QBQAAAANuaWwFAAAACWJhc2VFbnRyeQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAYa2VlcExpbWl0Rm9yRmlyc3RIYXJ2ZXN0AAAAAQAAAApzaGFyZUxpbWl0AwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABJhZG1pblB1YktleVN0YWtpbmcFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5U2hhcmVMaW1pdAUAAAAKc2hhcmVMaW1pdAUAAAADbmlsAAAAAWkBAAAAFnJlcGxlbmlzaFdpdGhUd29Ub2tlbnMAAAABAAAAEXNsaXBwYWdlVG9sZXJhbmNlBAAAAAtwbXRBc3NldElkQQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAALcG10QXNzZXRJZEIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAAB2Fzc2V0SWQEAAAACnBtdEFtb3VudEEJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAwgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50BQAAAAtwbXRBc3NldElkQQUAAAALcG10QXNzZXRJZEIEAAAACnBtdEFtb3VudEIJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAwgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAGYW1vdW50BQAAAAtwbXRBc3NldElkQgUAAAALcG10QXNzZXRJZEEDAwkAAAAAAAACBQAAAAhiYWxhbmNlQQAAAAAAAAAAAAkAAAAAAAACBQAAAAhiYWxhbmNlQgAAAAAAAAAAAAcEAAAADSR0MDEzMTQ2MTMyMjMJAQAAAAxnZXRBc3NldEluZm8AAAABBQAAAAtwbXRBc3NldElkQQQAAAAOcG10U3RyQXNzZXRJZEEIBQAAAA0kdDAxMzE0NjEzMjIzAAAAAl8xBAAAAA1wbXRBc3NldE5hbWVBCAUAAAANJHQwMTMxNDYxMzIyMwAAAAJfMgQAAAAMcG10RGVjaW1hbHNBCAUAAAANJHQwMTMxNDYxMzIyMwAAAAJfMwQAAAANJHQwMTMyMzIxMzMwOQkBAAAADGdldEFzc2V0SW5mbwAAAAEFAAAAC3BtdEFzc2V0SWRCBAAAAA5wbXRTdHJBc3NldElkQggFAAAADSR0MDEzMjMyMTMzMDkAAAACXzEEAAAADXBtdEFzc2V0TmFtZUIIBQAAAA0kdDAxMzIzMjEzMzA5AAAAAl8yBAAAAAxwbXREZWNpbWFsc0IIBQAAAA0kdDAxMzIzMjEzMzA5AAAAAl8zBAAAAAp0b2tlblJhdGlvCQAAawAAAAMJAABrAAAAAwUAAAAKYXNzZXRJbml0QQUAAAALc2NhbGVWYWx1ZTgFAAAACnBtdEFtb3VudEEFAAAAC3NjYWxlVmFsdWUzCQAAawAAAAMFAAAACmFzc2V0SW5pdEIFAAAAC3NjYWxlVmFsdWU4BQAAAApwbXRBbW91bnRCAwkAAAAAAAACBQAAAAtwbXRBc3NldElkQQUAAAALcG10QXNzZXRJZEIJAAACAAAAAQIAAAAYQXNzZXRzIG11c3QgYmUgZGlmZmVyZW50BAAAAA1zaGFyZURlY2ltYWxzCQAAaQAAAAIJAABkAAAAAgUAAAAMcG10RGVjaW1hbHNBBQAAAAxwbXREZWNpbWFsc0IAAAAAAAAAAAIEAAAAEnNoYXJlSW5pdGlhbFN1cHBseQkAAGsAAAADCQAAbAAAAAYFAAAACnBtdEFtb3VudEEFAAAADHBtdERlY2ltYWxzQQAAAAAAAAAABQAAAAAAAAAAAQUAAAAMcG10RGVjaW1hbHNBBQAAAARET1dOCQAAbAAAAAYFAAAACnBtdEFtb3VudEIFAAAADHBtdERlY2ltYWxzQgAAAAAAAAAABQAAAAAAAAAAAQUAAAAMcG10RGVjaW1hbHNCBQAAAARET1dOCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAADXNoYXJlRGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAABERPV04DCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDAwkAAGYAAAACAAAAAAAAAAAABQAAABFzbGlwcGFnZVRvbGVyYW5jZQYJAABmAAAAAgUAAAARc2xpcHBhZ2VUb2xlcmFuY2UFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAKVNsaXBwYWdlIHRvbGVyYW5jZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgCQABpAAAAAEFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyAgAAABYgaW5jbHVzaXZlbHkuIEFjdHVhbDogCQABpAAAAAEFAAAAEXNsaXBwYWdlVG9sZXJhbmNlAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgkAAAIAAAABAgAAABxUd28gYXR0YWNoZWQgYXNzZXRzIGV4cGVjdGVkAwMJAABmAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWUzCQAAZQAAAAIFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFAAAACnRva2VuUmF0aW8GCQAAZgAAAAIFAAAACnRva2VuUmF0aW8JAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlMwkAAGQAAAACBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUAAAARc2xpcHBhZ2VUb2xlcmFuY2UFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyCQAAAgAAAAECAAAAPUluY29ycmVjdCBhc3NldHMgYW1vdW50OiBhbW91bnRzIG11c3QgaGF2ZSB0aGUgY29udHJhY3QgcmF0aW8DAwkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEEFAAAACGFzc2V0SWRBBgkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEIFAAAACGFzc2V0SWRCCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJUluY29ycmVjdCBhc3NldHMgYXR0YWNoZWQuIEV4cGVjdGVkOiAFAAAAC3N0ckFzc2V0SWRBAgAAAAUgYW5kIAUAAAALc3RyQXNzZXRJZEIDCQAAAAAAAAIFAAAAEnNoYXJlSW5pdGlhbFN1cHBseQAAAAAAAAAAAAkAAAIAAAABAgAAAB1Ub28gc21hbGwgYW1vdW50IHRvIHJlcGxlbmlzaAMJAQAAAAEhAAAAAQUAAAAQaGFzRW5vdWdoQmFsYW5jZQkABE4AAAACCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAKcG10QW1vdW50QQUAAAALcG10QXNzZXRJZEEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAApwbXRBbW91bnRCBQAAAAtwbXRBc3NldElkQgUAAAADbmlsCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAACQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAMc2hhcmVBc3NldElkBQAAABJzaGFyZUluaXRpYWxTdXBwbHkGCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAAKcG10QW1vdW50QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIFAAAACnBtdEFtb3VudEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkFAAAAEnNoYXJlSW5pdGlhbFN1cHBseQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEnNoYXJlSW5pdGlhbFN1cHBseQUAAAAMc2hhcmVBc3NldElkBQAAAANuaWwEAAAACnRva2VuUmF0aW8JAABrAAAAAwkAAGsAAAADBQAAAAhiYWxhbmNlQQUAAAALc2NhbGVWYWx1ZTgFAAAACnBtdEFtb3VudEEFAAAAC3NjYWxlVmFsdWUzCQAAawAAAAMFAAAACGJhbGFuY2VCBQAAAAtzY2FsZVZhbHVlOAUAAAAKcG10QW1vdW50QgQAAAATcmF0aW9TaGFyZVRva2Vuc0luQQkAAGsAAAADBQAAAApwbXRBbW91bnRBBQAAAAtzY2FsZVZhbHVlOAUAAAAIYmFsYW5jZUEEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIJAABrAAAAAwUAAAAKcG10QW1vdW50QgUAAAALc2NhbGVWYWx1ZTgFAAAACGJhbGFuY2VCBAAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAABrAAAAAwkAAZcAAAABCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAARMAAAAAgUAAAATcmF0aW9TaGFyZVRva2Vuc0luQgUAAAADbmlsBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAtzY2FsZVZhbHVlOAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBgkAAGYAAAACBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAApU2xpcHBhZ2UgdG9sZXJhbmNlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAJAAGkAAAAAQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXICAAAAFiBpbmNsdXNpdmVseS4gQWN0dWFsOiAJAAGkAAAAAQUAAAARc2xpcHBhZ2VUb2xlcmFuY2UDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAACCQAAAgAAAAECAAAAHFR3byBhdHRhY2hlZCBhc3NldHMgZXhwZWN0ZWQDAwkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEEFAAAACGFzc2V0SWRBBgkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEIFAAAACGFzc2V0SWRCCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJUluY29ycmVjdCBhc3NldHMgYXR0YWNoZWQuIEV4cGVjdGVkOiAFAAAAC3N0ckFzc2V0SWRBAgAAAAUgYW5kIAUAAAALc3RyQXNzZXRJZEIDAwkAAGYAAAACCQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTMJAABlAAAAAgUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUAAAAKdG9rZW5SYXRpbwYJAABmAAAAAgUAAAAKdG9rZW5SYXRpbwkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWUzCQAAZAAAAAIFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIJAAACAAAAAQIAAAA9SW5jb3JyZWN0IGFzc2V0cyBhbW91bnQ6IGFtb3VudHMgbXVzdCBoYXZlIHRoZSBjb250cmFjdCByYXRpbwMJAAAAAAAAAgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAHVRvbyBzbWFsbCBhbW91bnQgdG8gcmVwbGVuaXNoAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQAETgAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAApwbXRBbW91bnRBBQAAAAtwbXRBc3NldElkQQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACnBtdEFtb3VudEIFAAAAC3BtdEFzc2V0SWRCBQAAAANuaWwJAQAAABFzdXNwZW5kU3VzcGljaW91cwAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VBCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAAApwbXRBbW91bnRBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQgkAAGQAAAACBQAAAAhiYWxhbmNlQgUAAAAKcG10QW1vdW50QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQkAAGQAAAACBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAxzaGFyZUFzc2V0SWQFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQFAAAADHNoYXJlQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAAQAAAANJHQwMTc3MDgxNzg1OAkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDE3NzA4MTc4NTgAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAxNzcwODE3ODU4AAAAAl8yBAAAAAxhbW91bnRUb1BheUEJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAwkAAGsAAAADBQAAAAlwbXRBbW91bnQFAAAACGJhbGFuY2VBBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAhhc3NldElkQQUAAAAIYXNzZXRJZEIEAAAADGFtb3VudFRvUGF5QgkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAADCQAAawAAAAMFAAAACXBtdEFtb3VudAUAAAAIYmFsYW5jZUIFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAACGFzc2V0SWRCBQAAAAhhc3NldElkQQMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAdT25lIGF0dGFjaGVkIHBheW1lbnQgZXhwZWN0ZWQDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAAxzaGFyZUFzc2V0SWQJAAACAAAAAQkAASwAAAACAgAAACRJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQuIEV4cGVjdGVkOiAJAAJYAAAAAQUAAAAMc2hhcmVBc3NldElkAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQAETgAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAlwbXRBbW91bnQFAAAACnBtdEFzc2V0SWQFAAAAA25pbAkBAAAAEXN1c3BlbmRTdXNwaWNpb3VzAAAAAAMDCQAAZgAAAAIFAAAADGFtb3VudFRvUGF5QQUAAAARYXZhaWxhYmxlQmFsYW5jZUEGCQAAZgAAAAIFAAAADGFtb3VudFRvUGF5QgUAAAARYXZhaWxhYmxlQmFsYW5jZUIJAQAAACJ0aHJvd0luc3VmZmljaWVudEF2YWlsYWJsZUJhbGFuY2VzAAAAAgUAAAAMYW1vdW50VG9QYXlBBQAAAAxhbW91bnRUb1BheUIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VBCQAAZQAAAAIFAAAACGJhbGFuY2VBBQAAAAxhbW91bnRUb1BheUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAAAxhbW91bnRUb1BheUIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABlAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAAMc2hhcmVBc3NldElkBQAAAAlwbXRBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAxhbW91bnRUb1BheUEFAAAACGFzc2V0SWRBCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAMYW1vdW50VG9QYXlCBQAAAAhhc3NldElkQgUAAAADbmlsAAAAAWkBAAAACGV4Y2hhbmdlAAAAAQAAABJtaW5BbW91bnRUb1JlY2VpdmUEAAAADSR0MDE5MDg0MTkxNTkJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAlwbXRBbW91bnQIBQAAAA0kdDAxOTA4NDE5MTU5AAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAANJHQwMTkwODQxOTE1OQAAAAJfMgoBAAAADWNhbGN1bGF0ZUZlZXMAAAACAAAACXRva2VuRnJvbQAAAAd0b2tlblRvBAAAABBhbW91bnRXaXRob3V0RmVlCQAAawAAAAMFAAAAB3Rva2VuVG8FAAAACXBtdEFtb3VudAkAAGQAAAACBQAAAAlwbXRBbW91bnQFAAAACXRva2VuRnJvbQQAAAANYW1vdW50V2l0aEZlZQkAAGsAAAADBQAAABBhbW91bnRXaXRob3V0RmVlCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBAAAABBnb3Zlcm5hbmNlUmV3YXJkCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQUAAAANYW1vdW50V2l0aEZlZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB1DYWxjdWxhdGVkIGFtb3VudCB0byByZWNlaXZlIAkAAaQAAAABBQAAAA1hbW91bnRXaXRoRmVlAgAAACAgaXMgbGVzcyB0aGFuIHNwZWNpZmllZCBtaW5pbXVtIAkAAaQAAAABBQAAABJtaW5BbW91bnRUb1JlY2VpdmUJAAUVAAAAAwUAAAAQYW1vdW50V2l0aG91dEZlZQUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMDCQAAAAAAAAIFAAAACGJhbGFuY2VBAAAAAAAAAAAABgkAAAAAAAACBQAAAAhiYWxhbmNlQgAAAAAAAAAAAAkAAAIAAAABAgAAACBDYW4ndCBleGNoYW5nZSB3aXRoIHplcm8gYmFsYW5jZQMJAABnAAAAAgAAAAAAAAAAAAUAAAASbWluQW1vdW50VG9SZWNlaXZlCQAAAgAAAAEJAAEsAAAAAgIAAAA0TWluaW1hbCBhbW91bnQgdG8gcmVjZWl2ZSBtdXN0IGJlIHBvc2l0aXZlLiBBY3R1YWw6IAkAAaQAAAABBQAAABJtaW5BbW91bnRUb1JlY2VpdmUDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAHU9uZSBhdHRhY2hlZCBwYXltZW50IGV4cGVjdGVkAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQAETgAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAlwbXRBbW91bnQFAAAACnBtdEFzc2V0SWQFAAAAA25pbAkBAAAAEXN1c3BlbmRTdXNwaWNpb3VzAAAAAAMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAIYXNzZXRJZEEEAAAAC2Fzc2V0SWRTZW5kBQAAAAhhc3NldElkQgQAAAANJHQwMjA0MzMyMDUyNAkBAAAADWNhbGN1bGF0ZUZlZXMAAAACBQAAAAhiYWxhbmNlQQUAAAAIYmFsYW5jZUIEAAAAEGFtb3VudFdpdGhvdXRGZWUIBQAAAA0kdDAyMDQzMzIwNTI0AAAAAl8xBAAAAA1hbW91bnRXaXRoRmVlCAUAAAANJHQwMjA0MzMyMDUyNAAAAAJfMgQAAAAQZ292ZXJuYW5jZVJld2FyZAgFAAAADSR0MDIwNDMzMjA1MjQAAAACXzMEAAAAC25ld0JhbGFuY2VBCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAAAlwbXRBbW91bnQEAAAAC25ld0JhbGFuY2VCCQAAZQAAAAIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADWFtb3VudFdpdGhGZWUFAAAAEGdvdmVybmFuY2VSZXdhcmQDAwkAAGcAAAACBQAAAA1zdGFrZWRBbW91bnRBBQAAAAtuZXdCYWxhbmNlQQYJAABnAAAAAgUAAAANc3Rha2VkQW1vdW50QgUAAAALbmV3QmFsYW5jZUIJAQAAACF0aHJvd0luc3VmZmljaWVudEF2YWlsYWJsZUJhbGFuY2UAAAADBQAAAA1hbW91bnRXaXRoRmVlBQAAABFhdmFpbGFibGVCYWxhbmNlQgUAAAAKYXNzZXROYW1lQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEFAAAAC25ld0JhbGFuY2VBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQgUAAAALbmV3QmFsYW5jZUIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA1hbW91bnRXaXRoRmVlBQAAAAthc3NldElkU2VuZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA13YWxsZXRBZGRyZXNzBQAAABBnb3Zlcm5hbmNlUmV3YXJkBQAAAAthc3NldElkU2VuZAUAAAADbmlsAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQgQAAAALYXNzZXRJZFNlbmQFAAAACGFzc2V0SWRBBAAAAA0kdDAyMTM0MzIxNDM0CQEAAAANY2FsY3VsYXRlRmVlcwAAAAIFAAAACGJhbGFuY2VCBQAAAAhiYWxhbmNlQQQAAAAQYW1vdW50V2l0aG91dEZlZQgFAAAADSR0MDIxMzQzMjE0MzQAAAACXzEEAAAADWFtb3VudFdpdGhGZWUIBQAAAA0kdDAyMTM0MzIxNDM0AAAAAl8yBAAAABBnb3Zlcm5hbmNlUmV3YXJkCAUAAAANJHQwMjEzNDMyMTQzNAAAAAJfMwQAAAALbmV3QmFsYW5jZUEJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAQAAAALbmV3QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAMDCQAAZwAAAAIFAAAADXN0YWtlZEFtb3VudEEFAAAAC25ld0JhbGFuY2VBBgkAAGcAAAACBQAAAA1zdGFrZWRBbW91bnRCBQAAAAtuZXdCYWxhbmNlQgkBAAAAIXRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZQAAAAMFAAAADWFtb3VudFdpdGhGZWUFAAAAEWF2YWlsYWJsZUJhbGFuY2VBBQAAAAphc3NldE5hbWVBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWFtb3VudFdpdGhGZWUFAAAAC2Fzc2V0SWRTZW5kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADXdhbGxldEFkZHJlc3MFAAAAEGdvdmVybmFuY2VSZXdhcmQFAAAAC2Fzc2V0SWRTZW5kBQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAkSW5jb3JyZWN0IGFzc2V0IGF0dGFjaGVkLiBFeHBlY3RlZDogBQAAAAtzdHJBc3NldElkQQIAAAAEIG9yIAUAAAALc3RyQXNzZXRJZEIAAAABaQEAAAAIc2h1dGRvd24AAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABCQABLAAAAAICAAAAIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Q2F1c2UCAAAAGnRoZSBjYXVzZSB3YXNuJ3Qgc3BlY2lmaWVkAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABRhZG1pblB1YktleVN0YXJ0U3RvcAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQEAAAAHc3VzcGVuZAAAAAECAAAAD1BhdXNlZCBieSBhZG1pbgAAAAFpAQAAAAhhY3RpdmF0ZQAAAAADBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAABZEQXBwIGlzIGFscmVhZHkgYWN0aXZlAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABRhZG1pblB1YktleVN0YXJ0U3RvcAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAlrZXlBY3RpdmUGCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAACGtleUNhdXNlBQAAAANuaWwAAAABaQEAAAAZdGFrZUludG9BY2NvdW50RXh0cmFGdW5kcwAAAAEAAAALYW1vdW50TGVhdmUEAAAAHXVuY291bnRhYmxlQW1vdW50RW5yb2xsQXNzZXRBCQAAZQAAAAIFAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEFAAAACGJhbGFuY2VBBAAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QgkAAGUAAAACBQAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRCBQAAAAhiYWxhbmNlQgQAAAANYW1vdW50RW5yb2xsQQkAAGUAAAACBQAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QQMJAAAAAAAAAgUAAAAIYXNzZXRJZEEFAAAABHVuaXQFAAAAC2Ftb3VudExlYXZlAAAAAAAAAAAABAAAAA1hbW91bnRFbnJvbGxCCQAAZQAAAAIFAAAAHXVuY291bnRhYmxlQW1vdW50RW5yb2xsQXNzZXRCAwkAAAAAAAACBQAAAAhhc3NldElkQgUAAAAEdW5pdAUAAAALYW1vdW50TGVhdmUAAAAAAAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAArT25seSB0aGUgREFwcCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAABmAAAAAgAAAAAAAAAAAAUAAAALYW1vdW50TGVhdmUJAAACAAAAAQkAASwAAAACAgAAADNBcmd1bWVudCAnYW1vdW50TGVhdmUnIGNhbm5vdCBiZSBuZWdhdGl2ZS4gQWN0dWFsOiAJAAGkAAAAAQUAAAALYW1vdW50TGVhdmUDAwkAAGYAAAACAAAAAAAAAAAABQAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QQYJAABmAAAAAgAAAAAAAAAAAAUAAAAddW5jb3VudGFibGVBbW91bnRFbnJvbGxBc3NldEIJAQAAAAdzdXNwZW5kAAAAAQIAAAAWRW5yb2xsIGFtb3VudCBuZWdhdGl2ZQMDCQAAZgAAAAIAAAAAAAAAAAAFAAAADWFtb3VudEVucm9sbEEGCQAAZgAAAAIAAAAAAAAAAAAFAAAADWFtb3VudEVucm9sbEIJAAACAAAAAQIAAAAVVG9vIGxhcmdlIGFtb3VudExlYXZlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAANYW1vdW50RW5yb2xsQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAADWFtb3VudEVucm9sbEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMbGFzdF9pbmNvbWVfBQAAAAtzdHJBc3NldElkQQUAAAANYW1vdW50RW5yb2xsQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAxsYXN0X2luY29tZV8FAAAAC3N0ckFzc2V0SWRCBQAAAA1hbW91bnRFbnJvbGxCBQAAAANuaWwAAAABaQEAAAASZW5hYmxlRmlyc3RIYXJ2ZXN0AAAAAAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAPa2V5Rmlyc3RIYXJ2ZXN0BgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVa2V5Rmlyc3RIYXJ2ZXN0SGVpZ2h0CQAAZAAAAAIFAAAAC3N0YXJ0SGVpZ2h0CQAAaAAAAAIFAAAAFWZpcnN0SGFydmVzdEVuZFBlcmlvZAUAAAAMcGVyaW9kTGVuZ3RoBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJp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", "height": 1660965, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2eoK9GQgWW5K2imh8paCwLr9nMsCQKbtXd2rCrUEzMBH Next: FFi95nbRcZwVM8XqpTEEH7LamNAcxB9t3H9NCff4ni6R Diff:
OldNewDifferences
4141
4242 let t = "start_height"
4343
44-let u = "first_harvest_height"
44+let u = "asset_priority_"
4545
46-let v = "asset_priority_"
46+let v = "script_hash_cpmm"
4747
48-let w = "script_hash_cpmm"
48+let w = "init_pool_height_"
4949
50-let x = "init_pool_height_"
50+let x = "admin_pub_1"
5151
52-let y = "admin_pub_1"
52+let y = "admin_pub_2"
5353
54-let z = "admin_pub_2"
54+let z = "admin_pub_3"
5555
56-let A = "admin_pub_3"
56+let A = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
5757
58-let B = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
59-
60-func C (D) = {
61- let E = getString(B, D)
62- if ($isInstanceOf(E, "String"))
58+func B (C) = {
59+ let D = getString(A, C)
60+ if ($isInstanceOf(D, "String"))
6361 then {
64- let F = E
65- fromBase58String(F)
62+ let E = D
63+ fromBase58String(E)
6664 }
6765 else {
68- let G = E
66+ let F = D
6967 throw("Admin public key is empty")
7068 }
7169 }
7270
7371
74-let H = C(y)
72+let G = B(x)
7573
76-let I = C(z)
74+let H = B(y)
7775
78-let J = C(A)
76+let I = B(z)
77+
78+let J = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
7979
8080 let K = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8181
82-let L = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
82+let L = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
8383
84-let M = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
84+let M = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
8585
86-let N = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
86+let N = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
8787
88-let O = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
88+let O = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
8989
90-let P = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
90+let P = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
9191
92-let Q = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
92+let Q = base58'ECBCkHS68DckpBrzLeoRgYbFg7sCVqR176mPqbXsj9pA'
9393
94-let R = base58'ECBCkHS68DckpBrzLeoRgYbFg7sCVqR176mPqbXsj9pA'
94+let R = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
9595
96-let S = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
96+let S = Address(base58'3MyVqAbmKWh339gF6hy8faWw1jGeTV2wnGE')
9797
98-let T = Address(base58'3MyVqAbmKWh339gF6hy8faWw1jGeTV2wnGE')
98+let T = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
9999
100-let U = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
100+let U = Address(base58'3Mye9wVR7d2mc6Y5ZJTu11svzgUQ7o8H9dA')
101101
102-let V = Address(base58'3Mye9wVR7d2mc6Y5ZJTu11svzgUQ7o8H9dA')
102+let V = 270000
103103
104-let W = 270000
104+let W = 234000
105105
106-let X = 234000
106+let X = valueOrErrorMessage(getInteger(M, r), "Empty keyBasePeriod")
107107
108-let Y = valueOrErrorMessage(getInteger(N, r), "Empty kBasePeriod")
108+let Y = valueOrErrorMessage(getInteger(M, t), "Empty keyStartHeight")
109109
110-let Z = valueOrErrorMessage(getInteger(N, t), "Empty kStartHeight")
110+let Z = valueOrErrorMessage(getInteger(M, s), "Empty keyPeriodLength")
111111
112-let aa = valueOrErrorMessage(getInteger(N, s), "Empty kPeriodLength")
112+let aa = ((X + ((height - Y) / Z)) + 1)
113113
114-let ab = ((Y + ((height - Z) / aa)) + 3)
114+let ab = getBooleanValue(this, c)
115115
116-let ac = getBooleanValue(this, c)
116+let ac = getStringValue(this, d)
117117
118-let ad = getStringValue(this, d)
118+let ad = getStringValue(this, e)
119119
120-let ae = getStringValue(this, e)
120+let ae = if ((ac == "WAVES"))
121+ then unit
122+ else fromBase58String(ac)
121123
122124 let af = if ((ad == "WAVES"))
123125 then unit
124126 else fromBase58String(ad)
125127
126-let ag = if ((ae == "WAVES"))
127- then unit
128- else fromBase58String(ae)
129-
130-let ah = {
131- let E = af
132- if ($isInstanceOf(E, "ByteVector"))
128+let ag = {
129+ let D = ae
130+ if ($isInstanceOf(D, "ByteVector"))
133131 then {
134- let ai = E
135- value(assetInfo(ai)).name
132+ let ah = D
133+ value(assetInfo(ah)).name
136134 }
137- else if ($isInstanceOf(E, "Unit"))
135+ else if ($isInstanceOf(D, "Unit"))
138136 then {
139- let aj = E
137+ let ai = D
140138 "WAVES"
141139 }
142140 else throw("Match error")
143141 }
144142
145-let ak = {
146- let E = ag
147- if ($isInstanceOf(E, "ByteVector"))
143+let aj = {
144+ let D = af
145+ if ($isInstanceOf(D, "ByteVector"))
148146 then {
149- let ai = E
150- value(assetInfo(ai)).name
147+ let ah = D
148+ value(assetInfo(ah)).name
151149 }
152- else if ($isInstanceOf(E, "Unit"))
150+ else if ($isInstanceOf(D, "Unit"))
153151 then {
154- let aj = E
152+ let ai = D
155153 "WAVES"
156154 }
157155 else throw("Match error")
158156 }
159157
160-let al = getIntegerValue(this, f)
158+let ak = getIntegerValue(this, f)
161159
162-let am = getIntegerValue(this, g)
160+let al = getIntegerValue(this, g)
163161
164-let an = fromBase58String(getStringValue(this, j))
162+let am = fromBase58String(getStringValue(this, j))
165163
166-let ao = getIntegerValue(this, k)
164+let an = getIntegerValue(this, k)
167165
168-let ap = 3000
166+let ao = 3000
169167
170-let aq = 1200
168+let ap = 1200
171169
172-let ar = 1000000
170+let aq = 1000000
173171
174-let as = 1000
172+let ar = 1000
175173
176-let at = 100000000
174+let as = 100000000
177175
178-let au = 1000
176+let at = 1000
179177
180-let av = 8
178+let au = 8
181179
182-let aw = 1000000000
180+let av = 1000000000
183181
184-func ax (ay) = {
185- let E = ay
186- if ($isInstanceOf(E, "ByteVector"))
182+func aw (ax) = {
183+ let D = ax
184+ if ($isInstanceOf(D, "ByteVector"))
187185 then {
188- let ai = E
189- assetBalance(this, ai)
186+ let ah = D
187+ assetBalance(this, ah)
190188 }
191- else if ($isInstanceOf(E, "Unit"))
189+ else if ($isInstanceOf(D, "Unit"))
192190 then {
193- let aj = E
191+ let ai = D
194192 wavesBalance(this).available
195193 }
196194 else throw("Match error")
197195 }
198196
199197
200-func az (ay) = {
201- let aA = {
202- let E = ay
203- if ($isInstanceOf(E, "ByteVector"))
198+func ay (ax) = {
199+ let az = {
200+ let D = ax
201+ if ($isInstanceOf(D, "ByteVector"))
204202 then {
205- let aB = E
206- if (if ((aB == O))
203+ let aA = D
204+ if (if ((aA == N))
207205 then true
208- else (aB == P))
209- then getInteger(S, ((("rpd_balance_" + toBase58String(aB)) + "_") + toString(this)))
210- else if ((aB == R))
211- then getInteger(T, ((("%s%s%s__stakingBalance__" + toBase58String(aB)) + "__") + toString(this)))
206+ else (aA == O))
207+ then getInteger(R, ((("rpd_balance_" + toBase58String(aA)) + "_") + toString(this)))
208+ else if ((aA == Q))
209+ then getInteger(S, ((("%s%s%s__stakingBalance__" + toBase58String(aA)) + "__") + toString(this)))
212210 else 0
213211 }
214- else if ($isInstanceOf(E, "Unit"))
212+ else if ($isInstanceOf(D, "Unit"))
215213 then 0
216214 else throw("Match error")
217215 }
218- let E = aA
219- if ($isInstanceOf(E, "Int"))
216+ let D = az
217+ if ($isInstanceOf(D, "Int"))
220218 then {
221- let aC = E
222- aC
219+ let aB = D
220+ aB
223221 }
224222 else 0
225223 }
226224
227225
228-func aD (ay) = {
229- let E = ay
230- if ($isInstanceOf(E, "ByteVector"))
226+func aC (ax) = {
227+ let D = ax
228+ if ($isInstanceOf(D, "ByteVector"))
231229 then {
232- let ai = E
233- if (if ((ai == O))
230+ let ah = D
231+ if (if ((ah == N))
234232 then true
235- else (ai == Q))
233+ else (ah == P))
236234 then true
237235 else false
238236 }
239- else if ($isInstanceOf(E, "Unit"))
237+ else if ($isInstanceOf(D, "Unit"))
240238 then {
241- let aj = E
239+ let ai = D
242240 true
243241 }
244242 else throw("Match error")
245243 }
246244
247245
248-let aE = az(af)
246+let aD = ay(ae)
249247
250-let aF = az(ag)
248+let aE = ay(af)
251249
252-let aG = getIntegerValue(this, h)
250+let aF = getIntegerValue(this, h)
253251
254-let aH = getIntegerValue(this, i)
252+let aG = getIntegerValue(this, i)
253+
254+let aH = (ak - aD)
255255
256256 let aI = (al - aE)
257257
258-let aJ = (am - aF)
258+let aJ = (aw(ae) + aD)
259259
260-let aK = (ax(af) + aE)
260+let aK = (aw(af) + aE)
261261
262-let aL = (ax(ag) + aF)
263-
264-let aM = if ((aK >= al))
265- then (aL >= am)
262+let aL = if ((aJ >= ak))
263+ then (aK >= al)
266264 else false
267265
268-func aN (ay) = {
269- let E = ay
270- if ($isInstanceOf(E, "ByteVector"))
266+func aM (ax) = {
267+ let D = ax
268+ if ($isInstanceOf(D, "ByteVector"))
271269 then {
272- let ai = E
273- let aO = toBase58String(ai)
274- let aP = valueOrErrorMessage(assetInfo(ai), (("Asset " + aO) + " doesn't exist"))
275- $Tuple3(aO, aP.name, aP.decimals)
270+ let ah = D
271+ let aN = toBase58String(ah)
272+ let aO = valueOrErrorMessage(assetInfo(ah), (("Asset " + aN) + " doesn't exist"))
273+ $Tuple3(aN, aO.name, aO.decimals)
276274 }
277- else if ($isInstanceOf(E, "Unit"))
275+ else if ($isInstanceOf(D, "Unit"))
278276 then {
279- let aj = E
277+ let ai = D
280278 $Tuple3("WAVES", "WAVES", 8)
281279 }
282280 else throw("Match error")
283281 }
284282
285283
286-func aQ (aR) = if ((aR == "WAVES"))
284+func aP (aQ) = if ((aQ == "WAVES"))
287285 then $Tuple3("WAVES", "WAVES", 8)
288286 else {
289- let aO = aR
290- let ai = fromBase58String(aR)
291- let aP = valueOrErrorMessage(assetInfo(ai), (("Asset " + aO) + " doesn't exist"))
292- $Tuple3(aO, aP.name, aP.decimals)
287+ let aN = aQ
288+ let ah = fromBase58String(aQ)
289+ let aO = valueOrErrorMessage(assetInfo(ah), (("Asset " + aN) + " doesn't exist"))
290+ $Tuple3(aN, aO.name, aO.decimals)
293291 }
294292
295293
296-func aS (aT) = [BooleanEntry(c, false), StringEntry(n, aT)]
294+func aR (aS) = [BooleanEntry(c, false), StringEntry(n, aS)]
297295
298296
299-func aU (aV,ay,aW) = if (if ((ay == O))
297+func aT (aU,ax,aV) = if (if ((ax == N))
300298 then true
301- else (ay == R))
299+ else (ax == Q))
302300 then {
303- let aX = if ((ay == O))
304- then (W * (if ((aW == P))
301+ let aW = if ((ax == N))
302+ then (V * (if ((aV == O))
305303 then 2
306304 else 1))
307- else if ((ay == R))
308- then X
305+ else if ((ax == Q))
306+ then W
309307 else 0
310- let aY = (aV - aX)
311- if ((0 >= aY))
312- then throw((((("Insufficient amount " + toString(aV)) + " to deduct staking fee ") + toString(aX)) + "USDN/EURN"))
313- else aY
308+ let aX = (aU - aW)
309+ if ((0 >= aX))
310+ then throw((((("Insufficient amount " + toString(aU)) + " to deduct staking fee ") + toString(aW)) + "USDN/EURN"))
311+ else aX
314312 }
315- else aV
313+ else aU
316314
317315
318-func aZ (ay,aW) = if ((ay == O))
319- then (W * (if ((aW == P))
316+func aY (ax,aV) = if ((ax == N))
317+ then (V * (if ((aV == O))
320318 then 2
321319 else 1))
322- else if ((ay == R))
323- then X
320+ else if ((ax == Q))
321+ then W
324322 else 0
325323
326324
327-func ba (aV,bb,bc) = throw((((((((("Insufficient DApp balance to pay " + toString(aV)) + " ") + bc) + " due to staking. Available: ") + toString(bb)) + " ") + bc) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
325+func aZ (aU,ba,bb) = throw((((((((("Insufficient DApp balance to pay " + toString(aU)) + " ") + bb) + " due to staking. Available: ") + toString(ba)) + " ") + bb) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
328326
329327
330-func bd (be,bf) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(be)) + " ") + ah) + " and ") + toString(bf)) + " ") + ak) + " due to staking. Available: ") + toString(aI)) + " ") + ah) + " and ") + toString(aJ)) + " ") + ak) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
328+func bc (bd,be) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(bd)) + " ") + ag) + " and ") + toString(be)) + " ") + aj) + " due to staking. Available: ") + toString(aH)) + " ") + ag) + " and ") + toString(aI)) + " ") + aj) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
331329
332330
333-func bg () = aS(((((((((((((((("Suspicious state. Actual balances: " + toString(aK)) + " ") + ah) + ", ") + toString(aL)) + " ") + ak) + ". State: ") + toString(al)) + " ") + ah) + ", ") + toString(am)) + " ") + ak))
331+func bf () = aR(((((((((((((((("Suspicious state. Actual balances: " + toString(aJ)) + " ") + ag) + ", ") + toString(aK)) + " ") + aj) + ". State: ") + toString(ak)) + " ") + ag) + ", ") + toString(al)) + " ") + aj))
334332
335333
336-@Callable(aC)
337-func init (bh) = {
338- let bi = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
339- let bj = bi._1
340- let bk = bi._2
341- let bl = $Tuple2(aC.payments[1].amount, aC.payments[1].assetId)
342- let bm = bl._1
343- let bn = bl._2
344- let bo = $Tuple2(aC.payments[2].amount, aC.payments[2].assetId)
345- let bp = bo._1
346- let bq = bo._2
347- let br = isDataStorageUntouched(this)
348- let bs = scriptHash(this)
349- if ((aC.caller == this))
334+@Callable(aB)
335+func init (bg) = {
336+ let bh = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
337+ let bi = bh._1
338+ let bj = bh._2
339+ let bk = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
340+ let bl = bk._1
341+ let bm = bk._2
342+ let bn = $Tuple2(aB.payments[2].amount, aB.payments[2].assetId)
343+ let bo = bn._1
344+ let bp = bn._2
345+ let bq = isDataStorageUntouched(this)
346+ let br = scriptHash(this)
347+ let bs = addressFromStringValue(bg)
348+ if ((aB.caller == this))
350349 then throw("You can't call yourself")
351- else if (if ((bq != Q))
350+ else if (if ((bp != P))
352351 then true
353- else (bp != aw))
352+ else (bo != av))
354353 then throw("You need to attach 10 SWOP tokens")
355- else if (if (!(aD(bk)))
356- then !(aD(bn))
354+ else if (if (!(aC(bj)))
355+ then !(aC(bm))
357356 else false)
358357 then throw("One of assets must be USDN, WAVES or SWOP")
359- else if (if ((bs == value(getBinary(B, w))))
358+ else if (if ((br == value(getBinary(A, v))))
360359 then true
361- else !(br))
360+ else !(bq))
362361 then throw("Unexpected script was found.")
363362 else if (isDefined(getBoolean(this, c)))
364363 then throw("DApp is already active")
365- else if ((bk == bn))
364+ else if ((bj == bm))
366365 then throw("Assets must be different")
367366 else {
368367 let bt = {
369- let E = bk
370- if ($isInstanceOf(E, "ByteVector"))
368+ let D = bj
369+ if ($isInstanceOf(D, "ByteVector"))
371370 then {
372- let ai = E
373- toBase58String(ai)
371+ let ah = D
372+ toBase58String(ah)
374373 }
375- else if ($isInstanceOf(E, "Unit"))
374+ else if ($isInstanceOf(D, "Unit"))
376375 then {
377- let aj = E
376+ let ai = D
378377 "WAVES"
379378 }
380379 else throw("Match error")
381380 }
382381 let bu = {
383- let E = bn
384- if ($isInstanceOf(E, "ByteVector"))
382+ let D = bm
383+ if ($isInstanceOf(D, "ByteVector"))
385384 then {
386- let ai = E
387- toBase58String(ai)
385+ let ah = D
386+ toBase58String(ah)
388387 }
389- else if ($isInstanceOf(E, "Unit"))
388+ else if ($isInstanceOf(D, "Unit"))
390389 then {
391- let aj = E
390+ let ai = D
392391 "WAVES"
393392 }
394393 else throw("Match error")
395394 }
396- let bv = valueOrElse(getInteger(B, ("keyOracleAssetPriority" + bt)), 999999)
397- let bw = valueOrElse(getInteger(B, ("keyOracleAssetPriority" + bu)), 999999)
395+ let bv = valueOrElse(getInteger(A, (u + bt)), 999999)
396+ let bw = valueOrElse(getInteger(A, (u + bu)), 999999)
398397 let bx = if ((bw > bv))
399- then $Tuple4(bm, bn, bj, bk)
400- else $Tuple4(bj, bk, bm, bn)
398+ then $Tuple4(bl, bm, bi, bj)
399+ else $Tuple4(bi, bj, bl, bm)
401400 let by = bx._1
402401 let bz = bx._2
403402 let bA = bx._3
404403 let bB = bx._4
405- let bC = aN(bz)
404+ let bC = aM(bz)
406405 let bD = bC._1
407406 let bE = bC._2
408407 let bF = bC._3
409- let bG = aN(bB)
408+ let bG = aM(bB)
410409 let bH = bG._1
411410 let bI = bG._2
412411 let bJ = bG._3
413- let bK = invoke(B, "addPool", [this, ((bE + "_") + bI)], nil)
412+ let bK = invoke(A, "addPool", [this, ((bE + "_") + bI)], nil)
414413 if ((bK == bK))
415- then if (!(isDefined(getString(B, ("pool_" + toString(this))))))
414+ then if (!(isDefined(getString(A, ("pool_" + toString(this))))))
416415 then throw("Pool is not added")
417416 else {
418417 let bL = ((("s" + take(bE, 7)) + "_") + take(bI, 7))
424423 let bR = fraction(bO, bP, bQ)
425424 let bS = Issue(bL, bM, bR, bN, true)
426425 let bT = calculateAssetId(bS)
427- let bU = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bD), StringEntry(e, bH), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(l, ap), IntegerEntry(m, ar), bS, StringEntry(j, toBase58String(bT)), IntegerEntry(k, bR), IntegerEntry(x, height), ScriptTransfer(M, bR, bT), ScriptTransfer(aC.caller, aw, Q)]
426+ let bU = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bD), StringEntry(e, bH), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(l, ao), IntegerEntry(m, aq), bS, StringEntry(j, toBase58String(bT)), IntegerEntry(k, bR), IntegerEntry(w, height), ScriptTransfer(bs, bR, bT), ScriptTransfer(L, av, P)]
428427 bU
429428 }
430429 else throw("Strict value is not equal to itself.")
433432
434433
435434
436-@Callable(aC)
437-func keepLimitForFirstHarvest (bV) = if (!(ac))
435+@Callable(aB)
436+func keepLimitForFirstHarvest (bV) = if (!(ab))
438437 then throw("DApp is inactive at this moment")
439- else if (!(containsElement([H, I, J, L], aC.callerPublicKey)))
438+ else if (!(containsElement([G, H, I, K], aB.callerPublicKey)))
440439 then throw("Only admin can call this function")
441440 else [IntegerEntry(q, bV)]
442441
443442
444443
445-@Callable(aC)
444+@Callable(aB)
446445 func replenishWithTwoTokens (bW) = {
447- let bz = aC.payments[0].assetId
448- let bB = aC.payments[1].assetId
449- let by = aU(aC.payments[0].amount, bz, bB)
450- let bA = aU(aC.payments[1].amount, bB, bz)
451- if (if ((al == 0))
452- then (am == 0)
446+ let bz = aB.payments[0].assetId
447+ let bB = aB.payments[1].assetId
448+ let by = aT(aB.payments[0].amount, bz, bB)
449+ let bA = aT(aB.payments[1].amount, bB, bz)
450+ if (if ((ak == 0))
451+ then (al == 0)
453452 else false)
454453 then {
455- let bX = aN(bz)
454+ let bX = aM(bz)
456455 let bD = bX._1
457456 let bE = bX._2
458457 let bF = bX._3
459- let bY = aN(bB)
458+ let bY = aM(bB)
460459 let bH = bY._1
461460 let bI = bY._2
462461 let bJ = bY._3
463- let bZ = fraction(fraction(aG, at, by), as, fraction(aH, at, bA))
462+ let bZ = fraction(fraction(aF, as, by), ar, fraction(aG, as, bA))
464463 if ((bz == bB))
465464 then throw("Assets must be different")
466465 else {
467466 let bN = ((bF + bJ) / 2)
468467 let bR = fraction(pow(by, bF, 5, 1, bF, DOWN), pow(bA, bJ, 5, 1, bJ, DOWN), pow(10, 0, bN, 0, 0, DOWN))
469- if (!(ac))
468+ if (!(ab))
470469 then throw("DApp is inactive at this moment")
471470 else if (if ((0 > bW))
472471 then true
473- else (bW > au))
474- then throw(((("Slippage tolerance must be between 0 and " + toString(au)) + " inclusively. Actual: ") + toString(bW)))
475- else if ((size(aC.payments) != 2))
472+ else (bW > at))
473+ then throw(((("Slippage tolerance must be between 0 and " + toString(at)) + " inclusively. Actual: ") + toString(bW)))
474+ else if ((size(aB.payments) != 2))
476475 then throw("Two attached assets expected")
477- else if (if ((((as * (au - bW)) / au) > bZ))
476+ else if (if ((((ar * (at - bW)) / at) > bZ))
478477 then true
479- else (bZ > ((as * (au + bW)) / au)))
478+ else (bZ > ((ar * (at + bW)) / at)))
480479 then throw("Incorrect assets amount: amounts must have the contract ratio")
481- else if (if ((bz != af))
480+ else if (if ((bz != ae))
482481 then true
483- else (bB != ag))
484- then throw(((("Incorrect assets attached. Expected: " + ad) + " and ") + ae))
482+ else (bB != af))
483+ then throw(((("Incorrect assets attached. Expected: " + ac) + " and ") + ad))
485484 else if ((bR == 0))
486485 then throw("Too small amount to replenish")
487- else if (!(aM))
488- then ([ScriptTransfer(aC.caller, by, bz), ScriptTransfer(aC.caller, bA, bB)] ++ bg())
489- else [Reissue(an, bR, true), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(k, bR), ScriptTransfer(aC.caller, bR, an)]
486+ else if (!(aL))
487+ then ([ScriptTransfer(aB.caller, by, bz), ScriptTransfer(aB.caller, bA, bB)] ++ bf())
488+ else [Reissue(am, bR, true), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(k, bR), ScriptTransfer(aB.caller, bR, am)]
490489 }
491490 }
492491 else {
493- let bZ = fraction(fraction(al, at, by), as, fraction(am, at, bA))
494- let ca = fraction(by, at, al)
495- let cb = fraction(bA, at, am)
496- let cc = fraction(min([ca, cb]), ao, at)
497- if (!(ac))
492+ let bZ = fraction(fraction(ak, as, by), ar, fraction(al, as, bA))
493+ let ca = fraction(by, as, ak)
494+ let cb = fraction(bA, as, al)
495+ let cc = fraction(min([ca, cb]), an, as)
496+ if (!(ab))
498497 then throw("DApp is inactive at this moment")
499498 else if (if ((0 > bW))
500499 then true
501- else (bW > au))
502- then throw(((("Slippage tolerance must be between 0 and " + toString(au)) + " inclusively. Actual: ") + toString(bW)))
503- else if ((size(aC.payments) != 2))
500+ else (bW > at))
501+ then throw(((("Slippage tolerance must be between 0 and " + toString(at)) + " inclusively. Actual: ") + toString(bW)))
502+ else if ((size(aB.payments) != 2))
504503 then throw("Two attached assets expected")
505- else if (if ((bz != af))
504+ else if (if ((bz != ae))
506505 then true
507- else (bB != ag))
508- then throw(((("Incorrect assets attached. Expected: " + ad) + " and ") + ae))
509- else if (if ((((as * (au - bW)) / au) > bZ))
506+ else (bB != af))
507+ then throw(((("Incorrect assets attached. Expected: " + ac) + " and ") + ad))
508+ else if (if ((((ar * (at - bW)) / at) > bZ))
510509 then true
511- else (bZ > ((as * (au + bW)) / au)))
510+ else (bZ > ((ar * (at + bW)) / at)))
512511 then throw("Incorrect assets amount: amounts must have the contract ratio")
513512 else if ((cc == 0))
514513 then throw("Too small amount to replenish")
515- else if (!(aM))
516- then ([ScriptTransfer(aC.caller, by, bz), ScriptTransfer(aC.caller, bA, bB)] ++ bg())
517- else [IntegerEntry(f, (al + by)), IntegerEntry(g, (am + bA)), IntegerEntry(k, (ao + cc)), Reissue(an, cc, true), ScriptTransfer(aC.caller, cc, an)]
514+ else if (!(aL))
515+ then ([ScriptTransfer(aB.caller, by, bz), ScriptTransfer(aB.caller, bA, bB)] ++ bf())
516+ else [IntegerEntry(f, (ak + by)), IntegerEntry(g, (al + bA)), IntegerEntry(k, (an + cc)), Reissue(am, cc, true), ScriptTransfer(aB.caller, cc, am)]
518517 }
519518 }
520519
521520
522521
523-@Callable(aC)
522+@Callable(aB)
524523 func withdraw () = {
525- let cd = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
524+ let cd = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
526525 let ce = cd._1
527526 let cf = cd._2
528- let cg = aU(fraction(ce, al, ao), af, ag)
529- let ch = aU(fraction(ce, am, ao), ag, af)
530- if (!(ac))
527+ let cg = aT(fraction(ce, ak, an), ae, af)
528+ let ch = aT(fraction(ce, al, an), af, ae)
529+ if (!(ab))
531530 then throw("DApp is inactive at this moment")
532- else if ((size(aC.payments) != 1))
531+ else if ((size(aB.payments) != 1))
533532 then throw("One attached payment expected")
534- else if ((cf != an))
535- then throw(("Incorrect asset attached. Expected: " + toBase58String(an)))
536- else if (!(aM))
537- then ([ScriptTransfer(aC.caller, ce, cf)] ++ bg())
538- else if (if ((cg > aI))
533+ else if ((cf != am))
534+ then throw(("Incorrect asset attached. Expected: " + toBase58String(am)))
535+ else if (!(aL))
536+ then ([ScriptTransfer(aB.caller, ce, cf)] ++ bf())
537+ else if (if ((cg > aH))
539538 then true
540- else (ch > aJ))
541- then bd(cg, ch)
542- else [IntegerEntry(f, (al - cg)), IntegerEntry(g, (am - ch)), IntegerEntry(k, (ao - ce)), Burn(an, ce), ScriptTransfer(aC.caller, cg, af), ScriptTransfer(aC.caller, ch, ag)]
539+ else (ch > aI))
540+ then bc(cg, ch)
541+ else [IntegerEntry(f, (ak - cg)), IntegerEntry(g, (al - ch)), IntegerEntry(k, (an - ce)), Burn(am, ce), ScriptTransfer(aB.caller, cg, ae), ScriptTransfer(aB.caller, ch, af)]
543542 }
544543
545544
546545
547-@Callable(aC)
546+@Callable(aB)
548547 func exchange (ci) = {
549- let cj = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
548+ let cj = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
550549 let ce = cj._1
551550 let cf = cj._2
552551 func ck (cl,cm) = {
553552 let cn = fraction(cm, ce, (ce + cl))
554- let co = fraction(cn, (ar - ap), ar)
555- let cp = fraction(cn, aq, ar)
553+ let co = fraction(cn, (aq - ao), aq)
554+ let cp = fraction(cn, ap, aq)
556555 if ((ci > co))
557556 then throw(((("Calculated amount to receive " + toString(co)) + " is less than specified minimum ") + toString(ci)))
558557 else $Tuple3(cn, co, cp)
559558 }
560559
561- if (!(ac))
560+ if (!(ab))
562561 then throw("DApp is inactive at this moment")
563- else if (if ((al == 0))
562+ else if (if ((ak == 0))
564563 then true
565- else (am == 0))
564+ else (al == 0))
566565 then throw("Can't exchange with zero balance")
567566 else if ((0 >= ci))
568567 then throw(("Minimal amount to receive must be positive. Actual: " + toString(ci)))
569- else if ((size(aC.payments) != 1))
568+ else if ((size(aB.payments) != 1))
570569 then throw("One attached payment expected")
571- else if (!(aM))
572- then ([ScriptTransfer(aC.caller, ce, cf)] ++ bg())
573- else if ((cf == af))
570+ else if (!(aL))
571+ then ([ScriptTransfer(aB.caller, ce, cf)] ++ bf())
572+ else if ((cf == ae))
574573 then {
575- let cq = ag
576- let cr = ck(al, am)
574+ let cq = af
575+ let cr = ck(ak, al)
577576 let cn = cr._1
578577 let co = cr._2
579578 let cp = cr._3
580- let cs = (al + ce)
581- let ct = ((am - co) - cp)
582- if (if ((aE >= cs))
579+ let cs = (ak + ce)
580+ let ct = ((al - co) - cp)
581+ if (if ((aD >= cs))
583582 then true
584- else (aF >= ct))
585- then ba(co, aJ, ak)
586- else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aC.caller, co, cq), ScriptTransfer(M, cp, cq)]
583+ else (aE >= ct))
584+ then aZ(co, aI, aj)
585+ else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aB.caller, co, cq), ScriptTransfer(L, cp, cq)]
587586 }
588- else if ((cf == ag))
587+ else if ((cf == af))
589588 then {
590- let cq = af
591- let cu = ck(am, al)
589+ let cq = ae
590+ let cu = ck(al, ak)
592591 let cn = cu._1
593592 let co = cu._2
594593 let cp = cu._3
595- let cs = ((al - co) - cp)
596- let ct = (am + ce)
597- if (if ((aE >= cs))
594+ let cs = ((ak - co) - cp)
595+ let ct = (al + ce)
596+ if (if ((aD >= cs))
598597 then true
599- else (aF >= ct))
600- then ba(co, aI, ah)
601- else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aC.caller, co, cq), ScriptTransfer(M, cp, cq)]
598+ else (aE >= ct))
599+ then aZ(co, aH, ag)
600+ else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aB.caller, co, cq), ScriptTransfer(L, cp, cq)]
602601 }
603- else throw(((("Incorrect asset attached. Expected: " + ad) + " or ") + ae))
602+ else throw(((("Incorrect asset attached. Expected: " + ac) + " or ") + ad))
604603 }
605604
606605
607606
608-@Callable(aC)
609-func shutdown () = if (!(ac))
607+@Callable(aB)
608+func shutdown () = if (!(ab))
610609 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, n), "the cause wasn't specified")))
611- else if (!(containsElement([H, I, J, K], aC.callerPublicKey)))
610+ else if (!(containsElement([G, H, I, J], aB.callerPublicKey)))
612611 then throw("Only admin can call this function")
613- else aS("Paused by admin")
612+ else aR("Paused by admin")
614613
615614
616615
617-@Callable(aC)
618-func activate () = if (ac)
616+@Callable(aB)
617+func activate () = if (ab)
619618 then throw("DApp is already active")
620- else if (!(containsElement([H, I, J, K], aC.callerPublicKey)))
619+ else if (!(containsElement([G, H, I, J], aB.callerPublicKey)))
621620 then throw("Only admin can call this function")
622621 else [BooleanEntry(c, true), DeleteEntry(n)]
623622
624623
625624
626-@Callable(aC)
625+@Callable(aB)
627626 func takeIntoAccountExtraFunds (cv) = {
628- let cw = (aK - al)
629- let cx = (aL - am)
630- let cy = (cw - (if ((af == unit))
627+ let cw = (aJ - ak)
628+ let cx = (aK - al)
629+ let cy = (cw - (if ((ae == unit))
631630 then cv
632631 else 0))
633- let cz = (cx - (if ((ag == unit))
632+ let cz = (cx - (if ((af == unit))
634633 then cv
635634 else 0))
636- if (!(ac))
635+ if (!(ab))
637636 then throw("DApp is inactive at this moment")
638- else if ((aC.caller != this))
637+ else if ((aB.caller != this))
639638 then throw("Only the DApp itself can call this function")
640639 else if ((0 > cv))
641640 then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(cv)))
642641 else if (if ((0 > cw))
643642 then true
644643 else (0 > cx))
645- then aS("Enroll amount negative")
644+ then aR("Enroll amount negative")
646645 else if (if ((0 > cy))
647646 then true
648647 else (0 > cz))
649648 then throw("Too large amountLeave")
650- else [IntegerEntry(f, (al + cy)), IntegerEntry(g, (am + cz)), IntegerEntry(("last_income_" + ad), cy), IntegerEntry(("last_income_" + ae), cz)]
649+ else [IntegerEntry(f, (ak + cy)), IntegerEntry(g, (al + cz)), IntegerEntry(("last_income_" + ac), cy), IntegerEntry(("last_income_" + ad), cz)]
651650 }
652651
653652
654653
655-@Callable(aC)
656-func enableFirstHarvest () = [BooleanEntry(o, true), IntegerEntry(p, (Z + (ab * aa)))]
654+@Callable(aB)
655+func enableFirstHarvest () = [BooleanEntry(o, true), IntegerEntry(p, (Y + (aa * Z)))]
657656
658657
659658 @Verifier(cA)
660659 func cB () = {
661660 let cC = {
662- let cD = if (sigVerify(cA.bodyBytes, cA.proofs[0], H))
661+ let cD = if (sigVerify(cA.bodyBytes, cA.proofs[0], G))
663662 then 1
664663 else 0
665- let cE = if (sigVerify(cA.bodyBytes, cA.proofs[1], I))
664+ let cE = if (sigVerify(cA.bodyBytes, cA.proofs[1], H))
666665 then 1
667666 else 0
668- let cF = if (sigVerify(cA.bodyBytes, cA.proofs[2], J))
667+ let cF = if (sigVerify(cA.bodyBytes, cA.proofs[2], I))
669668 then 1
670669 else 0
671670 (((cD + cE) + cF) >= 2)
672671 }
673- let E = cA
674- if ($isInstanceOf(E, "InvokeScriptTransaction"))
672+ let D = cA
673+ if ($isInstanceOf(D, "InvokeScriptTransaction"))
675674 then {
676- let cG = E
675+ let cG = D
677676 let cH = if ((cG.dApp == this))
678677 then (cG.function == "takeIntoAccountExtraFunds")
679678 else false
680679 let cI = if ((cG.dApp == this))
681680 then (cG.function == "enableFirstHarvest")
682681 else false
683- let cJ = if (if ((cG.dApp == S))
682+ let cJ = if (if ((cG.dApp == R))
684683 then if (if (if ((cG.function == "lockNeutrino"))
685684 then (size(cG.payments) == 1)
686685 else false)
687- then if ((cG.payments[0].assetId == O))
686+ then if ((cG.payments[0].assetId == N))
688687 then true
689- else (cG.payments[0].assetId == P)
688+ else (cG.payments[0].assetId == O)
690689 else false)
691690 then true
692691 else if ((cG.function == "unlockNeutrino"))
694693 else false
695694 else false)
696695 then true
697- else if ((cG.dApp == T))
696+ else if ((cG.dApp == S))
698697 then if (if (if ((cG.function == "startStaking"))
699698 then (size(cG.payments) == 1)
700699 else false)
701- then (cG.payments[0].assetId == R)
700+ then (cG.payments[0].assetId == Q)
702701 else false)
703702 then true
704703 else if ((cG.function == "stopStaking"))
705704 then (size(cG.payments) == 0)
706705 else false
707706 else false
708- let cK = if (if (if ((cG.dApp == U))
707+ let cK = if (if (if ((cG.dApp == T))
709708 then (cG.function == "exchange")
710709 else false)
711- then (af == O)
710+ then (ae == N)
712711 else false)
713712 then true
714- else if (if ((ag == O))
713+ else if (if ((af == N))
715714 then (size(cG.payments) == 1)
716715 else false)
717- then (cG.payments[0].assetId == O)
716+ then (cG.payments[0].assetId == N)
718717 else false
719- let cL = if (if (if ((cG.dApp == V))
718+ let cL = if (if (if ((cG.dApp == U))
720719 then (cG.function == "exchange")
721720 else false)
722- then (af == P)
721+ then (ae == O)
723722 else false)
724723 then true
725- else if (if ((ag == P))
724+ else if (if ((af == O))
726725 then (size(cG.payments) == 1)
727726 else false)
728- then (cG.payments[0].assetId == O)
727+ then (cG.payments[0].assetId == N)
729728 else false
730- let cM = if (if (if (sigVerify(cA.bodyBytes, cA.proofs[0], H))
729+ let cM = if (if (if (sigVerify(cA.bodyBytes, cA.proofs[0], G))
730+ then true
731+ else sigVerify(cA.bodyBytes, cA.proofs[0], H))
731732 then true
732733 else sigVerify(cA.bodyBytes, cA.proofs[0], I))
733734 then true
734- else sigVerify(cA.bodyBytes, cA.proofs[0], J))
735- then true
736- else sigVerify(cA.bodyBytes, cA.proofs[0], L)
735+ else sigVerify(cA.bodyBytes, cA.proofs[0], K)
737736 if (if (if (if (if (if (cH)
738737 then true
739738 else cI)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 let b = "version"
77
88 let c = "active"
99
1010 let d = "A_asset_id"
1111
1212 let e = "B_asset_id"
1313
1414 let f = "A_asset_balance"
1515
1616 let g = "B_asset_balance"
1717
1818 let h = "A_asset_init"
1919
2020 let i = "B_asset_init"
2121
2222 let j = "share_asset_id"
2323
2424 let k = "share_asset_supply"
2525
2626 let l = "commission"
2727
2828 let m = "commission_scale_delimiter"
2929
3030 let n = "shutdown_cause"
3131
3232 let o = "first_harvest"
3333
3434 let p = "first_harvest_height"
3535
3636 let q = "share_limit_on_first_harvest"
3737
3838 let r = "base_period"
3939
4040 let s = "period_length"
4141
4242 let t = "start_height"
4343
44-let u = "first_harvest_height"
44+let u = "asset_priority_"
4545
46-let v = "asset_priority_"
46+let v = "script_hash_cpmm"
4747
48-let w = "script_hash_cpmm"
48+let w = "init_pool_height_"
4949
50-let x = "init_pool_height_"
50+let x = "admin_pub_1"
5151
52-let y = "admin_pub_1"
52+let y = "admin_pub_2"
5353
54-let z = "admin_pub_2"
54+let z = "admin_pub_3"
5555
56-let A = "admin_pub_3"
56+let A = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
5757
58-let B = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
59-
60-func C (D) = {
61- let E = getString(B, D)
62- if ($isInstanceOf(E, "String"))
58+func B (C) = {
59+ let D = getString(A, C)
60+ if ($isInstanceOf(D, "String"))
6361 then {
64- let F = E
65- fromBase58String(F)
62+ let E = D
63+ fromBase58String(E)
6664 }
6765 else {
68- let G = E
66+ let F = D
6967 throw("Admin public key is empty")
7068 }
7169 }
7270
7371
74-let H = C(y)
72+let G = B(x)
7573
76-let I = C(z)
74+let H = B(y)
7775
78-let J = C(A)
76+let I = B(z)
77+
78+let J = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
7979
8080 let K = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8181
82-let L = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
82+let L = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
8383
84-let M = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
84+let M = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
8585
86-let N = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
86+let N = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
8787
88-let O = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
88+let O = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
8989
90-let P = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
90+let P = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
9191
92-let Q = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
92+let Q = base58'ECBCkHS68DckpBrzLeoRgYbFg7sCVqR176mPqbXsj9pA'
9393
94-let R = base58'ECBCkHS68DckpBrzLeoRgYbFg7sCVqR176mPqbXsj9pA'
94+let R = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
9595
96-let S = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
96+let S = Address(base58'3MyVqAbmKWh339gF6hy8faWw1jGeTV2wnGE')
9797
98-let T = Address(base58'3MyVqAbmKWh339gF6hy8faWw1jGeTV2wnGE')
98+let T = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
9999
100-let U = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
100+let U = Address(base58'3Mye9wVR7d2mc6Y5ZJTu11svzgUQ7o8H9dA')
101101
102-let V = Address(base58'3Mye9wVR7d2mc6Y5ZJTu11svzgUQ7o8H9dA')
102+let V = 270000
103103
104-let W = 270000
104+let W = 234000
105105
106-let X = 234000
106+let X = valueOrErrorMessage(getInteger(M, r), "Empty keyBasePeriod")
107107
108-let Y = valueOrErrorMessage(getInteger(N, r), "Empty kBasePeriod")
108+let Y = valueOrErrorMessage(getInteger(M, t), "Empty keyStartHeight")
109109
110-let Z = valueOrErrorMessage(getInteger(N, t), "Empty kStartHeight")
110+let Z = valueOrErrorMessage(getInteger(M, s), "Empty keyPeriodLength")
111111
112-let aa = valueOrErrorMessage(getInteger(N, s), "Empty kPeriodLength")
112+let aa = ((X + ((height - Y) / Z)) + 1)
113113
114-let ab = ((Y + ((height - Z) / aa)) + 3)
114+let ab = getBooleanValue(this, c)
115115
116-let ac = getBooleanValue(this, c)
116+let ac = getStringValue(this, d)
117117
118-let ad = getStringValue(this, d)
118+let ad = getStringValue(this, e)
119119
120-let ae = getStringValue(this, e)
120+let ae = if ((ac == "WAVES"))
121+ then unit
122+ else fromBase58String(ac)
121123
122124 let af = if ((ad == "WAVES"))
123125 then unit
124126 else fromBase58String(ad)
125127
126-let ag = if ((ae == "WAVES"))
127- then unit
128- else fromBase58String(ae)
129-
130-let ah = {
131- let E = af
132- if ($isInstanceOf(E, "ByteVector"))
128+let ag = {
129+ let D = ae
130+ if ($isInstanceOf(D, "ByteVector"))
133131 then {
134- let ai = E
135- value(assetInfo(ai)).name
132+ let ah = D
133+ value(assetInfo(ah)).name
136134 }
137- else if ($isInstanceOf(E, "Unit"))
135+ else if ($isInstanceOf(D, "Unit"))
138136 then {
139- let aj = E
137+ let ai = D
140138 "WAVES"
141139 }
142140 else throw("Match error")
143141 }
144142
145-let ak = {
146- let E = ag
147- if ($isInstanceOf(E, "ByteVector"))
143+let aj = {
144+ let D = af
145+ if ($isInstanceOf(D, "ByteVector"))
148146 then {
149- let ai = E
150- value(assetInfo(ai)).name
147+ let ah = D
148+ value(assetInfo(ah)).name
151149 }
152- else if ($isInstanceOf(E, "Unit"))
150+ else if ($isInstanceOf(D, "Unit"))
153151 then {
154- let aj = E
152+ let ai = D
155153 "WAVES"
156154 }
157155 else throw("Match error")
158156 }
159157
160-let al = getIntegerValue(this, f)
158+let ak = getIntegerValue(this, f)
161159
162-let am = getIntegerValue(this, g)
160+let al = getIntegerValue(this, g)
163161
164-let an = fromBase58String(getStringValue(this, j))
162+let am = fromBase58String(getStringValue(this, j))
165163
166-let ao = getIntegerValue(this, k)
164+let an = getIntegerValue(this, k)
167165
168-let ap = 3000
166+let ao = 3000
169167
170-let aq = 1200
168+let ap = 1200
171169
172-let ar = 1000000
170+let aq = 1000000
173171
174-let as = 1000
172+let ar = 1000
175173
176-let at = 100000000
174+let as = 100000000
177175
178-let au = 1000
176+let at = 1000
179177
180-let av = 8
178+let au = 8
181179
182-let aw = 1000000000
180+let av = 1000000000
183181
184-func ax (ay) = {
185- let E = ay
186- if ($isInstanceOf(E, "ByteVector"))
182+func aw (ax) = {
183+ let D = ax
184+ if ($isInstanceOf(D, "ByteVector"))
187185 then {
188- let ai = E
189- assetBalance(this, ai)
186+ let ah = D
187+ assetBalance(this, ah)
190188 }
191- else if ($isInstanceOf(E, "Unit"))
189+ else if ($isInstanceOf(D, "Unit"))
192190 then {
193- let aj = E
191+ let ai = D
194192 wavesBalance(this).available
195193 }
196194 else throw("Match error")
197195 }
198196
199197
200-func az (ay) = {
201- let aA = {
202- let E = ay
203- if ($isInstanceOf(E, "ByteVector"))
198+func ay (ax) = {
199+ let az = {
200+ let D = ax
201+ if ($isInstanceOf(D, "ByteVector"))
204202 then {
205- let aB = E
206- if (if ((aB == O))
203+ let aA = D
204+ if (if ((aA == N))
207205 then true
208- else (aB == P))
209- then getInteger(S, ((("rpd_balance_" + toBase58String(aB)) + "_") + toString(this)))
210- else if ((aB == R))
211- then getInteger(T, ((("%s%s%s__stakingBalance__" + toBase58String(aB)) + "__") + toString(this)))
206+ else (aA == O))
207+ then getInteger(R, ((("rpd_balance_" + toBase58String(aA)) + "_") + toString(this)))
208+ else if ((aA == Q))
209+ then getInteger(S, ((("%s%s%s__stakingBalance__" + toBase58String(aA)) + "__") + toString(this)))
212210 else 0
213211 }
214- else if ($isInstanceOf(E, "Unit"))
212+ else if ($isInstanceOf(D, "Unit"))
215213 then 0
216214 else throw("Match error")
217215 }
218- let E = aA
219- if ($isInstanceOf(E, "Int"))
216+ let D = az
217+ if ($isInstanceOf(D, "Int"))
220218 then {
221- let aC = E
222- aC
219+ let aB = D
220+ aB
223221 }
224222 else 0
225223 }
226224
227225
228-func aD (ay) = {
229- let E = ay
230- if ($isInstanceOf(E, "ByteVector"))
226+func aC (ax) = {
227+ let D = ax
228+ if ($isInstanceOf(D, "ByteVector"))
231229 then {
232- let ai = E
233- if (if ((ai == O))
230+ let ah = D
231+ if (if ((ah == N))
234232 then true
235- else (ai == Q))
233+ else (ah == P))
236234 then true
237235 else false
238236 }
239- else if ($isInstanceOf(E, "Unit"))
237+ else if ($isInstanceOf(D, "Unit"))
240238 then {
241- let aj = E
239+ let ai = D
242240 true
243241 }
244242 else throw("Match error")
245243 }
246244
247245
248-let aE = az(af)
246+let aD = ay(ae)
249247
250-let aF = az(ag)
248+let aE = ay(af)
251249
252-let aG = getIntegerValue(this, h)
250+let aF = getIntegerValue(this, h)
253251
254-let aH = getIntegerValue(this, i)
252+let aG = getIntegerValue(this, i)
253+
254+let aH = (ak - aD)
255255
256256 let aI = (al - aE)
257257
258-let aJ = (am - aF)
258+let aJ = (aw(ae) + aD)
259259
260-let aK = (ax(af) + aE)
260+let aK = (aw(af) + aE)
261261
262-let aL = (ax(ag) + aF)
263-
264-let aM = if ((aK >= al))
265- then (aL >= am)
262+let aL = if ((aJ >= ak))
263+ then (aK >= al)
266264 else false
267265
268-func aN (ay) = {
269- let E = ay
270- if ($isInstanceOf(E, "ByteVector"))
266+func aM (ax) = {
267+ let D = ax
268+ if ($isInstanceOf(D, "ByteVector"))
271269 then {
272- let ai = E
273- let aO = toBase58String(ai)
274- let aP = valueOrErrorMessage(assetInfo(ai), (("Asset " + aO) + " doesn't exist"))
275- $Tuple3(aO, aP.name, aP.decimals)
270+ let ah = D
271+ let aN = toBase58String(ah)
272+ let aO = valueOrErrorMessage(assetInfo(ah), (("Asset " + aN) + " doesn't exist"))
273+ $Tuple3(aN, aO.name, aO.decimals)
276274 }
277- else if ($isInstanceOf(E, "Unit"))
275+ else if ($isInstanceOf(D, "Unit"))
278276 then {
279- let aj = E
277+ let ai = D
280278 $Tuple3("WAVES", "WAVES", 8)
281279 }
282280 else throw("Match error")
283281 }
284282
285283
286-func aQ (aR) = if ((aR == "WAVES"))
284+func aP (aQ) = if ((aQ == "WAVES"))
287285 then $Tuple3("WAVES", "WAVES", 8)
288286 else {
289- let aO = aR
290- let ai = fromBase58String(aR)
291- let aP = valueOrErrorMessage(assetInfo(ai), (("Asset " + aO) + " doesn't exist"))
292- $Tuple3(aO, aP.name, aP.decimals)
287+ let aN = aQ
288+ let ah = fromBase58String(aQ)
289+ let aO = valueOrErrorMessage(assetInfo(ah), (("Asset " + aN) + " doesn't exist"))
290+ $Tuple3(aN, aO.name, aO.decimals)
293291 }
294292
295293
296-func aS (aT) = [BooleanEntry(c, false), StringEntry(n, aT)]
294+func aR (aS) = [BooleanEntry(c, false), StringEntry(n, aS)]
297295
298296
299-func aU (aV,ay,aW) = if (if ((ay == O))
297+func aT (aU,ax,aV) = if (if ((ax == N))
300298 then true
301- else (ay == R))
299+ else (ax == Q))
302300 then {
303- let aX = if ((ay == O))
304- then (W * (if ((aW == P))
301+ let aW = if ((ax == N))
302+ then (V * (if ((aV == O))
305303 then 2
306304 else 1))
307- else if ((ay == R))
308- then X
305+ else if ((ax == Q))
306+ then W
309307 else 0
310- let aY = (aV - aX)
311- if ((0 >= aY))
312- then throw((((("Insufficient amount " + toString(aV)) + " to deduct staking fee ") + toString(aX)) + "USDN/EURN"))
313- else aY
308+ let aX = (aU - aW)
309+ if ((0 >= aX))
310+ then throw((((("Insufficient amount " + toString(aU)) + " to deduct staking fee ") + toString(aW)) + "USDN/EURN"))
311+ else aX
314312 }
315- else aV
313+ else aU
316314
317315
318-func aZ (ay,aW) = if ((ay == O))
319- then (W * (if ((aW == P))
316+func aY (ax,aV) = if ((ax == N))
317+ then (V * (if ((aV == O))
320318 then 2
321319 else 1))
322- else if ((ay == R))
323- then X
320+ else if ((ax == Q))
321+ then W
324322 else 0
325323
326324
327-func ba (aV,bb,bc) = throw((((((((("Insufficient DApp balance to pay " + toString(aV)) + " ") + bc) + " due to staking. Available: ") + toString(bb)) + " ") + bc) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
325+func aZ (aU,ba,bb) = throw((((((((("Insufficient DApp balance to pay " + toString(aU)) + " ") + bb) + " due to staking. Available: ") + toString(ba)) + " ") + bb) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
328326
329327
330-func bd (be,bf) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(be)) + " ") + ah) + " and ") + toString(bf)) + " ") + ak) + " due to staking. Available: ") + toString(aI)) + " ") + ah) + " and ") + toString(aJ)) + " ") + ak) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
328+func bc (bd,be) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(bd)) + " ") + ag) + " and ") + toString(be)) + " ") + aj) + " due to staking. Available: ") + toString(aH)) + " ") + ag) + " and ") + toString(aI)) + " ") + aj) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
331329
332330
333-func bg () = aS(((((((((((((((("Suspicious state. Actual balances: " + toString(aK)) + " ") + ah) + ", ") + toString(aL)) + " ") + ak) + ". State: ") + toString(al)) + " ") + ah) + ", ") + toString(am)) + " ") + ak))
331+func bf () = aR(((((((((((((((("Suspicious state. Actual balances: " + toString(aJ)) + " ") + ag) + ", ") + toString(aK)) + " ") + aj) + ". State: ") + toString(ak)) + " ") + ag) + ", ") + toString(al)) + " ") + aj))
334332
335333
336-@Callable(aC)
337-func init (bh) = {
338- let bi = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
339- let bj = bi._1
340- let bk = bi._2
341- let bl = $Tuple2(aC.payments[1].amount, aC.payments[1].assetId)
342- let bm = bl._1
343- let bn = bl._2
344- let bo = $Tuple2(aC.payments[2].amount, aC.payments[2].assetId)
345- let bp = bo._1
346- let bq = bo._2
347- let br = isDataStorageUntouched(this)
348- let bs = scriptHash(this)
349- if ((aC.caller == this))
334+@Callable(aB)
335+func init (bg) = {
336+ let bh = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
337+ let bi = bh._1
338+ let bj = bh._2
339+ let bk = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
340+ let bl = bk._1
341+ let bm = bk._2
342+ let bn = $Tuple2(aB.payments[2].amount, aB.payments[2].assetId)
343+ let bo = bn._1
344+ let bp = bn._2
345+ let bq = isDataStorageUntouched(this)
346+ let br = scriptHash(this)
347+ let bs = addressFromStringValue(bg)
348+ if ((aB.caller == this))
350349 then throw("You can't call yourself")
351- else if (if ((bq != Q))
350+ else if (if ((bp != P))
352351 then true
353- else (bp != aw))
352+ else (bo != av))
354353 then throw("You need to attach 10 SWOP tokens")
355- else if (if (!(aD(bk)))
356- then !(aD(bn))
354+ else if (if (!(aC(bj)))
355+ then !(aC(bm))
357356 else false)
358357 then throw("One of assets must be USDN, WAVES or SWOP")
359- else if (if ((bs == value(getBinary(B, w))))
358+ else if (if ((br == value(getBinary(A, v))))
360359 then true
361- else !(br))
360+ else !(bq))
362361 then throw("Unexpected script was found.")
363362 else if (isDefined(getBoolean(this, c)))
364363 then throw("DApp is already active")
365- else if ((bk == bn))
364+ else if ((bj == bm))
366365 then throw("Assets must be different")
367366 else {
368367 let bt = {
369- let E = bk
370- if ($isInstanceOf(E, "ByteVector"))
368+ let D = bj
369+ if ($isInstanceOf(D, "ByteVector"))
371370 then {
372- let ai = E
373- toBase58String(ai)
371+ let ah = D
372+ toBase58String(ah)
374373 }
375- else if ($isInstanceOf(E, "Unit"))
374+ else if ($isInstanceOf(D, "Unit"))
376375 then {
377- let aj = E
376+ let ai = D
378377 "WAVES"
379378 }
380379 else throw("Match error")
381380 }
382381 let bu = {
383- let E = bn
384- if ($isInstanceOf(E, "ByteVector"))
382+ let D = bm
383+ if ($isInstanceOf(D, "ByteVector"))
385384 then {
386- let ai = E
387- toBase58String(ai)
385+ let ah = D
386+ toBase58String(ah)
388387 }
389- else if ($isInstanceOf(E, "Unit"))
388+ else if ($isInstanceOf(D, "Unit"))
390389 then {
391- let aj = E
390+ let ai = D
392391 "WAVES"
393392 }
394393 else throw("Match error")
395394 }
396- let bv = valueOrElse(getInteger(B, ("keyOracleAssetPriority" + bt)), 999999)
397- let bw = valueOrElse(getInteger(B, ("keyOracleAssetPriority" + bu)), 999999)
395+ let bv = valueOrElse(getInteger(A, (u + bt)), 999999)
396+ let bw = valueOrElse(getInteger(A, (u + bu)), 999999)
398397 let bx = if ((bw > bv))
399- then $Tuple4(bm, bn, bj, bk)
400- else $Tuple4(bj, bk, bm, bn)
398+ then $Tuple4(bl, bm, bi, bj)
399+ else $Tuple4(bi, bj, bl, bm)
401400 let by = bx._1
402401 let bz = bx._2
403402 let bA = bx._3
404403 let bB = bx._4
405- let bC = aN(bz)
404+ let bC = aM(bz)
406405 let bD = bC._1
407406 let bE = bC._2
408407 let bF = bC._3
409- let bG = aN(bB)
408+ let bG = aM(bB)
410409 let bH = bG._1
411410 let bI = bG._2
412411 let bJ = bG._3
413- let bK = invoke(B, "addPool", [this, ((bE + "_") + bI)], nil)
412+ let bK = invoke(A, "addPool", [this, ((bE + "_") + bI)], nil)
414413 if ((bK == bK))
415- then if (!(isDefined(getString(B, ("pool_" + toString(this))))))
414+ then if (!(isDefined(getString(A, ("pool_" + toString(this))))))
416415 then throw("Pool is not added")
417416 else {
418417 let bL = ((("s" + take(bE, 7)) + "_") + take(bI, 7))
419418 let bM = ((((("ShareToken of SwopFi protocol for " + bE) + " and ") + bI) + " at address ") + toString(this))
420419 let bN = ((bF + bJ) / 2)
421420 let bO = pow(by, bF, 5, 1, bF, DOWN)
422421 let bP = pow(bA, bJ, 5, 1, bJ, DOWN)
423422 let bQ = pow(10, 0, bN, 0, 0, DOWN)
424423 let bR = fraction(bO, bP, bQ)
425424 let bS = Issue(bL, bM, bR, bN, true)
426425 let bT = calculateAssetId(bS)
427- let bU = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bD), StringEntry(e, bH), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(l, ap), IntegerEntry(m, ar), bS, StringEntry(j, toBase58String(bT)), IntegerEntry(k, bR), IntegerEntry(x, height), ScriptTransfer(M, bR, bT), ScriptTransfer(aC.caller, aw, Q)]
426+ let bU = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bD), StringEntry(e, bH), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(l, ao), IntegerEntry(m, aq), bS, StringEntry(j, toBase58String(bT)), IntegerEntry(k, bR), IntegerEntry(w, height), ScriptTransfer(bs, bR, bT), ScriptTransfer(L, av, P)]
428427 bU
429428 }
430429 else throw("Strict value is not equal to itself.")
431430 }
432431 }
433432
434433
435434
436-@Callable(aC)
437-func keepLimitForFirstHarvest (bV) = if (!(ac))
435+@Callable(aB)
436+func keepLimitForFirstHarvest (bV) = if (!(ab))
438437 then throw("DApp is inactive at this moment")
439- else if (!(containsElement([H, I, J, L], aC.callerPublicKey)))
438+ else if (!(containsElement([G, H, I, K], aB.callerPublicKey)))
440439 then throw("Only admin can call this function")
441440 else [IntegerEntry(q, bV)]
442441
443442
444443
445-@Callable(aC)
444+@Callable(aB)
446445 func replenishWithTwoTokens (bW) = {
447- let bz = aC.payments[0].assetId
448- let bB = aC.payments[1].assetId
449- let by = aU(aC.payments[0].amount, bz, bB)
450- let bA = aU(aC.payments[1].amount, bB, bz)
451- if (if ((al == 0))
452- then (am == 0)
446+ let bz = aB.payments[0].assetId
447+ let bB = aB.payments[1].assetId
448+ let by = aT(aB.payments[0].amount, bz, bB)
449+ let bA = aT(aB.payments[1].amount, bB, bz)
450+ if (if ((ak == 0))
451+ then (al == 0)
453452 else false)
454453 then {
455- let bX = aN(bz)
454+ let bX = aM(bz)
456455 let bD = bX._1
457456 let bE = bX._2
458457 let bF = bX._3
459- let bY = aN(bB)
458+ let bY = aM(bB)
460459 let bH = bY._1
461460 let bI = bY._2
462461 let bJ = bY._3
463- let bZ = fraction(fraction(aG, at, by), as, fraction(aH, at, bA))
462+ let bZ = fraction(fraction(aF, as, by), ar, fraction(aG, as, bA))
464463 if ((bz == bB))
465464 then throw("Assets must be different")
466465 else {
467466 let bN = ((bF + bJ) / 2)
468467 let bR = fraction(pow(by, bF, 5, 1, bF, DOWN), pow(bA, bJ, 5, 1, bJ, DOWN), pow(10, 0, bN, 0, 0, DOWN))
469- if (!(ac))
468+ if (!(ab))
470469 then throw("DApp is inactive at this moment")
471470 else if (if ((0 > bW))
472471 then true
473- else (bW > au))
474- then throw(((("Slippage tolerance must be between 0 and " + toString(au)) + " inclusively. Actual: ") + toString(bW)))
475- else if ((size(aC.payments) != 2))
472+ else (bW > at))
473+ then throw(((("Slippage tolerance must be between 0 and " + toString(at)) + " inclusively. Actual: ") + toString(bW)))
474+ else if ((size(aB.payments) != 2))
476475 then throw("Two attached assets expected")
477- else if (if ((((as * (au - bW)) / au) > bZ))
476+ else if (if ((((ar * (at - bW)) / at) > bZ))
478477 then true
479- else (bZ > ((as * (au + bW)) / au)))
478+ else (bZ > ((ar * (at + bW)) / at)))
480479 then throw("Incorrect assets amount: amounts must have the contract ratio")
481- else if (if ((bz != af))
480+ else if (if ((bz != ae))
482481 then true
483- else (bB != ag))
484- then throw(((("Incorrect assets attached. Expected: " + ad) + " and ") + ae))
482+ else (bB != af))
483+ then throw(((("Incorrect assets attached. Expected: " + ac) + " and ") + ad))
485484 else if ((bR == 0))
486485 then throw("Too small amount to replenish")
487- else if (!(aM))
488- then ([ScriptTransfer(aC.caller, by, bz), ScriptTransfer(aC.caller, bA, bB)] ++ bg())
489- else [Reissue(an, bR, true), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(k, bR), ScriptTransfer(aC.caller, bR, an)]
486+ else if (!(aL))
487+ then ([ScriptTransfer(aB.caller, by, bz), ScriptTransfer(aB.caller, bA, bB)] ++ bf())
488+ else [Reissue(am, bR, true), IntegerEntry(f, by), IntegerEntry(g, bA), IntegerEntry(k, bR), ScriptTransfer(aB.caller, bR, am)]
490489 }
491490 }
492491 else {
493- let bZ = fraction(fraction(al, at, by), as, fraction(am, at, bA))
494- let ca = fraction(by, at, al)
495- let cb = fraction(bA, at, am)
496- let cc = fraction(min([ca, cb]), ao, at)
497- if (!(ac))
492+ let bZ = fraction(fraction(ak, as, by), ar, fraction(al, as, bA))
493+ let ca = fraction(by, as, ak)
494+ let cb = fraction(bA, as, al)
495+ let cc = fraction(min([ca, cb]), an, as)
496+ if (!(ab))
498497 then throw("DApp is inactive at this moment")
499498 else if (if ((0 > bW))
500499 then true
501- else (bW > au))
502- then throw(((("Slippage tolerance must be between 0 and " + toString(au)) + " inclusively. Actual: ") + toString(bW)))
503- else if ((size(aC.payments) != 2))
500+ else (bW > at))
501+ then throw(((("Slippage tolerance must be between 0 and " + toString(at)) + " inclusively. Actual: ") + toString(bW)))
502+ else if ((size(aB.payments) != 2))
504503 then throw("Two attached assets expected")
505- else if (if ((bz != af))
504+ else if (if ((bz != ae))
506505 then true
507- else (bB != ag))
508- then throw(((("Incorrect assets attached. Expected: " + ad) + " and ") + ae))
509- else if (if ((((as * (au - bW)) / au) > bZ))
506+ else (bB != af))
507+ then throw(((("Incorrect assets attached. Expected: " + ac) + " and ") + ad))
508+ else if (if ((((ar * (at - bW)) / at) > bZ))
510509 then true
511- else (bZ > ((as * (au + bW)) / au)))
510+ else (bZ > ((ar * (at + bW)) / at)))
512511 then throw("Incorrect assets amount: amounts must have the contract ratio")
513512 else if ((cc == 0))
514513 then throw("Too small amount to replenish")
515- else if (!(aM))
516- then ([ScriptTransfer(aC.caller, by, bz), ScriptTransfer(aC.caller, bA, bB)] ++ bg())
517- else [IntegerEntry(f, (al + by)), IntegerEntry(g, (am + bA)), IntegerEntry(k, (ao + cc)), Reissue(an, cc, true), ScriptTransfer(aC.caller, cc, an)]
514+ else if (!(aL))
515+ then ([ScriptTransfer(aB.caller, by, bz), ScriptTransfer(aB.caller, bA, bB)] ++ bf())
516+ else [IntegerEntry(f, (ak + by)), IntegerEntry(g, (al + bA)), IntegerEntry(k, (an + cc)), Reissue(am, cc, true), ScriptTransfer(aB.caller, cc, am)]
518517 }
519518 }
520519
521520
522521
523-@Callable(aC)
522+@Callable(aB)
524523 func withdraw () = {
525- let cd = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
524+ let cd = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
526525 let ce = cd._1
527526 let cf = cd._2
528- let cg = aU(fraction(ce, al, ao), af, ag)
529- let ch = aU(fraction(ce, am, ao), ag, af)
530- if (!(ac))
527+ let cg = aT(fraction(ce, ak, an), ae, af)
528+ let ch = aT(fraction(ce, al, an), af, ae)
529+ if (!(ab))
531530 then throw("DApp is inactive at this moment")
532- else if ((size(aC.payments) != 1))
531+ else if ((size(aB.payments) != 1))
533532 then throw("One attached payment expected")
534- else if ((cf != an))
535- then throw(("Incorrect asset attached. Expected: " + toBase58String(an)))
536- else if (!(aM))
537- then ([ScriptTransfer(aC.caller, ce, cf)] ++ bg())
538- else if (if ((cg > aI))
533+ else if ((cf != am))
534+ then throw(("Incorrect asset attached. Expected: " + toBase58String(am)))
535+ else if (!(aL))
536+ then ([ScriptTransfer(aB.caller, ce, cf)] ++ bf())
537+ else if (if ((cg > aH))
539538 then true
540- else (ch > aJ))
541- then bd(cg, ch)
542- else [IntegerEntry(f, (al - cg)), IntegerEntry(g, (am - ch)), IntegerEntry(k, (ao - ce)), Burn(an, ce), ScriptTransfer(aC.caller, cg, af), ScriptTransfer(aC.caller, ch, ag)]
539+ else (ch > aI))
540+ then bc(cg, ch)
541+ else [IntegerEntry(f, (ak - cg)), IntegerEntry(g, (al - ch)), IntegerEntry(k, (an - ce)), Burn(am, ce), ScriptTransfer(aB.caller, cg, ae), ScriptTransfer(aB.caller, ch, af)]
543542 }
544543
545544
546545
547-@Callable(aC)
546+@Callable(aB)
548547 func exchange (ci) = {
549- let cj = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
548+ let cj = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
550549 let ce = cj._1
551550 let cf = cj._2
552551 func ck (cl,cm) = {
553552 let cn = fraction(cm, ce, (ce + cl))
554- let co = fraction(cn, (ar - ap), ar)
555- let cp = fraction(cn, aq, ar)
553+ let co = fraction(cn, (aq - ao), aq)
554+ let cp = fraction(cn, ap, aq)
556555 if ((ci > co))
557556 then throw(((("Calculated amount to receive " + toString(co)) + " is less than specified minimum ") + toString(ci)))
558557 else $Tuple3(cn, co, cp)
559558 }
560559
561- if (!(ac))
560+ if (!(ab))
562561 then throw("DApp is inactive at this moment")
563- else if (if ((al == 0))
562+ else if (if ((ak == 0))
564563 then true
565- else (am == 0))
564+ else (al == 0))
566565 then throw("Can't exchange with zero balance")
567566 else if ((0 >= ci))
568567 then throw(("Minimal amount to receive must be positive. Actual: " + toString(ci)))
569- else if ((size(aC.payments) != 1))
568+ else if ((size(aB.payments) != 1))
570569 then throw("One attached payment expected")
571- else if (!(aM))
572- then ([ScriptTransfer(aC.caller, ce, cf)] ++ bg())
573- else if ((cf == af))
570+ else if (!(aL))
571+ then ([ScriptTransfer(aB.caller, ce, cf)] ++ bf())
572+ else if ((cf == ae))
574573 then {
575- let cq = ag
576- let cr = ck(al, am)
574+ let cq = af
575+ let cr = ck(ak, al)
577576 let cn = cr._1
578577 let co = cr._2
579578 let cp = cr._3
580- let cs = (al + ce)
581- let ct = ((am - co) - cp)
582- if (if ((aE >= cs))
579+ let cs = (ak + ce)
580+ let ct = ((al - co) - cp)
581+ if (if ((aD >= cs))
583582 then true
584- else (aF >= ct))
585- then ba(co, aJ, ak)
586- else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aC.caller, co, cq), ScriptTransfer(M, cp, cq)]
583+ else (aE >= ct))
584+ then aZ(co, aI, aj)
585+ else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aB.caller, co, cq), ScriptTransfer(L, cp, cq)]
587586 }
588- else if ((cf == ag))
587+ else if ((cf == af))
589588 then {
590- let cq = af
591- let cu = ck(am, al)
589+ let cq = ae
590+ let cu = ck(al, ak)
592591 let cn = cu._1
593592 let co = cu._2
594593 let cp = cu._3
595- let cs = ((al - co) - cp)
596- let ct = (am + ce)
597- if (if ((aE >= cs))
594+ let cs = ((ak - co) - cp)
595+ let ct = (al + ce)
596+ if (if ((aD >= cs))
598597 then true
599- else (aF >= ct))
600- then ba(co, aI, ah)
601- else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aC.caller, co, cq), ScriptTransfer(M, cp, cq)]
598+ else (aE >= ct))
599+ then aZ(co, aH, ag)
600+ else [IntegerEntry(f, cs), IntegerEntry(g, ct), ScriptTransfer(aB.caller, co, cq), ScriptTransfer(L, cp, cq)]
602601 }
603- else throw(((("Incorrect asset attached. Expected: " + ad) + " or ") + ae))
602+ else throw(((("Incorrect asset attached. Expected: " + ac) + " or ") + ad))
604603 }
605604
606605
607606
608-@Callable(aC)
609-func shutdown () = if (!(ac))
607+@Callable(aB)
608+func shutdown () = if (!(ab))
610609 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, n), "the cause wasn't specified")))
611- else if (!(containsElement([H, I, J, K], aC.callerPublicKey)))
610+ else if (!(containsElement([G, H, I, J], aB.callerPublicKey)))
612611 then throw("Only admin can call this function")
613- else aS("Paused by admin")
612+ else aR("Paused by admin")
614613
615614
616615
617-@Callable(aC)
618-func activate () = if (ac)
616+@Callable(aB)
617+func activate () = if (ab)
619618 then throw("DApp is already active")
620- else if (!(containsElement([H, I, J, K], aC.callerPublicKey)))
619+ else if (!(containsElement([G, H, I, J], aB.callerPublicKey)))
621620 then throw("Only admin can call this function")
622621 else [BooleanEntry(c, true), DeleteEntry(n)]
623622
624623
625624
626-@Callable(aC)
625+@Callable(aB)
627626 func takeIntoAccountExtraFunds (cv) = {
628- let cw = (aK - al)
629- let cx = (aL - am)
630- let cy = (cw - (if ((af == unit))
627+ let cw = (aJ - ak)
628+ let cx = (aK - al)
629+ let cy = (cw - (if ((ae == unit))
631630 then cv
632631 else 0))
633- let cz = (cx - (if ((ag == unit))
632+ let cz = (cx - (if ((af == unit))
634633 then cv
635634 else 0))
636- if (!(ac))
635+ if (!(ab))
637636 then throw("DApp is inactive at this moment")
638- else if ((aC.caller != this))
637+ else if ((aB.caller != this))
639638 then throw("Only the DApp itself can call this function")
640639 else if ((0 > cv))
641640 then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(cv)))
642641 else if (if ((0 > cw))
643642 then true
644643 else (0 > cx))
645- then aS("Enroll amount negative")
644+ then aR("Enroll amount negative")
646645 else if (if ((0 > cy))
647646 then true
648647 else (0 > cz))
649648 then throw("Too large amountLeave")
650- else [IntegerEntry(f, (al + cy)), IntegerEntry(g, (am + cz)), IntegerEntry(("last_income_" + ad), cy), IntegerEntry(("last_income_" + ae), cz)]
649+ else [IntegerEntry(f, (ak + cy)), IntegerEntry(g, (al + cz)), IntegerEntry(("last_income_" + ac), cy), IntegerEntry(("last_income_" + ad), cz)]
651650 }
652651
653652
654653
655-@Callable(aC)
656-func enableFirstHarvest () = [BooleanEntry(o, true), IntegerEntry(p, (Z + (ab * aa)))]
654+@Callable(aB)
655+func enableFirstHarvest () = [BooleanEntry(o, true), IntegerEntry(p, (Y + (aa * Z)))]
657656
658657
659658 @Verifier(cA)
660659 func cB () = {
661660 let cC = {
662- let cD = if (sigVerify(cA.bodyBytes, cA.proofs[0], H))
661+ let cD = if (sigVerify(cA.bodyBytes, cA.proofs[0], G))
663662 then 1
664663 else 0
665- let cE = if (sigVerify(cA.bodyBytes, cA.proofs[1], I))
664+ let cE = if (sigVerify(cA.bodyBytes, cA.proofs[1], H))
666665 then 1
667666 else 0
668- let cF = if (sigVerify(cA.bodyBytes, cA.proofs[2], J))
667+ let cF = if (sigVerify(cA.bodyBytes, cA.proofs[2], I))
669668 then 1
670669 else 0
671670 (((cD + cE) + cF) >= 2)
672671 }
673- let E = cA
674- if ($isInstanceOf(E, "InvokeScriptTransaction"))
672+ let D = cA
673+ if ($isInstanceOf(D, "InvokeScriptTransaction"))
675674 then {
676- let cG = E
675+ let cG = D
677676 let cH = if ((cG.dApp == this))
678677 then (cG.function == "takeIntoAccountExtraFunds")
679678 else false
680679 let cI = if ((cG.dApp == this))
681680 then (cG.function == "enableFirstHarvest")
682681 else false
683- let cJ = if (if ((cG.dApp == S))
682+ let cJ = if (if ((cG.dApp == R))
684683 then if (if (if ((cG.function == "lockNeutrino"))
685684 then (size(cG.payments) == 1)
686685 else false)
687- then if ((cG.payments[0].assetId == O))
686+ then if ((cG.payments[0].assetId == N))
688687 then true
689- else (cG.payments[0].assetId == P)
688+ else (cG.payments[0].assetId == O)
690689 else false)
691690 then true
692691 else if ((cG.function == "unlockNeutrino"))
693692 then (size(cG.payments) == 0)
694693 else false
695694 else false)
696695 then true
697- else if ((cG.dApp == T))
696+ else if ((cG.dApp == S))
698697 then if (if (if ((cG.function == "startStaking"))
699698 then (size(cG.payments) == 1)
700699 else false)
701- then (cG.payments[0].assetId == R)
700+ then (cG.payments[0].assetId == Q)
702701 else false)
703702 then true
704703 else if ((cG.function == "stopStaking"))
705704 then (size(cG.payments) == 0)
706705 else false
707706 else false
708- let cK = if (if (if ((cG.dApp == U))
707+ let cK = if (if (if ((cG.dApp == T))
709708 then (cG.function == "exchange")
710709 else false)
711- then (af == O)
710+ then (ae == N)
712711 else false)
713712 then true
714- else if (if ((ag == O))
713+ else if (if ((af == N))
715714 then (size(cG.payments) == 1)
716715 else false)
717- then (cG.payments[0].assetId == O)
716+ then (cG.payments[0].assetId == N)
718717 else false
719- let cL = if (if (if ((cG.dApp == V))
718+ let cL = if (if (if ((cG.dApp == U))
720719 then (cG.function == "exchange")
721720 else false)
722- then (af == P)
721+ then (ae == O)
723722 else false)
724723 then true
725- else if (if ((ag == P))
724+ else if (if ((af == O))
726725 then (size(cG.payments) == 1)
727726 else false)
728- then (cG.payments[0].assetId == O)
727+ then (cG.payments[0].assetId == N)
729728 else false
730- let cM = if (if (if (sigVerify(cA.bodyBytes, cA.proofs[0], H))
729+ let cM = if (if (if (sigVerify(cA.bodyBytes, cA.proofs[0], G))
730+ then true
731+ else sigVerify(cA.bodyBytes, cA.proofs[0], H))
731732 then true
732733 else sigVerify(cA.bodyBytes, cA.proofs[0], I))
733734 then true
734- else sigVerify(cA.bodyBytes, cA.proofs[0], J))
735- then true
736- else sigVerify(cA.bodyBytes, cA.proofs[0], L)
735+ else sigVerify(cA.bodyBytes, cA.proofs[0], K)
737736 if (if (if (if (if (if (cH)
738737 then true
739738 else cI)
740739 then true
741740 else cJ)
742741 then true
743742 else cK)
744743 then true
745744 else cL)
746745 then cM
747746 else false)
748747 then true
749748 else cC
750749 }
751750 else cC
752751 }
753752

github/deemru/w8io/169f3d6 
230.89 ms