tx · HGtsJaivU2gTEV52maMnJ5WqN5YtUSZPmAyARiEshZ6s

3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM:  +0.09125204 Waves
———————————————————————————————————:  -0.00004126 WBTC
3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C:  +0.00004118 WBTC
———————————————————————————————————:  -0.02005041 Waves
———————————————————————————————————:  -0.07591589 sWAVES
3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu:  +0.00000008 WBTC
3PCoDJZ4R95qFdiAwdhjf9y2jtTiskJ9STo:  +0.00010927 sWAVES
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt:  +0.08020163 Waves (GENERATOR)
———————————————————————————————————:  -0.08020163 Waves
3PDETXtiaErZncMduS8h9G6aopcjT7wheqj:  -0.08020163 Waves (GENERATOR)

2023.05.12 01:04 [3639255] transfer 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw > 3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM swap() 0.00010025 Waves
2023.05.12 01:04 [3639255] transfer 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw > 3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM swap() 0.10015179 Waves
2023.05.12 01:04 [3639255] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C swap() 0.00000008 WBTC
2023.05.12 01:04 [3639255] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.00000008 WBTC
2023.05.12 01:04 [3639255] transfer 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C > 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw calculateAmountOutForSwapAndSendTokens() 0.10025204 Waves
2023.05.12 01:04 [3639255] transfer 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C > 3PCoDJZ4R95qFdiAwdhjf9y2jtTiskJ9STo calculateAmountOutForSwapAndSendTokens() 0.00010927 sWAVES
2023.05.12 01:04 [3639255] transfer 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C withdraw() 0.08020163 Waves
2023.05.12 01:04 [3639255] transfer 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 0.08020163 Waves
2023.05.12 01:04 [3639255] burn 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > SELF withdraw() 0.07580662 sWAVES
2023.05.12 01:04 [3639255] lease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() 465836.68247821 Waves
2023.05.12 01:04 [3639255] unlease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() +465836.76267984 Waves
2023.05.12 01:04 [3639255] transfer 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV unstake() 0.08020163 Waves
2023.05.12 01:04 [3639255] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt unstake()
2023.05.12 01:04 [3639255] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt claimReward()
2023.05.12 01:04 [3639255] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV withdraw() 0.07580662 sWAVES
2023.05.12 01:04 [3639255] invoke 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 0.07580662 sWAVES
2023.05.12 01:04 [3639255] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV getRate()
2023.05.12 01:04 [3639255] invoke 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn getRate()
2023.05.12 01:04 [3639255] invoke 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.05.12 01:04 [3639255] invoke 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.05.12 01:04 [3639255] invoke 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2023.05.12 01:04 [3639255] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C calculateAmountOutForSwapAndSendTokens() 0.00004110 WBTC
2023.05.12 01:04 [3639255] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2023.05.12 01:04 [3639255] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2023.05.12 01:04 [3639255] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2023.05.12 01:04 [3639255] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2023.05.12 01:04 [3639255] invoke 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 0.00004126 WBTC
2023.05.12 01:04 [3639255] invoke 3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM > 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw swap() 0.00004126 WBTC
2023.05.12 01:04 [3639255] invoke 3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM > 3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM PRIVATE_swap()

3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM: Fee_8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS_lastSwapTimestamp: 1682373947254 -> 1683842698109
3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C: %s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7: 70191128878 -> 70183537289
3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C: %s%s__stakedBalance__WAVES: 74153690059 -> 74145669896
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: LAST_HEIGHT: 3639252 -> 3639255
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: CURRENT_RATE: "base64:A654" == "base64:A654"
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: LAST_RATE: "base64:APZUSCsl" -> "base64:APZUUzaN"
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: STAKING_AMOUNT: 46583676267984 -> 46583668247821
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt: LEASE_AMOUNT: 46583676267984 -> 46583668247821
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt: LEASE_ID: "0x8420c7ae52f743abf7cbb9d8e175c75926aa3f2d608fcd743ae7501890bc550c" -> "0x00f1c866a32030370b4349a7d1f4c1f210a5bc2dba4518d095cf4dc23d79befd"

{ "type": 16, "id": "HGtsJaivU2gTEV52maMnJ5WqN5YtUSZPmAyARiEshZ6s", "fee": 900000, "feeAssetId": null, "timestamp": 1683842700209, "version": 2, "chainId": 87, "sender": "3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM", "senderPublicKey": "ERDjJaWKWwVUSyXxLyG38P3wMqKt2Eutwy5q6iJj1uhP", "proofs": [ "3oeFPNPWQDX2RiaHuA3vN9yRXR8Fpts5BvKLoiuPHVTd2khJFynVDn4GzEvjnnqmysatyg6swmUVYKsCkyWagtaL" ], "dApp": "3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM", "payment": [], "call": { "function": "PRIVATE_swap", "args": [ { "type": "list", "value": [ { "type": "integer", "value": 4126 } ] }, { "type": "list", "value": [ { "type": "string", "value": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C" } ] }, { "type": "list", "value": [ { "type": "string", "value": "WAVES" } ] }, { "type": "list", "value": [ { "type": "string", "value": "0" } ] }, { "type": "integer", "value": 1 }, { "type": "integer", "value": 10005163 }, { "type": "list", "value": [ { "type": "string", "value": "0" }, { "type": "string", "value": "" } ] }, { "type": "integer", "value": 4126 }, { "type": "string", "value": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS" } ] }, "height": 3639255, "applicationStatus": "succeeded", "spentComplexity": 3922, "stateChanges": { "data": [ { "key": "Fee_8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS_lastSwapTimestamp", "type": "integer", "value": 1683842698109 } ], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw", "call": { "function": "swap", "args": [ { "type": "Array", "value": [ { "type": "Int", "value": 4126 } ] }, { "type": "Array", "value": [ { "type": "String", "value": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C" } ] }, { "type": "Array", "value": [ { "type": "String", "value": "WAVES" } ] }, { "type": "Array", "value": [ { "type": "String", "value": "0" } ] }, { "type": "Int", "value": 1 }, { "type": "Int", "value": 10005163 }, { "type": "Array", "value": [ { "type": "String", "value": "0" }, { "type": "String", "value": "" } ] } ] }, "payment": [ { "assetId": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS", "amount": 4126 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM", "asset": null, "amount": 10015179 }, { "address": "3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM", "asset": null, "amount": 10025 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93", "call": { "function": "swap", "args": [ { "type": "Int", "value": 1 }, { "type": "String", "value": "WAVES" }, { "type": "String", "value": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw" } ] }, "payment": [ { "assetId": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS", "amount": 4126 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu", "asset": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS", "amount": 8 }, { "address": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C", "asset": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS", "amount": 8 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS" }, { "type": "String", "value": "WAVES" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "WAVES" }, { "type": "String", "value": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolAddressFromLpAssetREADONLY", "args": [ { "type": "String", "value": "4jqR1LxjVmDhZDzFG4mN99RVaB6aNKuhKSJxXX9DCFSg" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolStatusREADONLY", "args": [ { "type": "String", "value": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C", "call": { "function": "calculateAmountOutForSwapAndSendTokens", "args": [ { "type": "Int", "value": 4110 }, { "type": "Boolean", "value": true }, { "type": "Int", "value": 1 }, { "type": "String", "value": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw" }, { "type": "Int", "value": 8 } ] }, "payment": [ { "assetId": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS", "amount": 4110 } ], "stateChanges": { "data": [ { "key": "%s%s__stakedBalance__WAVES", "type": "integer", "value": 74145669896 }, { "key": "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "type": "integer", "value": 70183537289 } ], "transfers": [ { "address": "3PCoDJZ4R95qFdiAwdhjf9y2jtTiskJ9STo", "asset": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "amount": 10927 }, { "address": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw", "asset": null, "amount": 10025204 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getSwapContractREADONLY", "args": [] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C" }, { "type": "String", "value": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C" }, { "type": "String", "value": "WAVES" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn", "call": { "function": "getRate", "args": [] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV", "call": { "function": "getRate", "args": [] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } }, { "dApp": "3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn", "call": { "function": "withdraw", "args": [] }, "payment": [ { "assetId": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "amount": 7580662 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PPQDcvXuwVToC2QNWzPwxmLxLzMw9Eoe8C", "asset": null, "amount": 8020163 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV", "call": { "function": "withdraw", "args": [] }, "payment": [ { "assetId": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "amount": 7580662 } ], "stateChanges": { "data": [ { "key": "STAKING_AMOUNT", "type": "integer", "value": 46583668247821 }, { "key": "LAST_RATE", "type": "binary", "value": "base64:APZUUzaN" }, { "key": "CURRENT_RATE", "type": "binary", "value": "base64:A654" }, { "key": "LAST_HEIGHT", "type": "integer", "value": 3639255 } ], "transfers": [ { "address": "3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn", "asset": null, "amount": 8020163 } ], "issues": [], "reissues": [], "burns": [ { "assetId": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "quantity": 7580662 } ], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "call": { "function": "claimReward", "args": [] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "call": { "function": "unstake", "args": [ { "type": "Int", "value": 8020163 } ] }, "payment": [], "stateChanges": { "data": [ { "key": "LEASE_ID", "type": "binary", "value": "base64:APHIZqMgMDcLQ0mn0fTB8hClvC26RRjQlc9Nwj15vv0=" }, { "key": "LEASE_AMOUNT", "type": "integer", "value": 46583668247821 } ], "transfers": [ { "address": "3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV", "asset": null, "amount": 8020163 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [ { "id": "14gqNQKCwAnoB7sujW8asAgNaXhyJDdtTn83TF2a9nQ4", "originTransactionId": "HGtsJaivU2gTEV52maMnJ5WqN5YtUSZPmAyARiEshZ6s", "sender": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "recipient": "3PDETXtiaErZncMduS8h9G6aopcjT7wheqj", "amount": 46583668247821, "height": 3639255, "status": "canceled", "cancelHeight": 3639255, "cancelTransactionId": "EWvvyo8Dr4Z1oYjVbdXpEBzTQSXhvdKkzYqLQ2Dxedy5" } ], "leaseCancels": [ { "id": "9tmooS2zNAj8uMQcphs7Ho56n6qzbcuADhqQJ6RFdKKq", "originTransactionId": "8QL2JhstopHpCqJh3CM9FapJTbe4BRZfVzZGkuj72gFk", "sender": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "recipient": "3PDETXtiaErZncMduS8h9G6aopcjT7wheqj", "amount": 46583676267984, "height": 3639252, "status": "canceled", "cancelHeight": 3639255, "cancelTransactionId": "HGtsJaivU2gTEV52maMnJ5WqN5YtUSZPmAyARiEshZ6s" } ], "invokes": [] } } ] } } ] } } ] } } ] } } ] } } ] } }

github/deemru/w8io/0e76f2f 
36.99 ms