Trashpirate pfp

Trashpirate

@trashpirate.eth

92 Following
22 Followers


Trashpirate pfp
Trashpirate
@trashpirate.eth
Zero-knowledge proofs will probably be a key technology that will bring mass-adoption to crypto and web3. There are too many people that won't use applications unless their privacy is protected - and this goes beyond just no KYC.
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
@justinsuntron, can you please improve the developer experience on TRON ?!! - documentation is largly outdated - support for developers is non-existent or very slow - too much energy consumption for marginally more complicated contracts - tronbox needs a verification function - we don't flatten contracts these days! - keep up with Solidity development please - 0.8.0 is too old! - wen Foundry-tron? - ... Anyone else want to add anything? Get on it so we can start building cool stuff 😏 @trondao
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Another great @ethchicago event coming up - this time with @starknet and @onlydust🔥 ​This event is designed to bring together blockchain enthusiasts, developers, and innovators to dive into the cutting-edge advancements of @starknet, a powerful Ethereum Layer 2 scaling solution, and @onlydust, a platform that allows developers to contribute to the most exciting open-source projects. Sign up here https://lu.ma/nxgfnsrq
1 reply
0 recast
2 reactions

Trashpirate pfp
Trashpirate
@trashpirate.eth
If you want to read more about it, check out these articles: https://hackmd.io/@vbuterin/selfdestruct https://dedaub.com/audits/ethereum-foundation/ef-removal-of-selfdestruct-study-may-23-2023/
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Over time, the reasons for SELFDESTRUCT have become outdated. Modern state management techniques and more secure patterns for upgrading contracts have emerged, making the opcode’s original purpose largely unnecessary. Although it’s still used in some specific cases these projects can be upgraded to also work without the current functionality of SELFDESTRUCT. Given these issues, there are strong arguments (and proposals) for either removing SELFDESTRUCT altogether (EIP-4758) or significantly altering its behavior to mitigate its risks while preserving essential functionalities (EIP-6780). These changes would help protect the Ethereum ecosystem from potential vulnerabilities, give more flexibility in storage management of Ethereum, and simplify the development of more secure smart contracts.
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
The SELFDESTRUCT opcode was introduced initially as a way to manage the blockchain’s state by allowing contracts to delete themselves, freeing up storage and returning a portion of gas costs. However, as the ecosystem evolved, it became clear that SELFDESTRUCT often causes more problems than it solves. It’s the only opcode that can break critical guarantees in Ethereum, such as ensuring that once a piece of code is deployed at an address, it remains unchanged, and that account balances can't be altered without the account’s involvement. While the first is typically used in upgrade patterns to replace old code, the latter is often mentioned as a vulnerability as calling SELFDESTRUCT can forcefully push Ether to another contract.
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
🚨 DEVELOPER POST ALERT 🚨 After reading about the vulnerability issues with the SELFDESTRUCT opcode in Solidity several times, I wondered - why does this opcode even exist, who uses it and for what? 🤔 Here’s what I discovered: TL;DR: SELFDESTRUCT was initially designed for storage management but nowadays for these reasons pretty much obsolete. The opcode has been used by some projects to upgrade code in place, however, there are other solutions for this specific use case. Given the violation of invariants that come with SELFDESTRUCT and the risks associated with that will likely result in the elimination of the opcode SELFDESTRUCT in future upgrades of Ethereum. Read on for more details 👇
1 reply
0 recast
1 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
True but at the same time you have to bow to your customers or clients - which can be as aggravating and frustrating.
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
So buying the token (unless in a raise) does ZERO for the project - you're not paying ANYONE to do stuff! So if you buy it and sit back you basically expect everybody else to work for free while you will dump on their hard-working heads when you reach your 2x. IF - and ONLY IF - they can pull it off on their own. But likely they won't because it takes a fkn VILLAGE to grow and BE a community. And only a vibrant community can bridge the loooong path from idea to adoption. So next time, when you buy a token, do yourself a favor and think for a second, not if the "team" but YOU can actually pull it off!
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
I agree that if you have a 10-30 year vision and you invest in some established project that's in the top 100 or so and has been around for years, you're more than likely to benefit financially without much effort. But anything else, a lottery. Unless, you're taking your luck in your own hands and bust your ass to get the word out, shill, onboard new community members, etc! Or as someone else said beautifully, you will get out what you put in. Why? Because most small cap token projects are the equivalent of startups that haven't even completed a single seed round.
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Why work for your "bag"? Many think that they only need to "invest" some money in crypto and they will magically get rich and create generational wealth. But this could not be further from the truth! At least not in the time horizon people often have in mind. The miscalculation many make is that they think they can repeatedly click a button and turn a few bucks into a Lambo - just need to find the right one, right? But this is exactly as it sounds, a lottery. Not sure about the odds here but they are likely very low. Would you recommend to anyone making "buying lottery tickets" their main strategy to improve their financial situation? Likely not. You can make a ton of money in crypto and the opportunities are vast, but don't get fooled when someone says it's passive or easy. It comes with a lot of learning, persistance, and sacrifices - years of it.
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
If you find this useful, FOLLOW me! Give this a LIKE, REPOST, or a COMMENT - much appreciated ✨
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Now what does abi.encodePacked do? Well, it just doesn't do the padding - so use it with caution if you need to decode the data. Because strings are easily reconstructed from bytes without padding, you can use abi.encodePacked() to concatenate strings.
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
3. string text = "Hello, ABI": First, the length of the string is encoded as a 32-byte value: 0x000000000000000000000000000000000000000000000000000000000000000A (10 bytes for "Hello, ABI"). The ASCII encoding of "Hello, ABI" is: 0x48656C6C6F2C20414249. This is right-padded to 32 bytes: 0x48656C6C6F2C2041424900000000000000000000000000000000000000000000. 4. Concatenation: 0x000000000000000000000000000000000000000000000000000000000000002A0000000000000000000000001234567890123456789012345678901234567890000000000000000000000000000000000000000000000000000000000000000A48656C6C6F2C2041424900000000000000000000000000000000000000000000
2 replies
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Breakdown of the Encoding Process: 1. uint256 num = 42: 42 in hexadecimal is 0x2A. ABI encoding requires a 32-byte representation: 0x000000000000000000000000000000000000000000000000000000000000002A. 2. address addr = 0x1234567890123456789012345678901234567890: The address is already a 20-byte value. It is left-padded to 32 bytes: 0x0000000000000000000000001234567890123456789012345678901234567890.
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Take the following example:
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
When you use abi.encode() the following operations take place: 1. Encoding: Each data type is converted into a binary format 2. Padding: The binary data is padded to encode fixed-size data types (such as uint256, address, bool, etc.) to 32-byte (256-bit) chunks and dynamic-sized data types by first encoding the length of the data followed by the actual data (like fixed-sized data) 3. Concatenation: The encoded values are concatenated to a single byte array.
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Have you been using abi.encode() but you actually are not sure what really happens under the hood? Here is a hopefully straight forward explanation what abi.encode() really does.
1 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
Check out this POAP I added to my collection
0 reply
0 recast
0 reaction

Trashpirate pfp
Trashpirate
@trashpirate.eth
We need more women in web3 - that's a fact! If you're a female builder in the space you're a starbuck ✨, let's connect! https://x.com/StarbucksOnFire/status/1829723477709918361?t=4I4ZQQhfxrUEPiD13sk6VQ&s=19
0 reply
0 recast
0 reaction