tx · 3nfLVLMY1jDCkumMukogLdJNEKKijsr46trFMQv5vuYD

3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t:  +0.00892998 Waves
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29:  +0.50119398 Puzzle
———————————————————————————————————:  -0.95582451 Waves
3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe:  +0.00201484 Puzzle
3PBQTUbhaWojsQctAiTXmJ9z7seyA9RnFRg:  +0.00050371 Puzzle
3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz:  +0.18232891 Waves
———————————————————————————————————:  -0.50371253 Puzzle
———————————————————————————————————:  +0.68338109 sWAVES
3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu:  +0.00188378 Waves
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt:  -0.75768184 Waves (GENERATOR)
———————————————————————————————————:  +0.75768184 Waves
3PDETXtiaErZncMduS8h9G6aopcjT7wheqj:  +0.75768184 Waves (GENERATOR)

2024.03.06 21:53 [4072394] transfer 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t z() 0.01392998 Waves
2024.03.06 21:53 [4072394] transfer 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 > 3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe swap() 0.00201484 Puzzle
2024.03.06 21:53 [4072394] transfer 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 > 3PBQTUbhaWojsQctAiTXmJ9z7seyA9RnFRg swap() 0.00050371 Puzzle
2024.03.06 21:53 [4072394] transfer 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 > 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez swap() 0.95582451 Waves
2024.03.06 21:53 [4072394] invoke 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 swap() 0.50371253 Puzzle
2024.03.06 21:53 [4072394] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz swap() 0.00188378 Waves
2024.03.06 21:53 [4072394] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.00188378 Waves
2024.03.06 21:53 [4072394] transfer 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez calculateAmountOutForSwapAndSendTokens() 0.50371253 Puzzle
2024.03.06 21:53 [4072394] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.03.06 21:53 [4072394] transfer 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz deposit() 0.68338109 sWAVES
2024.03.06 21:53 [4072394] transfer 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn deposit() 0.68338109 sWAVES
2024.03.06 21:53 [4072394] reissue 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > SELF deposit() 0.68338109 sWAVES
2024.03.06 21:53 [4072394] lease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj stake() 1716727.80434324 Waves
2024.03.06 21:53 [4072394] unlease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj stake() +1716727.04666140 Waves
2024.03.06 21:53 [4072394] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt stake() 0.75768184 Waves
2024.03.06 21:53 [4072394] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt claimReward()
2024.03.06 21:53 [4072394] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV deposit() 0.75768184 Waves
2024.03.06 21:53 [4072394] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn deposit() 0.75768184 Waves
2024.03.06 21:53 [4072394] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.03.06 21:53 [4072394] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.03.06 21:53 [4072394] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.03.06 21:53 [4072394] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz calculateAmountOutForSwapAndSendTokens() 0.93812697 Waves
2024.03.06 21:53 [4072394] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2024.03.06 21:53 [4072394] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.03.06 21:53 [4072394] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2024.03.06 21:53 [4072394] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.03.06 21:53 [4072394] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.03.06 21:53 [4072394] invoke 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 0.94189453 Waves
2024.03.06 21:53 [4072394] invoke 3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t > 94ez z()

3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_volume: 70640429920 -> 70660541519
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_earnedByOwner: 366196508 -> 366246879
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: hello: "world" == "world"
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_balance: 2824485878 -> 2873849707
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_WAVES_balance: 5509350157 -> 5413767706
3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz: %s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7: 232110229301 -> 232178567410
3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz: %s%s__stakedBalance__WAVES: 256683289984 -> 256759058168
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: STAKING_AMOUNT: 171672704666140 -> 171672780434324
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: LAST_HEIGHT: 4072394 == 4072394
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: CURRENT_RATE: "base64:Afb9" -> "base64:Afb8"
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: LAST_RATE: "base64:AQIlK+hS" == "base64:AQIlK+hS"
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt: LEASE_AMOUNT: 171672704666140 -> 171672780434324
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt: LEASE_ID: "0xd3c03e618927485b452f968031b593b4fc457508c07aeee4e1e7e5ba7d7aa5d9" -> "0x84f2d182042108fda6760feeae7df1a29b21461a47403c578d6d271aa91e26fd"

{ "type": 16, "id": "3nfLVLMY1jDCkumMukogLdJNEKKijsr46trFMQv5vuYD", "fee": 500000, "feeAssetId": null, "timestamp": 1709751208502, "version": 2, "chainId": 87, "sender": "3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t", "senderPublicKey": "Cr1ybL2JGg9GwJHA2JwqxBPfSW6Q7Jg4HvNrsEiCsHu6", "proofs": [ "3UHjzhGvfiZLV14LVMwDM9VN2tY3zEo2G2KtAVdwHRSH4WrBi4Z3whVNDJW8PMaAnitPPHNYDYecHyGTihKzL3Nq" ], "dApp": "94ez", "payment": [], "call": { "function": "z", "args": [ { "type": "string", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_WAVES_1_94189453_H|3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz_W|3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29_P|x" } ] }, "height": 4072394, "applicationStatus": "succeeded", "spentComplexity": 4627, "stateChanges": { "data": [], "transfers": [ { "address": "3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t", "asset": null, "amount": 1392998 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93", "call": { "function": "swap", "args": [ { "type": "Int", "value": 1 }, { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" }, { "type": "String", "value": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez" } ] }, "payment": [ { "assetId": null, "amount": 94189453 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu", "asset": null, "amount": 188378 }, { "address": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz", "asset": null, "amount": 188378 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "WAVES" }, { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" }, { "type": "String", "value": "WAVES" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolAddressFromLpAssetREADONLY", "args": [ { "type": "String", "value": "7G687ui3m59oAd6qkyni2vt77bHF4bbA6xcPfDo3uiTu" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolStatusREADONLY", "args": [ { "type": "String", "value": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getSwapFeeREADONLY", "args": [ { "type": "String", "value": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz", "call": { "function": "calculateAmountOutForSwapAndSendTokens", "args": [ { "type": "Int", "value": 93812697 }, { "type": "Boolean", "value": true }, { "type": "Int", "value": 1 }, { "type": "String", "value": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez" }, { "type": "Int", "value": 188378 } ] }, "payment": [ { "assetId": null, "amount": 93812697 } ], "stateChanges": { "data": [ { "key": "%s%s__stakedBalance__WAVES", "type": "integer", "value": 256759058168 }, { "key": "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "type": "integer", "value": 232178567410 } ], "transfers": [ { "address": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 50371253 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "isPoolSwapDisabledREADONLY", "args": [ { "type": "String", "value": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "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": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" }, { "type": "String", "value": "WAVES" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn", "call": { "function": "deposit", "args": [] }, "payment": [ { "assetId": null, "amount": 75768184 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz", "asset": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "amount": 68338109 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV", "call": { "function": "deposit", "args": [] }, "payment": [ { "assetId": null, "amount": 75768184 } ], "stateChanges": { "data": [ { "key": "LAST_RATE", "type": "binary", "value": "base64:AQIlK+hS" }, { "key": "CURRENT_RATE", "type": "binary", "value": "base64:Afb8" }, { "key": "LAST_HEIGHT", "type": "integer", "value": 4072394 }, { "key": "STAKING_AMOUNT", "type": "integer", "value": 171672780434324 } ], "transfers": [ { "address": "3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn", "asset": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "amount": 68338109 } ], "issues": [], "reissues": [ { "assetId": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "isReissuable": true, "quantity": 68338109 } ], "burns": [], "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": "stake", "args": [] }, "payment": [ { "assetId": null, "amount": 75768184 } ], "stateChanges": { "data": [ { "key": "LEASE_ID", "type": "binary", "value": "base64:hPLRggQhCP2mdg/urn3xopshRhpHQDxXjW0nGqkeJv0=" }, { "key": "LEASE_AMOUNT", "type": "integer", "value": 171672780434324 } ], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [ { "id": "9wyZpkibMT9ZheEtyXkks3dSNPHP8kiNDMsUYT1YBk2x", "originTransactionId": "3nfLVLMY1jDCkumMukogLdJNEKKijsr46trFMQv5vuYD", "sender": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "recipient": "3PDETXtiaErZncMduS8h9G6aopcjT7wheqj", "amount": 171672780434324, "height": 4072394, "status": "canceled", "cancelHeight": 4072394, "cancelTransactionId": "BgF4pGGpBS3FWs4neH4nRzLrciMaTR6xDayKsjANHuVQ" } ], "leaseCancels": [ { "id": "FFb3e6MqbcU1K9WGTpZdR3vrfD9MYRMM3qG7opBL2coi", "originTransactionId": "5Xjhm6oFjUKf7suLV39HNxch5D5Qt7RbYJPMLgoPJMTV", "sender": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "recipient": "3PDETXtiaErZncMduS8h9G6aopcjT7wheqj", "amount": 171672704666140, "height": 4072394, "status": "canceled", "cancelHeight": 4072394, "cancelTransactionId": "3nfLVLMY1jDCkumMukogLdJNEKKijsr46trFMQv5vuYD" } ], "invokes": [] } } ] } } ] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" }, { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } }, { "dApp": "3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29", "call": { "function": "swap", "args": [ { "type": "String", "value": "WAVES" }, { "type": "Int", "value": 1 } ] }, "payment": [ { "assetId": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 50371253 } ], "stateChanges": { "data": [ { "key": "global_WAVES_balance", "type": "integer", "value": 5413767706 }, { "key": "global_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_balance", "type": "integer", "value": 2873849707 }, { "key": "hello", "type": "string", "value": "world" }, { "key": "global_earnedByOwner", "type": "integer", "value": 366246879 }, { "key": "global_volume", "type": "integer", "value": 70660541519 } ], "transfers": [ { "address": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez", "asset": null, "amount": 95582451 }, { "address": "3PBQTUbhaWojsQctAiTXmJ9z7seyA9RnFRg", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 50371 }, { "address": "3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 201484 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } }

github/deemru/w8io/3ef1775 
16.28 ms