tx · 3uNDRws4WvXhSVPQfcTraW8xsgJ8xGNPrAwb9SxYHBv1

3PAddJBu3ZeswJRhYfL2UH5XmoU7ED6KZ8p:  +65.50900845 PETE
———————————————————————————————————:  -6.44000000 Waves
———————————————————————————————————:  -5.00000000 Waves.Exchange
3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe:  +0.19052865 PETE
3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU:  +2.25012302 Duck Egg
———————————————————————————————————:  -65.69953710 PETE
3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu:  +0.02272851 Duck Egg
3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ:  -2.28433057 Duck Egg
———————————————————————————————————:  -6.44000000 Waves (GENERATOR)
———————————————————————————————————:  +6.44000000 Waves
3P6hQHv6LWTRdxJAJNT81zvrGURDYxErTtS:  +0.01147904 Duck Egg
3PA1KvFfq9VuJjg45p2ytGgaNjrgnLSgf4r:  +6.44000000 Waves (GENERATOR)
3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S:  +5.00000000 Waves.Exchange
———————————————————————————————————:  -0.00500000 Waves

2023.08.04 19:09 [3761696] transfer 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw > 3PAddJBu3ZeswJRhYfL2UH5XmoU7ED6KZ8p puzzleSwap() 65.50900845 PETE
2023.08.04 19:09 [3761696] transfer 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe swapWithReferral() 0.19052865 PETE
2023.08.04 19:09 [3761696] transfer 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw swapWithReferral() 65.50900845 PETE
2023.08.04 19:09 [3761696] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU swap() 0.00000001 Duck Egg
2023.08.04 19:09 [3761696] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.02272851 Duck Egg
2023.08.04 19:09 [3761696] transfer 3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU calculateAmountOutForSwapAndSendTokens() 65.69953710 PETE
2023.08.04 19:09 [3761696] invoke 3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.08.04 19:09 [3761696] invoke 3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.08.04 19:09 [3761696] invoke 3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2023.08.04 19:09 [3761696] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU calculateAmountOutForSwapAndSendTokens() 2.25012301 Duck Egg
2023.08.04 19:09 [3761696] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2023.08.04 19:09 [3761696] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2023.08.04 19:09 [3761696] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2023.08.04 19:09 [3761696] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2023.08.04 19:09 [3761696] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2023.08.04 19:09 [3761696] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 2.27285153 Duck Egg
2023.08.04 19:09 [3761696] transfer 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ > 3P6hQHv6LWTRdxJAJNT81zvrGURDYxErTtS swap() 0.01147904 Duck Egg
2023.08.04 19:09 [3761696] transfer 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU swapInternal() 2.27285153 Duck Egg
2023.08.04 19:09 [3761696] invoke 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ > 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ internal()
2023.08.04 19:09 [3761696] lease 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ > 3PA1KvFfq9VuJjg45p2ytGgaNjrgnLSgf4r internal() 4219.54065453 Waves
2023.08.04 19:09 [3761696] unlease 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ > 3PA1KvFfq9VuJjg45p2ytGgaNjrgnLSgf4r internal() +4213.10065453 Waves
2023.08.04 19:09 [3761696] invoke 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ > 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ internal()
2023.08.04 19:09 [3761696] invoke 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ > 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ swapInternal()
2023.08.04 19:09 [3761696] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ swap() 6.44000000 Waves
2023.08.04 19:09 [3761696] invoke 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU swapWithReferral() 6.44000000 Waves
2023.08.04 19:09 [3761696] invoke 3PAddJBu3ZeswJRhYfL2UH5XmoU7ED6KZ8p > 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw puzzleSwap() 6.44000000 Waves
2023.08.04 19:09 [3761696] sponsor 3PAddJBu3ZeswJRhYfL2UH5XmoU7ED6KZ8p > 3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S 5.00000000 Waves.Exchange

3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ: reveneu_day_C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS_129: 0 == 0
3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ: days_since_apy: 129 == 129
3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ: global_WAVES_balance: 421310064272 -> 421954064272
3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ: global_C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS_balance: 146002915009 -> 145773907999
3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ: leasing_amount: 421310065453 -> 421954065453
3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ: last_stake_id: "6wzoa4wx28DTdhMTdaSNCfkRLAmCseonFNNhpTWyWaxL" -> "3MVDgKp45Xf9jmhVzkosRFrzhG522wSfNhRXura5Zip4"

{ "type": 16, "id": "3uNDRws4WvXhSVPQfcTraW8xsgJ8xGNPrAwb9SxYHBv1", "fee": 500000000, "feeAssetId": "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on", "timestamp": 1691165384524, "version": 2, "chainId": 87, "sender": "3PAddJBu3ZeswJRhYfL2UH5XmoU7ED6KZ8p", "senderPublicKey": "995AZfDAW4mY8qLxZ51AqtD9mvqUsxL8KqLYWYHb6EcS", "proofs": [ "4Mw2bgrYxUWfzHybSt1sBGtygE1wPentvY6amt52qKWDqFhw8iCw2SZ9W4ckTW96ixtpvRHkz9HVgjW7eTx98ZJw" ], "dApp": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw", "payment": [ { "amount": 644000000, "assetId": null } ], "call": { "function": "puzzleSwap", "args": [ { "type": "string", "value": "644000000/3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ,puzzle,WAVES,C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS;3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU,wx,C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS,GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq" }, { "type": "integer", "value": 6392875735 }, { "type": "list", "value": [ { "type": "string", "value": "" }, { "type": "string", "value": "" } ] } ] }, "height": 3761696, "applicationStatus": "succeeded", "spentComplexity": 3197, "stateChanges": { "data": [], "transfers": [ { "address": "3PAddJBu3ZeswJRhYfL2UH5XmoU7ED6KZ8p", "asset": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq", "amount": 6550900845 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "call": { "function": "swapWithReferral", "args": [ { "type": "String", "value": "644000000/3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ,puzzle,WAVES,C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS;3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU,wx,C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS,GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq" }, { "type": "Int", "value": 6392875735 }, { "type": "String", "value": "keeper" } ] }, "payment": [ { "assetId": null, "amount": 644000000 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw", "asset": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq", "amount": 6550900845 }, { "address": "3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe", "asset": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq", "amount": 19052865 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ", "call": { "function": "swap", "args": [ { "type": "String", "value": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" }, { "type": "Int", "value": 0 } ] }, "payment": [ { "assetId": null, "amount": 644000000 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3P6hQHv6LWTRdxJAJNT81zvrGURDYxErTtS", "asset": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS", "amount": 1147904 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ", "call": { "function": "swapInternal", "args": [ { "type": "String", "value": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" }, { "type": "Int", "value": 0 }, { "type": "Int", "value": 644000000 }, { "type": "String", "value": "WAVES" }, { "type": "String", "value": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU" } ] }, "payment": [], "stateChanges": { "data": [ { "key": "global_C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS_balance", "type": "integer", "value": 145773907999 }, { "key": "global_WAVES_balance", "type": "integer", "value": 421954064272 }, { "key": "days_since_apy", "type": "integer", "value": 129 }, { "key": "reveneu_day_C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS_129", "type": "integer", "value": 0 } ], "transfers": [ { "address": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "asset": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS", "amount": 227285153 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ", "call": { "function": "internal", "args": [ { "type": "Boolean", "value": true }, { "type": "Int", "value": 644000000 }, { "type": "String", "value": "WAVES" } ] }, "payment": [], "stateChanges": { "data": [ { "key": "last_stake_id", "type": "string", "value": "3MVDgKp45Xf9jmhVzkosRFrzhG522wSfNhRXura5Zip4" }, { "key": "leasing_amount", "type": "integer", "value": 421954065453 } ], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [ { "id": "3MVDgKp45Xf9jmhVzkosRFrzhG522wSfNhRXura5Zip4", "originTransactionId": "3uNDRws4WvXhSVPQfcTraW8xsgJ8xGNPrAwb9SxYHBv1", "sender": "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ", "recipient": "3PA1KvFfq9VuJjg45p2ytGgaNjrgnLSgf4r", "amount": 421954065453, "height": 3761696, "status": "canceled", "cancelHeight": 3762034, "cancelTransactionId": "9d1vP5KC91PFuXLZATGKtgurFFEZjaNz9zTB5npEVcWj" } ], "leaseCancels": [ { "id": "6wzoa4wx28DTdhMTdaSNCfkRLAmCseonFNNhpTWyWaxL", "originTransactionId": "5ARoKHMj2NhWTwu4emyrY1cZsgExSgAxGGAHe3Mv3qhh", "sender": "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ", "recipient": "3PA1KvFfq9VuJjg45p2ytGgaNjrgnLSgf4r", "amount": 421310065453, "height": 3761658, "status": "canceled", "cancelHeight": 3761696, "cancelTransactionId": "3uNDRws4WvXhSVPQfcTraW8xsgJ8xGNPrAwb9SxYHBv1" } ], "invokes": [] } }, { "dApp": "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ", "call": { "function": "internal", "args": [ { "type": "Boolean", "value": false }, { "type": "Int", "value": 229007009 }, { "type": "String", "value": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } }, { "dApp": "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93", "call": { "function": "swap", "args": [ { "type": "Int", "value": 1 }, { "type": "String", "value": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq" }, { "type": "String", "value": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU" } ] }, "payment": [ { "assetId": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS", "amount": 227285153 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu", "asset": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS", "amount": 2272851 }, { "address": "3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU", "asset": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS", "amount": 1 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" }, { "type": "String", "value": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq" }, { "type": "String", "value": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolAddressFromLpAssetREADONLY", "args": [ { "type": "String", "value": "66YNWhVQp26oxiQeA1bc38xCAcPCGHAkdJYvpLXpfRoo" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolStatusREADONLY", "args": [ { "type": "String", "value": "3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getSwapFeeREADONLY", "args": [ { "type": "String", "value": "3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU", "call": { "function": "calculateAmountOutForSwapAndSendTokens", "args": [ { "type": "Int", "value": 225012301 }, { "type": "Boolean", "value": true }, { "type": "Int", "value": 1 }, { "type": "String", "value": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU" }, { "type": "Int", "value": 1 } ] }, "payment": [ { "assetId": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS", "amount": 225012301 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "asset": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq", "amount": 6569953710 } ], "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": "3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU" }, { "type": "String", "value": "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3P9wjfWzsukTd4QN9GMS9Uj86RMSP517vCU" }, { "type": "String", "value": "GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } } ] } } ] } }

github/deemru/w8io/6500d08 
26.19 ms