Getting better everyday!
Today, I learn intro to JavaScript, wrote my first JavaScriptcode today! And started another project using html and CSS
Yes, hold me accountable
I won't run from JavaScript.
In an extremely unfortunate turn of events, a third-party analytics plugin, Safary, exploited a JavaScriptcode used by our sites and many other crypto projects' front-ends.
Our very own @simsalacrypto and team swiftly identified the cause of the exploit, and this finding has been forarded to other projects 🫡
If anyone is using Safary, you may need to revoke access to this contract 👇
0xd8ea07f43bc5045ec49ab52a3da2d0bf533581bf
Keep in mind, all chains were impacted. So depending on the chain oyu used, please visit one of the following:
1️⃣ snowtrace.dev/tokenapprovalc…
2️⃣ arbiscan.io/tokenapprovalche…
3️⃣ bscscan.com/toenapprovalchec…
You can also use revoke.cash/
Steps to take:
1️⃣ Enter your wallet address/connect with your wallet
2️⃣ Search using this contract address: 0xd8ea07f43bc5045ec49ab52a3da2d0bf533581bf
3️⃣ Revoke access if the contract address appears in a search
Stay safe, friends!
Post-mortem from Murloc below
Again thanks to @SphereDeFi@simsalacrypto for raising a flag that helped us nail down the exact issue. If you are using the Safary web analytics plugin please remove asap and await further comms from the Safary team.
Want to stress key things:
- Contracts / Protocols are safe
- DNS was not hijacked
- Users will be made whole
- I will never be able to have a plugin again
Great post here Shalini👍💯
On a related note, just wanna mention, that we should be careful about TDZ.
🚫 **Temporal Dead Zone (TDZ) and Error Behaviors**:🚫
So TDZ is about the basic differences among `var`, `let`, and `const` when it comes to hoisting.
👉 **Hoisting** is a JavaScript mechanism where variable and function declarations are moved to the top of their containing scope during the compilation phase. However, only the declarations are hoisted, not the initializations.
When we say "`var` variables are hoisted", it means:
If you declare a variable with `var` anywhere in a function or globally, its declaration is "lifted" to the top of the function or global scope. However, the actual value assignment remains in place. If you access the variable before its value assignment, it will return `undefined`.
--------
NOT
`var` variables are hoisted and initialized with `undefined`, while `let` and `const` are hoisted but not initialized.
This uninitialized state is what's often referred to as the Temporal Dead Zone (TDZ).
However, a lesser-known detail is how they each behave in terms of errors when accessed during their respective TDZs:
1. For `var`:
- Since it's initialized with `undefined`, accessing a `var` variable before its declaration will not throw an error; instead, it will return `undefined`.
2. For `let`:
- If you try to access a `let` variable before its declaration, JavaScript will throw a `ReferenceError` because it's in the TDZ and not yet initialized.
3. For `const`:
- It behaves similarly to `let` in terms of the TDZ. Accessing a `const` before its declaration will throw a `ReferenceError`. However, there's another edge case to consider: If you declare a `const` variable but do not immediately initialize it, you'll receive a `SyntaxError`. This enforces the idea that constants must be initialized at the time of their declaration.
Now, while many seasoned developers might be aware of the TDZ for `let` and `const`, the nuance of the different error types – `ReferenceError` vs. `SyntaxError` – for uninitiated `const` variables might catch some off guard.
---------------------------
🚀If you are preparing for JavaScript / React Interview - Check out my Github Repo (⭐It's got 2.7K Stars⭐🌠) - Will give you enough win🚀🔥
👉👉 github.com/rohan-paul/Awesom…#javascript#javascriptdeveloper#javascripts#javascript30#learnjavascript#javascriptdevelopers#javascriptengineer#javascriptlover#javascripttutorial#javascripting#javascriptdev#javascriptlearning#javascriptframework#learningjavascript#javascript_love#vanillajavascript#javascriptislife#javascriptbasics#javascriptiskillingmysoul#javascriptbook#eloquentjavascript#javascriptlibraries#fullstackjavascript#javascriptcode#javascriptprogrammer#javascriptlovers#javascriptbootcamp#javascripters#javascriptcafe#javascriptforbabies#javascripttips#instajavascript#javascriptla#ilovejavascript#javascriptprogramming#javascript3#javascriptjustice#javascriptninja#javascriptcoder#html#css